/* * ReactOS Generic Framebuffer display driver * * Copyright (C) 2004 Filip Navara * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _FRAMEBUF_PCH_ #define _FRAMEBUF_PCH_ #include #include #include #include #include #include //#define EXPERIMENTAL_MOUSE_CURSOR_SUPPORT typedef struct _PDEV { HANDLE hDriver; HDEV hDevEng; HSURF hSurfEng; ULONG ModeIndex; ULONG ScreenWidth; ULONG ScreenHeight; ULONG ScreenDelta; BYTE BitsPerPixel; ULONG RedMask; ULONG GreenMask; ULONG BlueMask; BYTE PaletteShift; PVOID ScreenPtr; HPALETTE DefaultPalette; PALETTEENTRY *PaletteEntries; #ifdef EXPERIMENTAL_MOUSE_CURSOR_SUPPORT VIDEO_POINTER_ATTRIBUTES PointerAttributes; XLATEOBJ *PointerXlateObject; HSURF PointerColorSurface; HSURF PointerMaskSurface; HSURF PointerSaveSurface; POINTL PointerHotSpot; #endif /* DirectX Support */ DWORD iDitherFormat; ULONG MemHeight; ULONG MemWidth; DWORD dwHeap; VIDEOMEMORY* pvmList; BOOL bDDInitialized; DDPIXELFORMAT ddpfDisplay; } PDEV, *PPDEV; #define DEVICE_NAME L"framebuf" #define ALLOC_TAG 'FUBF' DHPDEV APIENTRY DrvEnablePDEV( IN DEVMODEW *pdm, IN LPWSTR pwszLogAddress, IN ULONG cPat, OUT HSURF *phsurfPatterns, IN ULONG cjCaps, OUT ULONG *pdevcaps, IN ULONG cjDevInfo, OUT DEVINFO *pdi, IN HDEV hdev, IN LPWSTR pwszDeviceName, IN HANDLE hDriver); VOID APIENTRY DrvCompletePDEV( IN DHPDEV dhpdev, IN HDEV hdev); VOID APIENTRY DrvDisablePDEV( IN DHPDEV dhpdev); HSURF APIENTRY DrvEnableSurface( IN DHPDEV dhpdev); VOID APIENTRY DrvDisableSurface( IN DHPDEV dhpdev); BOOL APIENTRY DrvAssertMode( IN DHPDEV dhpdev, IN BOOL bEnable); ULONG APIENTRY DrvGetModes( IN HANDLE hDriver, IN ULONG cjSize, OUT DEVMODEW *pdm); BOOL APIENTRY DrvSetPalette( IN DHPDEV dhpdev, IN PALOBJ *ppalo, IN FLONG fl, IN ULONG iStart, IN ULONG cColors); ULONG APIENTRY DrvSetPointerShape( IN SURFOBJ *pso, IN SURFOBJ *psoMask, IN SURFOBJ *psoColor, IN XLATEOBJ *pxlo, IN LONG xHot, IN LONG yHot, IN LONG x, IN LONG y, IN RECTL *prcl, IN FLONG fl); VOID APIENTRY DrvMovePointer( IN SURFOBJ *pso, IN LONG x, IN LONG y, IN RECTL *prcl); BOOL IntInitScreenInfo( PPDEV ppdev, LPDEVMODEW pDevMode, PGDIINFO pGdiInfo, PDEVINFO pDevInfo); BOOL IntInitDefaultPalette( PPDEV ppdev, PDEVINFO pDevInfo); BOOL APIENTRY IntSetPalette( IN DHPDEV dhpdev, IN PPALETTEENTRY ppalent, IN ULONG iStart, IN ULONG cColors); #endif /* _FRAMEBUF_PCH_ */