Condividi tramite


Metodo IDirect3DDevice9Ex::ComposeRects (d3d9.h)

Copiare una stringa di testo in una superficie usando un alfabeto di glifi in un'altra superficie. La composizione viene eseguita dalla GPU usando operazioni bit per bit.

Sintassi

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
);

Parametri

[in] pSrc

Tipo: IDirect3DSurface9*

Puntatore a una superficie di origine (preparata da IDirect3DSurface9) che fornisce glifi alfabeti. Questa superficie deve essere creata con il flag di D3DUSAGE_TEXTAPI .

[in] pDst

Tipo: IDirect3DSurface9*

Puntatore alla superficie di destinazione (preparata da IDirect3DSurface9) che riceve i dati del glifo. La superficie deve essere parte di una trama.

[in] pSrcRectDescs

Tipo: IDirect3DVertexBuffer9*

Puntatore a un buffer del vertice (vedere IDirect3DVertexBuffer9) contenente rettangoli (vedere D3DCOMPOSERECTDESC) che racchiude i glifi desiderati nella superficie di origine.

[in] NumRects

Tipo: UINT

Numero di rettangoli o glifi usati nell'operazione. Il numero si applica sia alle superfici di origine che di destinazione. L'intervallo è da 0 a D3DCOMPOSERECTS_MAXNUMRECTS.

[in] pDstRectDescs

Tipo: IDirect3DVertexBuffer9*

Puntatore a un buffer del vertice (vedere IDirect3DVertexBuffer9) contenente rettangoli (vedere D3DCOMPOSERECTDESTINATION) che descrivono la destinazione a cui verrà copiato il glifo indicato dalla superficie di origine.

[in] Operation

Tipo: D3DCOMPOSERECTSOP

Specifica come combinare le superfici di origine e di destinazione. Vedere D3DCOMPOSERECTSOP.

[in] Xoffset

Tipo: INT

Valore aggiunto alle coordinate x di tutti i rettangoli di destinazione. Questo valore può essere negativo, che può causare il glifo da rifiutare o ritagliare se il risultato è oltre i limiti della superficie.

[in] Yoffset

Tipo: INT

Valore aggiunto alle coordinate y di tutti i rettangoli di destinazione. Questo valore può essere negativo, che può causare il glifo da rifiutare o ritagliare se il risultato è oltre i limiti della superficie.

Valore restituito

Tipo: HRESULT

Se il metodo ha esito positivo, il valore restituito è D3D_OK.

Commenti

Glifi da una superficie di origine a un bit vengono messi insieme in un'altra superficie di trama a un bit con questo metodo. La superficie di destinazione può quindi essere usata come origine per un'operazione di texturing normale che filtra e ridimensiona le stringhe di testo in un'altra superficie non monocromatica.

Questo metodo ha diversi vincoli (simili a StretchRect):

  • Le superfici non possono essere bloccate.
  • Le superfici di origine e destinazione non possono essere la stessa superficie.
  • Le superfici di origine e destinazione devono essere create con il formato D3DFMT_A1 .
  • La superficie di origine e entrambi i buffer dei vertici devono essere creati con il flag di D3DPOOL_DEFAULT .
  • L'area di destinazione deve essere creata con i flag di D3DPOOL_DEFAULT o di D3DPOOL_SYSTEMMEM .
  • I rettangoli di origine devono trovarsi all'interno dell'area di origine.
Il metodo non viene registrato nei blocchi di stato.

Requisiti

   
Piattaforma di destinazione Windows
Intestazione d3d9.h
Libreria D3D9.lib

Vedi anche

IDirect3DDevice9Ex