123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- /**
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER within this package.
- */
- #ifndef __DMEMMGR_INCLUDED__
- #define __DMEMMGR_INCLUDED__
- #include <winapifamily.h>
- #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
- #define VMEMHEAP_LINEAR __MSABI_LONG(0x1)
- #define VMEMHEAP_RECTANGULAR __MSABI_LONG(0x2)
- #define VMEMHEAP_ALIGNMENT __MSABI_LONG(0x4)
- #define SURFACEALIGN_DISCARDABLE __MSABI_LONG(0x1)
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef ULONG_PTR FLATPTR;
- typedef struct _SURFACEALIGNMENT {
- __C89_NAMELESS union {
- struct {
- DWORD dwStartAlignment;
- DWORD dwPitchAlignment;
- DWORD dwFlags;
- DWORD dwReserved2;
- } Linear;
- struct {
- DWORD dwXAlignment;
- DWORD dwYAlignment;
- DWORD dwFlags;
- DWORD dwReserved2;
- } Rectangular;
- };
- } SURFACEALIGNMENT;
- typedef struct _HEAPALIGNMENT {
- DWORD dwSize;
- DDSCAPS ddsCaps;
- DWORD dwReserved;
- SURFACEALIGNMENT ExecuteBuffer;
- SURFACEALIGNMENT Overlay;
- SURFACEALIGNMENT Texture;
- SURFACEALIGNMENT ZBuffer;
- SURFACEALIGNMENT AlphaBuffer;
- SURFACEALIGNMENT Offscreen;
- SURFACEALIGNMENT FlipTarget;
- } HEAPALIGNMENT;
- typedef struct _DD_GETHEAPALIGNMENTDATA {
- ULONG_PTR dwInstance;
- DWORD dwHeap;
- HRESULT ddRVal;
- VOID *GetHeapAlignment;
- HEAPALIGNMENT Alignment;
- } DD_GETHEAPALIGNMENTDATA;
- 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 _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;
- #if NTDDI_VERSION >= 0x05010000
- BYTE *pAgpCommitMask;
- DWORD dwAgpCommitMaskSize;
- #endif
- } VMEMHEAP;
- #ifndef __NTDDKCOMP__
- typedef struct _VIDMEM *LPVIDMEM;
- #else
- typedef struct _VIDEOMEMORY *LPVIDMEM;
- #endif
- typedef struct _SURFACEALIGNMENT *LPSURFACEALIGNMENT;
- typedef struct _HEAPALIGNMENT *LPHEAPALIGNMENT;
- typedef struct _DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA;
- typedef VMEMHEAP *LPVMEMHEAP;
- #ifndef __NTDDKCOMP__
- extern FLATPTR WINAPI VidMemAlloc (LPVMEMHEAP pvmh, DWORD width, DWORD height);
- #endif
- extern FLATPTR WINAPI HeapVidMemAllocAligned (LPVIDMEM lpVidMem, DWORD dwWidth, DWORD dwHeight, LPSURFACEALIGNMENT lpAlignment, LPLONG lpNewPitch);
- extern void WINAPI VidMemFree (LPVMEMHEAP pvmh, FLATPTR ptr);
- #ifdef __cplusplus
- };
- #endif
- #endif
- #endif
|