|  |  | 
|  | /* $Id: $ | 
|  | * | 
|  | * COPYRIGHT:            This file is in the public domain. | 
|  | * PROJECT:              ReactOS kernel | 
|  | * FILE: | 
|  | * PURPOSE:              Directx headers | 
|  | * PROGRAMMER:           Magnus Olsen (greatlrd) | 
|  | * | 
|  | */ | 
|  |  | 
|  | #ifndef __DMEMMGR_INCLUDED__ | 
|  | #define __DMEMMGR_INCLUDED__ | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #ifndef __NTDDKCOMP__ | 
|  |  | 
|  | #ifndef FLATPTR_DEFINED | 
|  | typedef ULONG_PTR FLATPTR; | 
|  | #define FLATPTR_DEFINED | 
|  | #endif | 
|  |  | 
|  | typedef struct _VIDMEM *LPVIDMEM; | 
|  |  | 
|  | #else /* __NTDDKCOMP__ */ | 
|  |  | 
|  | #ifndef FLATPTR_DEFINED | 
|  | typedef ULONG_PTR FLATPTR; | 
|  | #define FLATPTR_DEFINED | 
|  | #endif | 
|  |  | 
|  | typedef struct _VIDEOMEMORY *LPVIDMEM; | 
|  | #endif /* __NTDDKCOMP__ */ | 
|  |  | 
|  | #define SURFACEALIGN_DISCARDABLE 0x00000001 | 
|  | #define VMEMHEAP_LINEAR 0x00000001 | 
|  | #define VMEMHEAP_RECTANGULAR 0x00000002 | 
|  | #define VMEMHEAP_ALIGNMENT 0x00000004 | 
|  |  | 
|  | typedef struct _VMEML | 
|  | { | 
|  | struct _VMEML *next; | 
|  | FLATPTR ptr; | 
|  | DWORD size; | 
|  | WINBOOL bDiscardable; | 
|  | } VMEML, *LPVMEML, *LPLPVMEML; | 
|  |  | 
|  | typedef struct _VMEMR | 
|  | { | 
|  | struct _VMEMR *next; | 
|  | struct _VMEMR *prev; | 
|  |  | 
|  | struct _VMEMR *pUp; | 
|  | struct _VMEMR *pDown; | 
|  | struct _VMEMR *pLeft; | 
|  | struct _VMEMR *pRight; | 
|  | FLATPTR  ptr; | 
|  | DWORD size; | 
|  | DWORD x; | 
|  | DWORD y; | 
|  | DWORD cx; | 
|  | DWORD cy; | 
|  | DWORD flags; | 
|  | FLATPTR pBits; | 
|  | WINBOOL bDiscardable; | 
|  | } VMEMR,  *LPVMEMR,  *LPLPVMEMR; | 
|  |  | 
|  | typedef struct _SURFACEALIGNMENT | 
|  | { | 
|  | __GNU_EXTENSION union { | 
|  | struct { | 
|  | DWORD dwStartAlignment; | 
|  | DWORD dwPitchAlignment; | 
|  | DWORD dwFlags; | 
|  | DWORD dwReserved2; | 
|  | } Linear; | 
|  | struct { | 
|  | DWORD dwXAlignment; | 
|  | DWORD dwYAlignment; | 
|  | DWORD dwFlags; | 
|  | DWORD dwReserved2; | 
|  | } Rectangular; | 
|  | }; | 
|  | } SURFACEALIGNMENT, *LPSURFACEALIGNMENT; | 
|  |  | 
|  | typedef struct _HEAPALIGNMENT | 
|  | { | 
|  | DWORD dwSize; | 
|  | DDSCAPS ddsCaps; | 
|  | DWORD dwReserved; | 
|  | SURFACEALIGNMENT ExecuteBuffer; | 
|  | SURFACEALIGNMENT Overlay; | 
|  | SURFACEALIGNMENT Texture; | 
|  | SURFACEALIGNMENT ZBuffer; | 
|  | SURFACEALIGNMENT AlphaBuffer; | 
|  | SURFACEALIGNMENT Offscreen; | 
|  | SURFACEALIGNMENT FlipTarget; | 
|  | } HEAPALIGNMENT, *LPHEAPALIGNMENT; | 
|  |  | 
|  | typedef struct _VMEMHEAP | 
|  | { | 
|  | DWORD dwFlags; | 
|  | DWORD stride; | 
|  | LPVOID freeList; | 
|  | LPVOID allocList; | 
|  | DWORD dwTotalSize; | 
|  | FLATPTR fpGARTLin; | 
|  | FLATPTR fpGARTDev; | 
|  | DWORD dwCommitedSize; | 
|  | DWORD dwCoalesceCount; | 
|  | HEAPALIGNMENT Alignment; | 
|  | DDSCAPSEX ddsCapsEx; | 
|  | DDSCAPSEX ddsCapsExAlt; | 
|  | #ifndef IS_16 | 
|  | LARGE_INTEGER liPhysAGPBase; | 
|  | #endif | 
|  | HANDLE hdevAGP; | 
|  | LPVOID pvPhysRsrv; | 
|  | BYTE* pAgpCommitMask; | 
|  | DWORD dwAgpCommitMaskSize; | 
|  | } VMEMHEAP, *LPVMEMHEAP; | 
|  |  | 
|  | typedef struct _DD_GETHEAPALIGNMENTDATA | 
|  | { | 
|  | ULONG_PTR dwInstance; | 
|  | DWORD dwHeap; | 
|  | HRESULT ddRVal; | 
|  | VOID* GetHeapAlignment; | 
|  | HEAPALIGNMENT Alignment; | 
|  | } DD_GETHEAPALIGNMENTDATA; | 
|  |  | 
|  | #ifndef DD_GETHEAPALIGNMENTDATA_DECLARED | 
|  | typedef DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA; | 
|  | #define DD_GETHEAPALIGNMENTDATA_DECLARED | 
|  | #endif | 
|  |  | 
|  | extern void WINAPI VidMemFree (LPVMEMHEAP pvmh, FLATPTR ptr); | 
|  | extern FLATPTR WINAPI VidMemAlloc (LPVMEMHEAP pvmh, DWORD width, DWORD height); | 
|  |  | 
|  | extern FLATPTR WINAPI | 
|  | HeapVidMemAllocAligned( | 
|  | LPVIDMEM lpVidMem, | 
|  | DWORD dwWidth, | 
|  | DWORD dwHeight, | 
|  | LPSURFACEALIGNMENT lpAlignment, | 
|  | LPLONG lpNewPitch ); | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif /* __DMEMMGR_INCLUDED__ */ | 
|  |  |