class render::CompositeMaterial

Blends the contents of the provided texture with the bound render target.

Public

Constructors

CompositeMaterial

CompositeMaterial() = default

Methods

staticInitMetaDataInternal

static void InitMetaDataInternal()

Initialize

void Initialize() override

Initializes the material.

Use this instead of the constructor to perform any one-time setup before using the material.

Execute

void Execute(GpuCommandBuffer &commandBuffer, const SPtr<Texture> &source, const SPtr<RenderTarget> &target, const Color &tint = Color::kWhite)

Executes the post-process effect with the provided parameters and writes the results to the provided render target.

commandBuffer
Command buffer to execute on.
source
Texture to blend with the target.
target
Render target to blend with and write the results to.
tint
Optional value to multiply all the values from before blending.

~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.

Private

Fields

mUniformBufferParameter

GpuParameterUniformBuffer mUniformBufferParameter

mSourceTextureParameter

GpuParameterSampledTexture mSourceTextureParameter