sKit  0.0.9
ShaderBuilder.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <SDL3/SDL.h>
4 
5 #include <string>
6 
7 namespace sKit {
8 namespace SDL {
9 
21  public:
23  : stage_(SDL_GPU_SHADERSTAGE_VERTEX), numUniformBuffers_(0) {};
24 
26  auto path(std::string path) noexcept -> ShaderBuilder&;
27 
29  auto vertex() noexcept -> ShaderBuilder&;
30 
32  auto fragment() noexcept -> ShaderBuilder&;
33 
35  auto numUniformBuffers(uint32_t n) noexcept -> ShaderBuilder&;
36 
40  auto build(SDL_GPUDevice* device) -> SDL_GPUShader*;
41 
42  private:
43  std::string path_;
44  SDL_GPUShaderStage stage_;
45  uint32_t numUniformBuffers_;
46 };
47 
48 } // namespace SDL
49 }; // namespace sKit
sKit::SDL::ShaderBuilder::build
auto build(SDL_GPUDevice *device) -> SDL_GPUShader *
Definition: ShaderBuilder.cpp:30
sKit::SDL::ShaderBuilder::ShaderBuilder
ShaderBuilder()
Definition: ShaderBuilder.hpp:22
sKit::SDL::ShaderBuilder
SDL_GPUShader builder class
Definition: ShaderBuilder.hpp:20
sKit::SDL::ShaderBuilder::fragment
auto fragment() noexcept -> ShaderBuilder &
Tells the builder that the shader built is a fragment shader.
Definition: ShaderBuilder.cpp:20
sKit::SDL::ShaderBuilder::numUniformBuffers
auto numUniformBuffers(uint32_t n) noexcept -> ShaderBuilder &
Tells the builder how many uniform bufferms the shader will receive.
Definition: ShaderBuilder.cpp:25
sKit::SDL::ShaderBuilder::vertex
auto vertex() noexcept -> ShaderBuilder &
Tells the builder that the shader built is a vertex shader.
Definition: ShaderBuilder.cpp:15
sKit::SDL::ShaderBuilder::path
auto path(std::string path) noexcept -> ShaderBuilder &
Definition: ShaderBuilder.cpp:10
sKit
Definition: camera.hpp:8