ReactOS 0.4.16-dev-2175-g9420ab7
vga.c File Reference
#include "precomp.h"
Include dependency graph for vga.c:

Go to the source code of this file.

Macros

#define SET_PIXELS(_PixelPtr, _PixelMask, _TextColor)
 

Functions

static VOID ReadWriteMode (_In_ UCHAR Mode)
 
VOID PrepareForSetPixel (VOID)
 
VOID DisplayCharacter (_In_ CHAR Character, _In_ ULONG Left, _In_ ULONG Top, _In_ ULONG TextColor, _In_ ULONG BackColor)
 
static VOID SetPaletteEntryRGB (_In_ ULONG Id, _In_ RGBQUAD Rgb)
 
VOID InitPaletteWithTable (_In_reads_(Count) const ULONG *Table, _In_ ULONG Count)
 
VOID DoScroll (_In_ ULONG Scroll)
 
VOID PreserveRow (_In_ ULONG CurrentTop, _In_ ULONG TopDelta, _In_ BOOLEAN Restore)
 
VOID NTAPI VidCleanUp (VOID)
 
VOID NTAPI VidScreenToBufferBlt (_Out_writes_bytes_all_(Delta *Height) PUCHAR Buffer, _In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_ ULONG Delta)
 
VOID NTAPI VidSolidColorFill (_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Right, _In_ ULONG Bottom, _In_ UCHAR Color)
 

Variables

static const UCHAR lMaskTable [8]
 
static const UCHAR rMaskTable [8]
 
const UCHAR PixelMask [8]
 
static const ULONG lookup [16]
 
ULONG_PTR VgaRegisterBase = 0
 
ULONG_PTR VgaBase = 0
 

Macro Definition Documentation

◆ SET_PIXELS

#define SET_PIXELS (   _PixelPtr,
  _PixelMask,
  _TextColor 
)
Value:
do { \
/* Select the bitmask register and write the mask */ \
__outpw(VGA_BASE_IO_PORT + GRAPH_ADDRESS_PORT, ((_PixelMask) << 8) | IND_BIT_MASK); \
/* Dummy read to load latch registers */ \
(VOID)READ_REGISTER_UCHAR((_PixelPtr)); \
/* Set the new color */ \
WRITE_REGISTER_UCHAR((_PixelPtr), (UCHAR)(_TextColor)); \
} while (0);
#define VOID
Definition: acefi.h:82
#define GRAPH_ADDRESS_PORT
Definition: vga.h:81
#define IND_BIT_MASK
Definition: vga.h:114
#define VGA_BASE_IO_PORT
Definition: vga.h:38
NTKERNELAPI UCHAR NTAPI READ_REGISTER_UCHAR(IN PUCHAR Register)
unsigned char UCHAR
Definition: xmlstorage.h:181

Definition at line 102 of file vga.c.

Function Documentation

◆ DisplayCharacter()

VOID DisplayCharacter ( _In_ CHAR  Character,
_In_ ULONG  Left,
_In_ ULONG  Top,
_In_ ULONG  TextColor,
_In_ ULONG  BackColor 
)

Definition at line 113 of file vga.c.

119{
120 const UCHAR* FontChar;
121 PUCHAR PixelPtr;
123 UCHAR Shift;
124
126
127 /* Calculate shift */
128 Shift = Left & 7;
129
130 /* Get the font and pixel pointer */
131 FontChar = GetFontPtr(Character);
132 PixelPtr = (PUCHAR)(VgaBase + (Left >> 3) + (Top * (SCREEN_WIDTH / 8)));
133
134 /* Loop all pixel rows */
135 for (Height = BOOTCHAR_HEIGHT; Height > 0; --Height)
136 {
137 SET_PIXELS(PixelPtr, *FontChar >> Shift, TextColor);
138 PixelPtr += (SCREEN_WIDTH / 8);
139 FontChar += FONT_PTR_DELTA;
140 }
141
142 /* Check if we need to update neighbor bytes */
143 if (Shift)
144 {
145 /* Calculate shift for 2nd byte */
146 Shift = 8 - Shift;
147
148 /* Get the font and pixel pointer (2nd byte) */
149 FontChar = GetFontPtr(Character);
150 PixelPtr = (PUCHAR)(VgaBase + (Left >> 3) + (Top * (SCREEN_WIDTH / 8)) + 1);
151
152 /* Loop all pixel rows */
153 for (Height = BOOTCHAR_HEIGHT; Height > 0; --Height)
154 {
155 SET_PIXELS(PixelPtr, *FontChar << Shift, TextColor);
156 PixelPtr += (SCREEN_WIDTH / 8);
157 FontChar += FONT_PTR_DELTA;
158 }
159 }
160
161 /* Check if the background color is transparent */
162 if (BackColor >= BV_COLOR_NONE)
163 {
164 /* We are done */
165 return;
166 }
167
168 /* Calculate shift */
169 Shift = Left & 7;
170
171 /* Get the font and pixel pointer */
172 FontChar = GetFontPtr(Character);
173 PixelPtr = (PUCHAR)(VgaBase + (Left >> 3) + (Top * (SCREEN_WIDTH / 8)));
174
175 /* Loop all pixel rows */
176 for (Height = BOOTCHAR_HEIGHT; Height > 0; --Height)
177 {
178 SET_PIXELS(PixelPtr, ~*FontChar >> Shift, BackColor);
179 PixelPtr += (SCREEN_WIDTH / 8);
180 FontChar += FONT_PTR_DELTA;
181 }
182
183 /* Check if we need to update neighbor bytes */
184 if (Shift)
185 {
186 /* Calculate shift for 2nd byte */
187 Shift = 8 - Shift;
188
189 /* Get the font and pixel pointer (2nd byte) */
190 FontChar = GetFontPtr(Character);
191 PixelPtr = (PUCHAR)(VgaBase + (Left >> 3) + (Top * (SCREEN_WIDTH / 8)) + 1);
192
193 /* Loop all pixel rows */
194 for (Height = BOOTCHAR_HEIGHT; Height > 0; --Height)
195 {
196 SET_PIXELS(PixelPtr, ~*FontChar << Shift, BackColor);
197 PixelPtr += (SCREEN_WIDTH / 8);
198 FontChar += FONT_PTR_DELTA;
199 }
200 }
201}
#define PrepareForSetPixel()
Definition: arm.h:21
static LPHIST_ENTRY Top
Definition: history.c:53
ULONG_PTR VgaBase
Definition: vga.c:69
#define SET_PIXELS(_PixelPtr, _PixelMask, _TextColor)
Definition: vga.c:102
#define GetFontPtr(_Char)
Definition: precomp.h:79
#define FONT_PTR_DELTA
Definition: precomp.h:80
#define BOOTCHAR_HEIGHT
Definition: precomp.h:24
#define SCREEN_WIDTH
Definition: pc98video.c:24
#define BV_COLOR_NONE
Definition: display.h:31
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
_In_ HFONT _Out_ PUINT Height
Definition: font.h:88
_In_ ULONG Shift
Definition: rtlfuncs.h:2698

◆ DoScroll()

VOID DoScroll ( _In_ ULONG  Scroll)

Definition at line 232 of file vga.c.

234{
235 ULONG Top, RowSize;
236 PUCHAR OldPosition, NewPosition;
237
238 /* Clear the 4 planes */
240
241 /* Set the bitmask to 0xFF for all 4 planes */
243
244 /* Set Mode 1 */
245 ReadWriteMode(1);
246
247 RowSize = (VidpScrollRegion.Right - VidpScrollRegion.Left + 1) / 8;
248
249 /* Calculate the position in memory for the row */
250 OldPosition = (PUCHAR)(VgaBase + (VidpScrollRegion.Top + Scroll) * (SCREEN_WIDTH / 8) + VidpScrollRegion.Left / 8);
251 NewPosition = (PUCHAR)(VgaBase + VidpScrollRegion.Top * (SCREEN_WIDTH / 8) + VidpScrollRegion.Left / 8);
252
253 /* Start loop */
255 {
256#if defined(_M_IX86) || defined(_M_AMD64)
257 __movsb(NewPosition, OldPosition, RowSize);
258#else
259 ULONG i;
260
261 /* Scroll the row */
262 for (i = 0; i < RowSize; ++i)
263 WRITE_REGISTER_UCHAR(NewPosition + i, READ_REGISTER_UCHAR(OldPosition + i));
264#endif
265 OldPosition += (SCREEN_WIDTH / 8);
266 NewPosition += (SCREEN_WIDTH / 8);
267 }
268}
URECT VidpScrollRegion
Definition: console.c:17
static VOID ReadWriteMode(_In_ UCHAR Mode)
Definition: vga.c:74
#define SEQ_ADDRESS_PORT
Definition: vga.h:69
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
PPC_QUAL void __movsb(unsigned char *Destination, const unsigned char *Source, unsigned long Count)
Definition: intrin_ppc.h:323
#define __outpw(Port, Value)
Definition: pc.h:27
ULONG Right
Definition: precomp.h:53
ULONG Top
Definition: precomp.h:52
ULONG Bottom
Definition: precomp.h:54
ULONG Left
Definition: precomp.h:51
NTKERNELAPI VOID NTAPI WRITE_REGISTER_UCHAR(IN PUCHAR Register, IN UCHAR Value)

◆ InitPaletteWithTable()

VOID InitPaletteWithTable ( _In_reads_(Count) const ULONG Table,
_In_ ULONG  Count 
)

Definition at line 218 of file vga.c.

221{
222 const ULONG* Entry = Table;
223 ULONG i;
224
225 for (i = 0; i < Count; i++, Entry++)
226 {
228 }
229}
static VOID SetPaletteEntryRGB(_In_ ULONG Id, _In_ RGBQUAD Rgb)
Definition: vga.c:204
ASMGENDATA Table[]
Definition: genincdata.c:61
int Count
Definition: noreturn.cpp:7
base of all file and directory entries
Definition: entries.h:83

◆ PrepareForSetPixel()

VOID PrepareForSetPixel ( VOID  )

Definition at line 90 of file vga.c.

91{
92 /* Switch to mode 10 */
93 ReadWriteMode(10);
94
95 /* Clear the 4 planes (we're already in unchained mode here) */
97
98 /* Select the color don't care register */
100}

◆ PreserveRow()

VOID PreserveRow ( _In_ ULONG  CurrentTop,
_In_ ULONG  TopDelta,
_In_ BOOLEAN  Restore 
)

Definition at line 271 of file vga.c.

275{
276 PUCHAR Position1, Position2;
277 ULONG Count;
278
279 /* Clear the 4 planes */
281
282 /* Set the bitmask to 0xFF for all 4 planes */
284
285 /* Set Mode 1 */
286 ReadWriteMode(1);
287
288 /* Calculate the position in memory for the row */
289 if (Restore)
290 {
291 /* Restore the row by copying back the contents saved off-screen */
292 Position1 = (PUCHAR)(VgaBase + CurrentTop * (SCREEN_WIDTH / 8));
293 Position2 = (PUCHAR)(VgaBase + SCREEN_HEIGHT * (SCREEN_WIDTH / 8));
294 }
295 else
296 {
297 /* Preserve the row by saving its contents off-screen */
298 Position1 = (PUCHAR)(VgaBase + SCREEN_HEIGHT * (SCREEN_WIDTH / 8));
299 Position2 = (PUCHAR)(VgaBase + CurrentTop * (SCREEN_WIDTH / 8));
300 }
301
302 /* Set the count and loop every pixel */
303 Count = TopDelta * (SCREEN_WIDTH / 8);
304#if defined(_M_IX86) || defined(_M_AMD64)
305 __movsb(Position1, Position2, Count);
306#else
307 while (Count--)
308 {
309 /* Write the data back on the other position */
310 WRITE_REGISTER_UCHAR(Position1, READ_REGISTER_UCHAR(Position2));
311
312 /* Increase both positions */
313 Position1++;
314 Position2++;
315 }
316#endif
317}
#define SCREEN_HEIGHT
Definition: pc98video.c:25

◆ ReadWriteMode()

static VOID ReadWriteMode ( _In_ UCHAR  Mode)
static

Definition at line 74 of file vga.c.

76{
78
79 /* Switch to graphics mode register */
81
82 /* Get the current register value, minus the current mode */
84
85 /* Set the new mode */
87}
#define GRAPH_DATA_PORT
Definition: vga.h:82
#define IND_GRAPH_MODE
Definition: vga.h:112
_In_ ULONG Mode
Definition: hubbusif.h:303
#define __inpb(Port)
Definition: pc.h:18
#define __outpb(Port, Value)
Definition: pc.h:24
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413

Referenced by DoScroll(), PitReadData(), PitWriteCommand(), PitWriteData(), PrepareForSetPixel(), PreserveRow(), and VidScreenToBufferBlt().

◆ SetPaletteEntryRGB()

static VOID SetPaletteEntryRGB ( _In_ ULONG  Id,
_In_ RGBQUAD  Rgb 
)
static

Definition at line 204 of file vga.c.

207{
208 /* Set the palette index */
210
211 /* Set RGB colors */
215}
DWORD Id
#define DAC_DATA_REG_PORT
Definition: vga.h:77
#define DAC_ADDRESS_WRITE_PORT
Definition: vga.h:76
#define GetBValue(quad)
Definition: precomp.h:71
#define GetGValue(quad)
Definition: precomp.h:70
#define GetRValue(quad)
Definition: precomp.h:69

Referenced by InitPaletteWithTable().

◆ VidCleanUp()

VOID NTAPI VidCleanUp ( VOID  )

Definition at line 323 of file vga.c.

324{
325 /* Select bit mask register and clear it */
328}
#define BIT_MASK_DEFAULT
Definition: vga.h:167

◆ VidScreenToBufferBlt()

VOID NTAPI VidScreenToBufferBlt ( _Out_writes_bytes_all_(Delta *Height) PUCHAR  Buffer,
_In_ ULONG  Left,
_In_ ULONG  Top,
_In_ ULONG  Width,
_In_ ULONG  Height,
_In_ ULONG  Delta 
)

Definition at line 332 of file vga.c.

339{
340 ULONG Plane;
341 ULONG XDistance;
342 ULONG LeftDelta, RightDelta;
343 ULONG PixelOffset;
344 PUCHAR PixelPosition;
345 PUCHAR k, i;
346 PULONG m;
347 UCHAR Value, Value2;
348 UCHAR a;
349 ULONG b;
350 ULONG x, y;
351
352 /* Calculate total distance to copy on X */
353 XDistance = Left + Width - 1;
354
355 /* Calculate the 8-byte left and right deltas */
356 LeftDelta = Left & 7;
357 RightDelta = 8 - LeftDelta;
358
359 /* Clear the destination buffer */
360 RtlZeroMemory(Buffer, Delta * Height);
361
362 /* Calculate the pixel offset and convert the X distance into byte form */
363 PixelOffset = Top * (SCREEN_WIDTH / 8) + (Left >> 3);
364 XDistance >>= 3;
365
366 /* Loop the 4 planes */
367 for (Plane = 0; Plane < 4; ++Plane)
368 {
369 /* Set the current pixel position and reset buffer loop variable */
370 PixelPosition = (PUCHAR)(VgaBase + PixelOffset);
371 i = Buffer;
372
373 /* Set Mode 0 */
374 ReadWriteMode(0);
375
376 /* Set the current plane */
378
379 /* Start the outer Y height loop */
380 for (y = Height; y > 0; --y)
381 {
382 /* Read the current value */
383 m = (PULONG)i;
384 Value = READ_REGISTER_UCHAR(PixelPosition);
385
386 /* Set Pixel Position loop variable */
387 k = PixelPosition + 1;
388
389 /* Check if we're still within bounds */
390 if (Left <= XDistance)
391 {
392 /* Start the X inner loop */
393 for (x = (XDistance - Left) + 1; x > 0; --x)
394 {
395 /* Read the current value */
396 Value2 = READ_REGISTER_UCHAR(k);
397
398 /* Increase pixel position */
399 k++;
400
401 /* Do the blt */
402 a = Value2 >> (UCHAR)RightDelta;
403 a |= Value << (UCHAR)LeftDelta;
404 b = lookup[a & 0xF];
405 a >>= 4;
406 b <<= 16;
407 b |= lookup[a];
408
409 /* Save new value to buffer */
410 *m |= (b << Plane);
411
412 /* Move to next destination location */
413 m++;
414
415 /* Write new value */
416 Value = Value2;
417 }
418 }
419
420 /* Update pixel position */
421 PixelPosition += (SCREEN_WIDTH / 8);
422 i += Delta;
423 }
424 }
425}
Definition: bufpool.h:45
static const ULONG lookup[16]
Definition: vga.c:48
#define IND_READ_MAP
Definition: vga.h:111
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
const GLfloat * m
Definition: glext.h:10848
#define a
Definition: ke_i.h:78
#define b
Definition: ke_i.h:79
int k
Definition: mpi.c:3369
uint32_t * PULONG
Definition: typedefs.h:59
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
Definition: font.h:89

◆ VidSolidColorFill()

VOID NTAPI VidSolidColorFill ( _In_ ULONG  Left,
_In_ ULONG  Top,
_In_ ULONG  Right,
_In_ ULONG  Bottom,
_In_ UCHAR  Color 
)

Definition at line 429 of file vga.c.

435{
436 ULONG rMask, lMask;
437 ULONG LeftOffset, RightOffset, Distance;
439 ULONG i, j;
440
441 /* Get the left and right masks, shifts, and delta */
442 LeftOffset = Left >> 3;
443 lMask = (lMaskTable[Left & 0x7] << 8) | IND_BIT_MASK;
444 RightOffset = Right >> 3;
445 rMask = (rMaskTable[Right & 0x7] << 8) | IND_BIT_MASK;
446 Distance = RightOffset - LeftOffset;
447
448 /* If there is no distance, then combine the right and left masks */
449 if (!Distance) lMask &= rMask;
450
452
453 /* Calculate pixel position for the read */
454 Offset = (PUCHAR)(VgaBase + (Top * (SCREEN_WIDTH / 8)) + LeftOffset);
455
456 /* Select the bitmask register and write the mask */
458
459 /* Check if the top coord is below the bottom one */
460 if (Top <= Bottom)
461 {
462 /* Start looping each line */
463 for (i = (Bottom - Top) + 1; i > 0; --i)
464 {
465 /* Read the previous value and add our color */
467
468 /* Move to the next line */
469 Offset += (SCREEN_WIDTH / 8);
470 }
471 }
472
473 /* Check if we have a delta */
474 if (Distance > 0)
475 {
476 /* Calculate new pixel position */
477 Offset = (PUCHAR)(VgaBase + (Top * (SCREEN_WIDTH / 8)) + RightOffset);
478 Distance--;
479
480 /* Select the bitmask register and write the mask */
482
483 /* Check if the top coord is below the bottom one */
484 if (Top <= Bottom)
485 {
486 /* Start looping each line */
487 for (i = (Bottom - Top) + 1; i > 0; --i)
488 {
489 /* Read the previous value and add our color */
491
492 /* Move to the next line */
493 Offset += (SCREEN_WIDTH / 8);
494 }
495 }
496
497 /* Check if we still have a delta */
498 if (Distance > 0)
499 {
500 /* Calculate new pixel position */
501 Offset = (PUCHAR)(VgaBase + (Top * (SCREEN_WIDTH / 8)) + LeftOffset + 1);
502
503 /* Set the bitmask to 0xFF for all 4 planes */
505
506 /* Check if the top coord is below the bottom one */
507 if (Top <= Bottom)
508 {
509 /* Start looping each line */
510 for (i = (Bottom - Top) + 1; i > 0; --i)
511 {
512 /* Loop the shift delta */
513 for (j = Distance; j > 0; Offset++, --j)
514 {
515 /* Write the color */
517 }
518
519 /* Update position in memory */
520 Offset += ((SCREEN_WIDTH / 8) - Distance);
521 }
522 }
523 }
524 }
525}
static LPHIST_ENTRY Bottom
Definition: history.c:54
static const UCHAR rMaskTable[8]
Definition: vga.c:26
static const UCHAR lMaskTable[8]
Definition: vga.c:15
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
Definition: glfuncs.h:250
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
unsigned short USHORT
Definition: pedump.c:61

Variable Documentation

◆ lMaskTable

const UCHAR lMaskTable[8]
static
Initial value:
=
{
(1 << 8) - (1 << 0),
(1 << 7) - (1 << 0),
(1 << 6) - (1 << 0),
(1 << 5) - (1 << 0),
(1 << 4) - (1 << 0),
(1 << 3) - (1 << 0),
(1 << 2) - (1 << 0),
(1 << 1) - (1 << 0)
}

Definition at line 15 of file vga.c.

Referenced by VidSolidColorFill().

◆ lookup

◆ PixelMask

const UCHAR PixelMask[8]
Initial value:
=
{
(1 << 7),
(1 << 6),
(1 << 5),
(1 << 4),
(1 << 3),
(1 << 2),
(1 << 1),
(1 << 0),
}

Definition at line 37 of file vga.c.

Referenced by ConsoleEfiGopIsPixelFormatSupported(), DisplayCharacter(), and SetPixel().

◆ rMaskTable

const UCHAR rMaskTable[8]
static
Initial value:
=
{
(1 << 7),
(1 << 7) + (1 << 6),
(1 << 7) + (1 << 6) + (1 << 5),
(1 << 7) + (1 << 6) + (1 << 5) + (1 << 4),
(1 << 7) + (1 << 6) + (1 << 5) + (1 << 4) + (1 << 3),
(1 << 7) + (1 << 6) + (1 << 5) + (1 << 4) + (1 << 3) + (1 << 2),
(1 << 7) + (1 << 6) + (1 << 5) + (1 << 4) + (1 << 3) + (1 << 2) + (1 << 1),
(1 << 7) + (1 << 6) + (1 << 5) + (1 << 4) + (1 << 3) + (1 << 2) + (1 << 1) + (1 << 0),
}

Definition at line 26 of file vga.c.

Referenced by VidSolidColorFill().

◆ VgaBase

◆ VgaRegisterBase

ULONG_PTR VgaRegisterBase = 0

Definition at line 68 of file vga.c.

Referenced by VgaInterpretCmdStream(), and VidInitialize().