🔍 Module Scanned\n (automated audit scan)\n\n## 📝 Summary\nThe function in has a bug in its fallback bitmap-font path where it subtracts from the final width calculation, causing text width to be underestimated by one pixel per character. This affects text centering and text-fitting via and , resulting in visibly misaligned UI text.\n\n## 📍 Location\n- File: \n- Function/Scope: (fallback path)\n\n## 🔴 Severity: Medium\n- Medium: Incorrect text measurement leading to visual misalignment in UI text rendering\n\n## 💥 Impact\nWhen no font atlas is active (e.g., early startup, font loading failure, or after is called), the fallback bitmap font path incorrectly calculates text width. The formula returns instead of . This causes:\n1. to position text incorrectly (shifted by to the right)\n2. to miscalculate fit scaling\n3. Widget text inputs to position carets and text incorrectly\n\n## 🔎 Evidence\n\n\nCompare with the atlas path which correctly uses accumulation without any final subtraction.\n\nThe bug is called in multiple places:\n- — uses width for centering\n- — uses width for fit calculation \n- — uses text width for centering\n- — uses text width for caret positioning\n- — GPU timing values are right-aligned\n\n## 🛠️ Proposed Fix\nRemove the erroneous from the return statement:\n\n\n\nAlternatively, if the was intentional for some reason, document it and explain why the atlas path doesn't have an equivalent adjustment.\n\n## ✅ Acceptance Criteria\n- [ ] passes with no regressions\n- [ ] Verified that text centering is correct for empty, single-char, and multi-char strings\n- [ ] The fix has been verified with Zig 0.16.0 + SDL3 Dev Environment
Compiler: 0.16.0
assets/shaders/vulkan/ssao_blur.frag
assets/shaders/vulkan/debug_shadow.frag
assets/shaders/vulkan/bloom_downsample.vert
assets/shaders/vulkan/bloom_upsample.vert
assets/shaders/vulkan/debug_shadow.vert
assets/shaders/vulkan/fxaa.vert
assets/shaders/vulkan/post_process.vert
assets/shaders/vulkan/shadow.vert
assets/shaders/vulkan/sky.vert
assets/shaders/vulkan/ssao.vert
assets/shaders/vulkan/taa.vert
assets/shaders/vulkan/terrain.vert
assets/shaders/vulkan/ui.vert
assets/shaders/vulkan/ui_tex.vert
assets/shaders/vulkan/water.vert
assets/shaders/vulkan/bloom_downsample.frag
assets/shaders/vulkan/bloom_upsample.frag
assets/shaders/vulkan/debug_shadow.frag
assets/shaders/vulkan/fxaa.frag
assets/shaders/vulkan/g_pass.frag
assets/shaders/vulkan/post_process.frag
assets/shaders/vulkan/shadow.frag
assets/shaders/vulkan/sky.frag
assets/shaders/vulkan/ssao.frag
assets/shaders/vulkan/ssao_blur.frag
assets/shaders/vulkan/taa.frag
assets/shaders/vulkan/terrain.frag
assets/shaders/vulkan/terrain_debug.frag
assets/shaders/vulkan/ui.frag
assets/shaders/vulkan/ui_tex.frag
assets/shaders/vulkan/water.frag
assets/shaders/vulkan/culling.comp
assets/shaders/vulkan/depth_pyramid.comp
assets/shaders/vulkan/lpv_inject.comp
assets/shaders/vulkan/lpv_propagate.comp
assets/shaders/vulkan/mesh.comp
assets/shaders/vulkan/water.frag
assets/shaders/vulkan/ui.vert
assets/shaders/vulkan/ssao.vert
assets/shaders/vulkan/water.vert
assets/shaders/vulkan/ssao.frag
assets/shaders/vulkan/ui.frag
assets/shaders/vulkan/sky.frag
assets/shaders/vulkan/debug_shadow.vert
assets/shaders/vulkan/terrain.frag
assets/shaders/vulkan/depth_pyramid.comp
assets/shaders/vulkan/taa.frag
assets/shaders/vulkan/g_pass.frag
assets/shaders/vulkan/lpv_propagate.comp
assets/shaders/vulkan/terrain.vert
assets/shaders/vulkan/shadow.frag
assets/shaders/vulkan/shadow.vert
assets/shaders/vulkan/sky.vert
assets/shaders/vulkan/taa.vert
assets/shaders/vulkan/culling.comp
assets/shaders/vulkan/lpv_inject.comp
assets/shaders/vulkan/ui_tex.vert
assets/shaders/vulkan/ui_tex.frag
assets/shaders/vulkan/mesh.comp\n\n## 📚 References\n- Zig standard library for format string handling\n- — atlas path implementation for reference\n- — caller affected by this bug
🔍 Module Scanned\n (automated audit scan)\n\n## 📝 Summary\nThe function in has a bug in its fallback bitmap-font path where it subtracts from the final width calculation, causing text width to be underestimated by one pixel per character. This affects text centering and text-fitting via and , resulting in visibly misaligned UI text.\n\n## 📍 Location\n- File: \n- Function/Scope: (fallback path)\n\n## 🔴 Severity: Medium\n- Medium: Incorrect text measurement leading to visual misalignment in UI text rendering\n\n## 💥 Impact\nWhen no font atlas is active (e.g., early startup, font loading failure, or after is called), the fallback bitmap font path incorrectly calculates text width. The formula returns instead of . This causes:\n1. to position text incorrectly (shifted by to the right)\n2. to miscalculate fit scaling\n3. Widget text inputs to position carets and text incorrectly\n\n## 🔎 Evidence\n\n\nCompare with the atlas path which correctly uses accumulation without any final subtraction.\n\nThe bug is called in multiple places:\n- — uses width for centering\n- — uses width for fit calculation \n- — uses text width for centering\n- — uses text width for caret positioning\n- — GPU timing values are right-aligned\n\n## 🛠️ Proposed Fix\nRemove the erroneous from the return statement:\n\n\n\nAlternatively, if the was intentional for some reason, document it and explain why the atlas path doesn't have an equivalent adjustment.\n\n## ✅ Acceptance Criteria\n- [ ] passes with no regressions\n- [ ] Verified that text centering is correct for empty, single-char, and multi-char strings\n- [ ] The fix has been verified with Zig 0.16.0 + SDL3 Dev Environment
Compiler: 0.16.0
assets/shaders/vulkan/ssao_blur.frag
assets/shaders/vulkan/debug_shadow.frag
assets/shaders/vulkan/bloom_downsample.vert
assets/shaders/vulkan/bloom_upsample.vert
assets/shaders/vulkan/debug_shadow.vert
assets/shaders/vulkan/fxaa.vert
assets/shaders/vulkan/post_process.vert
assets/shaders/vulkan/shadow.vert
assets/shaders/vulkan/sky.vert
assets/shaders/vulkan/ssao.vert
assets/shaders/vulkan/taa.vert
assets/shaders/vulkan/terrain.vert
assets/shaders/vulkan/ui.vert
assets/shaders/vulkan/ui_tex.vert
assets/shaders/vulkan/water.vert
assets/shaders/vulkan/bloom_downsample.frag
assets/shaders/vulkan/bloom_upsample.frag
assets/shaders/vulkan/debug_shadow.frag
assets/shaders/vulkan/fxaa.frag
assets/shaders/vulkan/g_pass.frag
assets/shaders/vulkan/post_process.frag
assets/shaders/vulkan/shadow.frag
assets/shaders/vulkan/sky.frag
assets/shaders/vulkan/ssao.frag
assets/shaders/vulkan/ssao_blur.frag
assets/shaders/vulkan/taa.frag
assets/shaders/vulkan/terrain.frag
assets/shaders/vulkan/terrain_debug.frag
assets/shaders/vulkan/ui.frag
assets/shaders/vulkan/ui_tex.frag
assets/shaders/vulkan/water.frag
assets/shaders/vulkan/culling.comp
assets/shaders/vulkan/depth_pyramid.comp
assets/shaders/vulkan/lpv_inject.comp
assets/shaders/vulkan/lpv_propagate.comp
assets/shaders/vulkan/mesh.comp
assets/shaders/vulkan/water.frag
assets/shaders/vulkan/ui.vert
assets/shaders/vulkan/ssao.vert
assets/shaders/vulkan/water.vert
assets/shaders/vulkan/ssao.frag
assets/shaders/vulkan/ui.frag
assets/shaders/vulkan/sky.frag
assets/shaders/vulkan/debug_shadow.vert
assets/shaders/vulkan/terrain.frag
assets/shaders/vulkan/depth_pyramid.comp
assets/shaders/vulkan/taa.frag
assets/shaders/vulkan/g_pass.frag
assets/shaders/vulkan/lpv_propagate.comp
assets/shaders/vulkan/terrain.vert
assets/shaders/vulkan/shadow.frag
assets/shaders/vulkan/shadow.vert
assets/shaders/vulkan/sky.vert
assets/shaders/vulkan/taa.vert
assets/shaders/vulkan/culling.comp
assets/shaders/vulkan/lpv_inject.comp
assets/shaders/vulkan/ui_tex.vert
assets/shaders/vulkan/ui_tex.frag
assets/shaders/vulkan/mesh.comp\n\n## 📚 References\n- Zig standard library for format string handling\n- — atlas path implementation for reference\n- — caller affected by this bug