2 * COPYRIGHT: This file is in the public domain.
3 * PROJECT: ReactOS kernel
4 * FILE: include/psdk/dmemmgr.h
5 * PURPOSE: Directx headers
6 * PROGRAMMER: Magnus Olsen (greatlrd)
10 #ifndef __DMEMMGR_INCLUDED__
11 #define __DMEMMGR_INCLUDED__
13 /* Helper macro to enable gcc's extension. */
14 #ifndef __GNU_EXTENSION
16 #define __GNU_EXTENSION __extension__
18 #define __GNU_EXTENSION
28 #ifndef FLATPTR_DEFINED
29 typedef ULONG_PTR FLATPTR
;
30 #define FLATPTR_DEFINED
33 typedef struct _VIDMEM
*LPVIDMEM
;
37 #ifndef FLATPTR_DEFINED
38 typedef ULONG_PTR FLATPTR
;
39 #define FLATPTR_DEFINED
42 typedef struct _VIDEOMEMORY
*LPVIDMEM
;
45 #define SURFACEALIGN_DISCARDABLE 0x00000001
46 #define VMEMHEAP_LINEAR 0x00000001
47 #define VMEMHEAP_RECTANGULAR 0x00000002
48 #define VMEMHEAP_ALIGNMENT 0x00000004
56 } VMEML
, *LPVMEML
, *LPLPVMEML
;
66 struct _VMEMR
*pRight
;
76 } VMEMR
, *LPVMEMR
, *LPLPVMEMR
;
78 typedef struct _SURFACEALIGNMENT
84 DWORD dwStartAlignment
;
85 DWORD dwPitchAlignment
;
97 } SURFACEALIGNMENT
, *LPSURFACEALIGNMENT
;
99 typedef struct _HEAPALIGNMENT
104 SURFACEALIGNMENT ExecuteBuffer
;
105 SURFACEALIGNMENT Overlay
;
106 SURFACEALIGNMENT Texture
;
107 SURFACEALIGNMENT ZBuffer
;
108 SURFACEALIGNMENT AlphaBuffer
;
109 SURFACEALIGNMENT Offscreen
;
110 SURFACEALIGNMENT FlipTarget
;
111 } HEAPALIGNMENT
, *LPHEAPALIGNMENT
;
113 typedef struct _VMEMHEAP
122 DWORD dwCommitedSize
;
123 DWORD dwCoalesceCount
;
124 HEAPALIGNMENT Alignment
;
126 DDSCAPSEX ddsCapsExAlt
;
128 LARGE_INTEGER liPhysAGPBase
;
132 BYTE
* pAgpCommitMask
;
133 DWORD dwAgpCommitMaskSize
;
134 } VMEMHEAP
, *LPVMEMHEAP
;
136 typedef struct _DD_GETHEAPALIGNMENTDATA
138 ULONG_PTR dwInstance
;
141 VOID
* GetHeapAlignment
;
142 HEAPALIGNMENT Alignment
;
143 } DD_GETHEAPALIGNMENTDATA
;
145 #ifndef DD_GETHEAPALIGNMENTDATA_DECLARED
146 typedef DD_GETHEAPALIGNMENTDATA
*PDD_GETHEAPALIGNMENTDATA
;
147 #define DD_GETHEAPALIGNMENTDATA_DECLARED
150 extern void WINAPI
VidMemFree( LPVMEMHEAP pvmh
, FLATPTR ptr
);
151 extern FLATPTR WINAPI
VidMemAlloc( LPVMEMHEAP pvmh
, DWORD width
, DWORD height
);
153 extern FLATPTR WINAPI
154 HeapVidMemAllocAligned(
158 LPSURFACEALIGNMENT lpAlignment
,