#include <windows.h>
#include <ddraw.h>
-LPDIRECTDRAW7 DirectDraw;
-LPDIRECTDRAWSURFACE7 FrontBuffer;
-LPDIRECTDRAWCLIPPER Clipper;
+LPDIRECTDRAW7 DirectDraw = NULL;
+LPDIRECTDRAWSURFACE7 FrontBuffer = NULL;
+LPDIRECTDRAWCLIPPER Clipper = NULL;
PCHAR DDErrorString (HRESULT hResult);
LONG WINAPI WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam);
bool Fullscreen, Running;
-
+//#define USE_CLIPPER
bool Init (HWND hwnd)
{
return 0;
}
+#ifdef USE_CLIPPER
// Set up the clipper
OutputDebugString("=> DDraw->CreateClipper\n");
MessageBox(0,DDErrorString(hResult), "FrontBuffer->SetClipper", 0);
return 0;
}
+#endif
return true;
}
-void Draw (void)
+void Draw (HWND hwnd)
{
- // Make the fronbuffer pink
+ // Make the frontbuffer pink
+ RECT rect;
+ GetWindowRect(hwnd, &rect); // this is not necessary when clippper is used
DDBLTFX ddbltfx;
ddbltfx.dwSize = sizeof(DDBLTFX);
OutputDebugString("=> Surface->Blt (DDBLT_COLORFILL)\n");
- FrontBuffer->Blt(NULL, NULL, NULL, DDBLT_COLORFILL | DDBLT_WAIT, &ddbltfx);
-}
+ FrontBuffer->Blt(&rect, NULL, NULL, DDBLT_COLORFILL | DDBLT_WAIT, &ddbltfx);
+}
void CleanUp (void)
{
HWND hwnd = CreateWindow("DDrawDemo",
"ReactOS DirectDraw Demo",
- Fullscreen ? WS_POPUP :WS_OVERLAPPEDWINDOW,
+#ifdef USE_CLIPPER
+ Fullscreen ? WS_POPUP : WS_OVERLAPPEDWINDOW,
+#else
+ WS_POPUP,
+#endif
CW_USEDEFAULT,
CW_USEDEFAULT,
800,
while (Running)
{
if(Fullscreen)
- Draw();
+ Draw(hwnd);
if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
case WM_PAINT:
{
if(!Fullscreen)
- Draw();
+ Draw(hwnd);
} break;
case WM_KEYDOWN: