mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 22:13:06 +00:00
update dxhaltest with some new test, Thuse test are not 100% correct in all case. some error should be supress when it been run in vmware with windows or reactos
svn path=/trunk/; revision=26718
This commit is contained in:
parent
a3d6e8f3e9
commit
62ae8a3919
9 changed files with 539 additions and 114 deletions
44
rostests/dxtest/win32kdxtest/NtGdiDdCanCreateSurface.c
Normal file
44
rostests/dxtest/win32kdxtest/NtGdiDdCanCreateSurface.c
Normal file
|
@ -0,0 +1,44 @@
|
|||
|
||||
#include <stdio.h>
|
||||
/* SDK/DDK/NDK Headers. */
|
||||
#include <windows.h>
|
||||
#include <wingdi.h>
|
||||
#include <winddi.h>
|
||||
#include <d3dnthal.h>
|
||||
#include <dll/directx/d3d8thk.h>
|
||||
#include "test.h"
|
||||
|
||||
/*
|
||||
* Test see if we can delete a DirectDrawObject from win32k
|
||||
*
|
||||
*/
|
||||
void
|
||||
test_NtGdiDdCanCreateSurface(HANDLE hDirectDrawLocal)
|
||||
{
|
||||
int fails=0;
|
||||
BOOL retValue=FALSE;
|
||||
DDHAL_CANCREATESURFACEDATA pCanCreateSurface;
|
||||
DDSURFACEDESC2 desc;
|
||||
|
||||
RtlZeroMemory(&pCanCreateSurface,sizeof(DDHAL_CANCREATESURFACEDATA));
|
||||
RtlZeroMemory(&desc,sizeof(DDSURFACEDESC2));
|
||||
|
||||
/* crash in windows 2000 */
|
||||
retValue = OsThunkDdCanCreateSurface(NULL,NULL);
|
||||
testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"1. NtGdiDdCanCreateSurface(NULL,NULL);\0");
|
||||
|
||||
retValue = OsThunkDdCanCreateSurface(hDirectDrawLocal,NULL);
|
||||
testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"2. NtGdiDdCanCreateSurface(hDirectDrawLocal,NULL);\0");
|
||||
|
||||
retValue = OsThunkDdCanCreateSurface(hDirectDrawLocal,(PDD_CANCREATESURFACEDATA)&pCanCreateSurface);
|
||||
testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"3. NtGdiDdCanCreateSurface(hDirectDrawLocal,pCanCreateSurface);\0");
|
||||
|
||||
pCanCreateSurface.lpDDSurfaceDesc = &desc;
|
||||
desc.dwSize = sizeof(DDSURFACEDESC2);
|
||||
|
||||
retValue = OsThunkDdCanCreateSurface(hDirectDrawLocal,(PDD_CANCREATESURFACEDATA)&pCanCreateSurface);
|
||||
testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"4. NtGdiDdCanCreateSurface(hDirectDrawLocal,pCanCreateSurface);\0");
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -19,6 +19,23 @@ test_NtGdiDdCreateDirectDrawObject()
|
|||
int fails=0;
|
||||
HDC hdc=CreateDCW(L"Display",NULL,NULL,NULL);
|
||||
|
||||
if (hdc == NULL)
|
||||
{
|
||||
printf("No hdc was created with Display, trying now with DISPLAY\n");
|
||||
hdc=CreateDCW(L"DISPLAY",NULL,NULL,NULL);
|
||||
if (hdc == NULL)
|
||||
{
|
||||
printf("No hdc was created with DISPLAY, trying now with NULL\n");
|
||||
hdc=CreateDCW(NULL,NULL,NULL,NULL);
|
||||
}
|
||||
}
|
||||
|
||||
if (hdc == NULL)
|
||||
{
|
||||
printf("No hdc was created at all perpare all test will fail\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
printf("Start testing of NtGdiDdCreateDirectDrawObject\n");
|
||||
|
||||
retValue = OsThunkDdCreateDirectDrawObject(NULL);
|
||||
|
|
40
rostests/dxtest/win32kdxtest/NtGdiDdGetScanLine.c
Normal file
40
rostests/dxtest/win32kdxtest/NtGdiDdGetScanLine.c
Normal file
|
@ -0,0 +1,40 @@
|
|||
#include <stdio.h>
|
||||
/* SDK/DDK/NDK Headers. */
|
||||
#include <windows.h>
|
||||
#include <wingdi.h>
|
||||
#include <winddi.h>
|
||||
#include <d3dnthal.h>
|
||||
#include <dll/directx/d3d8thk.h>
|
||||
#include "test.h"
|
||||
|
||||
/*
|
||||
* Test see if we can delete a DirectDrawObject from win32k
|
||||
*
|
||||
*/
|
||||
void
|
||||
test_NtGdiDdGetScanLine(HANDLE hDirectDrawLocal)
|
||||
{
|
||||
int fails=0;
|
||||
BOOL retValue=FALSE;
|
||||
DD_GETSCANLINEDATA puGetScanLineData;
|
||||
|
||||
printf("Start testing of NtGdiDdGetScanLine\n");
|
||||
RtlZeroMemory(&puGetScanLineData,sizeof(DD_GETSCANLINEDATA));
|
||||
|
||||
retValue = OsThunkDdGetScanLine(NULL,NULL);
|
||||
testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"1. NtGdiDdGetScanLine(NULL,NULL);\0");
|
||||
|
||||
retValue = OsThunkDdGetScanLine(hDirectDrawLocal,NULL);
|
||||
testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"2. NtGdiDdGetScanLine(hDirectDrawLocal,NULL);\0");
|
||||
|
||||
puGetScanLineData.ddRVal = DDERR_GENERIC;
|
||||
retValue = OsThunkDdGetScanLine(hDirectDrawLocal,&puGetScanLineData);
|
||||
testing_eq(retValue,DDHAL_DRIVER_NOTHANDLED,fails,"3. NtGdiDdGetScanLine(hDirectDrawLocal,puGetScanLineData);\0");
|
||||
testing_noteq(puGetScanLineData.ddRVal,DD_OK,fails,"4. NtGdiDdGetScanLine(hDirectDrawLocal,puGetScanLineData);\0");
|
||||
testing_eq(puGetScanLineData.dwScanLine,0,fails,"4. NtGdiDdGetScanLine(hDirectDrawLocal,puGetScanLineData);\0");
|
||||
|
||||
|
||||
/* FIXME DDERR_VERTICALBLANKINPROGRESS test */
|
||||
|
||||
show_status(fails, "NtGdiDdGetScanLine\0");
|
||||
}
|
|
@ -9,10 +9,28 @@
|
|||
|
||||
extern BOOL dumping_on;
|
||||
|
||||
/* my struct */
|
||||
struct
|
||||
{
|
||||
DWORD pos;
|
||||
} *mytest;
|
||||
|
||||
/*
|
||||
* Test see if we can setup DirectDrawObject
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* ToDO
|
||||
* 1. add more testcase it is only some, but we do not test for all case
|
||||
* that happen only some
|
||||
*
|
||||
* 2.Fixed the false alaret for drivers only support 2d dx interface
|
||||
*
|
||||
* 3. fixed the dumping of d3d struct.
|
||||
*
|
||||
*/
|
||||
|
||||
void
|
||||
test_NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal)
|
||||
{
|
||||
|
@ -36,10 +54,10 @@ test_NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal)
|
|||
D3DNTHAL_GLOBALDRIVERDATA D3dDriverData;
|
||||
DD_D3DBUFCALLBACKS D3dBufferCallbacks;
|
||||
DDSURFACEDESC2 D3dTextureFormats[100];
|
||||
// DWORD NumHeaps = 0;
|
||||
DWORD NumHeaps = 0;
|
||||
VIDEOMEMORY vmList;
|
||||
// DWORD NumFourCC = 0;
|
||||
//DWORD FourCC = 0;
|
||||
DWORD NumFourCC = 0;
|
||||
DWORD FourCC = 0;
|
||||
|
||||
/* clear data */
|
||||
memset(&vmList,0,sizeof(VIDEOMEMORY));
|
||||
|
@ -202,7 +220,7 @@ test_NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal)
|
|||
/* FIXME dump puD3dCallbacks */
|
||||
}
|
||||
|
||||
/* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, .... */
|
||||
/* testing OsThunkDdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, */
|
||||
printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ....)\n");
|
||||
|
||||
pHalInfo = &HalInfo;
|
||||
|
@ -247,5 +265,131 @@ test_NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal)
|
|||
/* FIXME dump puD3dDriverData */
|
||||
}
|
||||
|
||||
/* testing OsThunkDdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, D3dBufferCallbacks, NULL, */
|
||||
printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, D3dBufferCallbacks, NULL, ....)\n");
|
||||
|
||||
pHalInfo = &HalInfo;
|
||||
pCallBackFlags = CallBackFlags;
|
||||
puD3dCallbacks = &D3dCallbacks;
|
||||
puD3dDriverData = &D3dDriverData;
|
||||
puD3dBufferCallbacks = &D3dBufferCallbacks;
|
||||
|
||||
RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO));
|
||||
RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3);
|
||||
RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS));
|
||||
RtlZeroMemory(puD3dDriverData,sizeof(D3DNTHAL_CALLBACKS));
|
||||
|
||||
retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo,
|
||||
pCallBackFlags, puD3dCallbacks,
|
||||
puD3dDriverData, puD3dBufferCallbacks,
|
||||
puD3dTextureFormats, puNumHeaps,
|
||||
puvmList, puNumFourCC,
|
||||
puFourCC);
|
||||
|
||||
testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0");
|
||||
testing_eq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0");
|
||||
testing_eq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0");
|
||||
testing_noteq(puD3dCallbacks->dwSize,sizeof(D3DNTHAL_CALLBACKS),fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0");
|
||||
|
||||
testing_noteq(puD3dDriverData->dwSize,sizeof(D3DNTHAL_GLOBALDRIVERDATA),fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dBufferCallbacks, NULL, ...);\0");
|
||||
|
||||
testing_noteq(puD3dTextureFormats,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0");
|
||||
testing_noteq(puNumFourCC,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0");
|
||||
testing_noteq(puFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0");
|
||||
if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) &&
|
||||
(pHalInfo->dwSize != sizeof(DD_HALINFO_V4)))
|
||||
{
|
||||
printf("9. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\n");
|
||||
fails++;
|
||||
}
|
||||
|
||||
if (puD3dBufferCallbacks)
|
||||
{
|
||||
testing_noteq(puD3dBufferCallbacks->dwSize,sizeof(DD_D3DBUFCALLBACKS),fails,"11. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL...);\0");
|
||||
}
|
||||
|
||||
if (dumping_on == TRUE)
|
||||
{
|
||||
dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)");
|
||||
dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)");
|
||||
/* FIXME dump puD3dCallbacks */
|
||||
/* FIXME dump puD3dDriverData */
|
||||
/* FIXME dump D3dBufferCallbacks */
|
||||
|
||||
}
|
||||
|
||||
/* testing OsThunkDdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, D3dBufferCallbacks, puD3dTextureFormats, NULL, */
|
||||
printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, D3dBufferCallbacks, puD3dTextureFormats, NULL, ....)\n");
|
||||
|
||||
pHalInfo = &HalInfo;
|
||||
pCallBackFlags = CallBackFlags;
|
||||
puD3dCallbacks = &D3dCallbacks;
|
||||
puD3dDriverData = &D3dDriverData;
|
||||
puD3dBufferCallbacks = &D3dBufferCallbacks;
|
||||
|
||||
RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO));
|
||||
RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3);
|
||||
RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS));
|
||||
//RtlZeroMemory(puD3dDriverData,sizeof(D3DNTHAL_CALLBACKS));
|
||||
RtlZeroMemory(&D3dBufferCallbacks,sizeof(D3DNTHAL_CALLBACKS));
|
||||
|
||||
if (puD3dDriverData)
|
||||
{
|
||||
puD3dTextureFormats = malloc (puD3dDriverData->dwNumTextureFormats * sizeof(DDSURFACEDESC2));
|
||||
if (!puD3dTextureFormats)
|
||||
printf("Waring Out of memory\n");
|
||||
|
||||
RtlZeroMemory(puD3dTextureFormats, puD3dDriverData->dwNumTextureFormats * sizeof(DDSURFACEDESC2));
|
||||
}
|
||||
|
||||
retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo,
|
||||
pCallBackFlags, puD3dCallbacks,
|
||||
puD3dDriverData, puD3dBufferCallbacks,
|
||||
puD3dTextureFormats, puNumHeaps,
|
||||
puvmList, puNumFourCC,
|
||||
puFourCC);
|
||||
|
||||
testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0");
|
||||
testing_eq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0");
|
||||
testing_eq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0");
|
||||
testing_noteq(puD3dCallbacks->dwSize,sizeof(D3DNTHAL_CALLBACKS),fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0");
|
||||
|
||||
testing_noteq(puD3dDriverData->dwSize,sizeof(D3DNTHAL_GLOBALDRIVERDATA),fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0");
|
||||
|
||||
testing_noteq(puNumFourCC,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0");
|
||||
testing_noteq(puFourCC,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0");
|
||||
if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) &&
|
||||
(pHalInfo->dwSize != sizeof(DD_HALINFO_V4)))
|
||||
{
|
||||
printf("8. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\n");
|
||||
fails++;
|
||||
}
|
||||
|
||||
if (puD3dBufferCallbacks)
|
||||
{
|
||||
testing_noteq(puD3dBufferCallbacks->dwSize,sizeof(DD_D3DBUFCALLBACKS),fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL...);\0");
|
||||
}
|
||||
|
||||
if (puD3dTextureFormats)
|
||||
{
|
||||
/* fixme test case for it */
|
||||
}
|
||||
|
||||
if (dumping_on == TRUE)
|
||||
{
|
||||
dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)");
|
||||
dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)");
|
||||
/* FIXME dump puD3dCallbacks */
|
||||
/* FIXME dump puD3dDriverData */
|
||||
/* FIXME dump D3dBufferCallbacks */
|
||||
/* FIXME dump puD3dTextureFormats */
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (puD3dTextureFormats)
|
||||
free (puD3dTextureFormats);
|
||||
show_status(fails, "NtGdiDdQueryDirectDrawObject\0");
|
||||
}
|
44
rostests/dxtest/win32kdxtest/NtGdiDdWaitForVerticalBlank.c
Normal file
44
rostests/dxtest/win32kdxtest/NtGdiDdWaitForVerticalBlank.c
Normal file
|
@ -0,0 +1,44 @@
|
|||
#include <stdio.h>
|
||||
/* SDK/DDK/NDK Headers. */
|
||||
#include <windows.h>
|
||||
#include <wingdi.h>
|
||||
#include <winddi.h>
|
||||
#include <d3dnthal.h>
|
||||
#include <dll/directx/d3d8thk.h>
|
||||
#include "test.h"
|
||||
|
||||
/*
|
||||
* Test see if we can delete a DirectDrawObject from win32k
|
||||
*
|
||||
*/
|
||||
void
|
||||
test_NtGdiDdWaitForVerticalBlank(HANDLE hDirectDrawLocal)
|
||||
{
|
||||
int fails=0;
|
||||
BOOL retValue=FALSE;
|
||||
DDHAL_WAITFORVERTICALBLANKDATA pDdWaitForVerticalBlankData;
|
||||
|
||||
RtlZeroMemory(&pDdWaitForVerticalBlankData,sizeof(DDHAL_WAITFORVERTICALBLANKDATA));
|
||||
|
||||
retValue = OsThunkDdWaitForVerticalBlank(NULL,NULL);
|
||||
testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"1. NtGdiDdWaitForVerticalBlank(NULL,NULL);\0");
|
||||
|
||||
retValue = OsThunkDdWaitForVerticalBlank(hDirectDrawLocal,NULL);
|
||||
testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"2. NtGdiDdWaitForVerticalBlank(hDirectDrawLocal,NULL);\0");
|
||||
|
||||
retValue = OsThunkDdWaitForVerticalBlank(hDirectDrawLocal,(PDD_WAITFORVERTICALBLANKDATA)&pDdWaitForVerticalBlankData);
|
||||
testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"3. NtGdiDdWaitForVerticalBlank(hDirectDrawLocal,NULL);\0");
|
||||
testing_eq(pDdWaitForVerticalBlankData.ddRVal, DD_OK,fails,"4. NtGdiDdWaitForVerticalBlank(hDirectDrawLocal,NULL);\0");
|
||||
|
||||
RtlZeroMemory(&pDdWaitForVerticalBlankData,sizeof(DDHAL_WAITFORVERTICALBLANKDATA));
|
||||
pDdWaitForVerticalBlankData.dwFlags = DDWAITVB_I_TESTVB;
|
||||
retValue = OsThunkDdWaitForVerticalBlank(hDirectDrawLocal,(PDD_WAITFORVERTICALBLANKDATA)&pDdWaitForVerticalBlankData);
|
||||
|
||||
testing_eq(retValue, DDHAL_DRIVER_NOTHANDLED,fails,"5. NtGdiDdWaitForVerticalBlank(hDirectDrawLocal,NULL);\0");
|
||||
testing_noteq(pDdWaitForVerticalBlankData.ddRVal, DD_OK,fails,"6. NtGdiDdWaitForVerticalBlank(hDirectDrawLocal,NULL);\0");
|
||||
|
||||
retValue = OsThunkDdWaitForVerticalBlank(hDirectDrawLocal,(PDD_WAITFORVERTICALBLANKDATA)&pDdWaitForVerticalBlankData);
|
||||
|
||||
show_status(fails, "NtGdiDdWaitForVerticalBlank\0");
|
||||
}
|
||||
|
|
@ -9,113 +9,77 @@
|
|||
|
||||
#include "test.h"
|
||||
|
||||
#define checkflag(dwflag,dwvalue,text) \
|
||||
if (dwflag & dwvalue) \
|
||||
{ \
|
||||
if (count!=0) \
|
||||
{ \
|
||||
printf("| "); \
|
||||
} \
|
||||
dwflag = dwflag - dwvalue; \
|
||||
printf("%s ",text); \
|
||||
count++; \
|
||||
}
|
||||
|
||||
#define endcheckflag(dwflag,text) \
|
||||
if (count==0) \
|
||||
printf("0x%08lx\n",dwflag);\
|
||||
else \
|
||||
printf("\n");\
|
||||
if (flag != 0) \
|
||||
printf("undoc value in %s flags value %04lx\n",text,dwflag);
|
||||
|
||||
|
||||
|
||||
void
|
||||
dump_CallBackFlags(DWORD *pCallBackFlags, char *text)
|
||||
{
|
||||
UINT flag=pCallBackFlags[0];
|
||||
INT count=0;
|
||||
UINT flag;
|
||||
INT count;
|
||||
|
||||
printf("dumping the CallBackFlags from %s\n",text);
|
||||
printf("pCallBackFlags[0] : ");
|
||||
if (flag & DDHAL_CB32_CANCREATESURFACE)
|
||||
{
|
||||
if (count!=0)
|
||||
{
|
||||
printf("| ");
|
||||
}
|
||||
flag = flag - DDHAL_CB32_CANCREATESURFACE;
|
||||
printf("DDHAL_CB32_CANCREATESURFACE ");
|
||||
count++;
|
||||
}
|
||||
if (flag & DDHAL_CB32_CREATEPALETTE)
|
||||
{
|
||||
if (count!=0)
|
||||
{
|
||||
printf("| ");
|
||||
}
|
||||
flag = flag - DDHAL_CB32_CREATEPALETTE;
|
||||
printf("DDHAL_CB32_CREATEPALETTE ");
|
||||
count++;
|
||||
}
|
||||
if (flag & DDHAL_CB32_CREATESURFACE)
|
||||
{
|
||||
if (count!=0)
|
||||
{
|
||||
printf("| ");
|
||||
}
|
||||
flag = flag - DDHAL_CB32_CREATESURFACE;
|
||||
printf("DDHAL_CB32_CREATESURFACE ");
|
||||
count++;
|
||||
}
|
||||
if (flag & DDHAL_CB32_GETSCANLINE)
|
||||
{
|
||||
if (count!=0)
|
||||
{
|
||||
printf("| ");
|
||||
}
|
||||
flag = flag - DDHAL_CB32_GETSCANLINE;
|
||||
printf("DDHAL_CB32_GETSCANLINE ");
|
||||
count++;
|
||||
}
|
||||
if (flag & DDHAL_CB32_MAPMEMORY)
|
||||
{
|
||||
if (count!=0)
|
||||
{
|
||||
printf("| ");
|
||||
}
|
||||
flag = flag - DDHAL_CB32_MAPMEMORY;
|
||||
printf("DDHAL_CB32_MAPMEMORY ");
|
||||
count++;
|
||||
}
|
||||
if (flag & DDHAL_CB32_SETCOLORKEY)
|
||||
{
|
||||
if (count!=0)
|
||||
{
|
||||
printf("| ");
|
||||
}
|
||||
flag = flag - DDHAL_CB32_SETCOLORKEY;
|
||||
printf("DDHAL_CB32_SETCOLORKEY ");
|
||||
count++;
|
||||
}
|
||||
if (flag & DDHAL_CB32_SETMODE)
|
||||
{
|
||||
if (count!=0)
|
||||
{
|
||||
printf("| ");
|
||||
}
|
||||
flag = flag - DDHAL_CB32_SETMODE;
|
||||
printf("DDHAL_CB32_SETMODE ");
|
||||
count++;
|
||||
}
|
||||
if (flag & DDHAL_CB32_WAITFORVERTICALBLANK)
|
||||
{
|
||||
if (count!=0)
|
||||
{
|
||||
printf("| ");
|
||||
}
|
||||
flag = flag - DDHAL_CB32_WAITFORVERTICALBLANK;
|
||||
printf("DDHAL_CB32_WAITFORVERTICALBLANK ");
|
||||
count++;
|
||||
}
|
||||
|
||||
if (count==0)
|
||||
{
|
||||
printf("0x%04lx\n",pCallBackFlags[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\n");
|
||||
}
|
||||
flag=pCallBackFlags[0];
|
||||
count=0;
|
||||
checkflag(flag,DDHAL_CB32_CANCREATESURFACE,"DDHAL_CB32_CANCREATESURFACE");
|
||||
checkflag(flag,DDHAL_CB32_CREATEPALETTE,"DDHAL_CB32_CREATEPALETTE");
|
||||
checkflag(flag,DDHAL_CB32_CREATESURFACE,"DDHAL_CB32_CREATESURFACE");
|
||||
checkflag(flag,DDHAL_CB32_GETSCANLINE,"DDHAL_CB32_GETSCANLINE");
|
||||
checkflag(flag,DDHAL_CB32_MAPMEMORY,"DDHAL_CB32_MAPMEMORY");
|
||||
checkflag(flag,DDHAL_CB32_SETCOLORKEY,"DDHAL_CB32_SETCOLORKEY");
|
||||
checkflag(flag,DDHAL_CB32_SETMODE,"DDHAL_CB32_SETMODE");
|
||||
checkflag(flag,DDHAL_CB32_WAITFORVERTICALBLANK,"DDHAL_CB32_WAITFORVERTICALBLANK");
|
||||
endcheckflag(flag,"pCallBackFlags[0]");
|
||||
|
||||
/* SURFACE callback */
|
||||
printf("pCallBackFlags[1] : ");
|
||||
flag = pCallBackFlags[1];
|
||||
count = 0;
|
||||
checkflag(flag,DDHAL_SURFCB32_ADDATTACHEDSURFACE,"DDHAL_SURFCB32_ADDATTACHEDSURFACE");
|
||||
checkflag(flag,DDHAL_SURFCB32_BLT,"DDHAL_SURFCB32_BLT");
|
||||
checkflag(flag,DDHAL_SURFCB32_DESTROYSURFACE,"DDHAL_SURFCB32_DESTROYSURFACE");
|
||||
checkflag(flag,DDHAL_SURFCB32_FLIP,"DDHAL_SURFCB32_FLIP");
|
||||
checkflag(flag,DDHAL_SURFCB32_GETBLTSTATUS,"DDHAL_SURFCB32_GETBLTSTATUS");
|
||||
checkflag(flag,DDHAL_SURFCB32_GETFLIPSTATUS,"DDHAL_SURFCB32_GETFLIPSTATUS");
|
||||
checkflag(flag,DDHAL_SURFCB32_LOCK,"DDHAL_SURFCB32_LOCK");
|
||||
checkflag(flag,DDHAL_SURFCB32_RESERVED4,"DDHAL_SURFCB32_RESERVED4");
|
||||
checkflag(flag,DDHAL_SURFCB32_SETCLIPLIST,"DDHAL_SURFCB32_SETCLIPLIST");
|
||||
checkflag(flag,DDHAL_SURFCB32_SETCOLORKEY,"DDHAL_SURFCB32_SETCOLORKEY");
|
||||
checkflag(flag,DDHAL_SURFCB32_SETOVERLAYPOSITION,"DDHAL_SURFCB32_SETOVERLAYPOSITION");
|
||||
checkflag(flag,DDHAL_SURFCB32_SETPALETTE,"DDHAL_SURFCB32_SETPALETTE");
|
||||
checkflag(flag,DDHAL_SURFCB32_UNLOCK,"DDHAL_SURFCB32_UNLOCK");
|
||||
checkflag(flag,DDHAL_SURFCB32_UPDATEOVERLAY,"DDHAL_SURFCB32_UPDATEOVERLAY");
|
||||
endcheckflag(flag,"pCallBackFlags[1]");
|
||||
|
||||
|
||||
if (flag != 0)
|
||||
{
|
||||
printf("undoc value in DD_CALLBACKS flags value %04lx\n",flag);
|
||||
}
|
||||
|
||||
printf("pCallBackFlags[1] : 0x%04lx\n",pCallBackFlags[1]);
|
||||
printf("pCallBackFlags[2] : 0x%04lx\n",pCallBackFlags[2]);
|
||||
/* palleted */
|
||||
printf("pCallBackFlags[2] : ");
|
||||
flag = pCallBackFlags[2];
|
||||
count = 0;
|
||||
checkflag(flag,DDHAL_PALCB32_DESTROYPALETTE,"DDHAL_PALCB32_DESTROYPALETTE");
|
||||
checkflag(flag,DDHAL_PALCB32_SETENTRIES,"DDHAL_PALCB32_SETENTRIES");
|
||||
endcheckflag(flag,"pCallBackFlags[2]");
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -225,6 +189,9 @@ dump_halinfo(DD_HALINFO *pHalInfo, char *text)
|
|||
else if (pHalInfo->dwSize == sizeof(DD_HALINFO))
|
||||
{
|
||||
int t;
|
||||
UINT flag;
|
||||
INT count=0;
|
||||
LPD3DNTHAL_GLOBALDRIVERDATA lpD3DGlobalDriverData = pHalInfo->lpD3DGlobalDriverData;
|
||||
|
||||
printf("DD_HALINFO Version NT 2000/XP/2003 found \n");
|
||||
printf(" pHalInfo->dwSize : 0x%08lx\n",(long)pHalInfo->dwSize);
|
||||
|
@ -253,10 +220,129 @@ dump_halinfo(DD_HALINFO *pHalInfo, char *text)
|
|||
printf(" pHalInfo->vmiData->pvPrimary : 0x%08lx\n",(long)pHalInfo->vmiData.pvPrimary);
|
||||
|
||||
printf(" pHalInfo->ddCaps.dwSize : 0x%08lx\n",pHalInfo->ddCaps.dwSize);
|
||||
printf(" pHalInfo->ddCaps.dwCaps : 0x%08lx\n",pHalInfo->ddCaps.dwCaps);
|
||||
printf(" pHalInfo->ddCaps.dwCaps2 : 0x%08lx\n",pHalInfo->ddCaps.dwCaps2);
|
||||
printf(" pHalInfo->ddCaps.dwCKeyCaps : 0x%08lx\n",pHalInfo->ddCaps.dwCKeyCaps);
|
||||
printf(" pHalInfo->ddCaps.dwFXCaps : 0x%08lx\n",pHalInfo->ddCaps.dwFXCaps);
|
||||
printf(" pHalInfo->ddCaps.dwCaps : ");
|
||||
flag = pHalInfo->ddCaps.dwCaps;
|
||||
count = 0;
|
||||
checkflag(flag,DDCAPS_3D,"DDCAPS_3D");
|
||||
checkflag(flag,DDCAPS_ALIGNBOUNDARYDEST,"DDCAPS_ALIGNBOUNDARYDEST");
|
||||
checkflag(flag,DDCAPS_ALIGNBOUNDARYSRC,"DDCAPS_ALIGNBOUNDARYSRC");
|
||||
checkflag(flag,DDCAPS_ALIGNSIZEDEST,"DDCAPS_ALIGNSIZEDEST");
|
||||
checkflag(flag,DDCAPS_ALIGNSIZESRC,"DDCAPS_ALIGNSIZESRC");
|
||||
checkflag(flag,DDCAPS_ALIGNSTRIDE,"DDCAPS_ALIGNSTRIDE");
|
||||
checkflag(flag,DDCAPS_ALPHA,"DDCAPS_ALPHA");
|
||||
checkflag(flag,DDCAPS_BANKSWITCHED,"DDCAPS_BANKSWITCHED");
|
||||
checkflag(flag,DDCAPS_BLT,"DDCAPS_BLT");
|
||||
checkflag(flag,DDCAPS_BLTCOLORFILL,"DDCAPS_BLTCOLORFILL");
|
||||
checkflag(flag,DDCAPS_BLTDEPTHFILL,"DDCAPS_BLTDEPTHFILL");
|
||||
checkflag(flag,DDCAPS_BLTFOURCC,"DDCAPS_BLTFOURCC");
|
||||
checkflag(flag,DDCAPS_BLTQUEUE,"DDCAPS_BLTQUEUE");
|
||||
checkflag(flag,DDCAPS_BLTSTRETCH,"DDCAPS_BLTSTRETCH");
|
||||
checkflag(flag,DDCAPS_CANBLTSYSMEM,"DDCAPS_CANBLTSYSMEM");
|
||||
checkflag(flag,DDCAPS_CANCLIP,"DDCAPS_CANCLIP");
|
||||
checkflag(flag,DDCAPS_CANCLIPSTRETCHED,"DDCAPS_CANCLIPSTRETCHED");
|
||||
checkflag(flag,DDCAPS_COLORKEY,"DDCAPS_COLORKEY");
|
||||
checkflag(flag,DDCAPS_COLORKEYHWASSIST,"DDCAPS_COLORKEYHWASSIST");
|
||||
checkflag(flag,DDCAPS_GDI,"DDCAPS_GDI");
|
||||
checkflag(flag,DDCAPS_NOHARDWARE,"DDCAPS_NOHARDWARE");
|
||||
checkflag(flag,DDCAPS_OVERLAY,"DDCAPS_OVERLAY");
|
||||
checkflag(flag,DDCAPS_OVERLAYCANTCLIP,"DDCAPS_OVERLAYCANTCLIP");
|
||||
checkflag(flag,DDCAPS_OVERLAYFOURCC,"DDCAPS_OVERLAYFOURCC");
|
||||
checkflag(flag,DDCAPS_OVERLAYSTRETCH,"DDCAPS_OVERLAYSTRETCH");
|
||||
checkflag(flag,DDCAPS_PALETTE,"DDCAPS_PALETTE");
|
||||
checkflag(flag,DDCAPS_PALETTEVSYNC,"DDCAPS_PALETTEVSYNC");
|
||||
checkflag(flag,DDCAPS_READSCANLINE,"DDCAPS_READSCANLINE");
|
||||
/* FIXME */
|
||||
// checkflag(flag,DDCAPS_STEREOVIEW,"DDCAPS_STEREOVIEW");
|
||||
checkflag(flag,DDCAPS_VBI,"DDCAPS_VBI");
|
||||
checkflag(flag,DDCAPS_ZBLTS,"DDCAPS_ZBLTS");
|
||||
checkflag(flag,DDCAPS_ZOVERLAYS,"DDCAPS_ZOVERLAYS");
|
||||
endcheckflag(flag,"pHalInfo->ddCaps.dwCaps");
|
||||
|
||||
printf(" pHalInfo->ddCaps.dwCaps2 : ");
|
||||
flag = pHalInfo->ddCaps.dwCaps2;
|
||||
count = 0;
|
||||
checkflag(flag,DDCAPS2_AUTOFLIPOVERLAY,"DDCAPS2_AUTOFLIPOVERLAY");
|
||||
checkflag(flag,DDCAPS2_CANAUTOGENMIPMAP,"DDCAPS2_CANAUTOGENMIPMAP");
|
||||
checkflag(flag,DDCAPS2_CANBOBHARDWARE,"DDCAPS2_CANBOBHARDWARE");
|
||||
checkflag(flag,DDCAPS2_CANBOBINTERLEAVED,"DDCAPS2_CANBOBINTERLEAVED");
|
||||
checkflag(flag,DDCAPS2_CANBOBNONINTERLEAVED,"DDCAPS2_CANBOBNONINTERLEAVED");
|
||||
checkflag(flag,DDCAPS2_CANCALIBRATEGAMMA,"DDCAPS2_CANCALIBRATEGAMMA");
|
||||
checkflag(flag,DDCAPS2_CANDROPZ16BIT,"DDCAPS2_CANDROPZ16BIT");
|
||||
checkflag(flag,DDCAPS2_CANFLIPODDEVEN,"DDCAPS2_CANFLIPODDEVEN");
|
||||
checkflag(flag,DDCAPS2_CANMANAGERESOURCE,"DDCAPS2_CANMANAGERESOURCE");
|
||||
checkflag(flag,DDCAPS2_CANMANAGETEXTURE,"DDCAPS2_CANMANAGETEXTURE");
|
||||
/* FIXME */
|
||||
// checkflag(flagDDCAPS2_CANRENDERWINDOWED,"DDCAPS2_CANRENDERWINDOWED");
|
||||
checkflag(flag,DDCAPS2_CERTIFIED,"DDCAPS2_CERTIFIED");
|
||||
checkflag(flag,DDCAPS2_COLORCONTROLOVERLAY,"DDCAPS2_COLORCONTROLOVERLAY");
|
||||
checkflag(flag,DDCAPS2_COLORCONTROLPRIMARY,"DDCAPS2_COLORCONTROLPRIMARY");
|
||||
checkflag(flag,DDCAPS2_COPYFOURCC,"DDCAPS2_COPYFOURCC");
|
||||
checkflag(flag,DDCAPS2_FLIPINTERVAL,"DDCAPS2_FLIPINTERVAL");
|
||||
checkflag(flag,DDCAPS2_FLIPNOVSYNC,"DDCAPS2_FLIPNOVSYNC");
|
||||
checkflag(flag,DDCAPS2_NO2DDURING3DSCENE,"DDCAPS2_NO2DDURING3DSCENE");
|
||||
checkflag(flag,DDCAPS2_NONLOCALVIDMEM,"DDCAPS2_NONLOCALVIDMEM");
|
||||
checkflag(flag,DDCAPS2_NONLOCALVIDMEMCAPS,"DDCAPS2_NONLOCALVIDMEMCAPS");
|
||||
checkflag(flag,DDCAPS2_NOPAGELOCKREQUIRED,"DDCAPS2_NOPAGELOCKREQUIRED");
|
||||
checkflag(flag,DDCAPS2_PRIMARYGAMMA,"DDCAPS2_PRIMARYGAMMA");
|
||||
checkflag(flag,DDCAPS2_VIDEOPORT,"DDCAPS2_VIDEOPORT");
|
||||
checkflag(flag,DDCAPS2_WIDESURFACES,"DDCAPS2_WIDESURFACES");
|
||||
endcheckflag(flag,"pHalInfo->ddCaps.dwCaps2");
|
||||
|
||||
printf(" pHalInfo->ddCaps.dwCKeyCaps : ");
|
||||
flag = pHalInfo->ddCaps.dwCKeyCaps;
|
||||
count = 0;
|
||||
checkflag(flag,DDCKEYCAPS_DESTBLT,"DDCKEYCAPS_DESTBLT");
|
||||
checkflag(flag,DDCKEYCAPS_DESTBLTCLRSPACE,"DDCKEYCAPS_DESTBLTCLRSPACE");
|
||||
checkflag(flag,DDCKEYCAPS_DESTBLTCLRSPACEYUV,"DDCKEYCAPS_DESTBLTCLRSPACEYUV");
|
||||
checkflag(flag,DDCKEYCAPS_DESTBLTYUV,"DDCKEYCAPS_DESTBLTYUV");
|
||||
checkflag(flag,DDCKEYCAPS_DESTOVERLAY,"DDCKEYCAPS_DESTOVERLAY");
|
||||
checkflag(flag,DDCKEYCAPS_DESTOVERLAYCLRSPACE,"DDCKEYCAPS_DESTOVERLAYCLRSPACE");
|
||||
checkflag(flag,DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV,"DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV");
|
||||
checkflag(flag,DDCKEYCAPS_DESTOVERLAYONEACTIVE,"DDCKEYCAPS_DESTOVERLAYONEACTIVE");
|
||||
checkflag(flag,DDCKEYCAPS_DESTOVERLAYYUV,"DDCKEYCAPS_DESTOVERLAYYUV");
|
||||
checkflag(flag,DDCKEYCAPS_NOCOSTOVERLAY,"DDCKEYCAPS_NOCOSTOVERLAY");
|
||||
checkflag(flag,DDCKEYCAPS_SRCBLT,"DDCKEYCAPS_SRCBLT");
|
||||
checkflag(flag,DDCKEYCAPS_SRCBLTCLRSPACE,"DDCKEYCAPS_SRCBLTCLRSPACE");
|
||||
checkflag(flag,DDCKEYCAPS_SRCBLTCLRSPACEYUV,"DDCKEYCAPS_SRCBLTCLRSPACEYUV");
|
||||
checkflag(flag,DDCKEYCAPS_SRCBLTYUV,"DDCKEYCAPS_SRCBLTYUV");
|
||||
checkflag(flag,DDCKEYCAPS_SRCOVERLAY,"DDCKEYCAPS_SRCOVERLAY");
|
||||
checkflag(flag,DDCKEYCAPS_SRCOVERLAYCLRSPACE,"DDCKEYCAPS_SRCOVERLAYCLRSPACE");
|
||||
checkflag(flag,DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV,"DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV");
|
||||
checkflag(flag,DDCKEYCAPS_SRCOVERLAYONEACTIVE,"DDCKEYCAPS_SRCOVERLAYONEACTIVE");
|
||||
checkflag(flag,DDCKEYCAPS_SRCOVERLAYYUV,"DDCKEYCAPS_SRCOVERLAYYUV");
|
||||
endcheckflag(flag,"pHalInfo->ddCaps.dwCKeyCaps");
|
||||
|
||||
printf(" pHalInfo->ddCaps.dwFXCaps : ");
|
||||
flag = pHalInfo->ddCaps.dwFXCaps;
|
||||
count = 0;
|
||||
checkflag(flag,DDFXCAPS_BLTARITHSTRETCHY,"DDFXCAPS_BLTARITHSTRETCHY");
|
||||
checkflag(flag,DDFXCAPS_BLTARITHSTRETCHYN,"DDFXCAPS_BLTARITHSTRETCHYN");
|
||||
checkflag(flag,DDFXCAPS_BLTMIRRORLEFTRIGHT,"DDFXCAPS_BLTMIRRORLEFTRIGHT");
|
||||
checkflag(flag,DDFXCAPS_BLTMIRRORUPDOWN,"DDFXCAPS_BLTMIRRORUPDOWN");
|
||||
checkflag(flag,DDFXCAPS_BLTROTATION,"DDFXCAPS_BLTROTATION");
|
||||
checkflag(flag,DDFXCAPS_BLTROTATION90,"DDFXCAPS_BLTROTATION90");
|
||||
checkflag(flag,DDFXCAPS_BLTSHRINKX,"DDFXCAPS_BLTSHRINKX");
|
||||
checkflag(flag,DDFXCAPS_BLTSHRINKXN,"DDFXCAPS_BLTSHRINKXN");
|
||||
checkflag(flag,DDFXCAPS_BLTSHRINKY,"DDFXCAPS_BLTSHRINKY");
|
||||
checkflag(flag,DDFXCAPS_BLTSHRINKYN,"DDFXCAPS_BLTSHRINKYN");
|
||||
checkflag(flag,DDFXCAPS_BLTSTRETCHX,"DDFXCAPS_BLTSTRETCHX");
|
||||
checkflag(flag,DDFXCAPS_BLTSTRETCHXN,"DDFXCAPS_BLTSTRETCHXN");
|
||||
checkflag(flag,DDFXCAPS_BLTSTRETCHY,"DDFXCAPS_BLTSTRETCHY");
|
||||
checkflag(flag,DDFXCAPS_BLTSTRETCHYN,"DDFXCAPS_BLTSTRETCHYN");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYARITHSTRETCHY,"DDFXCAPS_OVERLAYARITHSTRETCHY");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYARITHSTRETCHYN,"DDFXCAPS_OVERLAYARITHSTRETCHYN");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYMIRRORLEFTRIGHT,"DDFXCAPS_OVERLAYMIRRORLEFTRIGHT");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYMIRRORUPDOWN,"DDFXCAPS_OVERLAYMIRRORUPDOWN");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYSHRINKX,"DDFXCAPS_OVERLAYSHRINKX");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYSHRINKXN,"DDFXCAPS_OVERLAYSHRINKXN");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYSHRINKY,"DDFXCAPS_OVERLAYSHRINKY");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYSHRINKYN,"DDFXCAPS_OVERLAYSHRINKYN");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYSTRETCHX,"DDFXCAPS_OVERLAYSTRETCHX");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYSTRETCHX,"DDFXCAPS_OVERLAYSTRETCHX");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYSTRETCHY,"DDFXCAPS_OVERLAYSTRETCHY");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYSTRETCHYN,"DDFXCAPS_OVERLAYSTRETCHYN");
|
||||
endcheckflag(flag,"pHalInfo->ddCaps.dwFXCaps");
|
||||
|
||||
printf(" pHalInfo->ddCaps.dwFXAlphaCaps : 0x%08lx\n",pHalInfo->ddCaps.dwFXAlphaCaps);
|
||||
printf(" pHalInfo->ddCaps.dwPalCaps : 0x%08lx\n",pHalInfo->ddCaps.dwPalCaps);
|
||||
printf(" pHalInfo->ddCaps.dwSVCaps : 0x%08lx\n",pHalInfo->ddCaps.dwSVCaps);
|
||||
|
@ -281,7 +367,41 @@ dump_halinfo(DD_HALINFO *pHalInfo, char *text)
|
|||
{
|
||||
printf(" pHalInfo->ddCaps.dwRops[0x%04x] : 0x%08lx\n",t,pHalInfo->ddCaps.dwRops[t]);
|
||||
}
|
||||
printf(" pHalInfo->ddCaps.ddsCaps.dwCaps : 0x%08lx\n",pHalInfo->ddCaps.ddsCaps.dwCaps);
|
||||
printf(" pHalInfo->ddCaps.ddsCaps.dwCaps : ");
|
||||
flag = pHalInfo->ddCaps.ddsCaps.dwCaps;
|
||||
count = 0;
|
||||
checkflag(flag,DDSCAPS_3DDEVICE,"DDSCAPS_3DDEVICE");
|
||||
checkflag(flag,DDSCAPS_ALLOCONLOAD,"DDSCAPS_ALLOCONLOAD");
|
||||
checkflag(flag,DDSCAPS_ALPHA,"DDSCAPS_ALPHA");
|
||||
checkflag(flag,DDSCAPS_BACKBUFFER,"DDSCAPS_BACKBUFFER");
|
||||
checkflag(flag,DDSCAPS_COMPLEX,"DDSCAPS_COMPLEX");
|
||||
checkflag(flag,DDSCAPS_EXECUTEBUFFER,"DDSCAPS_EXECUTEBUFFER");
|
||||
checkflag(flag,DDSCAPS_FLIP,"DDSCAPS_FLIP");
|
||||
checkflag(flag,DDSCAPS_FRONTBUFFER,"DDSCAPS_FRONTBUFFER");
|
||||
checkflag(flag,DDSCAPS_HWCODEC,"DDSCAPS_HWCODEC");
|
||||
checkflag(flag,DDSCAPS_LIVEVIDEO,"DDSCAPS_LIVEVIDEO");
|
||||
checkflag(flag,DDSCAPS_LOCALVIDMEM,"DDSCAPS_LOCALVIDMEM");
|
||||
checkflag(flag,DDSCAPS_MIPMAP,"DDSCAPS_MIPMAP");
|
||||
checkflag(flag,DDSCAPS_MODEX,"DDSCAPS_MODEX");
|
||||
checkflag(flag,DDSCAPS_NONLOCALVIDMEM,"DDSCAPS_NONLOCALVIDMEM");
|
||||
checkflag(flag,DDSCAPS_OFFSCREENPLAIN,"DDSCAPS_OFFSCREENPLAIN");
|
||||
checkflag(flag,DDSCAPS_OVERLAY,"DDSCAPS_OVERLAY");
|
||||
checkflag(flag,DDSCAPS_OPTIMIZED,"DDSCAPS_OPTIMIZED");
|
||||
checkflag(flag,DDSCAPS_OWNDC,"DDSCAPS_OWNDC");
|
||||
checkflag(flag,DDSCAPS_PALETTE,"DDSCAPS_PALETTE");
|
||||
checkflag(flag,DDSCAPS_PRIMARYSURFACE,"DDSCAPS_PRIMARYSURFACE");
|
||||
checkflag(flag,DDSCAPS_PRIMARYSURFACELEFT,"DDSCAPS_PRIMARYSURFACELEFT");
|
||||
checkflag(flag,DDSCAPS_STANDARDVGAMODE,"DDSCAPS_STANDARDVGAMODE");
|
||||
checkflag(flag,DDSCAPS_SYSTEMMEMORY,"DDSCAPS_SYSTEMMEMORY");
|
||||
checkflag(flag,DDSCAPS_TEXTURE,"DDSCAPS_TEXTURE");
|
||||
checkflag(flag,DDSCAPS_VIDEOMEMORY,"DDSCAPS_VIDEOMEMORY");
|
||||
checkflag(flag,DDSCAPS_VIDEOPORT,"DDSCAPS_VIDEOPORT");
|
||||
checkflag(flag,DDSCAPS_VISIBLE,"DDSCAPS_VISIBLE");
|
||||
checkflag(flag,DDSCAPS_WRITEONLY,"DDSCAPS_WRITEONLY");
|
||||
checkflag(flag,DDSCAPS_ZBUFFER,"DDSCAPS_ZBUFFER");
|
||||
endcheckflag(flag,"pHalInfo->ddCaps.ddsCaps.dwCaps");
|
||||
|
||||
|
||||
printf(" pHalInfo->ddCaps.dwMinOverlayStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMinOverlayStretch);
|
||||
printf(" pHalInfo->ddCaps.dwMaxOverlayStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMaxOverlayStretch);
|
||||
printf(" pHalInfo->ddCaps.dwMinLiveVideoStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMinLiveVideoStretch);
|
||||
|
@ -313,10 +433,16 @@ dump_halinfo(DD_HALINFO *pHalInfo, char *text)
|
|||
printf(" pHalInfo->ddCaps.dwSSBRops[0x%04x] : 0x%08lx\n",t,pHalInfo->ddCaps.dwSSBRops[t]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
printf(" pHalInfo->GetDriverInfo : 0x%08lx\n",(long)pHalInfo->GetDriverInfo);
|
||||
printf(" pHalInfo->dwFlags : 0x%08lx\n",(long)pHalInfo->dwFlags);
|
||||
printf(" pHalInfo->dwFlags : ");
|
||||
|
||||
flag = pHalInfo->dwFlags;
|
||||
count = 0;
|
||||
checkflag(flag,DDHALINFO_ISPRIMARYDISPLAY,"DDHALINFO_ISPRIMARYDISPLAY");
|
||||
checkflag(flag,DDHALINFO_MODEXILLEGAL,"DDHALINFO_MODEXILLEGAL");
|
||||
checkflag(flag,DDHALINFO_GETDRIVERINFOSET,"DDHALINFO_GETDRIVERINFOSET");
|
||||
checkflag(flag,DDHALINFO_GETDRIVERINFO2,"DDHALINFO_GETDRIVERINFO2");
|
||||
endcheckflag(flag,"pHalInfo->dwFlags");
|
||||
|
||||
printf(" pHalInfo->lpD3DGlobalDriverData : 0x%08lx\n",(long)pHalInfo->lpD3DGlobalDriverData);
|
||||
printf(" pHalInfo->lpD3DHALCallbacks : 0x%08lx\n",(long)pHalInfo->lpD3DHALCallbacks);
|
||||
|
@ -335,3 +461,5 @@ dump_halinfo(DD_HALINFO *pHalInfo, char *text)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -38,6 +38,12 @@ int main(int argc, char **argv)
|
|||
|
||||
test_NtGdiDdQueryDirectDrawObject(hDirectDrawLocal);
|
||||
|
||||
test_NtGdiDdGetScanLine(hDirectDrawLocal);
|
||||
|
||||
test_NtGdiDdWaitForVerticalBlank(hDirectDrawLocal);
|
||||
|
||||
test_NtGdiDdCanCreateSurface(hDirectDrawLocal);
|
||||
|
||||
test_NtGdiDdDeleteDirectDrawObject(hDirectDrawLocal);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -3,17 +3,16 @@
|
|||
HANDLE test_NtGdiDdCreateDirectDrawObject();
|
||||
void test_NtGdiDdDeleteDirectDrawObject(HANDLE hDirectDrawLocal);
|
||||
void test_NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal);
|
||||
void test_NtGdiDdGetScanLine(HANDLE hDirectDrawLocal);
|
||||
void test_NtGdiDdWaitForVerticalBlank(HANDLE hDirectDrawLocal);
|
||||
void test_NtGdiDdCanCreateSurface(HANDLE hDirectDrawLocal);
|
||||
|
||||
|
||||
void dump_halinfo(DD_HALINFO *pHalInfo, char *text);
|
||||
void dump_CallBackFlags(DWORD *pCallBackFlags, char *text);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define testing_eq(input,value,counter,text) \
|
||||
if (input == value) \
|
||||
{ \
|
||||
|
|
|
@ -12,5 +12,8 @@
|
|||
<file>NtGdiDdCreateDirectDrawObject.c</file>
|
||||
<file>NtGdiDdDeleteDirectDrawObject.c</file>
|
||||
<file>NtGdiDdQueryDirectDrawObject.c</file>
|
||||
<file>NtGdiDdGetScanLine.c</file>
|
||||
<file>NtGdiDdWaitForVerticalBlank.c</file>
|
||||
<file>NtGdiDdCanCreateSurface.c</file>
|
||||
<file>dump.c</file>
|
||||
</module>
|
Loading…
Add table
Add a link
Reference in a new issue