VGA Font Editor
v4.2.0
VGA ROM 글꼴의 크로스 플랫폼 편집기 및 라이브러리입니다. 여기에는로드 된 글꼴을 사용하여 텍스트를 렌더링하기위한 코드가 있습니다. 소스 코드는 QB64-PE로 작성되었으며 제 3 자 라이브러리를 사용하지 않고 기본적으로 작동합니다.




git submodule update --init --recursive to 초기화, 가져 오기 및 체크 아웃 git 하위 모듈F5 눌러 컴파일하고 실행합니다. ' For rendering
FUNCTION PSF1_LoadFontFromMemory% % (buffer AS STRING , psf AS PSF1Type)
FUNCTION PSF1_LoadFontFromFile% % (fileName AS STRING , psf AS PSF1Type)
SUB PSF1_SetCurrentFont (psf AS PSF1Type)
FUNCTION PSF1_GetFontWidth ~%%
FUNCTION PSF1_GetFontHeight ~%%
FUNCTION PSF1_GetDrawStringWidth& (text AS STRING )
SUB PSF1_DrawCharacter (cp AS _UNSIGNED _BYTE, x AS LONG , y AS LONG )
SUB PSF1_DrawString (text AS STRING , x AS LONG , y AS LONG )
' Used by the editor
SUB PSF1_SetFontHeight (h AS _UNSIGNED _BYTE)
FUNCTION PSF1_GetFont$
FUNCTION PSF1_SetFont% % (buffer AS STRING )
FUNCTION PSF1_GetGlyphBitmap$ (cp AS _UNSIGNED _BYTE)
SUB PSF1_SetGlyphBitmap (cp AS _UNSIGNED _BYTE, bmp AS STRING )
FUNCTION PSF1_GetGlyphPixel% % (cp AS _UNSIGNED _BYTE, x AS LONG , y AS LONG )
SUB PSF1_SetGlyphPixel (cp AS _UNSIGNED _BYTE, x AS LONG , y AS LONG , b AS _BYTE)
SUB PSF1_SetGlyphDefaultBitmap (cp AS _UNSIGNED _BYTE)
FUNCTION PSF1_SaveFont% % (fileName AS STRING ) 이것으로 무엇을 할 수 있습니까?
fonts 디렉토리에는 많은 예제 글꼴이 있습니다. 나는 솔직히 이것들의 원래 수거를 알지 못하고 프로젝트를 위해이 도구를 사용하여 자신의 글꼴을 만들 것을 강력히 권장합니다.VGA ROM 글꼴이란 무엇입니까?
메모리에 캐릭터는 어떻게 저장됩니까?
매우 간단합니다. 0은 배경을 인코딩하고 1은 전경 색상을 인코딩합니다. VGA 글꼴은 항상 8 비트 너비이므로 각 바이트에는 정확히 하나의 행이 포함되어 있습니다. 일반적인 8x16 글꼴로 문자 'a'의 경우 (이진)가 될 것입니다.
00000000b byte 0
00000000b byte 1
00000000b byte 2
00010000b byte 3
00111000b byte 4
01101100b byte 5
11000110b byte 6
11000110b byte 7
11111110b byte 8
11000110b byte 9
11000110b byte 10
11000110b byte 11
11000110b byte 12
00000000b byte 13
00000000b byte 14
00000000b byte 15
전체 비트 맵에는 모든 문자에 대한 비트 맵이 포함되어 있으므로 256*16 바이트, 4096 바이트 길이 (8x16 글꼴의 경우)입니다. 특정 문자에 대한 비트 맵을 얻으려면 ASCII 코드에 16을 곱해야합니다 (8x16 글꼴의 문자의 행 수).
이 PSF 파일은 무엇입니까?
이 PSF (PC Screen Font)는 다양한 소스의 RAW VGA ROM 글꼴 덤프에서 BIN2PSF 변환 도구를 사용하여 작성되었습니다. 이 파일은 크게 작으며 내장, 메모리 제한 또는 복고풍 프로젝트에 적합합니다. 파일은 헤더에 대해 몇 바이트 만있는 VGA ROM 글꼴의 거의 원시 덤프입니다.
+--------------------------------------------+
| PSF1_MAGIC0 0x36 (1 byte) |
+--------------------------------------------+
| PSF1_MAGIC1 0x04 (1 byte) |
+--------------------------------------------+
| MODE (1 byte; set to 0) |
+--------------------------------------------+
| FONT HEIGHT (1 byte) |
+--------------------------------------------+
| CHAR 1 SCAN LINE 1 (1 byte) |
| CHAR 1 SCAN LINE 2 (1 byte) |
| CHAR 1 SCAN LINE 3 (1 byte) |
| CHAR 1 SCAN LINE 4 (1 byte) |
| CHAR 1 SCAN LINE 5 (1 byte) |
| .. |
| .. |
| .. |
| CHAR 1 SCAN LINE <FONT HEIGHT> (1 byte) |
+--------------------------------------------+
| CHAR 2 SCAN LINE 1 (1 byte) |
| CHAR 2 SCAN LINE 2 (1 byte) |
| CHAR 2 SCAN LINE 3 (1 byte) |
| CHAR 2 SCAN LINE 4 (1 byte) |
| CHAR 2 SCAN LINE 5 (1 byte) |
| .. |
| .. |
| .. |
| CHAR 2 SCAN LINE <FONT HEIGHT> (1 byte) |
+--------------------------------------------+
| .. |
| .. |
| .. |
+--------------------------------------------+
| .. |
| .. |
| .. |
+--------------------------------------------+
| .. |
| .. |
| .. |
+--------------------------------------------+
| CHAR 256 SCAN LINE 1 (1 byte) |
| CHAR 256 SCAN LINE 2 (1 byte) |
| CHAR 256 SCAN LINE 3 (1 byte) |
| CHAR 256 SCAN LINE 4 (1 byte) |
| CHAR 256 SCAN LINE 5 (1 byte) |
| .. |
| .. |
| .. |
| CHAR 256 SCAN LINE <FONT HEIGHT> (1 byte) |
+--------------------------------------------+
git submodule update --init --recursive 사용하여 Git Submodules를 초기화, 가져 오기 및 체크 아웃해야합니다.