17#define TEST_DURATION 10000
18#define DD_TEST_WIDTH 640
19#define DD_TEST_HEIGHT 480
21#define DD_SQUARE_SIZE 100
22#define DD_SQUARE_STEP 2
27 WCHAR szTestDescription[256];
130 lpDD->lpVtbl->Release(lpDD);
135 ZeroMemory(&DDSurfaceDesc,
sizeof(DDSurfaceDesc));
136 DDSurfaceDesc.dwSize =
sizeof(DDSurfaceDesc);
139 DDSurfaceDesc.dwBackBufferCount = 0;
141 if(lpDD->lpVtbl->CreateSurface(lpDD, &DDSurfaceDesc, &lpDDSurface,
NULL) !=
DD_OK)
162 lpDDSurface->lpVtbl->
Release(lpDDSurface);
163 lpDD->lpVtbl->Release(lpDD);
172 if (lpDDSurface->lpVtbl->GetDC(lpDDSurface, &
hdc) ==
DD_OK)
175 HBRUSH BlackBrush, WhiteBrush;
196 lpDDSurface->lpVtbl->ReleaseDC(lpDDSurface,
hdc);
217 ZeroMemory(&DDSurfaceDesc,
sizeof(DDSurfaceDesc));
218 DDSurfaceDesc.dwSize =
sizeof(DDSurfaceDesc);
229 lpDD->lpVtbl->Release(lpDD);
234 DDSurfaceDesc.dwBackBufferCount = 1;
248 if(lpDD->lpVtbl->CreateSurface(lpDD, &DDSurfaceDesc, &lpDDPrimarySurface,
NULL) !=
DD_OK)
250 lpDD->lpVtbl->Release(lpDD);
257 if (lpDDPrimarySurface->lpVtbl->GetAttachedSurface(lpDDPrimarySurface, &DDSCaps,&lpDDBackBuffer) !=
DD_OK)
259 lpDDPrimarySurface->lpVtbl->
Release(lpDDPrimarySurface);
260 lpDD->lpVtbl->Release(lpDD);
267 ZeroMemory(&DDBBSurfaceDesc,
sizeof(DDBBSurfaceDesc));
268 DDBBSurfaceDesc.dwSize =
sizeof(DDBBSurfaceDesc);
274 if(lpDD->lpVtbl->CreateSurface(lpDD, &DDBBSurfaceDesc, &lpDDBackBuffer,
NULL) !=
DD_OK)
276 lpDD->lpVtbl->Release(lpDD);
277 lpDDPrimarySurface->lpVtbl->
Release(lpDDPrimarySurface);
304 DDUpdateFrame(lpDDPrimarySurface,lpDDBackBuffer, Fullscreen,&posX, &posY, &xGain, &yGain, &rectDD);
312 lpDDPrimarySurface->lpVtbl->
Release(lpDDPrimarySurface);
315 lpDDBackBuffer->lpVtbl->
Release(lpDDBackBuffer);
316 lpDD->lpVtbl->Release(lpDD);
329 DDBlitFx.
dwSize =
sizeof(DDBlitFx);
334 if (lpDDBackBuffer->lpVtbl->GetDC(lpDDBackBuffer, &
hdc) ==
DD_OK)
349 if(*posX < 0) *gainX = -1*(*gainX);
350 if(*posY < 0) *gainY = -1*(*gainY);
355 lpDDBackBuffer->lpVtbl->ReleaseDC(lpDDBackBuffer,
hdc);
359 lpDDPrimarySurface->lpVtbl->Flip(lpDDPrimarySurface,
NULL,
DDFLIP_WAIT);
363 lpDDPrimarySurface->lpVtbl->Blt(lpDDPrimarySurface, rectDD, lpDDBackBuffer,
NULL,
DDBLT_WAIT,
NULL);
#define IDS_DDPRIMARY_DESCRIPTION
#define IDS_DDTEST_DESCRIPTION
#define IDS_DDFULLSCREEN_DESCRIPTION
#define IDS_DDOFFSCREEN_RESULT
#define IDS_DDOFFSCREEN_DESCRIPTION
#define IDS_DDPRIMARY_RESULT
#define IDS_DDFULLSCREEN_RESULT
VOID DDRedrawFrame(LPDIRECTDRAWSURFACE lpDDSurface)
BOOL StartDDTest(HWND hWnd, HINSTANCE hInstance, INT resTestDescription, INT resResult, INT TestNr)
BOOL DDPrimarySurfaceTest(HWND hWnd)
VOID DDUpdateFrame(LPDIRECTDRAWSURFACE lpDDPrimarySurface, LPDIRECTDRAWSURFACE lpDDBackBuffer, BOOL Fullscreen, INT *posX, INT *posY, INT *gainX, INT *gainY, RECT *rectDD)
BOOL DDOffscreenBufferTest(HWND hWnd, BOOL Fullscreen)
HRESULT WINAPI DirectDrawCreate(LPGUID lpGUID, LPDIRECTDRAW *lplpDD, LPUNKNOWN pUnkOuter)
static const WCHAR szDescription[]
unsigned __int3264 UINT_PTR
#define DDSCAPS_PRIMARYSURFACE
#define DDSCAPS_OFFSCREENPLAIN
struct IDirectDraw * LPDIRECTDRAW
#define DDSCAPS_BACKBUFFER
#define DDSD_BACKBUFFERCOUNT
TW_UINT32 TW_UINT16 TW_UINT16 MSG
HGDIOBJ WINAPI GetStockObject(_In_ int)
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
BOOL WINAPI ClientToScreen(_In_ HWND, _Inout_ LPPOINT)
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI OffsetRect(_Inout_ LPRECT, _In_ int, _In_ int)
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)
BOOL WINAPI DestroyWindow(_In_ HWND)
int WINAPI GetSystemMetrics(_In_ int)
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO