Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenframebufacc.h
Go to the documentation of this file.
00001 /* 00002 * ReactOS Generic Framebuffer display driver 00003 * 00004 * Copyright (C) 2004 Filip Navara 00005 * 00006 * This program is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU General Public License 00008 * as published by the Free Software Foundation; either version 2 00009 * of the License, or (at your option) any later version. 00010 * 00011 * This program is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 * GNU General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU General Public License along 00017 * with this program; if not, write to the Free Software Foundation, Inc., 00018 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 00019 */ 00020 00021 #pragma once 00022 00023 #include <stdarg.h> 00024 #include <windef.h> 00025 #include <guiddef.h> 00026 #include <wingdi.h> 00027 #include <winddi.h> 00028 #include <winioctl.h> 00029 #include <ntddvdeo.h> 00030 00031 00032 //#define EXPERIMENTAL_ACC_SUPPORT 00033 00034 typedef struct _PDEV 00035 { 00036 /* Driver stuff */ 00037 HANDLE hDriver; 00038 HDEV hDevEng; 00039 HSURF hSurfEng; 00040 ULONG dwHooks; 00041 00042 /* Screen Data */ 00043 ULONG ModeIndex; 00044 ULONG ScreenWidth; 00045 ULONG ScreenHeight; 00046 ULONG ScreenDelta; 00047 BYTE BitsPerPixel; 00048 ULONG RedMask; 00049 ULONG GreenMask; 00050 ULONG BlueMask; 00051 BYTE PaletteShift; 00052 PVOID ScreenPtr; 00053 00054 /* Vitual desktop stuff */ 00055 POINTL ScreenOffsetXY; 00056 00057 /* Palette data */ 00058 HPALETTE DefaultPalette; 00059 PALETTEENTRY *PaletteEntries; 00060 00061 /* hw mouse acclartions support */ 00062 VIDEO_POINTER_CAPABILITIES PointerCapabilities; 00063 PVIDEO_POINTER_ATTRIBUTES pPointerAttributes; 00064 ULONG PointerAttributesSize; 00065 POINTL PointerHotSpot; 00066 BOOL HwMouseActive; 00067 00068 #ifdef EXPERIMENTAL_MOUSE_CURSOR_SUPPORT 00069 XLATEOBJ *PointerXlateObject; 00070 HSURF PointerColorSurface; 00071 HSURF PointerMaskSurface; 00072 HSURF PointerSaveSurface; 00073 00074 #endif 00075 00076 /* DirectX Support */ 00077 DWORD iDitherFormat; 00078 ULONG MemHeight; 00079 ULONG MemWidth; 00080 DWORD dwHeap; 00081 VIDEOMEMORY* pvmList; 00082 BOOL bDDInitialized; 00083 DDPIXELFORMAT ddpfDisplay; 00084 00085 /* System Cached data */ 00086 PVOID pVideoMemCache; 00087 PVOID pRealVideoMem; 00088 00089 /* Avail Video memory from Current Screen and the end range */ 00090 ULONG VideoMemSize; 00091 00092 } PDEV, *PPDEV; 00093 00094 00095 00096 00097 #define DEVICE_NAME L"framebuf" 00098 #define ALLOC_TAG 'FUBF' 00099 00100 00101 DHPDEV APIENTRY 00102 DrvEnablePDEV( 00103 IN DEVMODEW *pdm, 00104 IN LPWSTR pwszLogAddress, 00105 IN ULONG cPat, 00106 OUT HSURF *phsurfPatterns, 00107 IN ULONG cjCaps, 00108 OUT ULONG *pdevcaps, 00109 IN ULONG cjDevInfo, 00110 OUT DEVINFO *pdi, 00111 IN HDEV hdev, 00112 IN LPWSTR pwszDeviceName, 00113 IN HANDLE hDriver); 00114 00115 VOID APIENTRY 00116 DrvCompletePDEV( 00117 IN DHPDEV dhpdev, 00118 IN HDEV hdev); 00119 00120 VOID APIENTRY 00121 DrvDisablePDEV( 00122 IN DHPDEV dhpdev); 00123 00124 HSURF APIENTRY 00125 DrvEnableSurface( 00126 IN DHPDEV dhpdev); 00127 00128 VOID APIENTRY 00129 DrvDisableSurface( 00130 IN DHPDEV dhpdev); 00131 00132 BOOL APIENTRY 00133 DrvAssertMode( 00134 IN DHPDEV dhpdev, 00135 IN BOOL bEnable); 00136 00137 ULONG APIENTRY 00138 DrvGetModes( 00139 IN HANDLE hDriver, 00140 IN ULONG cjSize, 00141 OUT DEVMODEW *pdm); 00142 00143 BOOL APIENTRY 00144 DrvSetPalette( 00145 IN DHPDEV dhpdev, 00146 IN PALOBJ *ppalo, 00147 IN FLONG fl, 00148 IN ULONG iStart, 00149 IN ULONG cColors); 00150 00151 ULONG APIENTRY 00152 DrvSetPointerShape( 00153 IN SURFOBJ *pso, 00154 IN SURFOBJ *psoMask, 00155 IN SURFOBJ *psoColor, 00156 IN XLATEOBJ *pxlo, 00157 IN LONG xHot, 00158 IN LONG yHot, 00159 IN LONG x, 00160 IN LONG y, 00161 IN RECTL *prcl, 00162 IN FLONG fl); 00163 00164 VOID APIENTRY 00165 DrvMovePointer( 00166 IN SURFOBJ *pso, 00167 IN LONG x, 00168 IN LONG y, 00169 IN RECTL *prcl); 00170 00171 BOOL 00172 IntInitScreenInfo( 00173 PPDEV ppdev, 00174 LPDEVMODEW pDevMode, 00175 PGDIINFO pGdiInfo, 00176 PDEVINFO pDevInfo); 00177 00178 BOOL 00179 IntInitDefaultPalette( 00180 PPDEV ppdev, 00181 PDEVINFO pDevInfo); 00182 00183 BOOL APIENTRY 00184 IntSetPalette( 00185 IN DHPDEV dhpdev, 00186 IN PPALETTEENTRY ppalent, 00187 IN ULONG iStart, 00188 IN ULONG cColors); 00189 00190 BOOL 00191 CopyMonoPointer(PPDEV ppdev, 00192 SURFOBJ *pso); 00193 00194 BOOL 00195 CopyColorPointer(PPDEV ppdev, 00196 SURFOBJ *psoMask, 00197 SURFOBJ *psoColor, 00198 XLATEOBJ *pxlo); Generated on Fri May 25 2012 04:36:17 for ReactOS by
1.7.6.1
|