Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 02.06.2004, 20:11 Titel: [DirectX] Wie verwende ich Teile einer Bitmap als Textur? |
|
|
Frage:
Ich möchte einen Textur erstellen, dabei soll aber nur ein Teil einer Grafik für die Textur verwenet werden.
Was kann ich tun? Ich bin so verzweifelt.
Antwort:
Die einfachste Möglichkeit besteht darin, eine Textur in der gewünschten Größe anzulegen und danach die Methode GetSurfaceLevel() aufzurufen, um einen Zeiger auf das Surface, dass von der Textur verwendet wird zu erhalten. In dieses Surface kann dann mittels D3DXLoadSurfaceFromFile() der gewünschte Teil der Grafik geladen werden.
Der folgende Code verdeutlicht, wie das funktioniert.
CPP: | LPDIRECT3DSURFACE9 pSurface;
LPDIRECT3DTEXTURE9 pTexture;
RECT r = { 0, 0, 32, 32 };
D3DXCreateTexture(pd3dDevice, 32, 32, 1, 0, D3DFMT_R8G8B8, D3DPOOL_MANAGED, &pTexture);
pTexture->GetSurfaceLevel(0, &pSurface);
D3DXLoadSurfaceFromFile(pSurface, NULL, NULL, szFileName, &r, D3DX_DEFAULT, 0x00000000, NULL);
pSurface->Release();
|
Bemerkungen:
Zu beachten ist, dass hier nur ein MipMap-Level der Textur verwendet wird. Wichtig ist auch, dass das Format der Textur und der geladenen Grafik übereinstimmen oder angepasst werden muss. |
|