Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygendmemmgr.h
Go to the documentation of this file.
00001 00002 /* $Id: $ 00003 * 00004 * COPYRIGHT: This file is in the public domain. 00005 * PROJECT: ReactOS kernel 00006 * FILE: 00007 * PURPOSE: Directx headers 00008 * PROGRAMMER: Magnus Olsen (greatlrd) 00009 * 00010 */ 00011 00012 #ifndef __DMEMMGR_INCLUDED__ 00013 #define __DMEMMGR_INCLUDED__ 00014 00015 /* Helper macro to enable gcc's extension. */ 00016 #ifndef __GNU_EXTENSION 00017 #ifdef __GNUC__ 00018 #define __GNU_EXTENSION __extension__ 00019 #else 00020 #define __GNU_EXTENSION 00021 #endif 00022 #endif 00023 00024 #ifdef __cplusplus 00025 extern "C" { 00026 #endif 00027 00028 #ifndef __NTDDKCOMP__ 00029 00030 #ifndef FLATPTR_DEFINED 00031 typedef ULONG_PTR FLATPTR; 00032 #define FLATPTR_DEFINED 00033 #endif 00034 00035 typedef struct _VIDMEM *LPVIDMEM; 00036 00037 #else 00038 00039 #ifndef FLATPTR_DEFINED 00040 typedef ULONG_PTR FLATPTR; 00041 #define FLATPTR_DEFINED 00042 #endif 00043 00044 typedef struct _VIDEOMEMORY *LPVIDMEM; 00045 #endif 00046 00047 #define SURFACEALIGN_DISCARDABLE 0x00000001 00048 #define VMEMHEAP_LINEAR 0x00000001 00049 #define VMEMHEAP_RECTANGULAR 0x00000002 00050 #define VMEMHEAP_ALIGNMENT 0x00000004 00051 00052 typedef struct _VMEML 00053 { 00054 struct _VMEML *next; 00055 FLATPTR ptr; 00056 DWORD size; 00057 BOOL bDiscardable; 00058 } VMEML, *LPVMEML, *LPLPVMEML; 00059 00060 typedef struct _VMEMR 00061 { 00062 struct _VMEMR *next; 00063 struct _VMEMR *prev; 00064 00065 struct _VMEMR *pUp; 00066 struct _VMEMR *pDown; 00067 struct _VMEMR *pLeft; 00068 struct _VMEMR *pRight; 00069 FLATPTR ptr; 00070 DWORD size; 00071 DWORD x; 00072 DWORD y; 00073 DWORD cx; 00074 DWORD cy; 00075 DWORD flags; 00076 FLATPTR pBits; 00077 BOOL bDiscardable; 00078 } VMEMR, *LPVMEMR, *LPLPVMEMR; 00079 00080 typedef struct _SURFACEALIGNMENT 00081 { 00082 __GNU_EXTENSION union 00083 { 00084 struct 00085 { 00086 DWORD dwStartAlignment; 00087 DWORD dwPitchAlignment; 00088 DWORD dwFlags; 00089 DWORD dwReserved2; 00090 } Linear; 00091 struct 00092 { 00093 DWORD dwXAlignment; 00094 DWORD dwYAlignment; 00095 DWORD dwFlags; 00096 DWORD dwReserved2; 00097 } Rectangular; 00098 }; 00099 } SURFACEALIGNMENT, *LPSURFACEALIGNMENT; 00100 00101 typedef struct _HEAPALIGNMENT 00102 { 00103 DWORD dwSize; 00104 DDSCAPS ddsCaps; 00105 DWORD dwReserved; 00106 SURFACEALIGNMENT ExecuteBuffer; 00107 SURFACEALIGNMENT Overlay; 00108 SURFACEALIGNMENT Texture; 00109 SURFACEALIGNMENT ZBuffer; 00110 SURFACEALIGNMENT AlphaBuffer; 00111 SURFACEALIGNMENT Offscreen; 00112 SURFACEALIGNMENT FlipTarget; 00113 } HEAPALIGNMENT, *LPHEAPALIGNMENT; 00114 00115 typedef struct _VMEMHEAP 00116 { 00117 DWORD dwFlags; 00118 DWORD stride; 00119 LPVOID freeList; 00120 LPVOID allocList; 00121 DWORD dwTotalSize; 00122 FLATPTR fpGARTLin; 00123 FLATPTR fpGARTDev; 00124 DWORD dwCommitedSize; 00125 DWORD dwCoalesceCount; 00126 HEAPALIGNMENT Alignment; 00127 DDSCAPSEX ddsCapsEx; 00128 DDSCAPSEX ddsCapsExAlt; 00129 #ifndef IS_16 00130 LARGE_INTEGER liPhysAGPBase; 00131 #endif 00132 HANDLE hdevAGP; 00133 LPVOID pvPhysRsrv; 00134 BYTE* pAgpCommitMask; 00135 DWORD dwAgpCommitMaskSize; 00136 } VMEMHEAP, *LPVMEMHEAP; 00137 00138 typedef struct _DD_GETHEAPALIGNMENTDATA 00139 { 00140 ULONG_PTR dwInstance; 00141 DWORD dwHeap; 00142 HRESULT ddRVal; 00143 VOID* GetHeapAlignment; 00144 HEAPALIGNMENT Alignment; 00145 } DD_GETHEAPALIGNMENTDATA; 00146 00147 #ifndef DD_GETHEAPALIGNMENTDATA_DECLARED 00148 typedef DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA; 00149 #define DD_GETHEAPALIGNMENTDATA_DECLARED 00150 #endif 00151 00152 extern void WINAPI VidMemFree( LPVMEMHEAP pvmh, FLATPTR ptr); 00153 extern FLATPTR WINAPI VidMemAlloc( LPVMEMHEAP pvmh, DWORD width, DWORD height); 00154 00155 extern FLATPTR WINAPI 00156 HeapVidMemAllocAligned( 00157 LPVIDMEM lpVidMem, 00158 DWORD dwWidth, 00159 DWORD dwHeight, 00160 LPSURFACEALIGNMENT lpAlignment , 00161 LPLONG lpNewPitch ); 00162 00163 00164 00165 00166 00167 00168 #ifdef __cplusplus 00169 } 00170 #endif 00171 00172 #endif Generated on Sun May 27 2012 04:31:24 for ReactOS by
1.7.6.1
|