1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
LPDIRECTDRAWSURFACE Primary;
LPDIRECTDRAWSURFACE Off;
DDSURFACEDESC ddsd;
ZeroMemory (&ddsd, sizeof(ddsd));
ddsd.dwSize = sizeof( ddsd );
ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE |
DDSCAPS_FLIP |
DDSCAPS_COMPLEX;
hr=lpDD->CreateSurface( &ddsd, &Primary, NULL );
if(hr!=DD_OK) ....;
ZeroMemory(&ddscaps, sizeof(ddscaps));
ddscaps.dwCaps = DDSCAPS_BACKBUFFER;
hr= Primary->GetAttachedSurface( &ddscaps, &Off );
if(hr!=DD_OK ) .....;
Puis dans le WinMain
if( PeekMessage( &msg, NULL, 0, 0, PM_NOREMOVE ) )
{
if( !GetMessage( &msg, NULL, 0, 0 ) )
return msg.wParam;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
hr=Primary->Flip( NULL, DDFLIP_WAIT ) ; |
Partager