目录

MaterialInstance

Class Info

class MaterialInstance

材质实例类,负责实现材质属性信息的定义,完成材质文件脚本化,实现加载与解析。创建材质实例,根据Pipeline state实现Pipeline共用,减少重复Pipeline创建时间。

Public Constructor Summary

Constructor Name

MaterialInstance()

构造函数。

Public Destructor Summary

Destructor Name

virtual ~MaterialInstance()

析构函数。

Public Method Summary

Qualifier and Type

Method Name and Description

void

Init()

初始化材质实例。

注意:

该接口已废弃。

void

Create()

创建材质实例。

注意:

该接口已废弃。

void

SetMaterial(Material* m)

设置材质类对象。

注意:

该接口已废弃。

const Material*

GetMaterial() const

获取材质类Material的指针。

注意:

该接口已废弃。

void

SetSubMeshInfo(const SubMesh* subMesh)

根据指定子网格设置管线状态绑定的顶点声明、顶点缓冲区和索引缓冲区。

注意:

该接口已废弃。

void

SetTexture(const String& name, const String& filePath)(const String& name, const String& filePath)

设置纹理。

注意:

该接口已废弃。

void

SetSamplerParam(const String& name, SamplerParam samplerParam)

设置采样参数。

注意:

该接口已废弃。

const String&

GetTexturePathByName(const String& name) const

获取指定名字的纹理路径。

注意:

该接口已废弃。

StringVector

GetTexturePaths()

获取所有纹理路径。

注意:

该接口已废弃。

TextureInfo*

GetTextureInfobyName(const String& name) const

获取指定名字的纹理信息。

注意:

该接口已废弃。

const RenderPipeline*

GetRenderPipeline() const

获取绑定的渲染管线指针。

注意:

该接口已废弃。

static MaterialInstance*

Request(const String& materialFile, const ResourceManager* resourceManager)

以共享方式获取材质实例。

static MaterialInstance*

New(const String& materialFile, const ResourceManager* resourceManager)

新建材质实例。

static void

Release(const MaterialInstance* materialInstance)

释放材质实例。

virtual bool

SetTechnique(const String& techniqueName)

切换到指定名字的材质实现方法。

注意:

该接口已废弃。

virtual String

GetTechniqueName() const

获取当前材质实现方法的名字。

virtual u32

GetPassIndex(const String& name) const = 0

从当前材质实现方法中查询指定名字的渲染过程的索引。

virtual bool

SetPass(u32 index) = 0

切换到指定索引的渲染过程。

virtual u32

GetPass() const = 0

获取当前渲染过程的索引。

virtual bool

HasTexture(const String& name) const = 0

判断是否存在指定名字的纹理。

virtual void

SetTexture(const String& name, Texture* texture) = 0

设置指定名字的纹理。

virtual const Texture*

GetTexture(const String& name) const = 0

获取指定名字的纹理。

virtual void

SetCullMode(CullMode cullMode) = 0

设置管线中光栅化阶段的剔除模式参数。

virtual CullMode

GetCullMode() const = 0

获取管线中光栅化阶段的剔除模式参数。

virtual void

SetFillMode(FillMode fillMode)

设置管线中光栅化阶段的图元填充模式。

virtual FillMode

GetFillMode() const

获取管线中光栅化阶段的图元填充模式。

virtual void

SetFrontFace(FrontFace frontFace)

设置管线中光栅化阶段的三角形顶点绕序。

virtual FrontFace

GetFrontFace() const

获取管线中光栅化阶段的三角形顶点绕序,顺时针或逆时针。

void

SetMultiSampleEnable(bool bEnable)

设置多采样标志变量。

注意:

该接口已废弃。

bool

GetMultiSampleEnable() const

获取多采样标志变量。

注意:

该接口已废弃。

void

SetScissorEnable(bool bEnable)

设置剪裁使能标志变量。

注意:

该接口已废弃。

bool

GetScissorEnable() const

获取剪裁使能标志变量。

注意:

该接口已废弃。

virtual void

SetLineWidth(f32 lineWidth)

设置管线中光栅化阶段的渲染线宽度。

virtual f32

GetLineWidth() const

获取管线中光栅化阶段的渲染线宽度。

virtual void

SetDepthTestEnable(bool depthTestEnable)

设置深度测试使能标志变量。

virtual bool

GetDepthTestEnable() const

获取深度测试使能标志变量。

virtual void

SetDepthWriteEnable(bool depthWriteEnable)

设置深度测试写入使能标志变量。

virtual bool

GetDepthWriteEnable() const

获取深度测试写入使能标志变量。

virtual void

SetDepthCompareOp(CompareOperation op)

设置深度测试比较方式。

virtual CompareOperation

GetDepthCompareOp() const

获取深度测试比较方式。

virtual void

SetStencilTestEnable(bool bEnable)

设置模板测试标志变量。

virtual bool

GetStencilTestEnable() const

获取模板测试标志变量。

virtual void

SetStencilFail(StencilFaceFlag stencilFaceFlag, StencilOperation op) = 0

设置模板测试失败采取的行为。

virtual StencilOperation

GetStencilFail(StencilFaceFlag stencilFaceFlag) const = 0

获取模板测试失败采取的行为。

virtual void

SetStencilDepthFail(StencilFaceFlag stencilFaceFlag, StencilOperation op) = 0

设置模板/深度测试失败采取的行为。

virtual StencilOperation

GetStencilDepthFail(StencilFaceFlag stencilFaceFlag) const = 0

获取模板、深度测试失败采取的行为。

virtual void

SetStencilPass(StencilFaceFlag stencilFaceFlag, StencilOperation op) = 0

设置模板测试通过采取的行为。

virtual StencilOperation

GetStencilPass(StencilFaceFlag stencilFaceFlag) const = 0

获取模板测试通过采取的行为。

virtual void

SetStencilCompareOp(StencilFaceFlag stencilFaceFlag, CompareOperation op) = 0

设置模板测试函数。

virtual CompareOperation

GetStencilCompareOp(StencilFaceFlag stencilFaceFlag) const = 0

获取模板测试函数。

virtual void

SetStencilCompareMask(StencilFaceFlag stencilFaceFlag, u32 mask) = 0

设置模板测试比较掩码值。

virtual u32

GetStencilCompareMask(StencilFaceFlag stencilFaceFlag) const = 0

获取模板测试比较掩码值。

virtual void

SetStencilReference(StencilFaceFlag stencilFaceFlag, u32 ref) = 0

设置模板测试参考。

virtual u32

GetStencilReference(StencilFaceFlag stencilFaceFlag) const = 0

获取模板测试参考。

virtual void

SetStencilReadMask(StencilFaceFlag stencilFaceFlag, u32 mask) = 0

设置模板测试读掩码。

virtual u32

GetStencilReadMask(StencilFaceFlag stencilFaceFlag) const = 0

获取模板测试读掩码。

virtual void

SetStencilWriteMask(StencilFaceFlag stencilFaceFlag, u32 mask) = 0

设置模板测试写掩码。

virtual u32

GetStencilWriteMask(StencilFaceFlag stencilFaceFlag) const = 0

获取模板测试写掩码。

virtual void

SetBlendingEnable(u32 index, bool bEnable)

设置每个颜色附件的混合状态使能标志变量。

virtual bool

GetBlendingEnable(u32 index) const

获取指定颜色附件的混合状态使能标志变量。

virtual void

SetSrcColorBlend(u32 index, BlendFactor srcColorBlend)

设置指定颜色附件的源颜色通道混合系数。

virtual BlendFactor

GetSrcColorBlend(u32 index) const

获取指定颜色附件的源颜色通道混合系数。

virtual void

SetDstColorBlend(u32 index, BlendFactor dstColorBlend)

设置指定颜色附件的目标颜色通道混合系数。

virtual BlendFactor

GetDstColorBlend(u32 index) const

获取指定颜色附件的目标颜色通道混合系数。

virtual void

SetColorBlendOperation(u32 index, BlendOperation colorBlendOp)

设置指定颜色附件的颜色混合操作。

virtual BlendOperation

GetColorBlendOperation(u32 index) const

获取指定颜色附件的颜色混合操作。

virtual void

SetSrcAlphaBlend(u32 index, BlendFactor srcAlphaBlend)

设置指定颜色附件的源Alpha通道系数。

virtual BlendFactor

GetSrcAlphaBlend(u32 index) const

获取指定颜色附件的源Alpha通道系数。

virtual void

SetDstAlphaBlend(u32 index, BlendFactor dstAlphaBlend)

设置指定颜色附件的目标Alpha通道系数。

virtual BlendFactor

GetDstAlphaBlend(u32 index) const

获取指定颜色附件的目标Alpha通道系数。

virtual void

SetAlphaBlendOperation(u32 index, BlendOperation alphaBlendOp)

设置指定颜色附件的Alpha通道混合操作。

virtual BlendOperation

GetAlphaBlendOperation(u32 index) const

获取指定颜色附件的Alpha通道混合操作。

void

SetBlendFactor(u32 index, float factor)

设置混合因子。

注意:

该接口已废弃。

float

GetBlendFactor(u32 index) const

获取混合因子。

注意:

该接口已废弃。

void

SetRenderTargetWriteMask(u32 index, u8 mask)

设置渲染目标写掩码。

注意:

该接口已废弃。

u8

GetRenderTargetWriteMask(u32 index) const

获取渲染目标写掩码。

注意:

该接口已废弃。

virtual bool

IsTransparent() const

判断当前材质实现方法是否应用于透明物体。

virtual u32

GetConstantValueIndex(const String& uniformName, const String& varName) const

获取指定名字的统一缓冲区中指定名字的参数索引。

virtual bool

SetConstantValue(u32 index, u32 data)

设置指定索引的统一缓冲区中u32的常量值。

virtual bool

SetConstantValue(u32 index, f32 data)

设置指定索引的统一缓冲区中f32的常量值。

virtual bool

SetConstantValue(u32 index, const Vector2& data)

设置指定索引的统一缓冲区中Vector2的常量值。

virtual bool

SetConstantValue(u32 index, const Vector3& data)

设置指定索引的统一缓冲区中Vector3的常量值。

virtual bool

SetConstantValue(u32 index, const Vector4& data)

设置指定索引的统一缓冲区中Vector4的常量值。

virtual bool

SetConstantValue(u32 index, const Matrix4& data)

设置指定索引的统一缓冲区中Matrix4的常量值。

virtual bool

SetConstantValue(u32 index, const Color& data)

设置指定索引的统一缓冲区中Color的常量值。

virtual u32

GetConstantValue(u32 index)

获取指定索引的统一缓冲区中u32的常量值。

virtual f32

GetConstantValue(u32 index)

获取指定索引的统一缓冲区中f32的常量值。

virtual Vector2

GetConstantValue(u32 index)

获取指定索引的统一缓冲区中Vector2的常量值。

virtual Vector3

GetConstantValue(u32 index)

获取指定索引的统一缓冲区中Vector3的常量值。

virtual Vector4

GetConstantValue(u32 index)

获取指定索引的统一缓冲区中Vector4的常量值。

virtual Matrix4

GetConstantValue(u32 index)

获取指定索引的统一缓冲区中Matrix4的常量值。

virtual Color

GetConstantValue(u32 index)

获取指定索引的统一缓冲区中Color的常量值。

virtual void

Update()

更新材质相关信息。

virtual bool

Resume()

预留,实现为空。

virtual void

Pause()

预留,实现为空。

void

SetResourceManager(ResourceManager* resourceManager)

设置ResourceManager。

virtual void

SetBlendConstants(const std::vector<f32>& blendConstants) = 0

设置颜色各分量的值,指定混合时颜色R、G、B、A的值。

virtual const std::vector<f32>&

GetBlendConstants() const = 0

获取颜色各分量的值,包含R、G、B、A。

virtual void

SetPushConstant(const String& name, const void* data) = 0

设置推送常量的值。

Public Constructors

[h2]MaterialInstance

Constructor

MaterialInstance()

构造函数。

Public Destructors

[h2]~MaterialInstance

Destructor

virtual ~MaterialInstance()

析构函数。

Public Methods

[h2]Init

该接口已废弃。

Method

void Init()

初始化材质实例。

[h2]Create

该接口已废弃。

Method

void Create()

创建材质实例。

[h2]SetMaterial

该接口已废弃。

Method

void SetMaterial(const Material* m)

设置材质类对象。

Parameters

Name

Description

m

指向材质类的指针,负责管线初始化,着色器的绑定,纹理、光栅化状态、深度测试、混合操作的设置和获取。

[h2]GetMaterial

该接口已废弃。

Method

const Material* GetMaterial() const

获取材质类的Material的指针。

Returns

Type

Description

const Material*

材质类Material的指针。

[h2]SetSubMeshInfo

该接口已废弃。

Method

void SetSubMeshInfo(const SubMesh* subMesh)

根据指定子网格设置管线状态绑定的顶点声明、顶点缓冲区和索引缓冲区。

Parameters

Name

Description

SubMesh*

指向子网格的指针,提供绑定的顶点声明、顶点缓冲区、索引缓冲区等信息。

[h2]SetTexture(const String& name, const String& filePath)

该接口已废弃。

Method

void SetTexture(const String& name, const String& filePath)

设置纹理。

Parameters

Name

Description

name

字符串类型,shader里对应的纹理名称。

filePath

字符串类型着色器文件路径。

[h2]SetSamplerParam

该接口已废弃。

Method

void SetSamplerParam(const String& name, SamplerParam samplerParam)

设置采样参数,参数SamplerParam是结构体,包含纹理类型,纹理最小采样过滤器,纹理最大采样过滤器,MIPMAP采样模式,纹理寻址模式。

Parameters

Name

Description

name

String类型,shader里对应的纹理名称。

samplerParam

SamplerParam类型,采样器的采样参数设置。

[h2]GetTexturePathByName

该接口已废弃。

Method

const String& GetTexturePathByName(const String& name) const

获取指定名称纹理的路径。

Parameters

Name

Description

name

String类型,shader里对应的纹理名称。

Returns

Type

Description

const String&

获取指定名称纹理的路径。

[h2]GetTexturePaths

该接口已废弃。

Method

StringVector GetTexturePaths()

获取所有纹理路径。

Returns

Type

Description

StringVector

获取所有纹理路径。

[h2]GetTextureInfobyName

该接口已废弃。

Method

TextureInfo* GetTextureInfobyName(const String& name) const

获取指定名字的纹理信息。

Parameters

Name

Description

name

String类型,shader里对应的纹理名称。

Returns

Type

Description

TextureInfo*

获取指定名字的纹理信息,比如set、binding、name等。

[h2]GetRenderPipeline

该接口已废弃。

Method

const RenderPipeline* GetRenderPipeline() const

获取绑定的渲染管线指针。

Returns

Type

Description

const RenderPipeline*

获取绑定的渲染管线指针。

[h2]Request

Method

static MaterialInstance* Request(const String& materialFile, const ResourceManager* resourceManager)

以共享方式获取材质实例。

Parameters

Name

Description

materialFile

材质资源文件路径。

resourceManager

ResourceManager指针。

Returns

Type

Description

MaterialInstance*

指向获取的材质实例类MaterialInstance的指针。

[h2]New

Method

static MaterialInstance* New(const String& materialFile, const ResourceManager* resourceManager)

新建材质实例。

Parameters

Name

Description

materialFile

材质资源文件路径。

resourceManager

ResourceManager指针。

Returns

Type

Description

MaterialInstance*

指向新建的材质实例类MaterialInstance的指针。

[h2]Release

Method

static void Release(const MaterialInstance* materialInstance)

释放材质实例。

Parameters

Name

Description

materialInstance

指向需要释放的材质实例类MaterialInstance的指针。

[h2]SetTechnique

该接口已废弃。

Method

virtual bool SetTechnique(const String& techniqueName)

切换到指定名字的材质实现方法。

Parameters

Name

Description

techniqueName

需要切换到的材质实现方法的名字。

Returns

Type

Description

bool

  • true:切换成功。
  • false:切换失败。

[h2]GetTechniqueName

Method

virtual String GetTechniqueName() const

获取当前材质实现方法的名字。

Returns

Type

Description

String

当前材质实现方法的名字。

[h2]GetPassIndex

Method

virtual u32 GetPassIndex(const String& name) const

从当前材质实现方法中查询指定名字的渲染过程的索引,如果没有查询到返回0xffffffff。此索引和材质中配置的顺序一致,从0开始。

Parameters

Name

Description

name

需要查询的渲染过程的名字。

Returns

Type

Description

u32

查询到的渲染过程的索引。

[h2]SetPass

Method

virtual bool SetPass(u32 index)

切换到指定索引的渲染过程,如果需要更新渲染过程的内容,需要依据此接口切换到需要更新的渲染过程。

Parameters

Name

Description

index

需要切换到的渲染过程的索引。

Returns

Type

Description

bool

  • true:切换成功。
  • false:切换失败。

[h2]GetPass

Method

virtual u32 GetPass() const

获取当前渲染过程的索引。

Returns

Type

Description

u32

当前渲染过程的索引。

[h2]HasTexture

Method

virtual bool HasTexture(const String& name) const = 0

判断是否存在指定名字的纹理。

Parameters

Name

Description

name

String类型,shader里对应的纹理名称。

Returns

Type

Description

bool

  • true:存在指定名称的纹理。
  • false:不存在指定名称的纹理。

[h2]SetTexture(const String& name, Texture* texture)

Method

virtual void SetTexture(const String& name, Texture* texture) = 0

设置指定名字的纹理。

Parameters

Name

Description

name

String类型,shader里对应的纹理名称。

texture

需要设置的纹理。

[h2]GetTexture

Method

virtual const Texture* GetTexture(const String& name) const = 0

获取指定名字的纹理。

Parameters

Name

Description

name

String类型,shader里对应的纹理名称。

Returns

Type

Description

Texture*

获取到的纹理。

[h2]SetCullMode

Method

virtual void SetCullMode(CullMode cullMode) = 0

设置管线中光栅化阶段的剔除模式参数。

Parameters

Name

Description

cullMode

CullMode类型剔除模式枚举值。

[h2]GetCullMode

Method

virtual CullMode GetCullMode() const = 0

获取管线中光栅化阶段的剔除模式。参考CullMode的定义。

Returns

Type

Description

CullMode

返回管线中光栅化阶段的剔除模式。参考CullMode的定义。

[h2]SetFillMode

Method

virtual void SetFillMode(FillMode fillMode)

设置管线中光栅化阶段的图元填充模式。

Parameters

Name

Description

fillMode

填充模式枚举值,如点、线段、全填充。

[h2]GetFillMode

Method

virtual FillMode GetFillMode() const

获取管线中光栅化阶段的图元填充模式。

Returns

Type

Description

FillMode

返回管线中光栅化阶段的图元填充模式,为FillMode枚举值。

[h2]SetFrontFace

Method

virtual void SetFrontFace(FrontFace frontFace)

设置管线中光栅化阶段的三角形顶点绕序。

Parameters

Name

Description

frontFace

FrontFace枚举值,顺时针或逆时针。

[h2]GetFrontFace

Method

virtual FrontFace GetFrontFace() const

获取管线中光栅化阶段的三角形顶点绕序,顺时针或逆时针。

Returns

Type

Description

FrontFace

FrontFace枚举值,顺时针或逆时针。

[h2]SetMultiSampleEnable

该接口已废弃。

Method

void SetMultiSampleEnable(bool bEnable)

设置多采样使能标志变量。

Parameters

Name

Description

bEnable

  • true:使能。
  • false:不使能。

[h2]GetMultiSampleEnable

该接口已废弃。

Method

bool GetMultiSampleEnable() const

获取多采样使能标志变量,返回布尔类型多采样标志变量。

Returns

Type

Description

bool

  • true:使能。
  • false:不使能。

[h2]SetScissorEnable

该接口已废弃。

Method

void SetScissorEnable(bool bEnable)

设置剪裁使能标志变量。

Parameters

Name

Description

bEnable

  • true:使能。
  • false:不使能。

[h2]GetScissorEnable

该接口已废弃。

Method

bool GetScissorEnable() const

获取剪裁使能标志变量,返回布尔类型剪裁使能标志变量。

Returns

Type

Description

bool

  • true:使能。
  • false:不使能。

[h2]SetLineWidth

Method

virtual void SetLineWidth(f32 lineWidth)

设置管线中光栅化阶段的渲染线宽度。

Parameters

Name

Description

lineWidth

需要设置的管线中光栅化阶段的渲染线宽度。

[h2]GetLineWidth

Method

virtual f32 GetLineWidth() const

获取管线中光栅化阶段的渲染线宽度。

Returns

Type

Description

f32

获取到的管线中光栅化阶段的渲染线宽度。

[h2]SetDepthTestEnable

Method

virtual void SetDepthTestEnable(bool depthTestEnable)

设置深度测试使能标志变量。

Parameters

Name

Description

depthTestEnable

深度测试使能标志变量。

[h2]GetDepthTestEnable

Method

virtual bool GetDepthTestEnable() const

获取深度测试使能标志变量。

Returns

Type

Description

bool

  • true:使能深度测试。
  • false:不使能深度测试。

[h2]SetDepthWriteEnable

Method

virtual void SetDepthWriteEnable(bool depthWriteEnable)

设置深度测试写入使能标志变量。

Parameters

Name

Description

depthWriteEnable

深度测试写入使能标志变量。

[h2]GetDepthWriteEnable

Method

virtual bool GetDepthWriteEnable() const

获取深度测试写入使能标志变量。

Returns

Type

Description

bool

  • true:能写入。
  • false:不能写入。

[h2]SetDepthCompareOp

Method

virtual void SetDepthCompareOp(CompareOperation op)

设置深度测试比较方式。

Parameters

Name

Description

op

CompareOperation类型深度测试比较方式枚举值。

[h2]GetDepthCompareOp

Method

virtual CompareOperation GetDepthCompareOp() const

获取深度测试比较方式。

Returns

Type

Description

CompareOperation

深度测试比较方式枚举值。

[h2]SetStencilTestEnable

Method

virtual void SetStencilTestEnable(bool bEnable)

设置模板测试使能标志变量。

Parameters

Name

Description

bEnable

  • true:使能。
  • false:不使能。

[h2]GetStencilTestEnable

Method

virtual bool GetStencilTestEnable() const

获取模板测试使能标志变量,返回布尔类型模板测试标志变量。

Returns

Type

Description

bool

  • true:使能。
  • false:不使能。

[h2]SetStencilFail

Method

virtual void SetStencilFail(StencilFaceFlag stencilFaceFlag, StencilOperation op) = 0

设置模板测试失败采取的行为。

Parameters

Name

Description

stencilFaceFlag

要更新的模板状态的值,具体请参见StencilFaceFlag。

op

模板操作测试类型,具体请参见StencilOperation。

[h2]GetStencilFail

Method

virtual StencilOperation GetStencilFail(StencilFaceFlag stencilFaceFlag) const = 0

获取模板测试失败采取的行为。

Parameters

Name

Description

stencilFaceFlag

要更新的模板状态的值,具体请参见StencilFaceFlag。

Returns

Type

Description

StencilOperation

根据模板测试前或后参数,获取当前模板测试失败采取的行为。

[h2]SetStencilDepthFail

Method

virtual void SetStencilDepthFail(StencilFaceFlag stencilFaceFlag, StencilOperation op) = 0

设置模板深度测试失败采取的行为。

Parameters

Name

Description

stencilFaceFlag

要更新的模板状态的值,具体请参见StencilFaceFlag。

op

模板操作测试类型,具体请参见StencilOperation。

[h2]GetStencilDepthFail

Method

virtual StencilOperation GetStencilDepthFail(StencilFaceFlag stencilFaceFlag) const = 0

获取模板深度测试失败采取的行为。

Parameters

Name

Description

stencilFaceFlag

要更新的模板状态的值,具体请参见StencilFaceFlag。

Returns

Type

Description

StencilOperation

获取模板深度测试失败采取的行为。

[h2]SetStencilPass

Method

virtual void SetStencilPass(StencilFaceFlag stencilFaceFlag, StencilOperation op) = 0

设置模板测试通过后采取的行为。

Parameters

Name

Description

stencilFaceFlag

要更新的模板状态的值,具体请参见StencilFaceFlag。

op

模板操作测试类型,具体请参见StencilOperation。

[h2]GetStencilPass

Method

virtual StencilOperation GetStencilPass(StencilFaceFlag stencilFaceFlag) const = 0

获取模板测试通过采取的行为。

Parameters

Name

Description

stencilFaceFlag

要更新的模板状态的值,具体请参见StencilFaceFlag。

Returns

Type

Description

StencilOperation

获取模板测试通过采取的行为。

[h2]SetStencilCompareOp

Method

virtual void SetStencilCompareOp(StencilFaceFlag stencilFaceFlag, CompareOperation op) = 0

设置模板测试函数。

Parameters

Name

Description

stencilFaceFlag

要更新的模板状态的值,具体请参见StencilFaceFlag。

op

深度测试比较方式,具体请参见CompareOperation。

[h2]GetStencilCompareOp

Method

virtual CompareOperation GetStencilCompareOp(StencilFaceFlag stencilFaceFlag) const = 0

获取模板测试函数。

Parameters

Name

Description

stencilFaceFlag

要更新的模板状态的值,具体请参见StencilFaceFlag。

Returns

Type

Description

CompareOperation

获取模板测试函数。

[h2]SetStencilCompareMask

Method

virtual void SetStencilCompareMask(StencilFaceFlag stencilFaceFlag, u32 mask) = 0

设置模板测试比较掩码值。

Parameters

Name

Description

stencilFaceFlag

要更新的模板状态的值,具体请参见StencilFaceFlag。

mask

模板测试比较掩码值。

[h2]GetStencilCompareMask

Method

virtual u32 GetStencilCompareMask(StencilFaceFlag stencilFaceFlag) const = 0

获取模板测试比较掩码值。

Parameters

Name

Description

stencilFaceFlag

要更新的模板状态的值,具体请参见StencilFaceFlag。

Returns

Type

Description

u32

获取模板测试比较掩码值。

[h2]SetStencilReference

Method

virtual void SetStencilReference(StencilFaceFlag stencilFaceFlag, u32 ref) = 0

设置模板测试参考。

Parameters

Name

Description

stencilFaceFlag

要更新的模板状态的值,具体请参见StencilFaceFlag。

ref

模板测试参考值。

[h2]GetStencilReference

Method

virtual u32 GetStencilReference(StencilFaceFlag stencilFaceFlag) const = 0

获取设置模板测试参考。

Parameters

Name

Description

stencilFaceFlag

要更新的模板状态的值,具体请参见StencilFaceFlag。

Returns

Type

Description

u32

获取设置模板测试参考。

[h2]SetStencilReadMask

Method

virtual void SetStencilReadMask(StencilFaceFlag stencilFaceFlag, u32 mask) = 0

设置模板测试读掩码。

Parameters

Name

Description

stencilFaceFlag

要更新的模板状态的值,具体请参见StencilFaceFlag。

mask

模板测试读掩码值。

[h2]GetStencilReadMask

Method

virtual u32 GetStencilReadMask(StencilFaceFlag stencilFaceFlag) const = 0

获取模板测试读掩码。

Parameters

Name

Description

stencilFaceFlag

要更新的模板状态的值,具体请参见StencilFaceFlag。

Returns

Type

Description

u32

获取模板测试读掩码。

[h2]SetStencilWriteMask

Method

virtual void SetStencilWriteMask(StencilFaceFlag stencilFaceFlag, u32 mask) = 0

设置模板测试写掩码。

Parameters

Name

Description

stencilFaceFlag

要更新的模板状态的值,具体请参见StencilFaceFlag。

mask

模板测试写掩码值。

[h2]GetStencilWriteMask

Method

virtual u32 GetStencilWriteMask(StencilFaceFlag stencilFaceFlag) const = 0

获取模板测试写掩码。

Parameters

Name

Description

stencilFaceFlag

要更新的模板状态的值,具体请参见StencilFaceFlag。

Returns

Type

Description

u32

获取模板测试写掩码。

[h2]SetBlendingEnable

Method

virtual void SetBlendingEnable(u32 index, bool bEnable)

设置每个颜色附件的混合状态使能标志变量。

Parameters

Name

Description

index

颜色附件索引。

bEnable

混合状态使能标志变量。

  • true:使能。
  • false:不使能。

[h2]GetBlendingEnable

Method

virtual bool GetBlendingEnable(u32 index) const

获取指定颜色附件的混合状态使能标志变量。

Parameters

Name

Description

index

指定颜色附件索引。

Returns

Type

Description

bool

  • true:获取成功。
  • false:未获取成功。

[h2]SetSrcColorBlend

Method

virtual void SetSrcColorBlend(u32 index, BlendFactor srcColorBlend)

设置指定颜色附件的源颜色通道混合系数。

Parameters

Name

Description

index

颜色附件索引。

srcColorBlend

指定颜色附件的源颜色通道混合系数。

[h2]GetSrcColorBlend

Method

virtual BlendFactor GetSrcColorBlend(u32 index) const

获取指定颜色附件的源颜色通道混合系数。

Parameters

Name

Description

index

颜色附件索引。

Returns

Type

Description

BlendFactor

指定颜色附件的源颜色通道混合系数。

[h2]SetDstColorBlend

Method

virtual void SetDstColorBlend(u32 index, BlendFactor dstColorBlend)

设置指定颜色附件的目标颜色通道混合系数。

Parameters

Name

Description

index

颜色附件索引。

dstColorBlend

指定颜色附件的目标颜色通道混合系数。

[h2]GetDstColorBlend

Method

virtual BlendFactor GetDstColorBlend(u32 index) const

获取指定颜色附件的目标颜色通道混合系数。

Parameters

Name

Description

index

颜色附件索引。

Returns

Type

Description

BlendFactor

指定颜色附件的目标颜色通道混合系数。

[h2]SetColorBlendOperation

Method

virtual void SetColorBlendOperation(u32 index, BlendOperation colorBlendOp)

设置指定颜色附件的颜色混合操作。

Parameters

Name

Description

index

颜色附件索引。

colorBlendOp

颜色混合操作枚举值。

[h2]GetColorBlendOperation

Method

virtual BlendOperation GetColorBlendOperation(u32 index) const

获取指定颜色附件的颜色混合操作。

Parameters

Name

Description

index

颜色附件索引。

Returns

Type

Description

BlendOperation

指定颜色附件的颜色混合操作枚举值。

[h2]SetSrcAlphaBlend

Method

virtual void SetSrcAlphaBlend(u32 index, BlendFactor srcAlphaBlend)

设置指定颜色附件的源Alpha通道系数。

Parameters

Name

Description

index

颜色附件索引。

srcAlphaBlend

指定颜色附件的源Alpha通道系数。

[h2]GetSrcAlphaBlend

Method

virtual BlendFactor GetSrcAlphaBlend(u32 index) const

获取指定颜色附件的源Alpha通道系数。

Parameters

Name

Description

index

颜色附件索引。

Returns

Type

Description

BlendFactor

指定颜色附件的源Alpha通道系数。

[h2]SetDstAlphaBlend

Method

virtual void SetDstAlphaBlend(u32 index, BlendFactor dstAlphaBlend)

设置指定颜色附件的目标Alpha通道系数。

Parameters

Name

Description

index

颜色附件索引。

dstAlphaBlend

指定颜色附件的目标Alpha通道系数。

[h2]GetDstAlphaBlend

Method

virtual BlendFactor GetDstAlphaBlend(u32 index) const

获取指定颜色附件的目标Alpha通道系数。

Parameters

Name

Description

index

颜色附件索引。

Returns

Type

Description

BlendFactor

指定颜色附件的目标Alpha通道系数。

[h2]SetAlphaBlendOperation

Method

virtual void SetAlphaBlendOperation(u32 index, BlendOperation alphaBlendOp)

设置指定颜色附件的Alpha通道混合操作。

Parameters

Name

Description

index

颜色附件索引。

alphaBlendOp

Alpha通道混合操作枚举值。请参见BlendOperation。

[h2]GetAlphaBlendOperation

Method

virtual BlendOperation GetAlphaBlendOperation(u32 index) const

获取指定颜色附件的Alpha通道混合操作。

Parameters

Name

Description

index

颜色附件索引。

Returns

Type

Description

BlendOperation

指定颜色附件的Alpha通道混合操作枚举值。

[h2]SetBlendFactor

该接口已废弃。

Method

void SetBlendFactor(u32 index, float factor)

设置混合因子。

Parameters

Name

Description

index

颜色附件索引。

factor

混合因子。

[h2]GetBlendFactor

该接口已废弃。

Method

float GetBlendFactor(u32 index) const

获取混合因子。

Parameters

Name

Description

index

颜色附件索引。

Returns

Type

Description

float

获取混合因子。

[h2]SetRenderTargetWriteMask

该接口已废弃。

Method

void SetRenderTargetWriteMask(u32 index, u8 mask)

设置写入渲染目标的掩码。

Parameters

Name

Description

index

颜色附件索引。

mask

渲染目标写掩码。

[h2]GetRenderTargetWriteMask

该接口已废弃。

Method

u8 GetRenderTargetWriteMask(u32 index) const

获取写入渲染目标的掩码。

Parameters

Name

Description

index

颜色附件索引。

Returns

Type

Description

u8

获取写入渲染目标的掩码。

[h2]IsTransparent

Method

virtual bool IsTransparent() const

判断当前材质实现方法是否应用于透明物体。

Returns

Type

Description

bool

  • true:用于透明物体。
  • false:不用于透明物体。

[h2]GetConstantValueIndex

Method

virtual u32 GetConstantValueIndex(const String& uniformName, const String& varName) const

获取指定名字的统一缓冲区中指定名字的参数索引。

Parameters

Name

Description

uniformName

统一缓冲区的名称。

varName

需要获取索引的统一缓冲区内参数的名称。

Returns

Type

Description

u32

获取到的索引,分为两个部分,前16位表示材质中配置的“Constant”字段的索引,后16位表示“Value”字段在“Constant”字段中的索引。

[h2]SetConstantValue(u32 index, u32 data)

Method

virtual bool SetConstantValue(u32 index, u32 data)

设置指定索引的统一缓冲区中u32的常量值。

Parameters

Name

Description

index

需要设置常量值的索引。

data

需要设置的u32常量值。

Returns

Type

Description

bool

  • true:设置成功。
  • false:设置失败。

[h2]SetConstantValue(u32 index, f32 data)

Method

virtual bool SetConstantValue(u32 index, f32 data)

设置指定索引的统一缓冲区中f32的常量值。

Parameters

Name

Description

index

需要设置常量值的索引。

data

需要设置的f32常量值。

Returns

Type

Description

bool

  • true:设置成功。
  • false:设置失败。

[h2]SetConstantValue(u32 index, Vector2& data)

Method

virtual bool SetConstantValue(u32 index, Vector2& data)

设置指定索引的统一缓冲区中Vector2的常量值。

Parameters

Name

Description

index

需要设置常量值的索引。

data

需要设置的Vector2常量值。

Returns

Type

Description

bool

  • true:设置成功。
  • false:设置失败。

[h2]SetConstantValue(u32 index, Vector3& data)

Method

virtual bool SetConstantValue(u32 index, Vector3& data)

设置指定索引的统一缓冲区中Vector3的常量值。

Parameters

Name

Description

index

需要设置常量值的索引。

data

需要设置的Vector3常量值。

Returns

Type

Description

bool

  • true:设置成功。
  • false:设置失败。

[h2]SetConstantValue(u32 index, Vector4& data)

Method

virtual bool SetConstantValue(u32 index, Vector4& data)

设置指定索引的统一缓冲区中Vector4的常量值。

Parameters

Name

Description

index

需要设置常量值的索引。

data

需要设置的Vector4常量值。

Returns

Type

Description

bool

  • true:设置成功。
  • false:设置失败。

[h2]SetConstantValue(u32 index, Matrix4& data)

Method

virtual bool SetConstantValue(u32 index, Matrix4& data)

设置指定索引的统一缓冲区中Matrix4的常量值。

Parameters

Name

Description

index

需要设置常量值的索引。

data

需要设置的Matrix4常量值。

Returns

Type

Description

bool

  • true:设置成功。
  • false:设置失败。

[h2]SetConstantValue(u32 index, Color& data)

Method

virtual bool SetConstantValue(u32 index, Color& data)

设置指定索引的统一缓冲区中Color的常量值。

Parameters

Name

Description

index

需要设置常量值的索引。

data

需要设置的Color常量值。

Returns

Type

Description

bool

  • true:设置成功。
  • false:设置失败。

[h2]virtual u32 GetConstantValue(u32 index)

Method

virtual u32 GetConstantValue(u32 index)

获取指定索引的统一缓冲区中u32的常量值。

Parameters

Name

Description

index

需要获取常量值的索引。

Returns

Type

Description

u32

获取到的常量值。

[h2]virtual f32 GetConstantValue(u32 index)

Method

virtual f32 GetConstantValue(u32 index)

获取指定索引的统一缓冲区中f32的常量值。

Parameters

Name

Description

index

需要获取常量值的索引。

Returns

Type

Description

f32

获取到的常量值。

[h2]virtual Vector2 GetConstantValue(u32 index)

Method

virtual Vector2 GetConstantValue(u32 index)

获取指定索引的统一缓冲区中Vector2的常量值。

Parameters

Name

Description

index

需要获取常量值的索引。

Returns

Type

Description

Vector2

获取到的常量值。

[h2]virtual Vector3 GetConstantValue(u32 index)

Method

virtual Vector3 GetConstantValue(u32 index)

获取指定索引的统一缓冲区中Vector3的常量值。

Parameters

Name

Description

index

需要获取常量值的索引。

Returns

Type

Description

Vector3

获取到的常量值。

[h2]virtual Vector4 GetConstantValue(u32 index)

Method

virtual Vector4 GetConstantValue(u32 index)

获取指定索引的统一缓冲区中Vector4的常量值。

Parameters

Name

Description

index

需要获取常量值的索引。

Returns

Type

Description

Vector4

获取到的常量值。

[h2]virtual Matrix4 GetConstantValue(u32 index)

Method

virtual Matrix4 GetConstantValue(u32 index)

获取指定索引的统一缓冲区中Matrix4的常量值。

Parameters

Name

Description

index

需要获取常量值的索引。

Returns

Type

Description

Matrix4

获取到的常量值。

[h2]virtual Color GetConstantValue(u32 index)

Method

virtual Color GetConstantValue(u32 index)

获取指定索引的统一缓冲区中Color的常量值。

Parameters

Name

Description

index

需要获取常量值的索引。

Returns

Type

Description

Color

获取到的常量值。

[h2]Update

Method

void Update()

更新材质相关信息。

[h2]Resume

Method

bool Resume()

预留,实现为空。

Returns

Type

Description

bool

  • true:能重置。
  • false:不能重置。

[h2]Pause

Method

void Pause()

预留,实现为空。

[h2]SetResourceManager

Method

void SetResourceManager(ResourceManager* resourceManager)

设置ResourceManager。

Parameters

Name

Description

resourceManager

设置ResourceManager指针,可以从SceneManager获取。

[h2]SetBlendConstants

Method

virtual void SetBlendConstants(const std::vector<f32>& blendConstants) = 0

设置颜色各分量的值,指定混合时颜色R、G、B、A的值。

Parameters

Name

Description

blendConstants

颜色的值,R、G、B、A。

[h2]GetBlendConstants

Method

virtual const std::vector<f32>& GetBlendConstants() const = 0

获取颜色各分量的值,包含R、G、B、A。

Returns

Type

Description

virtual const std::vector<f32>&

返回的颜色分量的数组,包含R、G、B、A。

[h2]SetPushConstant

Method

virtual void SetPushConstant(const String& name, const void* data) = 0

设置推送常量的值。

Parameters

Name

Description

name

常量的名称。

data

常量的指针。