Urho3D::ShaderVariation Class Reference
Public Member Functions |
Static Public Attributes |
Private Member Functions |
Private Attributes |
List of all members
Urho3D::ShaderVariation Class Reference
Vertex or pixel shader on the GPU. More...
#include <Urho3D/Graphics/ShaderVariation.h>
Inheritance diagram for Urho3D::ShaderVariation:
Collaboration diagram for Urho3D::ShaderVariation:
Public Member Functions | |
| ShaderVariation (Shader *owner, ShaderType type) | |
| Construct. | |
| ~ShaderVariation () override | |
| Destruct. | |
| void | OnDeviceLost () override |
| Mark the GPU resource destroyed on graphics context destruction. | |
| void | Release () override |
| Release the shader. | |
| bool | Create () |
| Compile the shader. Return true if successful. | |
| void | SetName (const String &name) |
| Set name. | |
| void | SetDefines (const String &defines) |
| Set defines. | |
| Shader * | GetOwner () const |
| Return the owner resource. | |
| ShaderType | GetShaderType () const |
| Return shader type. | |
| const String & | GetName () const |
| Return shader name. | |
| String | GetFullName () const |
| Return full shader name. | |
| bool | HasParameter (StringHash param) const |
| Return whether uses a parameter. Not applicable on OpenGL, where this information is contained in ShaderProgram instead. | |
| bool | HasTextureUnit (TextureUnit unit) const |
| Return whether uses a texture unit (only for pixel shaders). Not applicable on OpenGL, where this information is contained in ShaderProgram instead. | |
| const HashMap< StringHash, ShaderParameter > & | GetParameters () const |
| Return all parameter definitions. Not applicable on OpenGL, where this information is contained in ShaderProgram instead. | |
| unsigned long long | GetElementHash () const |
| Return vertex element hash. | |
| const PODVector< unsigned char > & | GetByteCode () const |
| Return shader bytecode. Stored persistently on Direct3D11 only. | |
| const String & | GetDefines () const |
| Return defines. | |
| const String & | GetCompilerOutput () const |
| Return compile error/warning string. | |
| const unsigned * | GetConstantBufferSizes () const |
| Return constant buffer data sizes. | |
| const String & | GetDefinesClipPlane () |
| Return defines with the CLIPPLANE define appended. Used internally on Direct3D11 only, will be empty on other APIs. | |
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 () |
| 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 |
| 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 | 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 Attributes | |
| static const char * | elementSemanticNames [] |
| D3D11 vertex semantic names. Used internally. More... | |
Private Member Functions | |
| bool | LoadByteCode (const String &binaryShaderName) |
| Load bytecode from a file. Return true if successful. | |
| bool | Compile () |
| Compile from source. Return true if successful. | |
| void | ParseParameters (unsigned char *bufData, unsigned bufSize) |
| Inspect the constant parameters and input layout (if applicable) from the shader bytecode. | |
| void | SaveByteCode (const String &binaryShaderName) |
| Save bytecode to a file. | |
| void | CalculateConstantBufferSizes () |
| Calculate constant buffer sizes from parameters. | |
Private Attributes | |
| WeakPtr< Shader > | owner_ |
| Shader this variation belongs to. | |
| ShaderType | type_ |
| Shader type. | |
| unsigned long long | elementHash_ {} |
| Vertex element hash for vertex shaders. Zero for pixel shaders. Note that hashing is different than vertex buffers. | |
| HashMap< StringHash, ShaderParameter > | parameters_ |
| Shader parameters. | |
| bool | useTextureUnits_ [MAX_TEXTURE_UNITS] {} |
| Texture unit use flags. | |
| unsigned | constantBufferSizes_ [MAX_SHADER_PARAMETER_GROUPS] {} |
| Constant buffer sizes. 0 if a constant buffer slot is not in use. | |
| PODVector< unsigned char > | byteCode_ |
| Shader bytecode. Needed for inspecting the input signature and parameters. Not used on OpenGL. | |
| String | name_ |
| Shader name. | |
| String | defines_ |
| Defines to use in compiling. | |
| String | definesClipPlane_ |
| Defines to use in compiling + CLIPPLANE define appended. Used only on Direct3D11. | |
| String | compilerOutput_ |
| Shader compile error string. | |
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
Vertex or pixel shader on the GPU.
Member Data Documentation
◆ elementSemanticNames
|
static |
Initial value:
=
{
"POS",
"NORMAL",
"BINORMAL",
"TANGENT",
"TEXCOORD",
"COLOR",
"BLENDWEIGHT",
"BLENDINDICES",
"OBJECTINDEX"
}
D3D11 vertex semantic names. Used internally.
The documentation for this class was generated from the following files:
- Source/Urho3D/Graphics/ShaderVariation.h
- Source/Urho3D/Graphics/OpenGL/OGLShaderVariation.cpp
- Source/Urho3D/Graphics/ShaderVariation.cpp

Public Member Functions inherited from