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