ID2D1DrawInfo::SetVertexProcessing 方法 (d2d1effectauthor.h)
设置顶点缓冲区、相应的顶点着色器以及用于控制 Direct2D 上下文如何处理顶点的选项。
语法
HRESULT SetVertexProcessing(
[in, optional] ID2D1VertexBuffer *vertexBuffer,
D2D1_VERTEX_OPTIONS vertexOptions,
[in, optional] const D2D1_BLEND_DESCRIPTION *blendDescription,
[in, optional] const D2D1_VERTEX_RANGE *vertexRange,
const GUID *vertexShader
);
参数
[in, optional] vertexBuffer
类型: ID2D1VertexBuffer*
顶点缓冲区,如果清除,将使用默认顶点着色器和映射到转换矩形。
vertexOptions
影响呈现器与顶点着色器交互方式的选项。
[in, optional] blendDescription
类型: const D2D1_BLEND_DESCRIPTION*
顶点如何与输出纹理混合。
[in, optional] vertexRange
类型: const D2D1_VERTEX_RANGE*
要从缓冲区使用的顶点集。
vertexShader
类型: GUID*
顶点着色器的 GUID。
返回值
类型: HRESULT
如果该方法成功,则返回 S_OK。 如果失败,则返回 HRESULT 错误代码。
注解
在进行此调用之前,必须通过 ID2D1EffectContext::LoadVertexShader 方法加载通过顶点着色器 GUID 与顶点缓冲区关联的顶点着色器。
如果 传递顶点选项D2D1_VERTEX_OPTIONS_DO_NOT_CLEAR,则除非混合说明正好如此,否则方法将失败:
D2D1_BLEND_DESCRIPTION blendDesc =
{
D2D1_BLEND_ONE,
D2D1_BLEND_ZERO,
D2D1_BLEND_OPERATION_ADD,
D2D1_BLEND_ONE,
D2D1_BLEND_ZERO,
D2D1_BLEND_OPERATION_ADD,
{ 1.0f, 1.0f, 1.0f, 1.0f }
};
如果此调用失败,则相应的 ID2D1Effect 实例将置于错误状态并无法绘制。
如果 blendDescription 为 NULL,则使用前台覆盖混合模式。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 适用于 Windows 7 的Windows 8和平台更新 [桌面应用 |UWP 应用] |
最低受支持的服务器 | 适用于 Windows Server 2008 R2 的Windows Server 2012和平台更新 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | d2d1effectauthor.h |
Library | D2d1.lib |