Поделиться через


Метод 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

См. также раздел

IDirect3DDevice9Ex