4 * Copyright 1998-1999 Patrik Stridvall
14 #include "debugtools.h"
16 DEFAULT_DEBUG_CHANNEL(ttydrv
)
18 static const DC_FUNCTIONS TTYDRV_DC_Driver
=
21 NULL
, /* pAbortPath */
23 TTYDRV_DC_Arc
, /* pArc */
25 NULL
, /* pBeginPath */
26 TTYDRV_DC_BitBlt
, /* pBitBlt */
27 TTYDRV_DC_BitmapBits
,/* pBitmapBits */
28 TTYDRV_DC_Chord
, /* pChord */
29 NULL
, /* pCloseFigure */
30 TTYDRV_DC_CreateBitmap
, /* pCreateBitmap */
31 TTYDRV_DC_CreateDC
, /* pCreateDC */
32 NULL
, /* pCreateDIBSection */
33 NULL
, /* pCreateDIBSection16 */
34 TTYDRV_DC_DeleteDC
, /* pDeleteDC */
35 TTYDRV_DC_DeleteObject
, /* pDeleteObject */
36 NULL
, /* pDeviceCapabilities */
37 TTYDRV_DC_Ellipse
, /* pEllipse */
41 NULL
, /* pEnumDeviceFonts */
42 TTYDRV_DC_Escape
, /* pEscape */
43 NULL
, /* pExcludeClipRect */
44 NULL
, /* pExtDeviceMode */
45 TTYDRV_DC_ExtFloodFill
, /* pExtFloodFill */
46 TTYDRV_DC_ExtTextOut
, /* pExtTextOut */
49 NULL
, /* pFlattenPath */
51 TTYDRV_DC_GetCharWidth
, /* pGetCharWidth */
52 TTYDRV_DC_GetPixel
, /* pGetPixel */
53 TTYDRV_DC_GetTextExtentPoint
, /* pGetTextExtentPoint */
54 TTYDRV_DC_GetTextMetrics
, /* pGetTextMetrics */
55 NULL
, /* pIntersectClipRect */
56 NULL
, /* pIntersectVisRect */
57 TTYDRV_DC_LineTo
, /* pLineTo */
58 TTYDRV_DC_LoadOEMResource
, /* pLoadOEMResource */
60 NULL
, /* pOffsetClipRgn */
61 NULL
, /* pOffsetViewportOrg (optional) */
62 NULL
, /* pOffsetWindowOrg (optional) */
63 TTYDRV_DC_PaintRgn
, /* pPaintRgn */
64 TTYDRV_DC_PatBlt
, /* pPatBlt */
65 TTYDRV_DC_Pie
, /* pPie */
66 NULL
, /* pPolyBezier */
67 NULL
, /* pPolyBezierTo */
69 TTYDRV_DC_PolyPolygon
, /* pPolyPolygon */
70 TTYDRV_DC_PolyPolyline
, /* pPolyPolyline */
71 TTYDRV_DC_Polygon
, /* pPolygon */
72 TTYDRV_DC_Polyline
, /* pPolyline */
73 NULL
, /* pPolylineTo */
74 NULL
, /* pRealizePalette */
75 TTYDRV_DC_Rectangle
, /* pRectangle */
76 NULL
, /* pRestoreDC */
77 TTYDRV_DC_RoundRect
, /* pRoundRect */
79 NULL
, /* pScaleViewportExt (optional) */
80 NULL
, /* pScaleWindowExt (optional) */
81 NULL
, /* pSelectClipPath */
82 NULL
, /* pSelectClipRgn */
83 TTYDRV_DC_SelectObject
, /* pSelectObject */
84 NULL
, /* pSelectPalette */
85 TTYDRV_DC_SetBkColor
, /* pSetBkColor */
86 NULL
, /* pSetBkMode */
87 TTYDRV_DC_SetDeviceClipping
, /* pSetDeviceClipping */
88 TTYDRV_DC_SetDIBitsToDevice
, /* pSetDIBitsToDevice */
89 NULL
, /* pSetMapMode (optional) */
90 NULL
, /* pSetMapperFlags */
91 TTYDRV_DC_SetPixel
, /* pSetPixel */
92 NULL
, /* pSetPolyFillMode */
94 NULL
, /* pSetRelAbs */
95 NULL
, /* pSetStretchBltMode */
96 NULL
, /* pSetTextAlign */
97 NULL
, /* pSetTextCharacterExtra */
98 TTYDRV_DC_SetTextColor
, /* pSetTextColor */
99 NULL
, /* pSetTextJustification */
100 NULL
, /* pSetViewportExt (optional) */
101 NULL
, /* pSetViewportOrg (optional) */
102 NULL
, /* pSetWindowExt (optional) */
103 NULL
, /* pSetWindowOrg (optional) */
104 NULL
, /* pStartDoc */
105 NULL
, /* pStartPage */
106 TTYDRV_DC_StretchBlt
, /* pStretchBlt */
107 NULL
, /* pStretchDIBits */
108 NULL
, /* pStrokeAndFillPath */
109 NULL
, /* pStrokePath */
110 NULL
/* pWidenPath */
114 GDI_DRIVER TTYDRV_GDI_Driver
=
116 TTYDRV_GDI_Initialize
,
120 BITMAP_DRIVER TTYDRV_BITMAP_Driver
=
122 TTYDRV_BITMAP_SetDIBits
,
123 TTYDRV_BITMAP_GetDIBits
,
124 TTYDRV_BITMAP_DeleteDIBSection
127 PALETTE_DRIVER TTYDRV_PALETTE_Driver
=
129 TTYDRV_PALETTE_SetMapping
,
130 TTYDRV_PALETTE_UpdateMapping
,
131 TTYDRV_PALETTE_IsDark
134 /* FIXME: Adapt to the TTY driver. Copied from the X11 driver */
136 DeviceCaps TTYDRV_DC_DevCaps
= {
138 /* technology */ DT_RASDISPLAY
,
139 /* size, resolution */ 0, 0, 0, 0, 0,
140 /* device objects */ 1, 16 + 6, 16, 0, 0, 100, 0,
141 /* curve caps */ CC_CIRCLES
| CC_PIE
| CC_CHORD
| CC_ELLIPSES
|
142 CC_WIDE
| CC_STYLED
| CC_WIDESTYLED
| CC_INTERIORS
| CC_ROUNDRECT
,
143 /* line caps */ LC_POLYLINE
| LC_MARKER
| LC_POLYMARKER
| LC_WIDE
|
144 LC_STYLED
| LC_WIDESTYLED
| LC_INTERIORS
,
145 /* polygon caps */ PC_POLYGON
| PC_RECTANGLE
| PC_WINDPOLYGON
|
146 PC_SCANLINE
| PC_WIDE
| PC_STYLED
| PC_WIDESTYLED
| PC_INTERIORS
,
148 /* regions */ CP_REGION
,
149 /* raster caps */ RC_BITBLT
| RC_BANDING
| RC_SCALING
| RC_BITMAP64
|
150 RC_DI_BITMAP
| RC_DIBTODEV
| RC_BIGFONT
| RC_STRETCHBLT
| RC_STRETCHDIB
| RC_DEVBITS
,
151 /* aspects */ 36, 36, 51,
153 /* log pixels */ 0, 0,
155 /* palette size */ 0,
159 /**********************************************************************
160 * TTYDRV_GDI_Initialize
162 BOOL
TTYDRV_GDI_Initialize(void)
164 BITMAP_Driver
= &TTYDRV_BITMAP_Driver
;
165 PALETTE_Driver
= &TTYDRV_PALETTE_Driver
;
167 TTYDRV_DC_DevCaps
.version
= 0x300;
168 TTYDRV_DC_DevCaps
.horzSize
= 0; /* FIXME: Screen width in mm */
169 TTYDRV_DC_DevCaps
.vertSize
= 0; /* FIXME: Screen height in mm */
170 TTYDRV_DC_DevCaps
.horzRes
= 640; /* FIXME: Screen width in pixel */
171 TTYDRV_DC_DevCaps
.vertRes
= 480; /* FIXME: Screen height in pixel */
172 TTYDRV_DC_DevCaps
.bitsPixel
= 1; /* FIXME: Bits per pixel */
173 TTYDRV_DC_DevCaps
.sizePalette
= 0; /* FIXME: ??? */
175 /* Resolution will be adjusted during the font init */
177 TTYDRV_DC_DevCaps
.logPixelsX
= (int) (TTYDRV_DC_DevCaps
.horzRes
* 25.4 / TTYDRV_DC_DevCaps
.horzSize
);
178 TTYDRV_DC_DevCaps
.logPixelsY
= (int) (TTYDRV_DC_DevCaps
.vertRes
* 25.4 / TTYDRV_DC_DevCaps
.vertSize
);
180 if(!TTYDRV_PALETTE_Initialize())
183 return DRIVER_RegisterDriver( "DISPLAY", &TTYDRV_DC_Driver
);
186 /**********************************************************************
187 * TTYDRV_GDI_Finalize
189 void TTYDRV_GDI_Finalize(void)
191 TTYDRV_PALETTE_Finalize();