U3D
Open-source, cross-platform 2D and 3D game engine built in C++
|
Linked shader program on the GPU. More...
#include </var/dev/u3d/stable/Source/Urho3D/Graphics/OpenGL/OGLShaderProgram.h>
Public Member Functions | |
ShaderProgram (Graphics *graphics, ShaderVariation *vertexShader, ShaderVariation *pixelShader) | |
Construct. | |
~ShaderProgram () override | |
Destruct. | |
void | OnDeviceLost () override |
Mark the GPU resource destroyed on context destruction. More... | |
void | Release () override |
Release shader program. More... | |
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. | |
RefCounted (const RefCounted &rhs)=delete | |
Prevent copy construction. | |
RefCounted & | operator= (const RefCounted &rhs)=delete |
Prevent assignment. | |
void | AddRef () |
void | ReleaseRef () |
int | Refs () const |
int | WeakRefs () const |
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 | OnDeviceLost () |
Mark the GPU resource destroyed on graphics context destruction. More... | |
virtual void | OnDeviceReset () |
Recreate the GPU resource and restore data if applicable. More... | |
virtual void | Release () |
Unconditionally release the GPU resource. More... | |
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 |
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 | useTextureUnits_ [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. | |
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. | |
Linked shader program on the GPU.
|
overridevirtual |
Mark the GPU resource destroyed on context destruction.
Reimplemented from Urho3D::GPUObject.
|
overridevirtual |
Release shader program.
Reimplemented from Urho3D::GPUObject.