16 static constexpr auto kShaderUserConstantOffset = 96;
27 void SetShaderOverride(
const uint32_t *shader, uint32_t shader_size) {
29 shader_override_size_ = shader_size;
32 void SetUniform4x4F(uint32_t slot,
const XboxMath::matrix4_t &value);
33 void SetUniform4F(uint32_t slot,
const float *value);
34 void SetUniform4I(uint32_t slot,
const uint32_t *value);
36 void SetUniformF(uint32_t slot,
float x,
float y = 0.0f,
float z = 0.0f,
float w = 0.0f);
37 void SetUniformI(uint32_t slot, uint32_t x, uint32_t y = 0, uint32_t z = 0, uint32_t w = 0);
45 virtual void OnActivate() {}
46 virtual void OnLoadShader() {}
47 virtual void OnLoadConstants() {};
49 void LoadShaderProgram(
const uint32_t *shader, uint32_t shader_size)
const;
51 void SetTransformConstantBlock(std::map<uint32_t, TransformConstant> &constants_map, uint32_t slot,
52 const uint32_t *values, uint32_t num_slots);
54 void SetBaseUniform4x4F(uint32_t slot,
const XboxMath::matrix4_t &value);
55 void SetBaseUniform4F(uint32_t slot,
const float *value);
56 void SetBaseUniform4I(uint32_t slot,
const uint32_t *value);
58 void SetBaseUniformF(uint32_t slot,
float x,
float y = 0.0f,
float z = 0.0f,
float w = 0.0f);
59 void SetBaseUniformI(uint32_t slot, uint32_t x, uint32_t y = 0, uint32_t z = 0, uint32_t w = 0);
61 void UploadConstants();
67 uint32_t shader_override_size_{0};
80 bool uniform_upload_required_{
true};
std::map< uint32_t, TransformConstant > base_transform_constants_
Map of index to constants that will be loaded starting at c[96].
Definition vertex_shader_program.h:73