Problem mit LPD3DXSPRITE
-
Hallo,
nach langer erfolgloser Suche will ich es nun hier probieren. Ich arbeite zur zeit an einem Projekt welches Directx9 verwendet. Zur Zeichnung von 2D-Grafiken nutze ich LPD3DXSPRITE. Das funktioniert soweit auch ganz gut, nur möchte die Fenstergröße gerne variabel lassen. Also reagier ich auf die WM_SIZE Message:
[...] case WM_SIZE: if( wParam != SIZE_MINIMIZED) Project.Adjust(LOWORD(lparam),HIWORD(lparam)); break; [...]
und passe den BackBuffer an:
[...] LPDIRECT3DDEVICE9 pDevice; D3DPRESENT_PARAMETERS PParams; void Project::Adjust(int _width, int _height) { PParams.BackBufferWidth = _width; PParams.BackBufferHeight = _height; pDevice->Reset( &PParams); } [...]
danach kommt allerdings eine Fehlermeldung die mir sagt, dass irgendetwas mit dem Sprite schief gelaufen ist. Meine Frage ist nun wie ich LPD3DXSPRITE auch auf die neue Fenstergröße anpasse, oder was ich vor der Anpassung des Backbuffers mit LPD3DXSPRITE machen muss.
Ich hoffe ihr könnt mir da weiterhelfen.
-
so einfach... habs dann doch rausbekommen:
[...] LPDIRECT3DDEVICE9 pDevice; D3DPRESENT_PARAMETERS PParams; LPD3DXSPRITE Sprite; void Project::Adjust(int _width, int _height) { Sprite.OnLostDevice(); PParams.BackBufferWidth = _width; PParams.BackBufferHeight = _height; pDevice->Reset( &PParams); Sprite.OnResetDevice(); } [...]
-
Stillalive1987 schrieb:
so einfach... habs dann doch rausbekommen:
[...] LPDIRECT3DDEVICE9 pDevice; D3DPRESENT_PARAMETERS PParams; LPD3DXSPRITE Sprite; void Project::Adjust(int _width, int _height) { Sprite.OnLostDevice(); PParams.BackBufferWidth = _width; PParams.BackBufferHeight = _height; pDevice->Reset( &PParams); Sprite.OnResetDevice(); } [...]