Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
BOOL Test_GetAvailableVidMem (INT* passed, INT* failed){ LPDIRECTDRAW7 DirectDraw;
/* Preparations */ if (DirectDrawCreateEx(NULL, (VOID**)&DirectDraw, IID_IDirectDraw7, NULL) != DD_OK) { printf("ERROR: Failed to set up ddraw\n"); return FALSE; }
/* Here we go */ DWORD Total, Free; DDSCAPS2 Caps = { 0 };
TEST (DirectDraw->GetAvailableVidMem(&Caps, NULL, NULL) == DDERR_INVALIDPARAMS); TEST (DirectDraw->GetAvailableVidMem(NULL, &Total, &Free) == DDERR_INVALIDPARAMS); TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
/* testing caps */ memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_RESERVED1; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_ALPHA; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_BACKBUFFER; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DDERR_INVALIDPARAMS );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_COMPLEX; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DDERR_INVALIDPARAMS );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_FLIP; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DDERR_INVALIDPARAMS );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_FRONTBUFFER; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DDERR_INVALIDPARAMS );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_OFFSCREENPLAIN; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_OVERLAY; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_PALETTE; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DDERR_INVALIDPARAMS );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_PRIMARYSURFACE; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_RESERVED3; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_SYSTEMMEMORY; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DDERR_INVALIDPARAMS );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_TEXTURE; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_3DDEVICE; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_VIDEOMEMORY; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_VISIBLE; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DDERR_INVALIDPARAMS );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_WRITEONLY; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DDERR_INVALIDPARAMS );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_ZBUFFER; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_OWNDC; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DDERR_INVALIDPARAMS );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_LIVEVIDEO; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_HWCODEC; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_MODEX; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_MIPMAP; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_RESERVED2; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_ALLOCONLOAD; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_VIDEOPORT; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK );
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_LOCALVIDMEM; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps = DDSCAPS_NONLOCALVIDMEM; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = 0x01; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DDERR_INVALIDCAPS);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_RESERVED4; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_HINTDYNAMIC; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_HINTSTATIC; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_TEXTUREMANAGE; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_RESERVED1; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_RESERVED2; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_OPAQUE; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_HINTANTIALIASING; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_CUBEMAP; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_CUBEMAP_POSITIVEX; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_CUBEMAP_NEGATIVEX; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_CUBEMAP_POSITIVEY; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_CUBEMAP_NEGATIVEY; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_CUBEMAP_POSITIVEZ; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_CUBEMAP_NEGATIVEZ; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_MIPMAPSUBLEVEL; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_D3DTEXTUREMANAGE; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_DONOTPERSIST; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_STEREOSURFACELEFT; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_VOLUME; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_NOTUSERLOCKABLE; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_POINTS; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_RTPATCHES; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_NPATCHES; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_RESERVED3; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_DISCARDBACKBUFFER; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_ENABLEALPHACHANNEL; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_EXTENDEDFORMATPRIMARY; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps2 = DDSCAPS2_ADDITIONALPRIMARY; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps3 = ~(DDSCAPS3_MULTISAMPLE_QUALITY_MASK | DDSCAPS3_MULTISAMPLE_MASK | DDSCAPS3_RESERVED1 | DDSCAPS3_RESERVED2 | DDSCAPS3_LIGHTWEIGHTMIPMAP | DDSCAPS3_AUTOGENMIPMAP | DDSCAPS3_DMAP); TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DDERR_INVALIDCAPS);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps3 = (DDSCAPS3_MULTISAMPLE_QUALITY_MASK | DDSCAPS3_MULTISAMPLE_MASK | DDSCAPS3_RESERVED1 | DDSCAPS3_RESERVED2 | DDSCAPS3_LIGHTWEIGHTMIPMAP | DDSCAPS3_AUTOGENMIPMAP | DDSCAPS3_DMAP); TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DD_OK);
memset(&Caps,0,sizeof(DDSCAPS2)); Caps.dwCaps4 = 1; TEST (DirectDraw->GetAvailableVidMem(&Caps, &Total, &Free) == DDERR_INVALIDCAPS );
DirectDraw->Release();
return TRUE;}