class TVariation

template<bool IsRenderProxy>
Inherits: VariationBase

Templated class that is used for implementing both main and render thread versions of Variation.

Public

Constructors

TVariation<IsRenderProxy>

TVariation<IsRenderProxy>()

TVariation<IsRenderProxy>

TVariation<IsRenderProxy>(const WeakSPtr<ShaderType> &owner, const String &language, const ShaderVariationParameters &variationParameters, const TOptional<TPrecompiledVariationData<IsRenderProxy>> &precompiledData)

Methods

~TVariation<IsRenderProxy>

virtual ~TVariation<IsRenderProxy>() = default

GetPass

SPtr<PassType> GetPass(u32 passIndex) const

Returns a pass with the specified index.

GetPassCount

u32 GetPassCount() const

Returns total number of passes.

Compile

TAsyncOp<bool> Compile()

Compiles the variation in case it was not initialized with precompiled data.

IsCompiled

bool IsCompiled() const

Returns true if the variation has been fully compiled.

Internal

Methods

SetCompiledPassData

void SetCompiledPassData(TInlineArray<SPtr<PassType>, 1> compiledPasses)

Assigns a set of compiled passes to the variation.

This should be called only when a variation has not been initialized with precompiled pass data, and compilation for the variation finished.

SetOwner

void SetOwner(const WeakSPtr<ShaderType> &owner)

Sets the shader that owns this variation.

Protected

Methods

GetSelf

virtual SPtr<VariationType> GetSelf() = 0

Returns a reference to itself using the most derived type.

Fields

mOwner

WeakSPtr<ShaderType> mOwner

mPasses

TInlineArray<SPtr<PassType>, 1> mPasses

mHasPassData

bool mHasPassData

mIsCompiled

bool mIsCompiled