Urho3D::ShaderProgram Class Reference
Public Member Functions |
Static Public Member Functions |
Private Attributes |
Static Private Attributes |
List of all members
Urho3D::ShaderProgram Class Reference
Linked shader program on the GPU. More...
#include <Urho3D/Graphics/OpenGL/OGLShaderProgram.h>
Inheritance diagram for Urho3D::ShaderProgram:
Collaboration diagram for Urho3D::ShaderProgram:
Public Member Functions | |
| ShaderProgram (Graphics *graphics, ShaderVariation *vertexShader, ShaderVariation *pixelShader) | |
| Construct. | |
| ~ShaderProgram () | |
| Destruct. | |
| virtual void | OnDeviceLost () |
| Mark the GPU resource destroyed on context destruction. | |
| virtual void | Release () |
| Release shader program. | |
| bool | Link () |
| Link the shaders and examine the uniforms and samplers used. Return true if successful. | |
| ShaderVariation * | GetVertexShader () const |
| Return the vertex shader. | |
| ShaderVariation * | GetPixelShader () const |
| Return the pixel shader. | |
| bool | HasParameter (StringHash param) const |
| Return whether uses a shader parameter. | |
| bool | HasTextureUnit (TextureUnit unit) const |
| Return whether uses a texture unit. | |
| const ShaderParameter * | GetParameter (StringHash param) const |
| Return the info for a shader parameter, or null if does not exist. | |
| const String & | GetLinkerOutput () const |
| Return linker output. | |
|
const HashMap< Pair< unsigned char, unsigned char > , unsigned > & | GetVertexAttributes () const |
| Return semantic to vertex attributes location mappings used by the shader. | |
| unsigned | GetUsedVertexAttributes () const |
| Return attribute location use bitmask. | |
| const SharedPtr< ConstantBuffer > * | GetConstantBuffers () const |
| Return all constant buffers. | |
| bool | NeedParameterUpdate (ShaderParameterGroup group, const void *source) |
| Check whether a shader parameter group needs update. Does not actually check whether parameters exist in the shaders. | |
| void | ClearParameterSource (ShaderParameterGroup group) |
| Clear a parameter source. Affects only the current shader program if appropriate. | |
Public Member Functions inherited from Urho3D::RefCounted | |
| RefCounted () | |
| Construct. Allocate the reference count structure and set an initial self weak reference. | |
| virtual | ~RefCounted () |
| Destruct. Mark as expired and also delete the reference count structure if no outside weak references exist. | |
| void | AddRef () |
| Increment reference count. Can also be called outside of a SharedPtr for traditional reference counting. | |
| void | ReleaseRef () |
| Decrement reference count and delete self if no more references. Can also be called outside of a SharedPtr for traditional reference counting. | |
| int | Refs () const |
| Return reference count. | |
| int | WeakRefs () const |
| Return weak reference count. | |
| RefCount * | RefCountPtr () |
| Return pointer to the reference count structure. | |
Public Member Functions inherited from Urho3D::GPUObject | |
| GPUObject (Graphics *graphics) | |
| Construct with graphics subsystem pointer. | |
| virtual | ~GPUObject () |
| Destruct. Remove from the Graphics. | |
| virtual void | OnDeviceReset () |
| Recreate the GPU resource and restore data if applicable. | |
| void | ClearDataLost () |
| Clear the data lost flag. | |
| Graphics * | GetGraphics () const |
| Return the graphics subsystem associated with this GPU object. | |
| void * | GetGPUObject () const |
| Return the object pointer. Applicable only on Direct3D. | |
| unsigned | GetGPUObjectName () const |
| Return the object name. Applicable only on OpenGL. | |
| bool | IsDataLost () const |
| Return whether data is lost due to context loss. | |
| bool | HasPendingData () const |
| Return whether has pending data assigned while graphics context was lost. | |
Static Public Member Functions | |
| static void | ClearParameterSources () |
| Clear all parameter sources from all shader programs by incrementing the global parameter source framenumber. | |
| static void | ClearGlobalParameterSource (ShaderParameterGroup group) |
| Clear a global parameter source when constant buffers change. | |
Private Attributes | |
| WeakPtr< ShaderVariation > | vertexShader_ |
| Vertex shader. | |
| WeakPtr< ShaderVariation > | pixelShader_ |
| Pixel shader. | |
|
HashMap< StringHash, ShaderParameter > | shaderParameters_ |
| Shader parameters. | |
| bool | useTextureUnit_ [MAX_TEXTURE_UNITS] |
| Texture unit use. | |
|
HashMap< Pair< unsigned char, unsigned char >, unsigned > | vertexAttributes_ |
| Vertex attributes. | |
| unsigned | usedVertexAttributes_ |
| Used vertex attribute location bitmask. | |
| SharedPtr< ConstantBuffer > | constantBuffers_ [MAX_SHADER_PARAMETER_GROUPS *2] |
| Constant buffers by binding index. | |
| const void * | parameterSources_ [MAX_SHADER_PARAMETER_GROUPS] |
| Remembered shader parameter sources for individual uniform mode. | |
| String | linkerOutput_ |
| Shader link error string. | |
| unsigned | frameNumber_ |
| Shader parameter source framenumber. | |
Static Private Attributes | |
| static unsigned | globalFrameNumber = 0 |
| Global shader parameter source framenumber. | |
| static const void * | globalParameterSources [MAX_SHADER_PARAMETER_GROUPS] |
| Remembered global shader parameter sources for constant buffer mode. | |
Additional Inherited Members | |
Protected Attributes inherited from Urho3D::GPUObject | |
| WeakPtr< Graphics > | graphics_ |
| Graphics subsystem. | |
| GPUObjectHandle | object_ |
| Object pointer or name. | |
| bool | dataLost_ |
| Data lost flag. | |
| bool | dataPending_ |
| Data pending flag. | |
Detailed Description
Linked shader program on the GPU.
The documentation for this class was generated from the following files:
- Source/Urho3D/Graphics/OpenGL/OGLShaderProgram.h
- Source/Urho3D/Graphics/OpenGL/OGLShaderProgram.cpp

Public Member Functions inherited from