nxdk_pgraph_tests
A collection of tests for the Xbox nv2a graphics processor
 
Loading...
Searching...
No Matches
VertexShaderProgram Class Reference

#include <vertex_shader_program.h>

Inheritance diagram for VertexShaderProgram:

Classes

struct  TransformConstant
 

Public Member Functions

void Activate ()
 
void PrepareDraw ()
 
void SetShaderOverride (const uint32_t *shader, uint32_t shader_size)
 
void SetUniform4x4F (uint32_t slot, const XboxMath::matrix4_t &value)
 
void SetUniform4F (uint32_t slot, const float *value)
 
void SetUniform4I (uint32_t slot, const uint32_t *value)
 
void SetUniformF (uint32_t slot, float x, float y=0.0f, float z=0.0f, float w=0.0f)
 
void SetUniformI (uint32_t slot, uint32_t x, uint32_t y=0, uint32_t z=0, uint32_t w=0)
 

Static Public Attributes

static constexpr auto kShaderUserConstantOffset = 96
 

Protected Member Functions

virtual void OnActivate ()
 
virtual void OnLoadShader ()
 
virtual void OnLoadConstants ()
 
void LoadShaderProgram (const uint32_t *shader, uint32_t shader_size) const
 
void SetTransformConstantBlock (std::map< uint32_t, TransformConstant > &constants_map, uint32_t slot, const uint32_t *values, uint32_t num_slots)
 
void SetBaseUniform4x4F (uint32_t slot, const XboxMath::matrix4_t &value)
 
void SetBaseUniform4F (uint32_t slot, const float *value)
 
void SetBaseUniform4I (uint32_t slot, const uint32_t *value)
 
void SetBaseUniformF (uint32_t slot, float x, float y=0.0f, float z=0.0f, float w=0.0f)
 
void SetBaseUniformI (uint32_t slot, uint32_t x, uint32_t y=0, uint32_t z=0, uint32_t w=0)
 
void UploadConstants ()
 

Protected Attributes

const uint32_t * shader_override_ {nullptr}
 
uint32_t shader_override_size_ {0}
 
std::map< uint32_t, TransformConstantbase_transform_constants_
 Map of index to constants that will be loaded starting at c[96].
 
std::map< uint32_t, TransformConstantuniforms_
 
bool uniform_upload_required_ {true}
 

Detailed Description

Provides methods to manage and upload a vertex shader.

Member Data Documentation

◆ shader_override_

const uint32_t* VertexShaderProgram::shader_override_ {nullptr}
protected

Compiled vertex shader code that should be used instead of using OnLoadShader. Note that this data is not owned by this VertexShaderProgram.

◆ uniforms_

std::map<uint32_t, TransformConstant> VertexShaderProgram::uniforms_
protected

Map of index to constants that will overwrite/extend the base values. This allows a VertexShaderProgram subclass to populate values that are overwritten by users of the class.


The documentation for this class was generated from the following files: