Basic font atlas loading
This commit is contained in:
parent
adac248f65
commit
72ff206acd
|
@ -1,2 +1,3 @@
|
|||
obj/*
|
||||
raylib-ascii-render
|
||||
unscii-16-full.ttf
|
||||
|
|
5
Makefile
5
Makefile
|
@ -1,10 +1,13 @@
|
|||
CFLAGS +=
|
||||
LDFLAGS := -lm
|
||||
LDFLAGS := -lraylib
|
||||
OBJECTS :=
|
||||
|
||||
raylib-ascii-render: lib
|
||||
$(CC) $(CFLAGS) $(OBJECTS) src/main.c $(LDFLAGS) -o raylib-ascii-render
|
||||
|
||||
run: raylib-ascii-render
|
||||
./raylib-ascii-render
|
||||
|
||||
all: raylib-ascii-render
|
||||
|
||||
lib: $(OBJECTS)
|
||||
|
|
39
src/main.c
39
src/main.c
|
@ -1,6 +1,41 @@
|
|||
// x-run: make -C.. run
|
||||
#include <raylib.h>
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
|
||||
int main(void) {
|
||||
printf("Hi!\n");
|
||||
InitWindow(320, 240, "Loading...");
|
||||
SetTargetFPS(30);
|
||||
|
||||
int font_size = 16, chars_x = 80, chars_y = 24;
|
||||
|
||||
Font font = LoadFontEx("unscii-16-full.ttf", font_size, NULL, 256);
|
||||
Vector2 glyphSize = MeasureTextEx(font, "A", font_size, 0);
|
||||
Image img_atlas = GenImageColor(glyphSize.x * 16, glyphSize.y * 8, BLACK);
|
||||
|
||||
for (int sym = ' '; sym < '\x7f'; sym++) {
|
||||
Vector2 pos = { (sym & 0xf) * glyphSize.x, (sym >> 4) * glyphSize.y };
|
||||
ImageDrawTextEx(&img_atlas, font, TextFormat("%c", sym), pos, font_size, 0, WHITE);
|
||||
GlyphInfo glyph = font.glyphs[GetGlyphIndex(font, sym)];
|
||||
ImageDraw(&img_atlas, glyph.image, (Rectangle){
|
||||
0, 0,
|
||||
glyph.image.width, glyph.image.height
|
||||
}, (Rectangle){
|
||||
pos.x + glyph.offsetX, pos.y + glyph.offsetY,
|
||||
glyph.image.width, glyph.image.height
|
||||
}, WHITE);
|
||||
}
|
||||
|
||||
Texture2D tex_atlas = LoadTextureFromImage(img_atlas);
|
||||
SetWindowSize(chars_x * glyphSize.x, chars_y * glyphSize.y);
|
||||
|
||||
for (int frame = 0; !WindowShouldClose(); frame++) {
|
||||
BeginDrawing();
|
||||
ClearBackground(BLACK);
|
||||
DrawTexture(tex_atlas, 0, 0, WHITE);
|
||||
EndDrawing();
|
||||
}
|
||||
|
||||
UnloadFont(font);
|
||||
UnloadImage(img_atlas);
|
||||
UnloadTexture(tex_atlas);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue