IDirect3DDevice9Ex::ComposeRects 方法 (d3d9.h)
在另一个图面上使用字形字母表将文本字符串复制到一个图面。 合成由 GPU 使用按位运算完成。
语法
HRESULT ComposeRects(
[in] IDirect3DSurface9 *pSrc,
[in] IDirect3DSurface9 *pDst,
[in] IDirect3DVertexBuffer9 *pSrcRectDescs,
[in] UINT NumRects,
[in] IDirect3DVertexBuffer9 *pDstRectDescs,
[in] D3DCOMPOSERECTSOP Operation,
[in] int Xoffset,
[in] int Yoffset
);
参数
[in] pSrc
类型: IDirect3DSurface9*
指向源图面 (由提供字母字形的 IDirect3DSurface9) 准备的指针。 必须使用 D3DUSAGE_TEXTAPI 标志创建此图面。
[in] pDst
类型: IDirect3DSurface9*
指向目标图面的指针 (接收字形数据的 IDirect3DSurface9) 准备。 表面必须是纹理的一部分。
[in] pSrcRectDescs
指向顶点缓冲区的指针 (请参阅包含矩形的 IDirect3DVertexBuffer9) (请参阅将所需字形括在源图面中的 D3DCOMPOSERECTDESC) 。
[in] NumRects
类型: UINT
在操作中使用的矩形或字形的数量。 该数字适用于源图面和目标图面。 范围为 0 到 D3DCOMPOSERECTS_MAXNUMRECTS。
[in] pDstRectDescs
指向顶点缓冲区的指针 (请参阅包含矩形的 IDirect3DVertexBuffer9) (请参阅描述源图面中指定字形将复制到的目标的 D3DCOMPOSERECTDESTINATION) 。
[in] Operation
指定如何合并源图面和目标图面。 请参阅 D3DCOMPOSERECTSOP。
[in] Xoffset
类型: INT
添加到所有目标矩形的 x 坐标的值。 此值可以为负值,如果结果超出图面边界,则可能会导致字形被拒绝或被剪裁。
[in] Yoffset
类型: INT
添加到所有目标矩形的 y 坐标的值。 此值可以为负值,如果结果超出图面边界,则可能会导致字形被拒绝或被剪裁。
返回值
类型: HRESULT
如果该方法成功,则返回值D3D_OK。
备注
使用此方法,将来自一位源图面的字形组合到另一个一位纹理图面中。 然后,可以将目标图面用作正常纹理操作的源,该操作将筛选文本字符串并将其缩放到其他一些非单色图面上。
此方法有几个约束 (类似于 StretchRect) :
- 无法锁定图面。
- 源图面和目标图面不能是相同的图面。
- 必须使用 D3DFMT_A1 格式创建源图面和目标图面。
- 必须使用 D3DPOOL_DEFAULT 标志创建源图面和两个顶点缓冲区。
- 必须使用 D3DPOOL_DEFAULT 或 D3DPOOL_SYSTEMMEM 标志创建目标图面。
- 源矩形必须位于源图面内。
要求
目标平台 | Windows |
标头 | d3d9.h |
Library | D3D9.lib |