mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
GDI Improvements
svn path=/trunk/; revision=1185
This commit is contained in:
parent
77ef48e705
commit
a25a8e2e02
11 changed files with 898 additions and 503 deletions
|
@ -1,4 +1,4 @@
|
|||
# $Id: makefile,v 1.10 2000/02/27 11:04:36 jfilby Exp $
|
||||
# $Id: makefile,v 1.11 2000/06/16 07:34:15 jfilby Exp $
|
||||
#
|
||||
# Makefile for ReactOS gdi32.dll
|
||||
#
|
||||
|
@ -19,12 +19,11 @@ endif
|
|||
all: $(DLLTARGET)
|
||||
|
||||
MAIN_OBJECTS = main/dllmain.o
|
||||
|
||||
MISC_OBJECTS = misc/stubs.o misc/stubsa.o misc/stubsw.o misc/win32k.o
|
||||
|
||||
RESOURCE_OBJECTS = $(TARGET).coff
|
||||
OBJECTS_OBJECTS = objects/dc.o objects/line.o objects/pen.o objects/bitblt.o objects/text.o
|
||||
|
||||
OBJECTS = $(MAIN_OBJECTS) $(MISC_OBJECTS) $(RESOURCE_OBJECTS)
|
||||
OBJECTS = $(MAIN_OBJECTS) $(MISC_OBJECTS) $(RESOURCE_OBJECTS) $(OBJECTS_OBJECTS)
|
||||
|
||||
$(TARGET).a: $(OBJECTS)
|
||||
$(AR) csr $(TARGET).a $(OBJECTS)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: stubs.c,v 1.2 2000/02/13 16:05:12 dwelch Exp $
|
||||
/* $Id: stubs.c,v 1.3 2000/06/16 07:34:15 jfilby Exp $
|
||||
*
|
||||
* reactos/lib/gdi32/misc/stubs.c
|
||||
*
|
||||
|
@ -48,26 +48,6 @@ Arc(
|
|||
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
BitBlt(
|
||||
HDC a0,
|
||||
int a1,
|
||||
int a2,
|
||||
int a3,
|
||||
int a4,
|
||||
HDC a5,
|
||||
int a6,
|
||||
int a7,
|
||||
DWORD a8
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
CancelDC(
|
||||
|
@ -140,34 +120,6 @@ CombineRgn(
|
|||
|
||||
|
||||
|
||||
HBITMAP
|
||||
STDCALL
|
||||
CreateBitmap(
|
||||
int a0,
|
||||
int a1,
|
||||
UINT a2,
|
||||
UINT a3,
|
||||
CONST VOID *a4
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
HBITMAP
|
||||
STDCALL
|
||||
CreateBitmapIndirect(
|
||||
CONST BITMAP *a0
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
HBRUSH
|
||||
STDCALL
|
||||
CreateBrushIndirect(
|
||||
|
@ -180,63 +132,6 @@ CreateBrushIndirect(
|
|||
|
||||
|
||||
|
||||
HBITMAP
|
||||
STDCALL
|
||||
CreateCompatibleBitmap(
|
||||
HDC a0,
|
||||
int a1,
|
||||
int a2
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
HBITMAP
|
||||
STDCALL
|
||||
CreateDiscardableBitmap(
|
||||
HDC a0,
|
||||
int a1,
|
||||
int a2
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
HDC
|
||||
STDCALL
|
||||
CreateCompatibleDC(
|
||||
HDC a0
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
HBITMAP
|
||||
STDCALL
|
||||
CreateDIBitmap(
|
||||
HDC a0,
|
||||
CONST BITMAPINFOHEADER *a1,
|
||||
DWORD a2,
|
||||
CONST VOID *a3,
|
||||
CONST BITMAPINFO *a4,
|
||||
UINT a5
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
HBRUSH
|
||||
STDCALL
|
||||
CreateDIBPatternBrush(
|
||||
|
@ -315,32 +210,6 @@ CreatePalette(
|
|||
|
||||
|
||||
|
||||
HPEN
|
||||
STDCALL
|
||||
CreatePen(
|
||||
int a0,
|
||||
int a1,
|
||||
COLORREF a2
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
HPEN
|
||||
STDCALL
|
||||
CreatePenIndirect(
|
||||
CONST LOGPEN *a0
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
HRGN
|
||||
STDCALL
|
||||
CreatePolyPolygonRgn(
|
||||
|
@ -707,33 +576,6 @@ GetBkMode(
|
|||
|
||||
|
||||
|
||||
LONG
|
||||
STDCALL
|
||||
GetBitmapBits(
|
||||
HBITMAP a0,
|
||||
LONG a1,
|
||||
LPVOID a2
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
GetBitmapDimensionEx(
|
||||
HBITMAP a0,
|
||||
LPSIZE a1
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
UINT
|
||||
STDCALL
|
||||
GetBoundsRect(
|
||||
|
@ -840,24 +682,6 @@ GetDeviceCaps(
|
|||
|
||||
|
||||
|
||||
int
|
||||
STDCALL
|
||||
GetDIBits(
|
||||
HDC a0,
|
||||
HBITMAP a1,
|
||||
UINT a2,
|
||||
UINT a3,
|
||||
LPVOID a4,
|
||||
LPBITMAPINFO a5,
|
||||
UINT a6
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
DWORD
|
||||
STDCALL
|
||||
GetFontData(
|
||||
|
@ -1278,63 +1102,6 @@ LineDDA(
|
|||
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
LineTo(
|
||||
HDC a0,
|
||||
int a1,
|
||||
int a2
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
MaskBlt(
|
||||
HDC a0,
|
||||
int a1,
|
||||
int a2,
|
||||
int a3,
|
||||
int a4,
|
||||
HDC a5,
|
||||
int a6,
|
||||
int a7,
|
||||
HBITMAP a8,
|
||||
int a9,
|
||||
int a10,
|
||||
DWORD a11
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
PlgBlt(
|
||||
HDC a0,
|
||||
CONST POINT *a1,
|
||||
HDC a2,
|
||||
int a3,
|
||||
int a4,
|
||||
int a5,
|
||||
int a6,
|
||||
HBITMAP a7,
|
||||
int a8,
|
||||
int a9
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int
|
||||
STDCALL
|
||||
|
@ -1496,22 +1263,6 @@ RectVisible(
|
|||
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
Rectangle(
|
||||
HDC a0,
|
||||
int a1,
|
||||
int a2,
|
||||
int a3,
|
||||
int a4
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
RestoreDC(
|
||||
|
@ -1619,19 +1370,6 @@ SetMetaRgn(
|
|||
|
||||
|
||||
|
||||
HGDIOBJ
|
||||
STDCALL
|
||||
SelectObject(
|
||||
HDC a0,
|
||||
HGDIOBJ a1
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
HPALETTE
|
||||
STDCALL
|
||||
SelectPalette(
|
||||
|
@ -1672,20 +1410,6 @@ SetBkMode(
|
|||
|
||||
|
||||
|
||||
LONG
|
||||
STDCALL
|
||||
SetBitmapBits(
|
||||
HBITMAP a0,
|
||||
DWORD a1,
|
||||
CONST VOID *a2
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
UINT
|
||||
STDCALL
|
||||
SetBoundsRect(
|
||||
|
@ -1700,47 +1424,6 @@ SetBoundsRect(
|
|||
|
||||
|
||||
|
||||
int
|
||||
STDCALL
|
||||
SetDIBits(
|
||||
HDC a0,
|
||||
HBITMAP a1,
|
||||
UINT a2,
|
||||
UINT a3,
|
||||
CONST VOID *a4,
|
||||
CONST BITMAPINFO *a5,
|
||||
UINT a6
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int
|
||||
STDCALL
|
||||
SetDIBitsToDevice(
|
||||
HDC a0,
|
||||
int a1,
|
||||
int a2,
|
||||
DWORD a3,
|
||||
DWORD a4,
|
||||
int a5,
|
||||
int a6,
|
||||
UINT a7,
|
||||
UINT a8,
|
||||
CONST VOID *a9,
|
||||
CONST BITMAPINFO *a10,
|
||||
UINT a11
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
DWORD
|
||||
STDCALL
|
||||
SetMapperFlags(
|
||||
|
@ -1808,21 +1491,6 @@ SetPaletteEntries(
|
|||
|
||||
|
||||
|
||||
COLORREF
|
||||
STDCALL
|
||||
SetPixel(
|
||||
HDC a0,
|
||||
int a1,
|
||||
int a2,
|
||||
COLORREF a3
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
SetPixelV(
|
||||
|
@ -1903,30 +1571,6 @@ SetRectRgn(
|
|||
|
||||
|
||||
|
||||
int
|
||||
STDCALL
|
||||
StretchDIBits(
|
||||
HDC a0,
|
||||
int a1,
|
||||
int a2,
|
||||
int a3,
|
||||
int a4,
|
||||
int a5,
|
||||
int a6,
|
||||
int a7,
|
||||
int a8,
|
||||
CONST VOID *a9,
|
||||
CONST BITMAPINFO *a10,
|
||||
UINT a11,
|
||||
DWORD a12
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int
|
||||
STDCALL
|
||||
SetROP2(
|
||||
|
@ -2331,23 +1975,6 @@ CombineTransform(
|
|||
|
||||
|
||||
|
||||
HBITMAP
|
||||
STDCALL
|
||||
CreateDIBSection(
|
||||
HDC hdc,
|
||||
CONST BITMAPINFO *a1,
|
||||
UINT a2,
|
||||
VOID **a3,
|
||||
HANDLE a4,
|
||||
DWORD a5
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
UINT
|
||||
STDCALL
|
||||
GetDIBColorTable(
|
||||
|
@ -2728,20 +2355,6 @@ GetArcDirection(
|
|||
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
MoveToEx(
|
||||
HDC hdc,
|
||||
int a1,
|
||||
int a2,
|
||||
LPPOINT a3
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
HRGN
|
||||
STDCALL
|
||||
CreatePolygonRgn(
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: stubsa.c,v 1.3 2000/02/27 11:04:36 jfilby Exp $
|
||||
/* $Id: stubsa.c,v 1.4 2000/06/16 07:34:15 jfilby Exp $
|
||||
*
|
||||
* reactos/lib/gdi32/misc/stubs.c
|
||||
*
|
||||
|
@ -39,66 +39,6 @@ CopyMetaFileA(
|
|||
}
|
||||
|
||||
|
||||
HDC
|
||||
STDCALL
|
||||
CreateDCA (
|
||||
LPCSTR lpszDriver,
|
||||
LPCSTR lpszDevice,
|
||||
LPCSTR lpszOutput,
|
||||
CONST DEVMODE * lpInitData
|
||||
)
|
||||
{
|
||||
ANSI_STRING DriverA, DeviceA, OutputA;
|
||||
UNICODE_STRING DriverU, DeviceU, OutputU;
|
||||
HDC hDC;
|
||||
|
||||
/*
|
||||
* If needed, convert to Unicode
|
||||
* any string parameter.
|
||||
*/
|
||||
|
||||
if (NULL != lpszDriver)
|
||||
{
|
||||
RtlInitAnsiString(&DriverA, (LPSTR)lpszDriver);
|
||||
RtlAnsiStringToUnicodeString(&DriverU, &DriverA, TRUE);
|
||||
}
|
||||
if (NULL != lpszDevice)
|
||||
{
|
||||
RtlInitAnsiString(&DeviceA, (LPSTR)lpszDevice);
|
||||
RtlAnsiStringToUnicodeString(&DeviceU, &DeviceA, TRUE);
|
||||
}
|
||||
if (NULL != lpszOutput)
|
||||
{
|
||||
RtlInitAnsiString(&OutputA, (LPSTR)lpszOutput);
|
||||
RtlAnsiStringToUnicodeString(&OutputU, &OutputA, TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* Call the Unicode version
|
||||
* of CreateDC.
|
||||
*/
|
||||
|
||||
hDC = CreateDCW (
|
||||
DriverU.Buffer,
|
||||
DeviceU.Buffer,
|
||||
OutputU.Buffer,
|
||||
lpInitData
|
||||
);
|
||||
/*
|
||||
* Free Unicode parameters.
|
||||
*/
|
||||
RtlFreeUnicodeString(&DriverU);
|
||||
RtlFreeUnicodeString(&DeviceU);
|
||||
RtlFreeUnicodeString(&OutputU);
|
||||
|
||||
/*
|
||||
* Return the possible DC handle.
|
||||
*/
|
||||
|
||||
return hDC;
|
||||
}
|
||||
|
||||
|
||||
HFONT
|
||||
STDCALL
|
||||
CreateFontIndirectA(
|
||||
|
@ -514,21 +454,6 @@ GetObjectA(
|
|||
}
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
TextOutA(
|
||||
HDC hdc,
|
||||
int a1,
|
||||
int a2,
|
||||
LPCSTR a3,
|
||||
int a4
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
ExtTextOutA(
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: stubsw.c,v 1.2 2000/02/20 22:52:48 ea Exp $
|
||||
/* $Id: stubsw.c,v 1.3 2000/06/16 07:34:15 jfilby Exp $
|
||||
*
|
||||
* reactos/lib/gdi32/misc/stubs.c
|
||||
*
|
||||
|
@ -36,25 +36,6 @@ CopyMetaFileW(
|
|||
}
|
||||
|
||||
|
||||
HDC
|
||||
STDCALL
|
||||
CreateDCW (
|
||||
LPCWSTR lpwszDriver,
|
||||
LPCWSTR lpwszDevice,
|
||||
LPCWSTR lpwszOutput,
|
||||
CONST DEVMODE * lpInitData
|
||||
)
|
||||
{
|
||||
/* FIXME: is this a forward-only call? */
|
||||
return W32kCreateDC (
|
||||
lpwszDriver,
|
||||
lpwszDevice,
|
||||
lpwszOutput,
|
||||
lpInitData
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
HFONT
|
||||
STDCALL
|
||||
CreateFontIndirectW(
|
||||
|
@ -469,21 +450,6 @@ GetObjectW(
|
|||
}
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
TextOutW(
|
||||
HDC hdc,
|
||||
int a1,
|
||||
int a2,
|
||||
LPCWSTR a3,
|
||||
int a4
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
ExtTextOutW(
|
||||
|
|
262
reactos/lib/gdi32/objects/bitblt.c
Normal file
262
reactos/lib/gdi32/objects/bitblt.c
Normal file
|
@ -0,0 +1,262 @@
|
|||
#ifdef UNICODE
|
||||
#undef UNICODE
|
||||
#endif
|
||||
|
||||
#undef WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <ddk/ntddk.h>
|
||||
#include <win32k/kapi.h>
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
BitBlt(HDC hDCDest,
|
||||
INT XDest,
|
||||
INT YDest,
|
||||
INT Width,
|
||||
INT Height,
|
||||
HDC hDCSrc,
|
||||
INT XSrc,
|
||||
INT YSrc,
|
||||
DWORD ROP)
|
||||
{
|
||||
return W32kBitBlt(hDCDest, XDest, YDest, Width, Height, hDCSrc, XSrc, YSrc, ROP);
|
||||
}
|
||||
|
||||
HBITMAP
|
||||
STDCALL
|
||||
CreateBitmap(INT Width,
|
||||
INT Height,
|
||||
UINT Planes,
|
||||
UINT BitsPerPel,
|
||||
CONST VOID *Bits)
|
||||
{
|
||||
return W32kCreateBitmap(Width, Height, Planes, BitsPerPel, Bits);
|
||||
}
|
||||
|
||||
HBITMAP
|
||||
STDCALL
|
||||
CreateBitmapIndirect(CONST BITMAP *BM)
|
||||
{
|
||||
return W32kCreateBitmapIndirect(BM);
|
||||
}
|
||||
|
||||
HBITMAP
|
||||
STDCALL
|
||||
CreateCompatibleBitmap(HDC hDC,
|
||||
INT Width,
|
||||
INT Height)
|
||||
{
|
||||
return W32kCreateCompatibleBitmap(hDC, Width, Height);
|
||||
}
|
||||
|
||||
HBITMAP
|
||||
STDCALL
|
||||
CreateDiscardableBitmap(HDC hDC,
|
||||
INT Width,
|
||||
INT Height)
|
||||
{
|
||||
return W32kCreateDiscardableBitmap(hDC, Width, Height);
|
||||
}
|
||||
|
||||
HBITMAP
|
||||
STDCALL
|
||||
CreateDIBitmap(HDC hDC,
|
||||
CONST BITMAPINFOHEADER *bmih,
|
||||
DWORD Init,
|
||||
CONST VOID *bInit,
|
||||
CONST BITMAPINFO *bmi,
|
||||
UINT Usage)
|
||||
{
|
||||
return W32kCreateDIBitmap(hDC, bmih, Init, bInit, bmi, Usage);
|
||||
}
|
||||
|
||||
LONG
|
||||
STDCALL
|
||||
GetBitmapBits(HBITMAP hBitmap,
|
||||
LONG Count,
|
||||
LPVOID Bits)
|
||||
{
|
||||
return W32kGetBitmapBits(hBitmap, Count, Bits);
|
||||
}
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
GetBitmapDimensionEx(HBITMAP hBitmap,
|
||||
LPSIZE Dimension)
|
||||
{
|
||||
return W32kGetBitmapDimensionEx(hBitmap, Dimension);
|
||||
}
|
||||
|
||||
int
|
||||
STDCALL
|
||||
GetDIBits(HDC hDC,
|
||||
HBITMAP hBitmap,
|
||||
UINT StartScan,
|
||||
UINT ScanLines,
|
||||
LPVOID Bits,
|
||||
LPBITMAPINFO bi,
|
||||
UINT Usage)
|
||||
{
|
||||
return W32kGetDIBits(hDC, hBitmap, StartScan, ScanLines, Bits, bi, Usage);
|
||||
}
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
MaskBlt(HDC hDCDest,
|
||||
INT XDest,
|
||||
INT YDest,
|
||||
INT Width,
|
||||
INT Height,
|
||||
HDC hDCSrc,
|
||||
INT XSrc,
|
||||
INT YSrc,
|
||||
HBITMAP hMaskBitmap,
|
||||
INT xMask,
|
||||
INT yMask,
|
||||
DWORD ROP)
|
||||
{
|
||||
return W32kMaskBlt(hDCDest, XDest, YDest, Width, Height, hDCSrc, XSrc, YSrc, hMaskBitmap, xMask, yMask, ROP);
|
||||
}
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
PlgBlt(HDC hDCDest,
|
||||
CONST POINT *Point,
|
||||
HDC hDCSrc,
|
||||
INT XSrc,
|
||||
INT YSrc,
|
||||
INT Width,
|
||||
INT Height,
|
||||
HBITMAP hMaskBitmap,
|
||||
INT xMask,
|
||||
INT yMask)
|
||||
{
|
||||
return W32kPlgBlt(hDCDest, Point, hDCSrc, XSrc, YSrc, Width, Height, hMaskBitmap, xMask, yMask);
|
||||
}
|
||||
|
||||
LONG
|
||||
STDCALL
|
||||
SetBitmapBits(HBITMAP hBitmap,
|
||||
DWORD Bytes,
|
||||
CONST VOID *Bits)
|
||||
{
|
||||
return W32kSetBitmapBits(hBitmap, Bytes, Bits);
|
||||
}
|
||||
|
||||
int
|
||||
STDCALL
|
||||
SetDIBits(HDC hDC,
|
||||
HBITMAP hBitmap,
|
||||
UINT StartScan,
|
||||
UINT ScanLines,
|
||||
CONST VOID *Bits,
|
||||
CONST BITMAPINFO *bmi,
|
||||
UINT ColorUse)
|
||||
{
|
||||
return W32kSetDIBits(hDC, hBitmap, StartScan, ScanLines, Bits, bmi, ColorUse);
|
||||
}
|
||||
|
||||
int
|
||||
STDCALL
|
||||
SetDIBitsToDevice(HDC hDC,
|
||||
INT XDest,
|
||||
INT YDest,
|
||||
DWORD Width,
|
||||
DWORD Height,
|
||||
INT XSrc,
|
||||
INT YSrc,
|
||||
UINT StartScan,
|
||||
UINT ScanLines,
|
||||
CONST VOID *Bits,
|
||||
CONST BITMAPINFO *bmi,
|
||||
UINT ColorUse)
|
||||
{
|
||||
return W32kSetDIBitsToDevice(hDC, XDest, YDest, Width, Height, XSrc, YSrc, StartScan, ScanLines,
|
||||
Bits, bmi, ColorUse);
|
||||
}
|
||||
|
||||
int
|
||||
STDCALL
|
||||
StretchDIBits(HDC hDC,
|
||||
INT XDest,
|
||||
INT YDest,
|
||||
INT DestWidth,
|
||||
INT DestHeight,
|
||||
INT XSrc,
|
||||
INT YSrc,
|
||||
INT SrcWidth,
|
||||
INT SrcHeight,
|
||||
CONST VOID *Bits,
|
||||
CONST BITMAPINFO *BitsInfo,
|
||||
UINT Usage,
|
||||
DWORD ROP)
|
||||
{
|
||||
return W32kStretchDIBits(hDC, XDest, YDest, DestWidth, DestHeight, XSrc, YSrc,
|
||||
SrcWidth, SrcHeight, Bits, BitsInfo, Usage, ROP);
|
||||
}
|
||||
|
||||
HBITMAP
|
||||
STDCALL
|
||||
CreateDIBSection(HDC hDC,
|
||||
CONST BITMAPINFO *bmi,
|
||||
UINT Usage,
|
||||
VOID *Bits,
|
||||
HANDLE hSection,
|
||||
DWORD dwOffset)
|
||||
{
|
||||
return W32kCreateDIBSection(hDC, bmi, Usage, Bits, hSection, dwOffset);
|
||||
}
|
||||
|
||||
COLORREF
|
||||
STDCALL
|
||||
SetPixel(HDC hDC,
|
||||
INT X,
|
||||
INT Y,
|
||||
COLORREF Color)
|
||||
{
|
||||
return W32kSetPixel(hDC, X, Y, Color);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
BOOL STDCALL W32kExtFloodFill(HDC hDC, INT XStart, INT YStart, COLORREF Color, UINT FillType)
|
||||
BOOL STDCALL W32kFloodFill(HDC hDC, INT XStart, INT YStart, COLORREF Fill)
|
||||
UINT STDCALL W32kGetDIBColorTable(HDC hDC, UINT StartIndex, UINT Entries, RGBQUAD *Colors)
|
||||
COLORREF STDCALL W32kGetPixel(HDC hDC,
|
||||
INT XPos,
|
||||
INT YPos)
|
||||
BOOL STDCALL W32kSetBitmapDimensionEx(HBITMAP hBitmap,
|
||||
INT Width,
|
||||
INT Height,
|
||||
LPSIZE Size)
|
||||
UINT STDCALL W32kSetDIBColorTable(HDC hDC,
|
||||
UINT StartIndex,
|
||||
UINT Entries,
|
||||
CONST RGBQUAD *Colors)
|
||||
BOOL STDCALL W32kSetPixelV(HDC hDC,
|
||||
INT X,
|
||||
INT Y,
|
||||
COLORREF Color)
|
||||
BOOL STDCALL W32kStretchBlt(HDC hDCDest,
|
||||
INT XOriginDest,
|
||||
INT YOriginDest,
|
||||
INT WidthDest,
|
||||
INT HeightDest,
|
||||
HDC hDCSrc,
|
||||
INT XOriginSrc,
|
||||
INT YOriginSrc,
|
||||
INT WidthSrc,
|
||||
INT HeightSrc,
|
||||
DWORD ROP)
|
||||
|
||||
INT BITMAPOBJ_GetWidthBytes (INT bmWidth, INT bpp)
|
||||
HBITMAP BITMAPOBJ_CopyBitmap(HBITMAP hBitmap)
|
||||
int DIB_GetDIBWidthBytes(int width, int depth)
|
||||
int DIB_GetDIBImageBytes (int width, int height, int depth)
|
||||
int DIB_BitmapInfoSize (const BITMAPINFO * info, WORD coloruse)
|
||||
|
||||
*/
|
106
reactos/lib/gdi32/objects/dc.c
Normal file
106
reactos/lib/gdi32/objects/dc.c
Normal file
|
@ -0,0 +1,106 @@
|
|||
#ifdef UNICODE
|
||||
#undef UNICODE
|
||||
#endif
|
||||
|
||||
#undef WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <ddk/ntddk.h>
|
||||
#include <win32k/kapi.h>
|
||||
|
||||
HDC
|
||||
STDCALL
|
||||
CreateDCA (
|
||||
LPCSTR lpszDriver,
|
||||
LPCSTR lpszDevice,
|
||||
LPCSTR lpszOutput,
|
||||
CONST DEVMODE * lpInitData
|
||||
)
|
||||
{
|
||||
ANSI_STRING DriverA, DeviceA, OutputA;
|
||||
UNICODE_STRING DriverU, DeviceU, OutputU;
|
||||
HDC hDC;
|
||||
|
||||
/*
|
||||
* If needed, convert to Unicode
|
||||
* any string parameter.
|
||||
*/
|
||||
|
||||
if (NULL != lpszDriver)
|
||||
{
|
||||
RtlInitAnsiString(&DriverA, (LPSTR)lpszDriver);
|
||||
RtlAnsiStringToUnicodeString(&DriverU, &DriverA, TRUE);
|
||||
} else
|
||||
DriverU.Buffer = NULL;
|
||||
if (NULL != lpszDevice)
|
||||
{
|
||||
RtlInitAnsiString(&DeviceA, (LPSTR)lpszDevice);
|
||||
RtlAnsiStringToUnicodeString(&DeviceU, &DeviceA, TRUE);
|
||||
} else
|
||||
DeviceU.Buffer = NULL;
|
||||
if (NULL != lpszOutput)
|
||||
{
|
||||
RtlInitAnsiString(&OutputA, (LPSTR)lpszOutput);
|
||||
RtlAnsiStringToUnicodeString(&OutputU, &OutputA, TRUE);
|
||||
} else
|
||||
OutputU.Buffer = NULL;
|
||||
|
||||
/*
|
||||
* Call the Unicode version
|
||||
* of CreateDC.
|
||||
*/
|
||||
|
||||
hDC = CreateDCW (
|
||||
DriverU.Buffer,
|
||||
DeviceU.Buffer,
|
||||
OutputU.Buffer,
|
||||
lpInitData
|
||||
);
|
||||
/*
|
||||
* Free Unicode parameters.
|
||||
*/
|
||||
RtlFreeUnicodeString(&DriverU);
|
||||
RtlFreeUnicodeString(&DeviceU);
|
||||
RtlFreeUnicodeString(&OutputU);
|
||||
|
||||
/*
|
||||
* Return the possible DC handle.
|
||||
*/
|
||||
|
||||
return hDC;
|
||||
}
|
||||
|
||||
HDC
|
||||
STDCALL
|
||||
CreateDCW (
|
||||
LPCWSTR lpwszDriver,
|
||||
LPCWSTR lpwszDevice,
|
||||
LPCWSTR lpwszOutput,
|
||||
CONST DEVMODE * lpInitData
|
||||
)
|
||||
{
|
||||
return W32kCreateDC (
|
||||
lpwszDriver,
|
||||
lpwszDevice,
|
||||
lpwszOutput,
|
||||
lpInitData
|
||||
);
|
||||
}
|
||||
|
||||
HDC
|
||||
STDCALL
|
||||
CreateCompatibleDC(
|
||||
HDC hDC
|
||||
)
|
||||
{
|
||||
return W32kCreateCompatableDC(hDC);
|
||||
}
|
||||
|
||||
HGDIOBJ
|
||||
STDCALL
|
||||
SelectObject(
|
||||
HDC hDC,
|
||||
HGDIOBJ hGDIObj
|
||||
)
|
||||
{
|
||||
return W32kSelectObject(hDC, hGDIObj);
|
||||
}
|
34
reactos/lib/gdi32/objects/line.c
Normal file
34
reactos/lib/gdi32/objects/line.c
Normal file
|
@ -0,0 +1,34 @@
|
|||
#ifdef UNICODE
|
||||
#undef UNICODE
|
||||
#endif
|
||||
|
||||
#undef WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <ddk/ntddk.h>
|
||||
#include <win32k/kapi.h>
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
LineTo(HDC hDC, int XEnd, int YEnd)
|
||||
{
|
||||
return W32kLineTo(hDC, XEnd, YEnd);
|
||||
}
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
MoveToEx(HDC hDC, int X, int Y, LPPOINT Point)
|
||||
{
|
||||
return W32kMoveToEx(hDC, X, Y, Point);
|
||||
}
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
Rectangle(HDC hDC,
|
||||
int LeftRect,
|
||||
int TopRect,
|
||||
int RightRect,
|
||||
int BottomRect)
|
||||
{
|
||||
// MOVE to fillshap.c
|
||||
return W32kRectangle(hDC, LeftRect, TopRect, RightRect, BottomRect);
|
||||
}
|
22
reactos/lib/gdi32/objects/pen.c
Normal file
22
reactos/lib/gdi32/objects/pen.c
Normal file
|
@ -0,0 +1,22 @@
|
|||
#ifdef UNICODE
|
||||
#undef UNICODE
|
||||
#endif
|
||||
|
||||
#undef WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <ddk/ntddk.h>
|
||||
#include <win32k/kapi.h>
|
||||
|
||||
HPEN
|
||||
STDCALL
|
||||
CreatePen(INT PenStyle, INT Width, COLORREF Color)
|
||||
{
|
||||
return W32kCreatePen(PenStyle, Width, Color);
|
||||
}
|
||||
|
||||
HPEN
|
||||
STDCALL
|
||||
CreatePenIndirect(CONST LOGPEN *lgpn)
|
||||
{
|
||||
return W32kCreatePenIndirect(lgpn);
|
||||
}
|
45
reactos/lib/gdi32/objects/text.c
Normal file
45
reactos/lib/gdi32/objects/text.c
Normal file
|
@ -0,0 +1,45 @@
|
|||
#ifdef UNICODE
|
||||
#undef UNICODE
|
||||
#endif
|
||||
|
||||
#undef WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <ddk/ntddk.h>
|
||||
#include <win32k/kapi.h>
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
TextOutA(
|
||||
HDC hDC,
|
||||
int XStart,
|
||||
int YStart,
|
||||
LPCSTR String,
|
||||
int Count)
|
||||
{
|
||||
ANSI_STRING StringA;
|
||||
UNICODE_STRING StringU;
|
||||
BOOL ret;
|
||||
|
||||
if (NULL != String)
|
||||
{
|
||||
RtlInitAnsiString(&StringA, (LPSTR)String);
|
||||
RtlAnsiStringToUnicodeString(&StringU, &StringA, TRUE);
|
||||
} else
|
||||
StringU.Buffer = NULL;
|
||||
|
||||
ret = TextOutW(hDC, XStart, YStart, StringU.Buffer, Count);
|
||||
RtlFreeUnicodeString(&StringU);
|
||||
return ret;
|
||||
}
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
TextOutW(
|
||||
HDC hDC,
|
||||
int XStart,
|
||||
int YStart,
|
||||
LPCWSTR String,
|
||||
int Count)
|
||||
{
|
||||
return W32kTextOut(hDC, XStart, YStart, String, Count);
|
||||
}
|
407
reactos/subsys/win32k/freetype/grfont.c
Normal file
407
reactos/subsys/win32k/freetype/grfont.c
Normal file
|
@ -0,0 +1,407 @@
|
|||
// Taken from FreeType 2 (www.freetype.org)
|
||||
|
||||
#undef WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <ddk/ntddk.h>
|
||||
#include <win32k/dc.h>
|
||||
#include <win32k/bitmaps.h>
|
||||
#include "../eng/objects.h"
|
||||
|
||||
// #include "grfont.h"
|
||||
// #include <string.h>
|
||||
|
||||
/* font characters */
|
||||
|
||||
const unsigned char font_8x8[2048] =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E,
|
||||
0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E,
|
||||
0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00,
|
||||
0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00,
|
||||
0x38, 0x7C, 0x38, 0xFE, 0xFE, 0x92, 0x10, 0x7C,
|
||||
0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x7C,
|
||||
0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF,
|
||||
0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00,
|
||||
0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF,
|
||||
0x0F, 0x07, 0x0F, 0x7D, 0xCC, 0xCC, 0xCC, 0x78,
|
||||
0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18,
|
||||
0x3F, 0x33, 0x3F, 0x30, 0x30, 0x70, 0xF0, 0xE0,
|
||||
0x7F, 0x63, 0x7F, 0x63, 0x63, 0x67, 0xE6, 0xC0,
|
||||
0x99, 0x5A, 0x3C, 0xE7, 0xE7, 0x3C, 0x5A, 0x99,
|
||||
0x80, 0xE0, 0xF8, 0xFE, 0xF8, 0xE0, 0x80, 0x00,
|
||||
0x02, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x02, 0x00,
|
||||
0x18, 0x3C, 0x7E, 0x18, 0x18, 0x7E, 0x3C, 0x18,
|
||||
0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00,
|
||||
0x7F, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x00,
|
||||
0x3E, 0x63, 0x38, 0x6C, 0x6C, 0x38, 0x86, 0xFC,
|
||||
0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x00,
|
||||
0x18, 0x3C, 0x7E, 0x18, 0x7E, 0x3C, 0x18, 0xFF,
|
||||
0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x00,
|
||||
0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00,
|
||||
0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00,
|
||||
0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, 0x00,
|
||||
0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00,
|
||||
0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00,
|
||||
0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x00, 0x00,
|
||||
0x00, 0xFF, 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00,
|
||||
0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00,
|
||||
0x18, 0x7E, 0xC0, 0x7C, 0x06, 0xFC, 0x18, 0x00,
|
||||
0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00,
|
||||
0x38, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0x76, 0x00,
|
||||
0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00,
|
||||
0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, 0x00,
|
||||
0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00,
|
||||
0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30,
|
||||
0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,
|
||||
0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00,
|
||||
0x7C, 0xCE, 0xDE, 0xF6, 0xE6, 0xC6, 0x7C, 0x00,
|
||||
0x30, 0x70, 0x30, 0x30, 0x30, 0x30, 0xFC, 0x00,
|
||||
0x78, 0xCC, 0x0C, 0x38, 0x60, 0xCC, 0xFC, 0x00,
|
||||
0x78, 0xCC, 0x0C, 0x38, 0x0C, 0xCC, 0x78, 0x00,
|
||||
0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x1E, 0x00,
|
||||
0xFC, 0xC0, 0xF8, 0x0C, 0x0C, 0xCC, 0x78, 0x00,
|
||||
0x38, 0x60, 0xC0, 0xF8, 0xCC, 0xCC, 0x78, 0x00,
|
||||
0xFC, 0xCC, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00,
|
||||
0x78, 0xCC, 0xCC, 0x78, 0xCC, 0xCC, 0x78, 0x00,
|
||||
0x78, 0xCC, 0xCC, 0x7C, 0x0C, 0x18, 0x70, 0x00,
|
||||
0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00,
|
||||
0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30,
|
||||
0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00,
|
||||
0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00,
|
||||
0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60, 0x00,
|
||||
0x3C, 0x66, 0x0C, 0x18, 0x18, 0x00, 0x18, 0x00,
|
||||
0x7C, 0xC6, 0xDE, 0xDE, 0xDC, 0xC0, 0x7C, 0x00,
|
||||
0x30, 0x78, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0x00,
|
||||
0xFC, 0x66, 0x66, 0x7C, 0x66, 0x66, 0xFC, 0x00,
|
||||
0x3C, 0x66, 0xC0, 0xC0, 0xC0, 0x66, 0x3C, 0x00,
|
||||
0xF8, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00,
|
||||
0xFE, 0x62, 0x68, 0x78, 0x68, 0x62, 0xFE, 0x00,
|
||||
0xFE, 0x62, 0x68, 0x78, 0x68, 0x60, 0xF0, 0x00,
|
||||
0x3C, 0x66, 0xC0, 0xC0, 0xCE, 0x66, 0x3A, 0x00,
|
||||
0xCC, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0x00,
|
||||
0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
|
||||
0x1E, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00,
|
||||
0xE6, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0xE6, 0x00,
|
||||
0xF0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00,
|
||||
0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00,
|
||||
0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00,
|
||||
0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00,
|
||||
0xFC, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00,
|
||||
0x7C, 0xC6, 0xC6, 0xC6, 0xD6, 0x7C, 0x0E, 0x00,
|
||||
0xFC, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0xE6, 0x00,
|
||||
0x7C, 0xC6, 0xE0, 0x78, 0x0E, 0xC6, 0x7C, 0x00,
|
||||
0xFC, 0xB4, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
|
||||
0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xFC, 0x00,
|
||||
0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00,
|
||||
0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00,
|
||||
0xC6, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0xC6, 0x00,
|
||||
0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x78, 0x00,
|
||||
0xFE, 0xC6, 0x8C, 0x18, 0x32, 0x66, 0xFE, 0x00,
|
||||
0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x00,
|
||||
0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x02, 0x00,
|
||||
0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00,
|
||||
0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
|
||||
0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
|
||||
0xE0, 0x60, 0x60, 0x7C, 0x66, 0x66, 0xDC, 0x00,
|
||||
0x00, 0x00, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x00,
|
||||
0x1C, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00,
|
||||
0x00, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
|
||||
0x38, 0x6C, 0x64, 0xF0, 0x60, 0x60, 0xF0, 0x00,
|
||||
0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8,
|
||||
0xE0, 0x60, 0x6C, 0x76, 0x66, 0x66, 0xE6, 0x00,
|
||||
0x30, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
|
||||
0x0C, 0x00, 0x1C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78,
|
||||
0xE0, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0xE6, 0x00,
|
||||
0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
|
||||
0x00, 0x00, 0xCC, 0xFE, 0xFE, 0xD6, 0xD6, 0x00,
|
||||
0x00, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00,
|
||||
0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00,
|
||||
0x00, 0x00, 0xDC, 0x66, 0x66, 0x7C, 0x60, 0xF0,
|
||||
0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0x1E,
|
||||
0x00, 0x00, 0xDC, 0x76, 0x62, 0x60, 0xF0, 0x00,
|
||||
0x00, 0x00, 0x7C, 0xC0, 0x70, 0x1C, 0xF8, 0x00,
|
||||
0x10, 0x30, 0xFC, 0x30, 0x30, 0x34, 0x18, 0x00,
|
||||
0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
|
||||
0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00,
|
||||
0x00, 0x00, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00,
|
||||
0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00,
|
||||
0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8,
|
||||
0x00, 0x00, 0xFC, 0x98, 0x30, 0x64, 0xFC, 0x00,
|
||||
0x1C, 0x30, 0x30, 0xE0, 0x30, 0x30, 0x1C, 0x00,
|
||||
0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00,
|
||||
0xE0, 0x30, 0x30, 0x1C, 0x30, 0x30, 0xE0, 0x00,
|
||||
0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00,
|
||||
0x7C, 0xC6, 0xC0, 0xC6, 0x7C, 0x0C, 0x06, 0x7C,
|
||||
0x00, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
|
||||
0x1C, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
|
||||
0x7E, 0x81, 0x3C, 0x06, 0x3E, 0x66, 0x3B, 0x00,
|
||||
0xCC, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
|
||||
0xE0, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
|
||||
0x30, 0x30, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
|
||||
0x00, 0x00, 0x7C, 0xC6, 0xC0, 0x78, 0x0C, 0x38,
|
||||
0x7E, 0x81, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00,
|
||||
0xCC, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
|
||||
0xE0, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00,
|
||||
0xCC, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
|
||||
0x7C, 0x82, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00,
|
||||
0xE0, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
|
||||
0xC6, 0x10, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00,
|
||||
0x30, 0x30, 0x00, 0x78, 0xCC, 0xFC, 0xCC, 0x00,
|
||||
0x1C, 0x00, 0xFC, 0x60, 0x78, 0x60, 0xFC, 0x00,
|
||||
0x00, 0x00, 0x7F, 0x0C, 0x7F, 0xCC, 0x7F, 0x00,
|
||||
0x3E, 0x6C, 0xCC, 0xFE, 0xCC, 0xCC, 0xCE, 0x00,
|
||||
0x78, 0x84, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00,
|
||||
0x00, 0xCC, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00,
|
||||
0x00, 0xE0, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00,
|
||||
0x78, 0x84, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
|
||||
0x00, 0xE0, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
|
||||
0x00, 0xCC, 0x00, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8,
|
||||
0xC3, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x18, 0x00,
|
||||
0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00,
|
||||
0x18, 0x18, 0x7E, 0xC0, 0xC0, 0x7E, 0x18, 0x18,
|
||||
0x38, 0x6C, 0x64, 0xF0, 0x60, 0xE6, 0xFC, 0x00,
|
||||
0xCC, 0xCC, 0x78, 0x30, 0xFC, 0x30, 0xFC, 0x30,
|
||||
0xF8, 0xCC, 0xCC, 0xFA, 0xC6, 0xCF, 0xC6, 0xC3,
|
||||
0x0E, 0x1B, 0x18, 0x3C, 0x18, 0x18, 0xD8, 0x70,
|
||||
0x1C, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00,
|
||||
0x38, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
|
||||
0x00, 0x1C, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00,
|
||||
0x00, 0x1C, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00,
|
||||
0x00, 0xF8, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0x00,
|
||||
0xFC, 0x00, 0xCC, 0xEC, 0xFC, 0xDC, 0xCC, 0x00,
|
||||
0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00,
|
||||
0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00,
|
||||
0x18, 0x00, 0x18, 0x18, 0x30, 0x66, 0x3C, 0x00,
|
||||
0x00, 0x00, 0x00, 0xFC, 0xC0, 0xC0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xFC, 0x0C, 0x0C, 0x00, 0x00,
|
||||
0xC6, 0xCC, 0xD8, 0x36, 0x6B, 0xC2, 0x84, 0x0F,
|
||||
0xC3, 0xC6, 0xCC, 0xDB, 0x37, 0x6D, 0xCF, 0x03,
|
||||
0x18, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x18, 0x00,
|
||||
0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00,
|
||||
0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00,
|
||||
0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88,
|
||||
0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA,
|
||||
0xDB, 0xF6, 0xDB, 0x6F, 0xDB, 0x7E, 0xD7, 0xED,
|
||||
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
||||
0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18,
|
||||
0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18,
|
||||
0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, 0x36,
|
||||
0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18,
|
||||
0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, 0x36,
|
||||
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
||||
0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36,
|
||||
0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00,
|
||||
0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00,
|
||||
0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18,
|
||||
0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00,
|
||||
0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18,
|
||||
0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
|
||||
0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18,
|
||||
0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18,
|
||||
0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36,
|
||||
0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, 0x36,
|
||||
0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36,
|
||||
0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36,
|
||||
0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00,
|
||||
0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36,
|
||||
0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00,
|
||||
0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36,
|
||||
0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00,
|
||||
0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18,
|
||||
0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36,
|
||||
0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, 0x36,
|
||||
0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x18,
|
||||
0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
|
||||
0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x76, 0xDC, 0xC8, 0xDC, 0x76, 0x00,
|
||||
0x00, 0x78, 0xCC, 0xF8, 0xCC, 0xF8, 0xC0, 0xC0,
|
||||
0x00, 0xFC, 0xCC, 0xC0, 0xC0, 0xC0, 0xC0, 0x00,
|
||||
0x00, 0x00, 0xFE, 0x6C, 0x6C, 0x6C, 0x6C, 0x00,
|
||||
0xFC, 0xCC, 0x60, 0x30, 0x60, 0xCC, 0xFC, 0x00,
|
||||
0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0x70, 0x00,
|
||||
0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0xC0,
|
||||
0x00, 0x76, 0xDC, 0x18, 0x18, 0x18, 0x18, 0x00,
|
||||
0xFC, 0x30, 0x78, 0xCC, 0xCC, 0x78, 0x30, 0xFC,
|
||||
0x38, 0x6C, 0xC6, 0xFE, 0xC6, 0x6C, 0x38, 0x00,
|
||||
0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x6C, 0xEE, 0x00,
|
||||
0x1C, 0x30, 0x18, 0x7C, 0xCC, 0xCC, 0x78, 0x00,
|
||||
0x00, 0x00, 0x7E, 0xDB, 0xDB, 0x7E, 0x00, 0x00,
|
||||
0x06, 0x0C, 0x7E, 0xDB, 0xDB, 0x7E, 0x60, 0xC0,
|
||||
0x38, 0x60, 0xC0, 0xF8, 0xC0, 0x60, 0x38, 0x00,
|
||||
0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x00,
|
||||
0x00, 0x7E, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00,
|
||||
0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x7E, 0x00,
|
||||
0x60, 0x30, 0x18, 0x30, 0x60, 0x00, 0xFC, 0x00,
|
||||
0x18, 0x30, 0x60, 0x30, 0x18, 0x00, 0xFC, 0x00,
|
||||
0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18,
|
||||
0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, 0x70,
|
||||
0x18, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x18, 0x00,
|
||||
0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00,
|
||||
0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
|
||||
0x0F, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x3C, 0x1C,
|
||||
0x58, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00,
|
||||
0x70, 0x98, 0x30, 0x60, 0xF8, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
static PSURFOBJ CharCellSurfObj;
|
||||
static HBITMAP hCharCellBitmap;
|
||||
|
||||
// Set things up for a character cell surface
|
||||
void CreateCellCharSurface()
|
||||
{
|
||||
PSURFGDI surfgdi;
|
||||
PBITMAPOBJ pbo;
|
||||
|
||||
CharCellSurfObj = ExAllocatePool(NonPagedPool, sizeof(SURFOBJ));
|
||||
surfgdi = ExAllocatePool(NonPagedPool, sizeof(SURFGDI));
|
||||
|
||||
hCharCellBitmap = W32kCreateBitmap(8, 8, 1, 8, NULL); // 8x8, 1 plane, 8 bits per pel
|
||||
pbo = BITMAPOBJ_HandleToPtr(hCharCellBitmap);
|
||||
|
||||
BitmapToSurf(surfgdi, CharCellSurfObj, pbo); // Make the bitmap a surface
|
||||
}
|
||||
|
||||
void grWriteCellChar(PSURFOBJ target,
|
||||
int x,
|
||||
int y,
|
||||
int charcode,
|
||||
COLORREF color)
|
||||
{
|
||||
RECTL DestRect;
|
||||
POINTL SourcePoint;
|
||||
|
||||
char *bigbit, *mover;
|
||||
unsigned char thebyte, thebit, idxColor;
|
||||
int i, j, charcode8, i8;
|
||||
|
||||
if (charcode < 0 || charcode > 255)
|
||||
return;
|
||||
|
||||
DestRect.left = x;
|
||||
DestRect.top = y;
|
||||
DestRect.right = x+8;
|
||||
DestRect.bottom = y+8;
|
||||
|
||||
SourcePoint.x = 0;
|
||||
SourcePoint.y = 0;
|
||||
|
||||
bigbit = ExAllocatePool(NonPagedPool, 256);
|
||||
|
||||
// Explode the 1BPP character cell into an 8BPP one due to current GDI limitations.. major FIXME
|
||||
charcode8 = charcode * 8;
|
||||
mover = bigbit;
|
||||
|
||||
for (i=0; i<8; i++)
|
||||
{
|
||||
thebyte = font_8x8[charcode8 + i];
|
||||
i8 = i*8;
|
||||
for (j=8; j>0; j--)
|
||||
{
|
||||
thebit = thebyte & (1 << j);
|
||||
if(thebit>0) thebit = 1;
|
||||
*mover = thebit;
|
||||
mover++;
|
||||
}
|
||||
}
|
||||
|
||||
W32kSetBitmapBits(hCharCellBitmap, 256, bigbit);
|
||||
|
||||
// Blt bitmap to screen
|
||||
EngBitBlt(target, CharCellSurfObj, NULL, NULL, NULL, &DestRect, &SourcePoint, NULL, NULL, NULL, NULL);
|
||||
|
||||
ExFreePool(bigbit);
|
||||
}
|
||||
|
||||
void grWriteCellString(PSURFOBJ target,
|
||||
int x,
|
||||
int y,
|
||||
const char* string,
|
||||
COLORREF color)
|
||||
{
|
||||
while (*string)
|
||||
{
|
||||
grWriteCellChar(target, x, y, *string++, color);
|
||||
x += 8;
|
||||
}
|
||||
}
|
||||
|
||||
static int gr_cursor_x = 0;
|
||||
static int gr_cursor_y = 0;
|
||||
static PBITMAPOBJ gr_text_bitmap = 0;
|
||||
static int gr_margin_right = 0;
|
||||
static int gr_margin_top = 0;
|
||||
|
||||
void grGotobitmap(PBITMAPOBJ bitmap )
|
||||
{
|
||||
gr_text_bitmap = bitmap;
|
||||
}
|
||||
|
||||
void grSetMargin(int right, int top)
|
||||
{
|
||||
gr_margin_top = top << 3;
|
||||
gr_margin_right = right << 3;
|
||||
}
|
||||
|
||||
void grGotoxy(int x, int y)
|
||||
{
|
||||
gr_cursor_x = x;
|
||||
gr_cursor_y = y;
|
||||
}
|
||||
|
||||
void grWrite(const char* string)
|
||||
{
|
||||
if (string)
|
||||
{
|
||||
COLORREF color;
|
||||
|
||||
// color.value = 127;
|
||||
grWriteCellString( gr_text_bitmap,
|
||||
gr_margin_right + (gr_cursor_x << 3),
|
||||
gr_margin_top + (gr_cursor_y << 3),
|
||||
string,
|
||||
color );
|
||||
|
||||
gr_cursor_x += strlen(string);
|
||||
}
|
||||
}
|
||||
|
||||
void grLn()
|
||||
{
|
||||
gr_cursor_y ++;
|
||||
gr_cursor_x = 0;
|
||||
}
|
||||
|
||||
void grWriteln(const char* string)
|
||||
{
|
||||
grWrite( string );
|
||||
grLn();
|
||||
}
|
16
reactos/subsys/win32k/freetype/grfont.h
Normal file
16
reactos/subsys/win32k/freetype/grfont.h
Normal file
|
@ -0,0 +1,16 @@
|
|||
#ifndef GRFONT_H
|
||||
#define GRFONT_H
|
||||
|
||||
#include "graph.h"
|
||||
|
||||
extern const unsigned char font_8x8[];
|
||||
|
||||
extern void grGotobitmap( grBitmap* bitmap );
|
||||
extern void grSetMargin( int right, int top );
|
||||
extern void grGotoxy ( int x, int y );
|
||||
|
||||
extern void grWrite ( const char* string );
|
||||
extern void grWriteln( const char* string );
|
||||
extern void grLn();
|
||||
|
||||
#endif /* GRFONT_H */
|
Loading…
Reference in a new issue