class render::SelectionMaterial

Wrapper class around Material that allows a simple way to load and set up materials used by the renderer.

Public

Constructors

SelectionMaterial

SelectionMaterial() = default

Methods

staticInitMetaDataInternal

static void InitMetaDataInternal()

staticPopulateParameters

static void PopulateParameters(const SPtr<GpuParameterSet> &gpuParameters, const GpuBufferSuballocation &uniforms, const SPtr<GpuBuffer> &boneMatrices)

Populates GPU parameters for the selection material.

gpuParameters
GPU parameters to populate.
uniforms
Uniform buffer containing world-view-projection matrix and selection color.
boneMatrices
Bone matrices buffer (can be null if not using skinned animation).

staticGetVariation

static SelectionMaterial *GetVariation(bool supportsSkinAnimation, bool supportsMorphAnimation)

Returns the material variation matching the provided parameters.

supportsSkinAnimation
True if the material must support bone animation.
supportsMorphAnimation
True if the material must support morph shape animation.

~RendererMaterial<T>

virtual ~RendererMaterial<T>() = default

staticGet

static T *Get()

Retrieves an instance of this renderer material.

If material has multiple variations the first available variation will be returned.

staticGetShaderPath

static Path GetShaderPath()

Returns the path to the built-in (non-overriden) shader used by this material.

staticGetShaderDefines

static ShaderDefines GetShaderDefines()

Returns a set of dynamically defined defines used when compiling this shader.

CreateGpuParameterSet

SPtr<GpuParameterSet> CreateGpuParameterSet(u32 set = 0) const override

Creates a new instance of GPU parameters for this material.

Protected

Methods

InitializeInternal

void InitializeInternal(u32 variationIndex)

Initializes the renderer material.

To be called right after construction.

staticIsShaderInitialized

static bool IsShaderInitialized()

Checks if the Shader object has been created.

Not variations of the material can be compiled until the shader is created first.

staticIsRendereMaterialVariationCompiled

static bool IsRendereMaterialVariationCompiled(u32 variationIndex)

Checks if a particular variation has been compiled and initialized.

staticInitializeShader

static TAsyncOp<SPtr<Shader>> InitializeShader()

Initializes the Shader object.

This needs to be done before attempting to compile any instances for the material.

staticCompileRendererMaterialVariation

static TAsyncOp<RendererMaterialBase *> CompileRendererMaterialVariation(const ShaderVariationParameters &variationParameters)

Compiles and initializes a particular variation of the renderer material.

staticCompileShaderVariation

static void CompileShaderVariation(u32 variationIndex)

Compiles a particular shader variation.