Material rendering pass, which defines shaders and render state. More...

#include <Urho3D/Graphics/Technique.h>

Inheritance diagram for Urho3D::Pass:
[legend]
Collaboration diagram for Urho3D::Pass:
[legend]

Public Member Functions

 Pass (const String &passName)
 Construct.
 
 ~Pass ()
 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.
 
const StringGetName () const
 Return pass name.
 
unsigned GetIndex () const
 Return pass index. This is used for optimal render-time pass queries that avoid map lookups.
 
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 StringGetVertexShader () const
 Return vertex shader name.
 
const StringGetPixelShader () const
 Return pixel shader name.
 
const StringGetVertexShaderDefines () const
 Return vertex shader defines.
 
const StringGetPixelShaderDefines () const
 Return pixel shader defines.
 
const StringGetVertexShaderDefineExcludes () const
 Return vertex shader define excludes.
 
const StringGetPixelShaderDefineExcludes () 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.
 
- 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.
 
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.
 
RefCountRefCountPtr ()
 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.
 

Detailed Description

Material rendering pass, which defines shaders and render state.


The documentation for this class was generated from the following files:
  • Source/Urho3D/Graphics/Technique.h
  • Source/Urho3D/Graphics/Technique.cpp