Másolás felületekre (Direct3D 9)
Ha IDirect3DDevice9::UpdateSurfaceeszközt használ, adjon át egy téglalapot a forrásfelületen, vagy NULL használatával adja meg a teljes felületet. Egy pontot is megad a célfelületen, ahová a forrásképen lévő téglalap bal felső pozícióját másolja. Ez a módszer nem támogatja a kivágást. A művelet sikertelen lesz, kivéve, ha a forrás téglalapja és a megfelelő cél téglalap teljes mértékben a forrás- és célfelületeken belül található. Ez a módszer nem támogatja az alfa-keverést, a színkulcsokat és a formátumkonvertálást. Vegye figyelembe, hogy a cél- és forrásfelületnek eltérőnek kell lennie.
Az UpdateSurface használatakor további korlátozásokért lásd IDirect3DDevice9::UpdateSurface.
A következő módszerek a C++/C-ben is elérhetők a képek Direct3D-felületre másolásához.
- D3DXLoadSurfaceFromFile
- D3DXLoadSurfaceFromFileInMemory
- D3DXLoadSurfaceFromMemory
- D3DXLoadSurfaceFromResource
- D3DXLoadSurfaceFromSurface
- IDirect3DDevice9::UpdateSurface
UpdateSurface példa bemutatása
Az alábbi példa két téglalapot másol a forrásfelületről egy célfelületre. Az első téglalapot a forrásfelületen lévő (0, 0, 50, 50) területről a célfelület ugyanazon helyére másolja, a második téglalapot pedig a forrásfelületen lévő (50, 50, 100, 100) szövegből a célfelületen lévő (150, 150, 200, 200) helyre másolja.
//The following assumptions are made:
// -d3dDevice is a valid Direct3DDevice9 object.
// -pSource and pDest are valid IDirect3DSurface9 pointers.
RECT rcSource[] = { 0, 0, 50, 50,
50, 50, 100, 100 };
POINT ptDest[] = { 0, 0, 150, 150 };
d3dDevice->UpdateSurface( pSource, rcSource, 2, pDest, ptDest);
Kapcsolódó témakörök