Something went wrong. Try again.
Reactos
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374#include "ddrawtest.h"
LRESULT WINAPI BasicWindowProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ switch (message) { case WM_DESTROY: { PostQuitMessage (0); return 0; } break; }
return DefWindowProc (hwnd, message, wParam, lParam);}
HWND CreateBasicWindow (VOID){ WNDCLASS wndclass = {0}; wndclass.lpfnWndProc = BasicWindowProc; wndclass.hInstance = GetModuleHandle(NULL); wndclass.lpszClassName = "DDrawTest"; RegisterClass(&wndclass);
return CreateWindow("DDrawTest", "ReactOS DirectDraw Test", WS_POPUP, 0, 0, 10, 10, NULL, NULL, GetModuleHandle(NULL), NULL);}
BOOL CreateSurface(LPDIRECTDRAWSURFACE7* pSurface){ LPDIRECTDRAW7 DirectDraw; LPDIRECTDRAWSURFACE7 Surface; HWND hwnd;
// Create DDraw Object if (DirectDrawCreateEx(NULL, (VOID**)&DirectDraw, IID_IDirectDraw7, NULL) != DD_OK) { printf("ERROR: Failed to set up ddraw\n"); return FALSE; }
if(!( hwnd = CreateBasicWindow() )) { printf("ERROR: Failed to create window\n"); DirectDraw->Release(); return FALSE; }
if (DirectDraw->SetCooperativeLevel (hwnd, DDSCL_NORMAL) != DD_OK) { printf("ERROR: Could not set cooperative level\n"); DirectDraw->Release(); return 0; }
// Creat Surface DDSURFACEDESC2 Desc = { 0 }; Desc.dwHeight = 200; Desc.dwWidth = 200; Desc.dwSize = sizeof (DDSURFACEDESC2); Desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; Desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
if(DirectDraw->CreateSurface(&Desc, &Surface, NULL) != DD_OK) { printf("ERROR: Faild to create Surface\n"); return FALSE; }
DirectDraw->Release();
*pSurface = Surface; return TRUE;}