4 * COPYRIGHT: See COPYING in the top level directory
5 * PROJECT: ReactOS kernel
7 * PURPOSE: Directx headers
8 * PROGRAMMER: Magnus Olsen (greatlrd)
12 #ifndef __DMEMMGR_INCLUDED__
13 #define __DMEMMGR_INCLUDED__
20 typedef ULONG_PTR FLATPTR
;
21 typedef struct _VIDMEM
*LPVIDMEM
;
23 typedef ULONG_PTR FLATPTR
;
24 typedef struct _VIDEOMEMORY
*LPVIDMEM
;
27 #define SURFACEALIGN_DISCARDABLE 0x00000001
28 #define VMEMHEAP_LINEAR 0x00000001
29 #define VMEMHEAP_RECTANGULAR 0x00000002
30 #define VMEMHEAP_ALIGNMENT 0x00000004
38 } VMEML
, *LPVMEML
, *LPLPVMEML
;
48 struct _VMEMR
*pRight
;
58 } VMEMR
, *LPVMEMR
, *LPLPVMEMR
;
61 typedef struct _SURFACEALIGNMENT
67 DWORD dwStartAlignment
;
68 DWORD dwPitchAlignment
;
80 } SURFACEALIGNMENT
, *LPSURFACEALIGNMENT
;
82 typedef struct _HEAPALIGNMENT
87 SURFACEALIGNMENT ExecuteBuffer
;
88 SURFACEALIGNMENT Overlay
;
89 SURFACEALIGNMENT Texture
;
90 SURFACEALIGNMENT ZBuffer
;
91 SURFACEALIGNMENT AlphaBuffer
;
92 SURFACEALIGNMENT Offscreen
;
93 SURFACEALIGNMENT FlipTarget
;
94 } HEAPALIGNMENT
, *LPHEAPALIGNMENT
;
97 typedef struct _VMEMHEAP
106 DWORD dwCommitedSize
;
107 DWORD dwCoalesceCount
;
108 HEAPALIGNMENT Alignment
;
110 DDSCAPSEX ddsCapsExAlt
;
112 LARGE_INTEGER liPhysAGPBase
;
116 BYTE
* pAgpCommitMask
;
117 DWORD dwAgpCommitMaskSize
;
120 typedef VMEMHEAP FAR
*LPVMEMHEAP
;
122 typedef struct _DD_GETHEAPALIGNMENTDATA
124 ULONG_PTR dwInstance
;
127 VOID
* GetHeapAlignment
;
128 HEAPALIGNMENT Alignment
;
129 } DD_GETHEAPALIGNMENTDATA
, *PDD_GETHEAPALIGNMENTDATA
;
131 extern void WINAPI
VidMemFree( LPVMEMHEAP pvmh
, FLATPTR ptr
);
133 extern FLATPTR WINAPI
134 HeapVidMemAllocAligned(
138 LPSURFACEALIGNMENT lpAlignment
,
142 #ifndef __NTDDKCOMP__
143 extern FLATPTR WINAPI
VidMemAlloc( LPVMEMHEAP pvmh
, DWORD width
, DWORD height
);