|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Brillus Mini JLI'ler
Anmeldedatum: 17.12.2003 Beiträge: 5
Medaillen: Keine
|
Verfasst am: 13.02.2004, 17:50 Titel: Reset-Methode von D3DDevice bei DirectX9 |
|
|
Hallo Leute ich habe das Problem das die Reset-Methode immer mit dem Fehler D3DERR_INVALIDCALL fehlschlägt.
hier mal der in dem Bereich wichtige Code
Code: | h=lpD3DDevice->Present(NULL, NULL, NULL, NULL);
Log("Present");
Log(DXGetErrorString9(h));
if(h==D3DERR_DEVICELOST)
{
h=lpD3DDevice->TestCooperativeLevel();
Log("Cooperative"),
Log(DXGetErrorString9(h));
if (h==D3DERR_DEVICENOTRESET)
{
D3DADAPTERINFO* pAdapter = &Adapterinfo[dwAdapter];
D3DDEVICEINFO* pDevice = &pAdapter->Devices[pAdapter->dwAkt_Device];
D3DMODEINFO* pMode = &pDevice->Modus[pDevice->dwAkt_Mode];
D3DPRESENT_PARAMETERS d3dpp;
// Lege die Variablen für das Direct3D Device fest
ZeroMemory(&d3dpp, sizeof(D3DPRESENT_PARAMETERS));
d3dpp.Windowed = FALSE;
d3dpp.BackBufferCount = 1;
d3dpp.MultiSampleType = pDevice->MultiSampleType;
d3dpp.SwapEffect = D3DSWAPEFFECT_FLIP;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = pMode->DepthStencilFormat;
d3dpp.hDeviceWindow = hWnd;
d3dpp.BackBufferWidth = BREITE;
d3dpp.BackBufferHeight = HOEHE;
d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
// WICHTIG: Ohne dies Flag können wir BackBuffer nicht ver-
// riegeln, also nicht selbst darauf malen!!!
d3dpp.Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
Log("Reset:");
Log(DXGetErrorString9(lpD3DDevice->Reset(&d3dpp)));
}
} |
habs auch schon mit genau dem Selben D3DPRESENT_PARAMETERS wie ich auch für das CreateDevice benutzt hatte.
Help[/u] |
|
Nach oben |
|
|
fowly JLI'ler
Anmeldedatum: 25.01.2004 Beiträge: 196 Wohnort: Detmold - NRW Medaillen: Keine
|
Verfasst am: 13.02.2004, 19:56 Titel: |
|
|
hallo,
ich hatte das problem auch eine zeit lang. eigentlich bringt es die Reset Methode nicht wirklich, denn nach meiner Erfahrung funktionieren die Texturen (auch die im MANAGED-POOL) danach nicht mehr. Am besten du initialisierst das Device noch einmal neu und lädst die Texturen wieder, du musst den ResourceManager (wenn du den aus dem Buch benutzt) nur ein wenig umändern. |
|
Nach oben |
|
|
Brillus Mini JLI'ler
Anmeldedatum: 17.12.2003 Beiträge: 5
Medaillen: Keine
|
Verfasst am: 13.02.2004, 21:28 Titel: |
|
|
Also den Übertäter habe ich gefunden es kommt daher das ich den Bachpuffer mir besorge wenn ich das raus holle funzt es. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|