18 #ifndef INCLUDED_RENDERER_BACKEND_GL_SHADERPROGRAM 19 #define INCLUDED_RENDERER_BACKEND_GL_SHADERPROGRAM 58 ENSURE(attribute.stride > 0);
95 static std::unique_ptr<CShaderProgram> Create(
109 virtual void Unbind() = 0;
117 virtual TextureUnit GetTextureUnit(
const int32_t bindingSlot) = 0;
119 virtual void SetUniform(
120 const int32_t bindingSlot,
121 const float value) = 0;
122 virtual void SetUniform(
123 const int32_t bindingSlot,
124 const float valueX,
const float valueY) = 0;
125 virtual void SetUniform(
126 const int32_t bindingSlot,
127 const float valueX,
const float valueY,
128 const float valueZ) = 0;
129 virtual void SetUniform(
130 const int32_t bindingSlot,
131 const float valueX,
const float valueY,
132 const float valueZ,
const float valueW) = 0;
133 virtual void SetUniform(
137 virtual void VertexAttribPointer(
148 void AssertPointersBound();
161 void BindClientStates();
162 void UnbindClientStates();
172 #endif // INCLUDED_RENDERER_BACKEND_GL_SHADERPROGRAM #define NONCOPYABLE(className)
Indicates that a class is noncopyable (usually due to const or reference members, or because the clas...
Definition: code_annotation.h:227
VertexAttributeRate
Definition: IShaderProgram.h:47
CStrIntern attrib_id_t
Definition: ShaderProgram.h:93
Definition: Vector3D.h:30
Definition: Matrix3D.h:33
Format
Definition: Format.h:27
GLint unit
Definition: ShaderProgram.h:115
VertexAttributeStream
Definition: IShaderProgram.h:32
#define ENSURE(expr)
ensure the expression <expr> evaluates to non-zero.
Definition: debug.h:290
Interned 8-bit strings.
Definition: CStrIntern.h:37
A compiled vertex+fragment shader program.
Definition: ShaderProgram.h:88
int m_ValidStreams
Definition: ShaderProgram.h:163
IShaderProgram is a container for multiple shaders of different types.
Definition: IShaderProgram.h:80
Backend
Definition: Backend.h:27
Represents a mapping of name strings to value strings, for use with #if and #ifdef and similar condit...
Definition: ShaderDefines.h:146
unsigned int uint32_t
Definition: wposix_types.h:53
Definition: VideoMode.h:28
GLenum target
Definition: ShaderProgram.h:114
int m_StreamFlags
Definition: ShaderProgram.h:158
GLenum type
Definition: ShaderProgram.h:113
Definition: ShaderProgram.h:111
Simplifed version of std::span (C++20) as we don't support the original one yet.
Definition: Span.h:36