Flip Surface im Fenster
-
Hallo,
ich hoffe mir kann jemand helfen:
Ich will ein Spiel im Fenstermodus, also nicht Fullscrenn, programmieren, aber ich weiß nicht, wie ich jetzt eine Flip Surface erstelle, denn ein Backbuffer funktioniert ja nicht, so wie im Fullscreen.
Geht das überhaupt oder muss man da eine andere Variante einschlagen?Danke schon mal
-
Wieso soll der BackBuffer nicht windowed funktionieren? Da gibt s nur kein Warten auf das V-Sync - das übernimmt das BS.
M.T.
-
ich habe folgendes geschrieben:
// DirectDrawObjekt anlegen if(FAILED(DirectDrawCreateEx(NULL,(void**)&lpDD7,IID_IDirectDraw7,NULL))) { return Error("Fehler beim Anlegen " "des DirectDraw-Objekts"); } // Kooperationsebene setzen if(FAILED(lpDD7->SetCooperativeLevel(hWnd,DDSCL_NORMAL))) { return Error("Fehler beim Setzen des Kooperationsebene"); } // Struktur zur Beschreibung einer Oberfläche DDSURFACEDESC2 ddsd; // Initialisieren und Größe festlegen ZeroMemory(&ddsd,sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); // Die Angabe wdCaps soll berücksichtigt werden ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT; // Es soll eine primäre Oberfläche angelegt werden ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX | DDSCAPS_VIDEOMEMORY; //Es soll ein Puffer angelegt werden ddsd.dwBackBufferCount = 1; // Oberfläche anlegen if(FAILED(lpDD7->CreateSurface(&ddsd,&lpDDSPrimary,NULL))) { return Error("Fehler beim Anlegen der primären Oberfläche"); } ddsd.ddsCaps.dwCaps = DDSCAPS_BACKBUFFER; if(FAILED(lpDDSPrimary->GetAttachedSurface(&ddsd.ddsCaps,&lpDDSBackBuffer))) { return Error("Fehler beim Anlegen des Puffers"); } // Clipper anlegen if(FAILED(lpDD7->CreateClipper(NULL,&lpDDClipper,NULL))) { return Error("Fehler beim anlegen des Clipper"); } // Clipper mit dem Fenster verbinden if(FAILED(lpDDClipper->SetHWnd(0,hWnd))) { return Error("Fehler bei SetHWnd"); } // Clipper mit der Oberfläche verbinden if(FAILED(lpDDSPrimary->SetClipper(lpDDClipper))) { return Error("Fehler beim Verbinden des Clippers"); } return TRUE;
und es kommt immer die Fehlermeldung:
"Fehler beim Anlegen der Primären Oberfläche.Thx
-
In einer Fensteranwendung gibt es keinen Backbuffer. Du kannst es jedoch mit einer normalen Oberfläche simulieren.
-
Danke erstmal.
Jetzt würde ich noch gerne wissen, wie ich das ganze mit einer normalen Surface simulieren kann.
vielleicht könnt ihr mir ja sagen, wo es ein Tutorial dazu gibt.
Oder vielleicht könnte mir ja jemand, der Zeit hat den Code posten.Thx