| Urho3D
    | 
Linked shader program on the GPU. More...
#include </home/runner/work/Dviglo/Dviglo/DvigloRepository/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. | |
| void | Release () override | 
| 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 Dviglo::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 Dviglo::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 | 
| 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. | |
| 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 Dviglo::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.
 1.8.17
 1.8.17