Dry
|
Material rendering pass, which defines shaders and render state. More...
#include <Dry/Graphics/Technique.h>
Public Member Functions | |
Pass (const String &name) | |
Construct. | |
~Pass () override | |
Destruct. | |
void | SetBlendMode (BlendMode mode) |
Set blend mode. | |
void | SetCullMode (CullMode mode) |
Set culling mode override. By default culling mode is read from the material instead. Set the illegal culling mode MAX_CULLMODES to disable override again. | |
void | SetDepthTestMode (CompareMode mode) |
Set depth compare mode. | |
void | SetLightingMode (PassLightingMode mode) |
Set pass lighting mode, affects what shader variations will be attempted to be loaded. | |
void | SetDepthWrite (bool enable) |
Set depth write on/off. | |
void | SetAlphaToCoverage (bool enable) |
Set alpha-to-coverage on/off. | |
void | SetIsDesktop (bool enable) |
Set whether requires desktop level hardware. | |
void | SetVertexShader (const String &name) |
Set vertex shader name. | |
void | SetPixelShader (const String &name) |
Set pixel shader name. | |
void | SetVertexShaderDefines (const String &defines) |
Set vertex shader defines. Separate multiple defines with spaces. | |
void | SetPixelShaderDefines (const String &defines) |
Set pixel shader defines. Separate multiple defines with spaces. | |
void | SetVertexShaderDefineExcludes (const String &excludes) |
Set vertex shader define excludes. Use to mark defines that the shader code will not recognize, to prevent compiling redundant shader variations. | |
void | SetPixelShaderDefineExcludes (const String &excludes) |
Set pixel shader define excludes. Use to mark defines that the shader code will not recognize, to prevent compiling redundant shader variations. | |
void | ReleaseShaders () |
Reset shader pointers. | |
void | MarkShadersLoaded (unsigned frameNumber) |
Mark shaders loaded this frame. | |
unsigned | GetIndex () const |
Return pass index. This is used for optimal render-time pass queries that avoid map lookups. | |
const String & | GetName () const |
Return pass name. | |
BlendMode | GetBlendMode () const |
Return blend mode. | |
CullMode | GetCullMode () const |
Return culling mode override. If pass is not overriding culling mode (default), the illegal mode MAX_CULLMODES is returned. | |
CompareMode | GetDepthTestMode () const |
Return depth compare mode. | |
PassLightingMode | GetLightingMode () const |
Return pass lighting mode. | |
unsigned | GetShadersLoadedFrameNumber () const |
Return last shaders loaded frame number. | |
bool | GetDepthWrite () const |
Return depth write mode. | |
bool | GetAlphaToCoverage () const |
Return alpha-to-coverage mode. | |
bool | IsDesktop () const |
Return whether requires desktop level hardware. | |
const String & | GetVertexShader () const |
Return vertex shader name. | |
const String & | GetPixelShader () const |
Return pixel shader name. | |
const String & | GetVertexShaderDefines () const |
Return vertex shader defines. | |
const String & | GetPixelShaderDefines () const |
Return pixel shader defines. | |
const String & | GetVertexShaderDefineExcludes () const |
Return vertex shader define excludes. | |
const String & | GetPixelShaderDefineExcludes () const |
Return pixel shader define excludes. | |
Vector< SharedPtr< ShaderVariation > > & | GetVertexShaders () |
Return vertex shaders. | |
Vector< SharedPtr< ShaderVariation > > & | GetPixelShaders () |
Return pixel shaders. | |
Vector< SharedPtr< ShaderVariation > > & | GetVertexShaders (const StringHash &extraDefinesHash) |
Return vertex shaders with extra defines from the renderpath. | |
Vector< SharedPtr< ShaderVariation > > & | GetPixelShaders (const StringHash &extraDefinesHash) |
Return pixel shaders with extra defines from the renderpath. | |
String | GetEffectiveVertexShaderDefines () const |
Return the effective vertex shader defines, accounting for excludes. Called internally by Renderer. | |
String | GetEffectivePixelShaderDefines () const |
Return the effective pixel shader defines, accounting for excludes. Called internally by Renderer. | |
![]() | |
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 |
Return reference count. | |
int | WeakRefs () const |
Return weak reference count. | |
RefCount * | RefCountPtr () |
Return pointer to the reference count structure. | |
Private Attributes | |
unsigned | index_ |
Pass index. | |
BlendMode | blendMode_ |
Blend mode. | |
CullMode | cullMode_ |
Culling mode. | |
CompareMode | depthTestMode_ |
Depth compare mode. | |
PassLightingMode | lightingMode_ |
Lighting mode. | |
unsigned | shadersLoadedFrameNumber_ |
Last shaders loaded frame number. | |
bool | depthWrite_ |
Depth write mode. | |
bool | alphaToCoverage_ |
Alpha-to-coverage mode. | |
bool | isDesktop_ |
Require desktop level hardware flag. | |
String | vertexShaderName_ |
Vertex shader name. | |
String | pixelShaderName_ |
Pixel shader name. | |
String | vertexShaderDefines_ |
Vertex shader defines. | |
String | pixelShaderDefines_ |
Pixel shader defines. | |
String | vertexShaderDefineExcludes_ |
Vertex shader define excludes. | |
String | pixelShaderDefineExcludes_ |
Pixel shader define excludes. | |
Vector< SharedPtr< ShaderVariation > > | vertexShaders_ |
Vertex shaders. | |
Vector< SharedPtr< ShaderVariation > > | pixelShaders_ |
Pixel shaders. | |
HashMap< StringHash, Vector< SharedPtr< ShaderVariation > > > | extraVertexShaders_ |
Vertex shaders with extra defines from the renderpath. | |
HashMap< StringHash, Vector< SharedPtr< ShaderVariation > > > | extraPixelShaders_ |
Pixel shaders with extra defines from the renderpath. | |
String | name_ |
Pass name. | |
Material rendering pass, which defines shaders and render state.