ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

dmemmgr.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.