
code. This is now drawn using gl, and the bitmap font (both there and in the graphics window) is drawn from a texture from a static table, not from the Win32 functions, since that's ~1000x faster. So this adds a tool to generate that table. With luck that will also fix my font issues under WINE, which won't have to render the TTF itself. Still needs some cleanup, and to make all the cosmetic improvements that I want. [git-p4: depot-paths = "//depot/solvespace/": change = 2130]
53 lines
1.4 KiB
C++
53 lines
1.4 KiB
C++
#include <windows.h>
|
|
#include <stdio.h>
|
|
#include <commctrl.h>
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Entry point into the program.
|
|
//-----------------------------------------------------------------------------
|
|
int main(void)
|
|
{
|
|
InitCommonControls();
|
|
|
|
// A monospaced font
|
|
HFONT font = CreateFont(16, 9, 0, 0, FW_REGULAR, FALSE,
|
|
FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
|
|
DEFAULT_QUALITY, FF_DONTCARE, "Lucida Console");
|
|
|
|
HDC hdc = CreateDC("DISPLAY", NULL, NULL, NULL);
|
|
HBITMAP bitmap = CreateCompatibleBitmap(hdc, 30, 30);
|
|
|
|
SelectObject(hdc, bitmap);
|
|
SelectObject(hdc, font);
|
|
|
|
printf("static const BYTE FontTexture[] = {\n");
|
|
|
|
int c;
|
|
for(c = 0; c < 128; c++) {
|
|
|
|
RECT r;
|
|
r.left = 0; r.top = 0;
|
|
r.right = 30; r.bottom = 30;
|
|
FillRect(hdc, &r, (HBRUSH)GetStockObject(BLACK_BRUSH));
|
|
|
|
SetBkColor(hdc, RGB(0, 0, 0));
|
|
SetTextColor(hdc, RGB(255, 255, 255));
|
|
char str[2] = { c, 0 };
|
|
TextOut(hdc, 0, 0, str, 1);
|
|
|
|
int i, j;
|
|
for(i = 0; i < 16; i++) {
|
|
for(j = 0; j < 16; j++) {
|
|
COLORREF c = GetPixel(hdc, i, j);
|
|
printf("%3d, ", c ? 255 : 0);
|
|
}
|
|
printf("\n");
|
|
}
|
|
printf("\n");
|
|
}
|
|
|
|
printf("};\n");
|
|
|
|
return 0;
|
|
}
|