ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/dmemmgr.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 3114 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /**
2 * This file is part of the mingw-w64 runtime package.
3 * No warranty is given; refer to the file DISCLAIMER within this package.
4 */
5
6 #ifndef __DMEMMGR_INCLUDED__
7 #define __DMEMMGR_INCLUDED__
8
9 #include <winapifamily.h>
10
11 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
12
13 #define VMEMHEAP_LINEAR __MSABI_LONG(0x1)
14 #define VMEMHEAP_RECTANGULAR __MSABI_LONG(0x2)
15 #define VMEMHEAP_ALIGNMENT __MSABI_LONG(0x4)
16
17 #define SURFACEALIGN_DISCARDABLE __MSABI_LONG(0x1)
18
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22
23 typedef ULONG_PTR FLATPTR;
24
25 typedef struct _SURFACEALIGNMENT {
26 __C89_NAMELESS union {
27 struct {
28 DWORD dwStartAlignment;
29 DWORD dwPitchAlignment;
30 DWORD dwFlags;
31 DWORD dwReserved2;
32 } Linear;
33 struct {
34 DWORD dwXAlignment;
35 DWORD dwYAlignment;
36 DWORD dwFlags;
37 DWORD dwReserved2;
38 } Rectangular;
39 };
40 } SURFACEALIGNMENT;
41
42 typedef struct _HEAPALIGNMENT {
43 DWORD dwSize;
44 DDSCAPS ddsCaps;
45 DWORD dwReserved;
46 SURFACEALIGNMENT ExecuteBuffer;
47 SURFACEALIGNMENT Overlay;
48 SURFACEALIGNMENT Texture;
49 SURFACEALIGNMENT ZBuffer;
50 SURFACEALIGNMENT AlphaBuffer;
51 SURFACEALIGNMENT Offscreen;
52 SURFACEALIGNMENT FlipTarget;
53 } HEAPALIGNMENT;
54
55 typedef struct _DD_GETHEAPALIGNMENTDATA {
56 ULONG_PTR dwInstance;
57 DWORD dwHeap;
58 HRESULT ddRVal;
59 VOID *GetHeapAlignment;
60 HEAPALIGNMENT Alignment;
61 } DD_GETHEAPALIGNMENTDATA;
62
63 typedef struct _VMEML {
64 struct _VMEML *next;
65 FLATPTR ptr;
66 DWORD size;
67 WINBOOL bDiscardable;
68 } VMEML,*LPVMEML,**LPLPVMEML;
69
70 typedef struct _VMEMR {
71 struct _VMEMR *next;
72 struct _VMEMR *prev;
73 struct _VMEMR *pUp;
74 struct _VMEMR *pDown;
75 struct _VMEMR *pLeft;
76 struct _VMEMR *pRight;
77 FLATPTR ptr;
78 DWORD size;
79 DWORD x;
80 DWORD y;
81 DWORD cx;
82 DWORD cy;
83 DWORD flags;
84 FLATPTR pBits;
85 WINBOOL bDiscardable;
86 } VMEMR,*LPVMEMR,**LPLPVMEMR;
87
88 typedef struct _VMEMHEAP {
89 DWORD dwFlags;
90 DWORD stride;
91 LPVOID freeList;
92 LPVOID allocList;
93 DWORD dwTotalSize;
94 FLATPTR fpGARTLin;
95 FLATPTR fpGARTDev;
96 DWORD dwCommitedSize;
97 DWORD dwCoalesceCount;
98 HEAPALIGNMENT Alignment;
99 DDSCAPSEX ddsCapsEx;
100 DDSCAPSEX ddsCapsExAlt;
101 #ifndef IS_16
102 LARGE_INTEGER liPhysAGPBase;
103 #endif
104 HANDLE hdevAGP;
105 LPVOID pvPhysRsrv;
106 #if NTDDI_VERSION >= 0x05010000
107 BYTE *pAgpCommitMask;
108 DWORD dwAgpCommitMaskSize;
109 #endif
110 } VMEMHEAP;
111
112 #ifndef __NTDDKCOMP__
113 typedef struct _VIDMEM *LPVIDMEM;
114 #else
115 typedef struct _VIDEOMEMORY *LPVIDMEM;
116 #endif
117
118 typedef struct _SURFACEALIGNMENT *LPSURFACEALIGNMENT;
119 typedef struct _HEAPALIGNMENT *LPHEAPALIGNMENT;
120 typedef struct _DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA;
121 typedef VMEMHEAP *LPVMEMHEAP;
122
123 #ifndef __NTDDKCOMP__
124 extern FLATPTR WINAPI VidMemAlloc (LPVMEMHEAP pvmh, DWORD width, DWORD height);
125 #endif
126 extern FLATPTR WINAPI HeapVidMemAllocAligned (LPVIDMEM lpVidMem, DWORD dwWidth, DWORD dwHeight, LPSURFACEALIGNMENT lpAlignment, LPLONG lpNewPitch);
127 extern void WINAPI VidMemFree (LPVMEMHEAP pvmh, FLATPTR ptr);
128
129 #ifdef __cplusplus
130 };
131 #endif
132
133 #endif
134 #endif