ReactOS 0.4.15-dev-6057-gd708c79
framebufacc.h
Go to the documentation of this file.
1/*
2 * ReactOS Generic Framebuffer display driver
3 *
4 * Copyright (C) 2004 Filip Navara
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 */
20
21#pragma once
22
23#include <stdarg.h>
24#include <windef.h>
25#include <guiddef.h>
26#include <wingdi.h>
27#include <winddi.h>
28#include <winioctl.h>
29#include <ntddvdeo.h>
30
31
32//#define EXPERIMENTAL_ACC_SUPPORT
33
34typedef struct _PDEV
35{
36 /* Driver stuff */
38 HDEV hDevEng;
41
42 /* Screen Data */
53
54 /* Vitual desktop stuff */
56
57 /* Palette data */
58 HPALETTE DefaultPalette;
60
61 /* hw mouse acclartions support */
67
68#ifdef EXPERIMENTAL_MOUSE_CURSOR_SUPPORT
69 XLATEOBJ *PointerXlateObject;
70 HSURF PointerColorSurface;
71 HSURF PointerMaskSurface;
72 HSURF PointerSaveSurface;
73
74#endif
75
76 /* DirectX Support */
84
85 /* System Cached data */
88
89 /* Avail Video memory from Current Screen and the end range */
91
93
94
95
96
97#define DEVICE_NAME L"framebuf"
98#define ALLOC_TAG 'FUBF'
99
100
103 IN DEVMODEW *pdm,
105 IN ULONG cPat,
106 OUT HSURF *phsurfPatterns,
108 OUT ULONG *pdevcaps,
110 OUT DEVINFO *pdi,
111 IN HDEV hdev,
114
117 IN DHPDEV dhpdev,
118 IN HDEV hdev);
119
122 IN DHPDEV dhpdev);
123
126 IN DHPDEV dhpdev);
127
130 IN DHPDEV dhpdev);
131
134 IN DHPDEV dhpdev,
135 IN BOOL bEnable);
136
141 OUT DEVMODEW *pdm);
142
145 IN DHPDEV dhpdev,
146 IN PALOBJ *ppalo,
147 IN FLONG fl,
149 IN ULONG cColors);
150
153 IN SURFOBJ *pso,
157 IN LONG xHot,
158 IN LONG yHot,
159 IN LONG x,
160 IN LONG y,
161 IN RECTL *prcl,
162 IN FLONG fl);
163
166 IN SURFOBJ *pso,
167 IN LONG x,
168 IN LONG y,
169 IN RECTL *prcl);
170
171BOOL
173 PPDEV ppdev,
174 LPDEVMODEW pDevMode,
175 PGDIINFO pGdiInfo,
176 PDEVINFO pDevInfo);
177
178BOOL
180 PPDEV ppdev,
181 PDEVINFO pDevInfo);
182
185 IN DHPDEV dhpdev,
186 IN PPALETTEENTRY ppalent,
188 IN ULONG cColors);
189
190BOOL
192 SURFOBJ *pso);
193
194BOOL
198 XLATEOBJ *pxlo);
#define APIENTRY
Definition: api.h:79
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
struct _PDEV PDEV
BOOL IntInitScreenInfo(PPDEV ppdev, LPDEVMODEW pDevMode, PGDIINFO pGdiInfo, PDEVINFO pDevInfo)
Definition: screen.c:120
BOOL CopyMonoPointer(PPDEV ppdev, SURFOBJ *pso)
Definition: pointer.c:219
struct _PDEV * PPDEV
BOOL IntInitDefaultPalette(PPDEV ppdev, PDEVINFO pDevInfo)
Definition: palette.c:60
BOOL CopyColorPointer(PPDEV ppdev, SURFOBJ *psoMask, SURFOBJ *psoColor, XLATEOBJ *pxlo)
Definition: pointer.c:209
BOOL APIENTRY IntSetPalette(IN DHPDEV dhpdev, IN PPALETTEENTRY ppalent, IN ULONG iStart, IN ULONG cColors)
Definition: palette.c:110
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
unsigned long FLONG
Definition: ntbasedef.h:366
long LONG
Definition: pedump.c:60
Definition: framebuf.h:34
VIDEO_POINTER_CAPABILITIES PointerCapabilities
Definition: driver.h:44
ULONG ModeIndex
Definition: framebuf.h:38
HDEV hDevEng
Definition: framebuf.h:36
BOOL HwMouseActive
Definition: framebufacc.h:66
BYTE PaletteShift
Definition: framebuf.h:46
ULONG ScreenDelta
Definition: framebuf.h:41
PALETTEENTRY * PaletteEntries
Definition: framebuf.h:49
ULONG ScreenWidth
Definition: framebuf.h:39
ULONG PointerAttributesSize
Definition: framebufacc.h:64
ULONG GreenMask
Definition: framebuf.h:44
PVOID pRealVideoMem
Definition: framebufacc.h:87
DWORD dwHeap
Definition: framebuf.h:64
DWORD iDitherFormat
Definition: framebuf.h:61
PVIDEO_POINTER_ATTRIBUTES pPointerAttributes
Definition: driver.h:45
ULONG VideoMemSize
Definition: framebufacc.h:90
ULONG BlueMask
Definition: framebuf.h:45
ULONG ScreenHeight
Definition: framebuf.h:40
VIDEOMEMORY * pvmList
Definition: framebuf.h:65
PVOID ScreenPtr
Definition: framebuf.h:47
ULONG RedMask
Definition: framebuf.h:43
HANDLE hDriver
Definition: framebuf.h:35
POINTL ScreenOffsetXY
Definition: framebufacc.h:55
DDPIXELFORMAT ddpfDisplay
Definition: framebuf.h:67
ULONG dwHooks
Definition: framebufacc.h:40
BYTE BitsPerPixel
Definition: framebuf.h:42
ULONG MemWidth
Definition: framebuf.h:63
BOOL bDDInitialized
Definition: framebuf.h:66
ULONG MemHeight
Definition: framebuf.h:62
PVOID pVideoMemCache
Definition: framebufacc.h:86
POINTL PointerHotSpot
Definition: framebufacc.h:65
HSURF hSurfEng
Definition: framebuf.h:37
HPALETTE DefaultPalette
Definition: framebuf.h:48
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
_In_ PALOBJ * ppalo
Definition: winddi.h:4012
_In_ LPWSTR _In_ ULONG _In_ ULONG _In_ ULONG cjDevInfo
Definition: winddi.h:3553
typedef DHPDEV(APIENTRY FN_DrvEnablePDEV)(_In_ DEVMODEW *pdm
FN_DrvSetPalette DrvSetPalette
_In_ HANDLE _In_ SURFOBJ * pso
Definition: winddi.h:3665
_In_ FLONG fl
Definition: winddi.h:1279
_In_ LPWSTR _In_ ULONG _In_ ULONG _In_ ULONG _Out_ DEVINFO * pdi
Definition: winddi.h:3554
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ XLATEOBJ _In_ LONG xHot
Definition: winddi.h:4052
_In_ HDEV hdev
Definition: winddi.h:3449
_In_ LPWSTR pwszLogAddress
Definition: winddi.h:3548
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ XLATEOBJ _In_ LONG _In_ LONG yHot
Definition: winddi.h:4053
FN_DrvSetPointerShape DrvSetPointerShape
FN_DrvGetModes DrvGetModes
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ * pxlo
Definition: winddi.h:3416
_In_opt_ SURFOBJ _In_opt_ SURFOBJ * psoMask
Definition: winddi.h:3434
FN_DrvEnableSurface DrvEnableSurface
_In_ LPWSTR _In_ ULONG _In_ ULONG cjCaps
Definition: winddi.h:3551
_In_ LPWSTR _In_ ULONG cPat
Definition: winddi.h:3549
FN_DrvMovePointer DrvMovePointer
_In_opt_ SURFOBJ _In_opt_ SURFOBJ * psoColor
Definition: winddi.h:4050
typedef HSURF(APIENTRY FN_DrvEnableSurface)(_In_ DHPDEV dhpdev)
_In_ ULONG _In_ CLIPOBJ _In_ RECTL * prcl
Definition: winddi.h:3531
FN_DrvCompletePDEV DrvCompletePDEV
_In_ ULONG cjSize
Definition: winddi.h:3634
_In_ LPWSTR _In_ ULONG _In_ ULONG _In_ ULONG _Out_ DEVINFO _In_ HDEV _In_ LPWSTR pwszDeviceName
Definition: winddi.h:3556
_In_ BOOL bEnable
Definition: winddi.h:3426
FN_DrvEnablePDEV DrvEnablePDEV
_In_ LPWSTR _In_ ULONG _In_ ULONG _In_ ULONG _Out_ DEVINFO _In_ HDEV _In_ LPWSTR _In_ HANDLE hDriver
Definition: winddi.h:3557
FN_DrvAssertMode DrvAssertMode
FN_DrvDisableSurface DrvDisableSurface
FN_DrvDisablePDEV DrvDisablePDEV
_In_ UINT iStart
Definition: wingdi.h:3620
WCHAR * LPWSTR
Definition: xmlstorage.h:184
unsigned char BYTE
Definition: xxhash.c:193