diff --git a/SMILEBASIC/builtinfunctions.d b/SMILEBASIC/builtinfunctions.d index 8df923b..70ea94b 100644 --- a/SMILEBASIC/builtinfunctions.d +++ b/SMILEBASIC/builtinfunctions.d @@ -3362,6 +3362,10 @@ class BuiltinFunction p.console.define(code, array.doubleArray.array); } } + static void FONTDEF(PetitComputer p) + { + p.console.initGRPF(); + } //alias void function(PetitComputer, Value[], Value[]) BuiltinFunc; static BuiltinFunctions[wstring] builtinFunctions; static wstring getBasicName(BFD)(const wstring def) diff --git a/SMILEBASIC/console.d b/SMILEBASIC/console.d index 4412d17..e7d7cd5 100644 --- a/SMILEBASIC/console.d +++ b/SMILEBASIC/console.d @@ -524,4 +524,16 @@ class Console glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, w, h, GL_BGRA, GL_UNSIGNED_BYTE, buffer); glFlush(); } + void initGRPF() + { + if (GRPF) + { + GRPF.deleteGL(); + GRPF.deleteSDL(); + } + GRPF = petitcom.graphic.createGRPF(petitcom.fontFile); + petitcom.graphic.GRPFWidth = GRPF.surface.w; + petitcom.graphic.GRPFHeight = GRPF.surface.h; + GRPF.createTexture(petitcom.renderer, petitcom.textureScaleMode); + } } \ No newline at end of file diff --git a/SMILEBASIC/petitcomputer.d b/SMILEBASIC/petitcomputer.d index 5683718..f807e63 100644 --- a/SMILEBASIC/petitcomputer.d +++ b/SMILEBASIC/petitcomputer.d @@ -736,10 +736,7 @@ class PetitComputer return; } SDL_GL_MakeCurrent(window, context); - console.GRPF = graphic.createGRPF(fontFile); - graphic.GRPFWidth = console.GRPF.surface.w; - graphic.GRPFHeight = console.GRPF.surface.h; - console.GRPF.createTexture(renderer, textureScaleMode); + console.initGRPF(); glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glEnable(GL_DEPTH_TEST); version(Windows) @@ -1669,7 +1666,7 @@ class PetitComputer } if (fontdef) { - //TODO + this.console.initGRPF(); } }