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
;
60 typedef struct _SURFACEALIGNMENT
66 DWORD dwStartAlignment
;
67 DWORD dwPitchAlignment
;
79 } SURFACEALIGNMENT
, *LPSURFACEALIGNMENT
;
81 typedef struct _HEAPALIGNMENT
86 SURFACEALIGNMENT ExecuteBuffer
;
87 SURFACEALIGNMENT Overlay
;
88 SURFACEALIGNMENT Texture
;
89 SURFACEALIGNMENT ZBuffer
;
90 SURFACEALIGNMENT AlphaBuffer
;
91 SURFACEALIGNMENT Offscreen
;
92 SURFACEALIGNMENT FlipTarget
;
93 } HEAPALIGNMENT
, *LPHEAPALIGNMENT
;
95 typedef struct _VMEMHEAP
104 DWORD dwCommitedSize
;
105 DWORD dwCoalesceCount
;
106 HEAPALIGNMENT Alignment
;
108 DDSCAPSEX ddsCapsExAlt
;
110 LARGE_INTEGER liPhysAGPBase
;
114 BYTE
* pAgpCommitMask
;
115 DWORD dwAgpCommitMaskSize
;
116 } VMEMHEAP
, *LPVMEMHEAP
;
118 typedef struct _DD_GETHEAPALIGNMENTDATA
120 ULONG_PTR dwInstance
;
123 VOID
* GetHeapAlignment
;
124 HEAPALIGNMENT Alignment
;
125 } DD_GETHEAPALIGNMENTDATA
, *PDD_GETHEAPALIGNMENTDATA
;
127 extern void WINAPI
VidMemFree( LPVMEMHEAP pvmh
, FLATPTR ptr
);
128 extern FLATPTR WINAPI
VidMemAlloc( LPVMEMHEAP pvmh
, DWORD width
, DWORD height
);
130 extern FLATPTR WINAPI
131 HeapVidMemAllocAligned(
135 LPSURFACEALIGNMENT lpAlignment
,