2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS ReactX
4 * FILE: dll/directx/d3d9/d3d9_callbacks.c
5 * PURPOSE: Direct3D9's callback functions
6 * PROGRAMERS: Gregor Gullwi <gbrunmar (dot) ros (at) gmail (dot) com>
8 #include "d3d9_common.h"
9 #include "d3d9_callbacks.h"
11 #include <dll/directx/d3d8thk.h>
12 #include "d3d9_private.h"
15 DWORD WINAPI
D3d9GetAvailDriverMemory(LPD3D9_GETAVAILDRIVERMEMORYDATA pData
)
18 DDHAL_GETAVAILDRIVERMEMORYDATA Data
;
19 ZeroMemory(&Data
, sizeof(Data
));
21 if (D3D9_GETAVAILDRIVERMEMORY_TYPE_ALL
== pData
->dwMemoryType
)
23 Data
.DDSCaps
.dwCaps
= DDSCAPS_VIDEOMEMORY
;
25 else if (D3D9_GETAVAILDRIVERMEMORY_TYPE_LOCAL
== pData
->dwMemoryType
)
27 Data
.DDSCaps
.dwCaps
= DDSCAPS_VIDEOMEMORY
| DDSCAPS_LOCALVIDMEM
;
29 else if (D3D9_GETAVAILDRIVERMEMORY_TYPE_NONLOCAL
== pData
->dwMemoryType
)
31 Data
.DDSCaps
.dwCaps
= DDSCAPS_VIDEOMEMORY
| DDSCAPS_NONLOCALVIDMEM
;
34 if (Data
.DDSCaps
.dwCaps
!= 0)
36 if (0 == pData
->dwTextureType
)
37 Data
.DDSCaps
.dwCaps
|= DDSCAPS_TEXTURE
;
39 if (pData
->dwTextureType
& D3D9_TEXTURETYPE_HALSURFACE
)
40 Data
.DDSCaps
.dwCaps
|= DDSCAPS_TEXTURE
| DDSCAPS_3DDEVICE
;
42 if (pData
->dwTextureType
& D3D9_TEXTURETYPE_BACKBUFFER
)
43 Data
.DDSCaps
.dwCaps
|= DDSCAPS_ZBUFFER
;
45 Ret
= OsThunkDdGetAvailDriverMemory(pData
->pUnknown6BC
->hDirectDrawLocal
, (DD_GETAVAILDRIVERMEMORYDATA
*)&Data
);
46 pData
->dwFree
= Data
.dwFree
;