16#define TEST_DURATION 10000
17#define DD_TEST_WIDTH 640
18#define DD_TEST_HEIGHT 480
20#define DD_SQUARE_SIZE 100
21#define DD_SQUARE_STEP 2
26 WCHAR szTestDescription[256];
129 lpDD->lpVtbl->Release(lpDD);
134 ZeroMemory(&DDSurfaceDesc,
sizeof(DDSurfaceDesc));
135 DDSurfaceDesc.dwSize =
sizeof(DDSurfaceDesc);
138 DDSurfaceDesc.dwBackBufferCount = 0;
140 if(lpDD->lpVtbl->CreateSurface(lpDD, &DDSurfaceDesc, &lpDDSurface,
NULL) !=
DD_OK)
161 lpDDSurface->lpVtbl->
Release(lpDDSurface);
162 lpDD->lpVtbl->Release(lpDD);
171 if (lpDDSurface->lpVtbl->GetDC(lpDDSurface, &
hdc) ==
DD_OK)
174 HBRUSH BlackBrush, WhiteBrush;
195 lpDDSurface->lpVtbl->ReleaseDC(lpDDSurface,
hdc);
216 ZeroMemory(&DDSurfaceDesc,
sizeof(DDSurfaceDesc));
217 DDSurfaceDesc.dwSize =
sizeof(DDSurfaceDesc);
228 lpDD->lpVtbl->Release(lpDD);
233 DDSurfaceDesc.dwBackBufferCount = 1;
247 if(lpDD->lpVtbl->CreateSurface(lpDD, &DDSurfaceDesc, &lpDDPrimarySurface,
NULL) !=
DD_OK)
249 lpDD->lpVtbl->Release(lpDD);
256 if (lpDDPrimarySurface->lpVtbl->GetAttachedSurface(lpDDPrimarySurface, &DDSCaps,&lpDDBackBuffer) !=
DD_OK)
258 lpDDPrimarySurface->lpVtbl->
Release(lpDDPrimarySurface);
259 lpDD->lpVtbl->Release(lpDD);
266 ZeroMemory(&DDBBSurfaceDesc,
sizeof(DDBBSurfaceDesc));
267 DDBBSurfaceDesc.dwSize =
sizeof(DDBBSurfaceDesc);
273 if(lpDD->lpVtbl->CreateSurface(lpDD, &DDBBSurfaceDesc, &lpDDBackBuffer,
NULL) !=
DD_OK)
275 lpDD->lpVtbl->Release(lpDD);
276 lpDDPrimarySurface->lpVtbl->
Release(lpDDPrimarySurface);
303 DDUpdateFrame(lpDDPrimarySurface,lpDDBackBuffer, Fullscreen,&posX, &posY, &xGain, &yGain, &rectDD);
311 lpDDPrimarySurface->lpVtbl->
Release(lpDDPrimarySurface);
314 lpDDBackBuffer->lpVtbl->
Release(lpDDBackBuffer);
315 lpDD->lpVtbl->Release(lpDD);
328 DDBlitFx.
dwSize =
sizeof(DDBlitFx);
333 if (lpDDBackBuffer->lpVtbl->GetDC(lpDDBackBuffer, &
hdc) ==
DD_OK)
348 if(*posX < 0) *gainX = -1*(*gainX);
349 if(*posY < 0) *gainY = -1*(*gainY);
354 lpDDBackBuffer->lpVtbl->ReleaseDC(lpDDBackBuffer,
hdc);
358 lpDDPrimarySurface->lpVtbl->Flip(lpDDPrimarySurface,
NULL,
DDFLIP_WAIT);
362 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