![]() |
Murl Engine API
Version 2018.3
|
The IMaterial video object interface. More...
#include <murl_video_i_material.h>
The IMaterial video object interface.
This interface represents a material used during rendering.
Used internally by Graph::Material.
Inherited by Murl::Video::Material.
Public Member Functions | |
virtual IObject * | GetObjectInterface ()=0 |
Get the mutable Video::IObject interface. More... | |
virtual const IObject * | GetObjectInterface () const =0 |
Get the constant Video::IObject interface. More... | |
virtual Bool | Enable ()=0 |
Enable the material. More... | |
virtual Bool | Disable ()=0 |
Disable the material. More... | |
virtual Bool | Set (IProgram *currentProgram)=0 |
Attach the material to the current GPU program. More... | |
virtual Bool | SetVisibleFaces (IEnums::PolygonFaces faces)=0 |
Set which faces of a triangle are visible for rendering. More... | |
virtual IEnums::PolygonFaces | GetVisibleFaces () const =0 |
Check which faces of a triangle are visible for rendering. More... | |
virtual Bool | SetColorBufferMode (IEnums::ColorBufferMode mode)=0 |
Set the material's color buffer access mode. More... | |
virtual IEnums::ColorBufferMode | GetColorBufferMode () const =0 |
Get the material's color buffer access mode. More... | |
virtual Bool | SetColorBufferMask (IEnums::ColorBufferMask mask)=0 |
Set the material's color buffer mask. More... | |
virtual IEnums::ColorBufferMask | GetColorBufferMask () const =0 |
Get the material's color buffer mask. More... | |
virtual Bool | SetDepthBufferMode (IEnums::DepthBufferMode mode)=0 |
Set the material's depth buffer access mode. More... | |
virtual IEnums::DepthBufferMode | GetDepthBufferMode () const =0 |
Get the material's depth buffer access mode. More... | |
virtual Bool | SetDepthBufferMask (IEnums::DepthBufferMask mask)=0 |
Set the material's depth buffer mask. More... | |
virtual IEnums::DepthBufferMask | GetDepthBufferMask () const =0 |
Get the material's depth buffer mask. More... | |
virtual Bool | SetDepthTestFunction (IEnums::DepthTestFunction function)=0 |
Set the material's depth test function. More... | |
virtual IEnums::DepthTestFunction | GetDepthTestFunction () const =0 |
Get the material's depth test function. More... | |
virtual Bool | SetStencilBufferMode (IEnums::StencilBufferMode mode)=0 |
Set the material's stencil buffer access mode. More... | |
virtual IEnums::StencilBufferMode | GetStencilBufferMode () const =0 |
Get the material's stencil buffer access mode. More... | |
virtual Bool | SetStencilBufferMask (IEnums::StencilBufferMask mask)=0 |
Set the material's stencil buffer mask. More... | |
virtual IEnums::StencilBufferMask | GetStencilBufferMask () const =0 |
Get the material's stencil buffer mask. More... | |
virtual Bool | SetStencilTestFunction (IEnums::StencilTestFunction frontFunction, IEnums::StencilTestFunction backFunction)=0 |
Set the material's stencil test functions. More... | |
virtual IEnums::StencilTestFunction | GetFrontStencilTestFunction () const =0 |
Set the material's stencil test function for front-facing primitives. More... | |
virtual IEnums::StencilTestFunction | GetBackStencilTestFunction () const =0 |
Set the material's stencil test function for back-facing primitives. More... | |
virtual Bool | SetStencilTestReferenceValue (UInt32 frontValue, UInt32 backValue)=0 |
Set the material's stencil test reference values. More... | |
virtual UInt32 | GetFrontStencilTestReferenceValue () const =0 |
Get the material's stencil test reference value for testing front-facing primitives. More... | |
virtual UInt32 | GetBackStencilTestReferenceValue () const =0 |
Get the material's stencil test reference value for testing back-facing primitives. More... | |
virtual Bool | SetStencilTestMask (UInt32 frontMask, UInt32 backMask)=0 |
Set the material's stencil test masks. More... | |
virtual UInt32 | GetFrontStencilTestMask () const =0 |
Get the material's stencil test mask for front-facing primitives. More... | |
virtual UInt32 | GetBackStencilTestMask () const =0 |
Get the material's stencil test mask for back-facing primitives. More... | |
virtual Bool | SetStencilBufferActionForFailedStencilTest (IEnums::StencilBufferAction frontAction, IEnums::StencilBufferAction backAction)=0 |
Set the actions to be performed if the stencil test fails. More... | |
virtual IEnums::StencilBufferAction | GetFrontStencilBufferActionForFailedStencilTest () const =0 |
Get the front-facing primitive stencil buffer action for failed stencil tests. More... | |
virtual IEnums::StencilBufferAction | GetBackStencilBufferActionForFailedStencilTest () const =0 |
Get the back-facing primitive stencil buffer action for failed stencil tests. More... | |
virtual Bool | SetStencilBufferActionForFailedDepthTest (IEnums::StencilBufferAction frontAction, IEnums::StencilBufferAction backAction)=0 |
Set the actions to be performed if the stencil test passes, but the depth test fails. More... | |
virtual IEnums::StencilBufferAction | GetFrontStencilBufferActionForFailedDepthTest () const =0 |
Get the front-facing primitive stencil buffer action for failed depth tests. More... | |
virtual IEnums::StencilBufferAction | GetBackStencilBufferActionForFailedDepthTest () const =0 |
Get the back-facing primitive stencil buffer action for failed depth tests. More... | |
virtual Bool | SetStencilBufferActionForPassedDepthTest (IEnums::StencilBufferAction frontAction, IEnums::StencilBufferAction backAction)=0 |
Set the actions to be performed if both the stencil test and the depth test pass. More... | |
virtual IEnums::StencilBufferAction | GetFrontStencilBufferActionForPassedDepthTest () const =0 |
Get the front-facing primitive stencil buffer action for passed depth tests. More... | |
virtual IEnums::StencilBufferAction | GetBackStencilBufferActionForPassedDepthTest () const =0 |
Get the back-facing primitive stencil buffer action for passed depth tests. More... | |
virtual Bool | SetBlendMode (IEnums::BlendMode mode)=0 |
Set the material's blend mode. More... | |
virtual IEnums::BlendMode | GetBlendMode () const =0 |
Get the material's blend mode. More... | |
virtual Bool | SetBlendFunction (IEnums::BlendFunction srcColorFunction, IEnums::BlendFunction srcAlphaFunction, IEnums::BlendFunction dstColorFunction, IEnums::BlendFunction dstAlphaFunction)=0 |
Set the material's blending functions. More... | |
virtual IEnums::BlendFunction | GetSrcColorBlendFunction () const =0 |
Get the material's blending function used for the source pixels' RGB values. More... | |
virtual IEnums::BlendFunction | GetSrcAlphaBlendFunction () const =0 |
Get the material's blending function used for the source pixels' alpha value. More... | |
virtual IEnums::BlendFunction | GetDstColorBlendFunction () const =0 |
Get the material's blending function used for the destination pixels' RGB values. More... | |
virtual IEnums::BlendFunction | GetDstAlphaBlendFunction () const =0 |
Get the material's blending function used for the destination pixels' alpha value. More... | |
virtual Bool | SetBlendEquation (IEnums::BlendEquation colorEquation, IEnums::BlendEquation alphaEquation)=0 |
Set the material's blending equations. More... | |
virtual IEnums::BlendEquation | GetColorBlendEquation () const =0 |
Get the material's blending equation for RGB values. More... | |
virtual IEnums::BlendEquation | GetAlphaBlendEquation () const =0 |
Get the material's blending equation for alpha values. More... | |
virtual Bool | SetColorBufferClearingEnabled (Bool enabled)=0 |
Enable/disable clearing of the render target's color buffer. More... | |
virtual Bool | IsColorBufferClearingEnabled () const =0 |
Check if clearing of the render target's color buffer is enabled. More... | |
virtual Bool | SetDepthBufferClearingEnabled (Bool enabled)=0 |
Enable/disable clearing of the render target's depth buffer. More... | |
virtual Bool | IsDepthBufferClearingEnabled () const =0 |
Check if clearing of the render target's depth buffer is enabled. More... | |
virtual Bool | SetStencilBufferClearingEnabled (Bool enabled)=0 |
Enable/disable clearing of the render target's stencil buffer. More... | |
virtual Bool | IsStencilBufferClearingEnabled () const =0 |
Check if clearing of the render target's stencil buffer is enabled. More... | |
virtual Bool | SetColorBufferClearValue (const Color &value)=0 |
Set the clear color in effect when color buffer clearing is enabled. More... | |
virtual const Color & | GetColorBufferClearValue () const =0 |
Get the clear color in effect when color buffer clearing is enabled. More... | |
virtual Bool | SetDepthBufferClearValue (Real value)=0 |
Set the clear value in effect when depth buffer clearing is enabled. More... | |
virtual Real | GetDepthBufferClearValue () const =0 |
Get the clear value in effect when depth buffer clearing is enabled. More... | |
virtual Bool | SetStencilBufferClearValue (UInt8 value)=0 |
Set the clear value in effect when stencil buffer clearing is enabled. More... | |
virtual UInt8 | GetStencilBufferClearValue () const =0 |
Get the clear value in effect when stencil buffer clearing is enabled. More... | |
virtual Bool | SetObjectSortMode (IEnums::ObjectSortMode mode)=0 |
Set the material's object sorting mode. More... | |
virtual IEnums::ObjectSortMode | GetObjectSortMode () const =0 |
Get the material's object sorting mode. More... | |
virtual Bool | SetSortOrder (SInt32 order)=0 |
Set the material's sorting order relative to other materials. More... | |
virtual SInt32 | GetSortOrder () const =0 |
Get the material's sorting order relative to other materials. More... | |
virtual Bool | SetVariableDepthOffset (Real offset)=0 |
Set the variable offset for depth buffer value calculation. More... | |
virtual Real | GetVariableDepthOffset () const =0 |
Get the variable offset for depth buffer value calculation. More... | |
virtual Bool | SetConstantDepthOffset (Real offset)=0 |
Set the constant offset for depth buffer value calculation. More... | |
virtual Real | GetConstantDepthOffset () const =0 |
Get the constant offset for depth buffer value calculation. More... | |
virtual Bool | SetLightStageUnit (SInt32 unit)=0 |
Set the light stage unit used for multi-pass lighting. More... | |
virtual SInt32 | GetLightStageUnit () const =0 |
Get the light stage unit used for multi-pass lighting. More... | |
virtual Bool | SetLightMaskEnabled (Bool enabled)=0 |
Set if the light should be masked for multi-pass lighting. More... | |
virtual Bool | IsLightMaskEnabled () const =0 |
Check if the light is masked for multi-pass lighting. More... | |
virtual Bool | SetProgram (IProgram *program)=0 |
Set the GPU program used for this material. More... | |
virtual IProgram * | GetProgram () const =0 |
Get the GPU program used for this material. More... | |
|
pure virtual |
Get the mutable Video::IObject interface.
|
pure virtual |
Get the constant Video::IObject interface.
|
pure virtual |
Enable the material.
|
pure virtual |
Disable the material.
Attach the material to the current GPU program.
currentProgram | The current GPU program. |
|
pure virtual |
Set which faces of a triangle are visible for rendering.
faces | One of the available IEnums::PolygonFaces enumeration values. |
|
pure virtual |
Check which faces of a triangle are visible for rendering.
|
pure virtual |
Set the material's color buffer access mode.
The color buffer access mode can be set to either IEnums::COLOR_BUFFER_MODE_WRITE_ONLY to enable writing to the color buffer, or IEnums::COLOR_BUFFER_MODE_NONE to disable color output. Use SetColorBufferMask() to enable/disable specific color channels when writing is enabled.
mode | The color buffer access mode. |
|
pure virtual |
Get the material's color buffer access mode.
|
pure virtual |
Set the material's color buffer mask.
If color buffer writes are enabled, and a specific bit is set in the given mask, the respective color channel is enabled for writing, otherwise that channel is not written to the output pixels. To generally enable/disable color buffer writes, use SetColorBufferMode().
mask | The color buffer write mask. |
|
pure virtual |
Get the material's color buffer mask.
|
pure virtual |
Set the material's depth buffer access mode.
The depth buffer access mode can be set to enable/disable both depth buffer reads and writes, through one of the available IEnums::DepthBufferMode values.
mode | The depth buffer access mode. |
|
pure virtual |
Get the material's depth buffer access mode.
|
pure virtual |
Set the material's depth buffer mask.
This method can be used to independently enable/disable depth buffer writes in addition to the general depth buffer access mode set via SetDepthBufferMode().
mask | The depth buffer write mask. |
|
pure virtual |
Get the material's depth buffer mask.
|
pure virtual |
Set the material's depth test function.
If the material's depth buffer access mode is set to either IEnums::DEPTH_BUFFER_MODE_READ_ONLY or IEnums::DEPTH_BUFFER_MODE_READ_AND_WRITE, the given function is used for all depth buffer comparisons using this material. The output pixel is only written if the result of its depth comparison is true using the given function.
function | The depth test function. |
|
pure virtual |
Get the material's depth test function.
|
pure virtual |
Set the material's stencil buffer access mode.
The stencil buffer access mode can be set to enable/disable both stencil buffer reads and writes, through one of the available IEnums::StencilBufferMode values.
mode | The stencil buffer access mode. |
|
pure virtual |
Get the material's stencil buffer access mode.
|
pure virtual |
Set the material's stencil buffer mask.
If stencil buffer writes are enabled, and a specific bit is set in the given mask, the respective stencil bit is enabled for writing, otherwise that bit is not written to the output pixels. To generally enable/disable stencil buffer writes, use SetStencilBufferMode().
mask | The stencil buffer write mask. |
|
pure virtual |
Get the material's stencil buffer mask.
|
pure virtual |
Set the material's stencil test functions.
If the material's stencil buffer access mode is set to either IEnums::STENCIL_BUFFER_MODE_READ_ONLY or IEnums::STENCIL_BUFFER_MODE_READ_AND_WRITE, the given functions are used for all stencil buffer comparisons using this material. The output pixel is only written if the result of its stencil comparison is true using the given function.
frontFunction | The stencil test function used for front-facing primitives. |
backFunction | The stencil test function used for back-facing primitives. |
|
pure virtual |
Set the material's stencil test function for front-facing primitives.
|
pure virtual |
Set the material's stencil test function for back-facing primitives.
|
pure virtual |
Set the material's stencil test reference values.
If stencil test is enabled (see SetStencilBufferMode()), the values given represent the actual reference values used for the per-pixel stencil test with the respective functions specified via SetStencilTestFunction(). In addition, before each comparison, both test value and reference value are ANDed with the test mask given via SetStencilTestMask().
frontValue | The reference value used for comparing pixels of front-facing primitives. |
backValue | The reference value used for comparing pixels of back-facing primitives. |
|
pure virtual |
Get the material's stencil test reference value for testing front-facing primitives.
|
pure virtual |
Get the material's stencil test reference value for testing back-facing primitives.
|
pure virtual |
Set the material's stencil test masks.
See SetStencilTestReferenceValue().
frontMask | The comparison mask for front-facing primitives. |
backMask | The comparison mask for back-facing primitives. |
|
pure virtual |
Get the material's stencil test mask for front-facing primitives.
|
pure virtual |
Get the material's stencil test mask for back-facing primitives.
|
pure virtual |
Set the actions to be performed if the stencil test fails.
If stencil test is enabled (see SetStencilBufferMode()), the given actions specify how the stencil buffer is modified whenever the stencil test fails for a pixel.
frontAction | The action to perform for front-facing primitives. |
backAction | The action to perform for back-facing primitives. |
|
pure virtual |
Get the front-facing primitive stencil buffer action for failed stencil tests.
|
pure virtual |
Get the back-facing primitive stencil buffer action for failed stencil tests.
|
pure virtual |
Set the actions to be performed if the stencil test passes, but the depth test fails.
If stencil test is enabled (see SetStencilBufferMode()), the given actions specify how the stencil buffer is modified whenever the depth test fails for a pixel (after successfully passing the stencil test).
frontAction | The action to perform for front-facing primitives. |
backAction | The action to perform for back-facing primitives. |
|
pure virtual |
Get the front-facing primitive stencil buffer action for failed depth tests.
|
pure virtual |
Get the back-facing primitive stencil buffer action for failed depth tests.
|
pure virtual |
Set the actions to be performed if both the stencil test and the depth test pass.
If stencil test is enabled (see SetStencilBufferMode()), the given actions specify how the stencil buffer is modified whenever both stencil and depth test succeed for a pixel.
frontAction | The action to perform for front-facing primitives. |
backAction | The action to perform for back-facing primitives. |
|
pure virtual |
Get the front-facing primitive stencil buffer action for passed depth tests.
|
pure virtual |
Get the back-facing primitive stencil buffer action for passed depth tests.
|
pure virtual |
Set the material's blend mode.
mode | The blend mode. |
|
pure virtual |
Get the material's blend mode.
|
pure virtual |
Set the material's blending functions.
If alpha blending is enabled (SetBlendMode() with a parameter of IEnums::BLEND_MODE_ALPHA), this method sets the combiner factors used for calculating the actual output pixel RGBA values depending on the source and destination pixel's color and alpha values. The values resulting from evaluating these functions are then combined using the blending equations set via SetBlendEquation().
srcColorFunction | The combiner function for the source pixel's RGB values. |
srcAlphaFunction | The combiner function for the source pixel's alpha value. |
dstColorFunction | The combiner function for the destination pixel's RGB values. |
dstAlphaFunction | The combiner function for the destination pixel's alpha value. |
|
pure virtual |
Get the material's blending function used for the source pixels' RGB values.
|
pure virtual |
Get the material's blending function used for the source pixels' alpha value.
|
pure virtual |
Get the material's blending function used for the destination pixels' RGB values.
|
pure virtual |
Get the material's blending function used for the destination pixels' alpha value.
|
pure virtual |
Set the material's blending equations.
If alpha blending is enabled (SetBlendMode() with a parameter of IEnums::BLEND_MODE_ALPHA), this method sets the actual equations used to combine the outcome of transforming the source and destination pixels according to the functions specified via SetBlendFunction().
colorEquation | The blending equation used to combine source and destination RGB values. |
alphaEquation | The blending equation used to combine source and destination alpha values. |
|
pure virtual |
Get the material's blending equation for RGB values.
|
pure virtual |
Get the material's blending equation for alpha values.
Enable/disable clearing of the render target's color buffer.
If color buffer clearing is enabled for a material, the output color buffer gets cleared every time the material is activated (off by default). See SetColorBufferClearValue() for setting the color used for clearing. See also SetDepthBufferClearingEnabled() and SetStencilBufferClearingEnabled().
enabled | Set to true to enable color buffer clearing. |
|
pure virtual |
Check if clearing of the render target's color buffer is enabled.
Enable/disable clearing of the render target's depth buffer.
If depth buffer clearing is enabled for a material, the output depth buffer gets cleared every time the material is activated (off by default). See SetDepthBufferClearValue() for setting the depth value used for clearing. See also SetStencilBufferClearingEnabled().
enabled | Set to true to enable depth buffer clearing. |
|
pure virtual |
Check if clearing of the render target's depth buffer is enabled.
Enable/disable clearing of the render target's stencil buffer.
If stencil buffer clearing is enabled for a material, the output stencil buffer gets cleared every time the material is activated (off by default). See SetStencilBufferClearValue() for setting the stencil value used for clearing. See SetDepthBufferClearingEnabled() and SetColorBufferClearingEnabled().
enabled | Set to true to enable stencil buffer clearing. |
|
pure virtual |
Check if clearing of the render target's stencil buffer is enabled.
Set the clear color in effect when color buffer clearing is enabled.
value | The clear color. |
|
pure virtual |
Get the clear color in effect when color buffer clearing is enabled.
Set the clear value in effect when depth buffer clearing is enabled.
value | The clear value. |
|
pure virtual |
Get the clear value in effect when depth buffer clearing is enabled.
Set the clear value in effect when stencil buffer clearing is enabled.
value | The clear value. |
|
pure virtual |
Get the clear value in effect when stencil buffer clearing is enabled.
|
pure virtual |
Set the material's object sorting mode.
mode | The object sorting mode. |
|
pure virtual |
Get the material's object sorting mode.
Set the material's sorting order relative to other materials.
order | The sorting order. |
|
pure virtual |
Get the material's sorting order relative to other materials.
Set the variable offset for depth buffer value calculation.
This value specifies a variable offset for the generated depth values, before they are written to the depth buffer. See the description of the "factor" parameter at http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPolygonOffset.xml for OpenGL|ES, or the "D3DRS_SLOPESCALEDEPTHBIAS" parameter at http://msdn.microsoft.com/en-us/library/windows/desktop/bb205599(v=vs.85).aspx for DirectX 9. The default offset value is 0.
offset | The variable depth offset. |
|
pure virtual |
Get the variable offset for depth buffer value calculation.
Set the constant offset for depth buffer value calculation.
This value specifies a constant offset for the generated depth values, before they are written to the depth buffer. See the description of the "units" parameter at http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPolygonOffset.xml for OpenGL|ES, or the "D3DRS_DEPTHBIAS" parameter at http://msdn.microsoft.com/en-us/library/windows/desktop/bb205599(v=vs.85).aspx for DirectX 9. The default offset value is 0.
offset | The constant depth offset. |
|
pure virtual |
Get the constant offset for depth buffer value calculation.
Set the light stage unit used for multi-pass lighting.
unit | The light stage unit, or -1 to disable multi-pass lighting. |
|
pure virtual |
Get the light stage unit used for multi-pass lighting.
Set if the light should be masked for multi-pass lighting.
When multi-pass lighting is performed, this property defines whether rendering should only happen within the light's bounding volume projected on screen. This value only has effect when the light pass unit is set to a defined value (other than -1), otherwise the light is never masked. Setting this value to true can considerably speed up multi-light rendering, as only necessary screen areas are updated.
enabled | Set to true if the light should be masked. |
|
pure virtual |
Check if the light is masked for multi-pass lighting.
Set the GPU program used for this material.
program | The GPU program to use. |
|
pure virtual |
Get the GPU program used for this material.