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

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

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