From 6efd4175efb5d8e21732c1b6efc2de9d282f865e Mon Sep 17 00:00:00 2001 From: Timothy Fiss Date: Sat, 26 Jul 2025 11:35:27 -0600 Subject: [PATCH] add: example font_filters, fix typo example font_filters --- build.zig | 5 ++ examples/text/draw_3d.zig | 2 +- examples/text/font_filters.zig | 143 ++++++++++++++++++++++++++++++ examples/text/resources/KAISG.ttf | Bin 0 -> 79912 bytes 4 files changed, 149 insertions(+), 1 deletion(-) create mode 100644 examples/text/font_filters.zig create mode 100644 examples/text/resources/KAISG.ttf diff --git a/build.zig b/build.zig index 58f9f3e..b8ca29e 100644 --- a/build.zig +++ b/build.zig @@ -304,6 +304,11 @@ pub fn build(b: *std.Build) !void { .path = "examples/text/draw_3d.zig", .desc = "Renders an example of text rendered in a 3d world", }, + .{ + .name = "font_filters", + .path = "examples/text/font_filters.zig", + .desc = "Demonstrates the various font filters", + }, .{ .name = "text_format_text", .path = "examples/text/text_format_text.zig", diff --git a/examples/text/draw_3d.zig b/examples/text/draw_3d.zig index 49d4406..fe335e9 100644 --- a/examples/text/draw_3d.zig +++ b/examples/text/draw_3d.zig @@ -1,6 +1,6 @@ //!****************************************************************************************** //! -//! raylib-zog port of the [text] example - Draw 3d +//! raylib-zig port of the [text] example - Draw 3d //! https://github.com/raysan5/raylib/blob/master/examples/text/text_draw_3d.c //! //! Example complexity rating: [★★★★] 4/4 diff --git a/examples/text/font_filters.zig b/examples/text/font_filters.zig new file mode 100644 index 0000000..19ed1d5 --- /dev/null +++ b/examples/text/font_filters.zig @@ -0,0 +1,143 @@ +//!******************************************************************************************* +//! +//! raylib-zig port of the [text] example - Font filters +//! https://github.com/raysan5/raylib/blob/master/examples/text/text_font_filters.c +//! +//! Example complexity rating: [★★☆☆] 2/4 +//! +//! NOTE: After font loading, font texture atlas filter could be configured for a softer +//! display of the font when scaling it to different sizes, that way, it's not required +//! to generate multiple fonts at multiple sizes (as long as the scaling is not very different) +//! +//! Example originally created with raylib 1.3, last time updated with raylib 4.2 +//! +//! Translated to raylib-zig by Timothy Fiss (@TheFissk) +//! +//! Example licensed under an unmodified zlib/libpng license, which is an OSI-certified, +//! BSD-like license that allows static linking with closed source software +//! +//! Copyright (c) 2015-2025 Ramon Santamaria (@raysan5) +//! +//!******************************************************************************************* + +const std = @import("std"); +const rl = @import("raylib"); + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +pub fn main() anyerror!void { + // Initialization + //-------------------------------------------------------------------------------------- + const screen_width = 800; + const screen_height = 450; + + rl.initWindow(screen_width, screen_height, "raylib [text] example - font filters"); + defer rl.closeWindow(); + + const msg = "Loaded Font"; + + // NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required) + + // TTF Font loading with custom generation parameters + var font = try rl.loadFontEx("examples/text/resources/KAISG.ttf", 96, null); + + // Generate mipmap levels to use trilinear filtering + // NOTE: On 2D drawing it won't be noticeable, it looks like FILTER_BILINEAR + rl.genTextureMipmaps(&font.texture); + + var font_size: f32 = @floatFromInt(font.baseSize); + var fontPosition = rl.Vector2{ .x = 40.0, .y = screen_height / 2.0 - 80.0 }; + var text_size = rl.Vector2{ .x = 0.0, .y = 0.0 }; + + // Setup texture scaling filter + rl.setTextureFilter(font.texture, .point); + var currentFontFilter: i32 = 0; // TEXTURE_FILTER_POINT + + rl.setTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!rl.windowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + font_size += rl.getMouseWheelMove() * 4.0; + + // Choose font texture filter method + const key_pressed = rl.getKeyPressed(); + switch (key_pressed) { + .one => { + rl.setTextureFilter(font.texture, .point); + currentFontFilter = 0; + }, + .two => { + rl.setTextureFilter(font.texture, .bilinear); + currentFontFilter = 1; + }, + .three => { + // NOTE: Trilinear filter won't be noticed on 2D drawing + rl.setTextureFilter(font.texture, .trilinear); + currentFontFilter = 2; + }, + else => {}, + } + + text_size = rl.measureTextEx(font, msg, font_size, 0); + + if (rl.isKeyDown(.left)) { + fontPosition.x -= 10; + } else if (rl.isKeyDown(.right)) { + fontPosition.x += 10; + } + + // Load a dropped TTF file dynamically (at current fontSize) + if (rl.isFileDropped()) { + const dropped_files: rl.FilePathList = rl.loadDroppedFiles(); + defer rl.unloadDroppedFiles(dropped_files); // Unload filepaths from memory + + // NOTE: We only support first ttf file dropped + const path: [:0]const u8 = std.mem.span(dropped_files.paths[0]); + if (rl.isFileExtension(path, ".ttf")) { + rl.unloadFont(font); + font = try rl.loadFontEx(path, @intFromFloat(font_size), null); + } else if (rl.isFileExtension(path, ".fnt")) { + rl.unloadFont(font); + font = try rl.loadFont(path); + font_size = @floatFromInt(font.baseSize); + } + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + rl.beginDrawing(); + defer rl.endDrawing(); + + rl.clearBackground(.ray_white); + + rl.drawText("Use mouse wheel to change font size", 20, 20, 10, .gray); + rl.drawText("Use KEY_RIGHT and KEY_LEFT to move text", 20, 40, 10, .gray); + rl.drawText("Use 1, 2, 3 to change texture filter", 20, 60, 10, .gray); + rl.drawText("Drop a new TTF font for dynamic loading", 20, 80, 10, .dark_gray); + + rl.drawTextEx(font, msg, fontPosition, font_size, 0, .black); + + // TODO: It seems texSize measurement is not accurate due to chars offsets... + //DrawRectangleLines(fontPosition.x, fontPosition.y, textSize.x, textSize.y, RED); + + rl.drawRectangle(0, screen_height - 80, screen_width, 80, .light_gray); + rl.drawText(rl.textFormat("Font size: %02.02f", .{font_size}), 20, screen_height - 50, 10, .dark_gray); + rl.drawText(rl.textFormat("Text size: [%02.02f, %02.02f]", .{ text_size.x, text_size.y }), 20, screen_height - 30, 10, .dark_gray); + rl.drawText("CURRENT TEXTURE FILTER:", 250, 400, 20, .gray); + + switch (currentFontFilter) { + 0 => rl.drawText("POINT", 570, 400, 20, .black), + 1 => rl.drawText("BILINEAR", 570, 400, 20, .black), + 2 => rl.drawText("TRILINEAR", 570, 400, 20, .black), + else => unreachable, + } + + //---------------------------------------------------------------------------------- + } +} diff --git a/examples/text/resources/KAISG.ttf b/examples/text/resources/KAISG.ttf new file mode 100644 index 0000000000000000000000000000000000000000..04478b25ceb5a5e0e74b0d6da7dbb16c68fdbb32 GIT binary patch literal 79912 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�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 Yh5!Hm|2O~t|DU&`XOMvbNHGHg0KQWE`Tzg` literal 0 HcmV?d00001