| |
| /* $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__ */ |
| |