4 * COPYRIGHT: This file is in the public domain.
5 * PROJECT: ReactOS kernel
7 * PURPOSE: Directx headers
8 * PROGRAMMER: Magnus Olsen (greatlrd)
12 #ifndef __DMEMMGR_INCLUDED__
13 #define __DMEMMGR_INCLUDED__
21 #ifndef FLATPTR_DEFINED
22 typedef ULONG_PTR FLATPTR
;
23 #define FLATPTR_DEFINED
26 typedef struct _VIDMEM
*LPVIDMEM
;
30 #ifndef FLATPTR_DEFINED
31 typedef ULONG_PTR FLATPTR
;
32 #define FLATPTR_DEFINED
35 typedef struct _VIDEOMEMORY
*LPVIDMEM
;
38 #define SURFACEALIGN_DISCARDABLE 0x00000001
39 #define VMEMHEAP_LINEAR 0x00000001
40 #define VMEMHEAP_RECTANGULAR 0x00000002
41 #define VMEMHEAP_ALIGNMENT 0x00000004
49 } VMEML
, *LPVMEML
, *LPLPVMEML
;
59 struct _VMEMR
*pRight
;
69 } VMEMR
, *LPVMEMR
, *LPLPVMEMR
;
71 typedef struct _SURFACEALIGNMENT
77 DWORD dwStartAlignment
;
78 DWORD dwPitchAlignment
;
90 } SURFACEALIGNMENT
, *LPSURFACEALIGNMENT
;
92 typedef struct _HEAPALIGNMENT
97 SURFACEALIGNMENT ExecuteBuffer
;
98 SURFACEALIGNMENT Overlay
;
99 SURFACEALIGNMENT Texture
;
100 SURFACEALIGNMENT ZBuffer
;
101 SURFACEALIGNMENT AlphaBuffer
;
102 SURFACEALIGNMENT Offscreen
;
103 SURFACEALIGNMENT FlipTarget
;
104 } HEAPALIGNMENT
, *LPHEAPALIGNMENT
;
106 typedef struct _VMEMHEAP
115 DWORD dwCommitedSize
;
116 DWORD dwCoalesceCount
;
117 HEAPALIGNMENT Alignment
;
119 DDSCAPSEX ddsCapsExAlt
;
121 LARGE_INTEGER liPhysAGPBase
;
125 BYTE
* pAgpCommitMask
;
126 DWORD dwAgpCommitMaskSize
;
127 } VMEMHEAP
, *LPVMEMHEAP
;
129 typedef struct _DD_GETHEAPALIGNMENTDATA
131 ULONG_PTR dwInstance
;
134 VOID
* GetHeapAlignment
;
135 HEAPALIGNMENT Alignment
;
136 } DD_GETHEAPALIGNMENTDATA
;
138 #ifndef DD_GETHEAPALIGNMENTDATA_DECLARED
139 typedef DD_GETHEAPALIGNMENTDATA
*PDD_GETHEAPALIGNMENTDATA
;
140 #define DD_GETHEAPALIGNMENTDATA_DECLARED
143 extern void WINAPI
VidMemFree( LPVMEMHEAP pvmh
, FLATPTR ptr
);
144 extern FLATPTR WINAPI
VidMemAlloc( LPVMEMHEAP pvmh
, DWORD width
, DWORD height
);
146 extern FLATPTR WINAPI
147 HeapVidMemAllocAligned(
151 LPSURFACEALIGNMENT lpAlignment
,