Метод 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*
Указатель на буфер вершин (см. IDirect3DVertexBuffer9), содержащий прямоугольники (см . D3DCOMPOSERECTDESC), которые заключают нужные глифы в поверхность источника.
[in] NumRects
Тип: UINT
Количество прямоугольников или глифов, используемых в операции. Это число применяется как к исходной, так и к целевой поверхностям. Диапазон от 0 до D3DCOMPOSERECTS_MAXNUMRECTS.
[in] pDstRectDescs
Тип: IDirect3DVertexBuffer9*
Указатель на буфер вершин (см. IDirect3DVertexBuffer9), содержащий прямоугольники (см . раздел D3DCOMPOSERECTDESTINATION), описывающий назначение, в которое будет скопирован указанный глиф из исходной поверхности.
[in] Operation
Тип: D3DCOMPOSERECTSOP
Указывает способ объединения исходной и целевой поверхностей. См . раздел D3DCOMPOSERECTSOP.
[in] Xoffset
Тип: INT
Значение , добавляемое к координатам x всех прямоугольников назначения. Это значение может быть отрицательным, что может привести к отклонению или обрезку глифа, если результат выходит за пределы поверхности.
[in] Yoffset
Тип: INT
Значение , добавляемое к координатам Y всех прямоугольников назначения. Это значение может быть отрицательным, что может привести к отклонению или обрезку глифа, если результат выходит за пределы поверхности.
Возвращаемое значение
Тип: HRESULT
Если метод выполнен успешно, возвращаемое значение будет D3D_OK.
Комментарии
Глифы из однобитовой исходной поверхности объединяются в другую однобитовую поверхность текстуры с помощью этого метода. Затем целевую поверхность можно использовать в качестве источника для обычной операции по выбору текста, которая будет фильтровать и масштабировать строки текста на другой немонохромной поверхности.
Этот метод имеет несколько ограничений (которые похожи на StretchRect):
- Поверхности не могут быть заблокированы.
- Исходная и целевая поверхности не могут быть одной и той же поверхностью.
- Исходная и целевая поверхности должны быть созданы в формате D3DFMT_A1 .
- Поверхность источника и оба буфера вершин должны быть созданы с флагом D3DPOOL_DEFAULT .
- Область назначения должна быть создана с флагами D3DPOOL_DEFAULT или D3DPOOL_SYSTEMMEM .
- Исходные прямоугольники должны находиться в пределах исходной поверхности.
Требования
Целевая платформа | Windows |
Header | d3d9.h |
Библиотека | D3D9.lib |