feat: initial commit

This commit is contained in:
lucasdpt
2026-06-14 01:24:29 +02:00
commit 0d40f88ab2
5815 changed files with 703860 additions and 0 deletions
@@ -0,0 +1,106 @@
#ifdef MULTICOLORED_BLOCKLIGHT
#define OLD_SSBL_ERROR
#endif
#ifdef MC_ANISOTROPIC_FILTERING
#define OPTIFINE_AF_ERROR
#endif
#if COLORED_LIGHTING > 0 && defined MC_OS_MAC
#define APPLE_ACT_ERROR
#endif
#if COLORED_LIGHTING > 0 && (!defined IS_IRIS || !defined IRIS_FEATURE_CUSTOM_IMAGES)
#define OPTIFINE_ACT_ERROR
#endif
#if defined END_PORTAL_BEAM && !defined IS_IRIS
#define OPTIFINE_PORTAL_BEAM_ERROR
#endif
#if defined END_PORTAL_BEAM && defined MC_OS_MAC
#define APPLE_PORTAL_BEAM_ERROR
#endif
#if DRAGON_DEATH_EFFECT > 0 && !defined IS_IRIS
#define OPTIFINE_DRAGON_DEATH_ERROR
#endif
#if DRAGON_DEATH_EFFECT > 0 && defined MC_OS_MAC
#define APPLE_DRAGON_DEATH_ERROR
#endif
#if END_CRYSTAL_VORTEX > 0 && !defined IS_IRIS
#define OPTIFINE_END_CRYSTAL_ERROR
#endif
#if END_CRYSTAL_VORTEX > 0 && defined MC_OS_MAC
#define APPLE_END_CRYSTAL_ERROR
#endif
#if COLORED_LIGHTING_INTERNAL > 0
#define COORDINATES_ACT_ERROR
#define SHADOWDISTANCE_ACT_ERROR
#endif
#if (MCBL_MAIN_DEFINE >= 1 || defined SSBL_OVERRIDE) && MC_VERSION < 11604 && !(defined IS_IRIS || defined IS_ANGELICA)
#define OLD_VERSION_SSBL_ERROR
#endif
#ifdef NEW_EUPHORIA_PATCHES_UPDATE
#include "/lib/textRendering/new_Euphoria_Version.glsl"
#endif
#ifdef COLOR_CODED_PROGRAMS
#include "/lib/textRendering/color_code_info.glsl"
#endif
#if COLORED_LIGHTING > 0 && SHADOW_QUALITY < 0
#define ACT_SHADOW_ERROR
#endif
#if WORLD_SPACE_REFLECTIONS > 0 && COLORED_LIGHTING == 0
#define WSR_MISSING_ACT_ERROR
#endif
#ifdef OLD_VERSION_SSBL_ERROR
#include "/lib/textRendering/old_version_ssbl_error.glsl"
#elif defined OLD_SSBL_ERROR
#include "/lib/textRendering/old_ssbl_error.glsl"
#elif defined OPTIFINE_AF_ERROR
#include "/lib/textRendering/error_optifine_af.glsl"
#elif defined APPLE_ACT_ERROR
#include "/lib/textRendering/error_apple_act.glsl"
#elif defined WSR_MISSING_ACT_ERROR
#include "/lib/textRendering/error_wsr_missing_act.glsl"
#elif defined OPTIFINE_ACT_ERROR
#include "/lib/textRendering/error_optifine_act.glsl"
#elif defined APPLE_PORTAL_BEAM_ERROR
#include "/lib/textRendering/error_apple_portal_beam.glsl"
#elif defined OPTIFINE_PORTAL_BEAM_ERROR
#include "/lib/textRendering/error_optifine_portal_beam.glsl"
#elif defined APPLE_DRAGON_DEATH_ERROR
#include "/lib/textRendering/error_apple_dragon_death.glsl"
#elif defined OPTIFINE_DRAGON_DEATH_ERROR
#include "/lib/textRendering/error_optifine_dragon_death.glsl"
#elif defined APPLE_END_CRYSTAL_ERROR
#include "/lib/textRendering/error_apple_end_crystal.glsl"
#elif defined OPTIFINE_END_CRYSTAL_ERROR
#include "/lib/textRendering/error_optifine_end_crystal.glsl"
#elif defined ACT_SHADOW_ERROR
#include "/lib/textRendering/error_shadows_act.glsl"
#elif USE_TEXTURE_PALETTE > 0 && defined PALETTE_SWAP
#include "/lib/textRendering/error_palette_not_found.glsl"
#else
#if defined COORDINATES_ACT_ERROR && !defined ACT_DISTANCE_WARNING_OVERRIDE
ivec2 absCameraPositionIntXZ = abs(cameraPositionInt.xz);
if (max(absCameraPositionIntXZ.x, absCameraPositionIntXZ.y) > 8388550) {
#include "/lib/textRendering/error_coordinates_act.glsl"
}
#endif
#ifdef SHADOWDISTANCE_ACT_ERROR
if (COLORED_LIGHTING_INTERNAL > shadowDistance*2) {
#include "/lib/textRendering/error_shadowdistance_act.glsl"
}
#endif
#endif
@@ -0,0 +1,327 @@
int displayIndex = int(mod(frameTimeCounter, 90.0) / 5.0);
// int displayIndex = 0;
beginTextM(3, vec2(10, 7));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(1.0, 1.0, 1.0, 1.0);
printString((_C, _o, _l, _o, _r, _space, _C, _o, _d, _e, _space, _I, _n, _f, _o, _r, _m, _a, _t, _i, _o, _n));
printLine();
endText(color.rgb);
if (displayIndex == 0) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(0.0, 1.0, 0.0, 1.0); // Green
printString((_G, _r, _e, _e, _n, _colon, _space, _G, _B, _U, _F, _F, _E, _R, _S, _under, _T, _E, _R, _R, _A, _I, _N));
printLine();
endText(color.rgb);
} else if (displayIndex == 1) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(0.0, 0.0, 1.0, 1.0); // Dark Blue
printString((_D, _a, _r, _k, _space, _B, _l, _u, _e, _colon, _space, _G, _B, _U, _F, _F, _E, _R, _S, _under, _W, _A, _T, _E, _R));
printLine();
endText(color.rgb);
} else if (displayIndex == 2) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(0.0, 1.0, 2.0, 1.0); // Light Blue
printString((_L, _i, _g, _h, _t, _space, _B, _l, _u, _e, _colon, _space, _G, _B, _U, _F, _F, _E, _R, _S, _under, _S, _K, _Y, _B, _A, _S, _I, _C));
printLine();
endText(color.rgb);
} else if (displayIndex == 3) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(3.0, 0.0, 3.0, 1.0); // Magenta
printString((_M, _a, _g, _e, _n, _t, _a, _colon, _space, _G, _B, _U, _F, _F, _E, _R, _S, _under, _W, _E, _A, _T, _H, _E, _R));
printLine();
endText(color.rgb);
} else if (displayIndex == 4) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(1.5, 1.5, 0.0, 1.0); // Yellow
printString((_Y, _e, _l, _l, _o, _w, _colon, _space, _G, _B, _U, _F, _F, _E, _R, _S, _under, _B, _L, _O, _C, _K));
printLine();
endText(color.rgb);
} else if (displayIndex == 5) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(1.5, 0.7, 0.0, 1.0); // Orange
printString((_O, _r, _a, _n, _g, _e, _colon, _space, _G, _B, _U, _F, _F, _E, _R, _S, _under, _H, _A, _N, _D));
printLine();
endText(color.rgb);
} else if (displayIndex == 6) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(1.5, 0.0, 0.0, 1.0); // Red
printString((_R, _e, _d, _colon, _space, _G, _B, _U, _F, _F, _E, _R, _S, _under, _E, _N, _T, _I, _T, _I, _E, _S));
printLine();
endText(color.rgb);
} else if (displayIndex == 7) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(3.0, 3.0, 3.0, 1.0); // White
printString((_W, _h, _i, _t, _e, _colon, _space, _G, _B, _U, _F, _F, _E, _R, _S, _under, _B, _A, _S, _I, _C));
printLine();
endText(color.rgb);
} else if (displayIndex == 8) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_R, _e, _d, _minus));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_B, _l, _u, _e, _space, _V, _e, _r, _t, _space, _S, _t, _r, _i, _p, _e, _s, _colon, _space));
// Alternating colors for SPIDEREYES
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_S));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_P));
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_I));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_D));
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_E));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_R));
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_E));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_Y));
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_E));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_S));
printLine();
endText(color.rgb);
} else if (displayIndex == 9) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_R, _e, _d, _minus));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_B, _l, _u, _e, _space, _H, _o, _r, _i, _z, _space, _S, _t, _r, _i, _p, _e, _s, _colon, _space));
// Alternating colors for TEXTURED
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_T));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_E));
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_X));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_T));
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_U));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_R));
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_E));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_D));
printLine();
endText(color.rgb);
} else if (displayIndex == 10) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_R, _e, _d, _minus));
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_G, _r, _e, _e, _n, _space, _V, _e, _r, _t, _space, _S, _t, _r, _i, _p, _e, _s, _colon, _space));
// Alternating colors for CLOUDS
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_C));
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_L));
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_O));
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_U));
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_D));
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_S));
printLine();
endText(color.rgb);
} else if (displayIndex == 11) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_R, _e, _d, _minus));
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_G, _r, _e, _e, _n, _space, _H, _o, _r, _i, _z, _space, _S, _t, _r, _i, _p, _e, _s, _colon, _space));
// Alternating colors for BEACONBEAM
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_B));
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_E));
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_A));
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_C));
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_O));
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_N));
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_B));
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_E));
text.fgCol = vec4(2.0, 0.0, 0.0, 1.0); // Red
printString((_A));
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_M));
printLine();
endText(color.rgb);
} else if (displayIndex == 12) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(0.0, 0.0, 0.0, 1.0); // Black
printString((_B, _l, _a, _c, _k, _minus));
text.fgCol = vec4(1.5, 1.5, 1.5, 1.0); // White
printString((_W, _h, _i, _t, _e, _space, _V, _e, _r, _t, _space, _S, _t, _r, _i, _p, _e, _s, _colon, _space));
// Alternating colors for ARMOR_GLINT
text.fgCol = vec4(0.0, 0.0, 0.0, 1.0); // Black
printString((_A));
text.fgCol = vec4(1.5, 1.5, 1.5, 1.0); // White
printString((_R));
text.fgCol = vec4(0.0, 0.0, 0.0, 1.0); // Black
printString((_M));
text.fgCol = vec4(1.5, 1.5, 1.5, 1.0); // White
printString((_O));
text.fgCol = vec4(0.0, 0.0, 0.0, 1.0); // Black
printString((_R));
text.fgCol = vec4(1.5, 1.5, 1.5, 1.0); // White
printString((_under));
text.fgCol = vec4(0.0, 0.0, 0.0, 1.0); // Black
printString((_G));
text.fgCol = vec4(1.5, 1.5, 1.5, 1.0); // White
printString((_L));
text.fgCol = vec4(0.0, 0.0, 0.0, 1.0); // Black
printString((_I));
text.fgCol = vec4(1.5, 1.5, 1.5, 1.0); // White
printString((_N));
text.fgCol = vec4(0.0, 0.0, 0.0, 1.0); // Black
printString((_T));
printLine();
endText(color.rgb);
} else if (displayIndex == 13) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(0.0, 0.0, 0.0, 1.0); // Black
printString((_B, _l, _a, _c, _k, _minus));
text.fgCol = vec4(1.5, 1.5, 1.5, 1.0); // White
printString((_W, _h, _i, _t, _e, _space, _H, _o, _r, _i, _z, _space, _S, _t, _r, _i, _p, _e, _s, _colon, _space));
// Alternating colors for DAMAGEDBLOCK
text.fgCol = vec4(0.0, 0.0, 0.0, 1.0); // Black
printString((_D));
text.fgCol = vec4(1.5, 1.5, 1.5, 1.0); // White
printString((_A));
text.fgCol = vec4(0.0, 0.0, 0.0, 1.0); // Black
printString((_M));
text.fgCol = vec4(1.5, 1.5, 1.5, 1.0); // White
printString((_A));
text.fgCol = vec4(0.0, 0.0, 0.0, 1.0); // Black
printString((_G));
text.fgCol = vec4(1.5, 1.5, 1.5, 1.0); // White
printString((_E));
text.fgCol = vec4(0.0, 0.0, 0.0, 1.0); // Black
printString((_D));
text.fgCol = vec4(1.5, 1.5, 1.5, 1.0); // White
printString((_B));
text.fgCol = vec4(0.0, 0.0, 0.0, 1.0); // Black
printString((_L));
text.fgCol = vec4(1.5, 1.5, 1.5, 1.0); // White
printString((_O));
text.fgCol = vec4(0.0, 0.0, 0.0, 1.0); // Black
printString((_C));
text.fgCol = vec4(1.5, 1.5, 1.5, 1.0); // White
printString((_K));
printLine();
endText(color.rgb);
} else if (displayIndex == 14) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_G, _r, _e, _e, _n, _minus));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_B, _l, _u, _e, _space, _H, _o, _r, _i, _z, _space, _S, _t, _r, _i, _p, _e, _s, _colon, _space));
// Alternating colors for SKYTEXTURED
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_S));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_K));
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_Y));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_T));
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_E));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_X));
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_T));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_U));
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_R));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_E));
text.fgCol = vec4(0.0, 2.0, 0.0, 1.0); // Green
printString((_D));
printLine();
endText(color.rgb);
} else if (displayIndex == 15) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(2.0, 2.0, 0.0, 1.0); // Yellow
printString((_Y, _e, _l, _l, _o, _w, _minus));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_B, _l, _u, _e, _space, _H, _o, _r, _i, _z, _space, _S, _t, _r, _i, _p, _e, _s, _colon, _space));
// Alternating colors for LIGHTNING
text.fgCol = vec4(2.0, 2.0, 0.0, 1.0); // Yellow
printString((_L));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_I));
text.fgCol = vec4(2.0, 2.0, 0.0, 1.0); // Yellow
printString((_G));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_H));
text.fgCol = vec4(2.0, 2.0, 0.0, 1.0); // Yellow
printString((_T));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_N));
text.fgCol = vec4(2.0, 2.0, 0.0, 1.0); // Yellow
printString((_I));
text.fgCol = vec4(0.0, 0.0, 2.0, 1.0); // Blue
printString((_N));
text.fgCol = vec4(2.0, 2.0, 0.0, 1.0); // Yellow
printString((_G));
printLine();
endText(color.rgb);
} else if (displayIndex == 16) {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(1.0, 1.0, 1.0, 1.0); // Text info
printString((_H, _o, _l, _d, _space, _s, _p, _i, _d, _e, _r, _space, _e, _y, _e, _s, _space, _i, _n, _space, _b, _o, _t, _h));
printLine();
printString((_h, _a, _n, _d, _s, _space, _t, _o, _space, _d, _i, _s, _a, _b, _l, _e, _space, _c, _o, _l, _o, _r, _space, _c, _o, _d, _i, _n, _g));
printLine();
endText(color.rgb);
} else {
beginTextM(3, vec2(10, 20));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(1.0, 1.0, 1.0, 1.0);
printString((_H, _o, _l, _d, _space, _s, _p, _i, _d, _e, _r, _space, _e, _y, _e, _space, _i, _n, _space, _o, _n, _e));
printLine();
printString((_h, _a, _n, _d, _space, _f, _o, _r, _space, _u, _n, _k, _o, _w, _n, _space, _b, _l, _o, _c, _k, _s, _space, _i, _n, _space, _p, _r, _o, _p, _e, _r, _t, _i, _e, _s, _space, _f, _i, _l, _e, _s));
printLine();
endText(color.rgb);
}
@@ -0,0 +1,79 @@
color.rgb = mix(color.rgb, vec3(0.0), 0.65);
beginTextM(8, vec2(6, 10));
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r));
endText(color.rgb);
beginTextM(4, vec2(15, 36));
printLine();
text.fgCol = vec4(vec3(1.0), 1.0);
printString((
_C, _o, _l, _o, _r, _e, _d, _space, _L, _i, _g, _h, _t, _i, _n, _g, _space, _i, _s, _space,
_n, _o, _t, _space
));
printLine();
printString((
_s, _u, _p, _p, _o, _r, _t, _e, _d, _space, _o, _n, _space, _A, _p, _p, _l, _e, _space, _d, _e, _v, _i, _c, _e, _s, _dot
));
printLine();
printLine();
printString((
_D, _i, _s, _a, _b, _l, _e, _space, _i, _t, _space, _u, _n, _d, _e, _r, _colon, _space
));
printLine();
printString((
_E, _S, _C, _space, _gt, _space, _O, _p, _t, _i, _o, _n, _s, _space, _gt, _space,
_S, _h, _a, _d, _e, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s,
_space, _gt
));
printLine();
printString((
_P, _e, _r, _f, _o, _r, _m, _a, _n, _c, _e, _space, _gt, _space,
_A, _d, _v, _a, _n, _c, _e, _d, _space, _C, _o, _l, _o, _r, _space, _T, _r, _a, _c, _i, _n, _g
));
endText(color.rgb);
beginTextM(2, vec2(30, 175));
printLine();
text.fgCol = vec4(vec3(0.65), 1.0);
printString((
_A, _p, _p, _l, _e, _space, _d, _r, _i, _v, _e, _r, _s, _space,
_d, _o, _space, _n, _o, _t, _space, _s, _u, _p, _p, _o, _r, _t, _space, _t, _h, _e, _space,
_f, _u, _n, _c, _t, _i, _o, _n, _a, _l, _i, _t, _y, _space, _t, _h, _a, _t, _space,
_C, _o, _m, _p, _l, _e, _m, _e, _n, _t, _a, _r, _y, _space
));
printLine();
printString((
_u, _s, _e, _s, _space, _t, _o, _space, _p, _r, _o, _v, _i, _d, _e, _space, _y, _o, _u, _space,
_a, _space, _f, _u, _l, _l, _y, _space, _f, _l, _e, _d, _g, _e, _d, _space,
_c, _o, _l, _o, _r, _e, _d, _space, _l, _i, _g, _h, _t, _i, _n, _g, _space,
_e, _x, _p, _e, _r, _i, _e, _n, _c, _e, _dot
));
printLine();
printLine();
text.fgCol = vec4(vec3(1.0, 0.0, 1.0), 1.0);
printString((
_E, _u, _p, _h, _o, _r, _i, _a, _space, _P, _a, _t, _c, _h, _e, _s
));
text.fgCol = vec4(vec3(0.65), 1.0);
printString((_space, _h, _a, _s, _space,
_a, _space, _s, _c, _r, _e, _e, _n, _s, _p, _a, _c, _e, _space,
_c, _o, _l, _o, _r, _e, _d, _space, _l, _i, _g, _h, _t, _i, _n, _g, _space, _o, _p, _t, _i, _o, _n
));
printLine();
printString((
_w, _h, _i, _c, _h, _space, _w, _o, _r, _k, _s, _space, _o, _n, _space, _A, _p, _p, _l, _e, _dot
));
printLine();
printLine();
printString((
_A, _v, _a, _i, _l, _a, _b, _l, _e, _space, _u, _n, _d, _e, _r, _colon
));
printLine();
printString((
_E, _u, _p, _h, _o, _r, _i, _a, _space, _P, _a, _t, _c, _h, _e, _s, _space, _S, _e, _t, _t, _i, _n, _g, _s,
_space, _gt, _space, _P, _o, _p, _u, _l, _a, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt, _space,
_E, _u, _p, _h, _o, _r, _i, _a, _space, _C, _o, _l, _o, _r, _e, _d, _space, _L, _i, _g, _h, _t, _i, _n, _g
));
endText(color.rgb);
@@ -0,0 +1,30 @@
color.rgb = mix(color.rgb, vec3(0.0), 0.65);
beginTextM(8, vec2(6, 10));
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r, _exclm));
printLine();
endText(color.rgb);
beginTextM(4, vec2(15, 36));
text.fgCol = vec4(1.0, 1.0, 1.0, 1.0);
printString((_T, _h, _e, _space, _D, _r, _a, _g, _o, _n, _space, _D, _e, _a, _t, _h, _space, _E, _f, _f, _e, _c, _t, _space, _o, _p, _t, _i, _o, _n, _space, _i, _s, _space, _n, _o, _t, _space, _s, _u, _p, _p, _o, _r, _t, _e, _d));
printLine();
printString((_o, _n, _space, _A, _p, _p, _l, _e, _space, _d, _e, _v, _i, _c, _e, _s, _dot));
printLine();
printLine();
printString((_D, _i, _s, _a, _b, _l, _e, _space, _i, _t, _space, _u, _n, _d, _e, _r, _colon));
printLine();
printString((_E, _S, _C, _space, _gt, _space, _O, _p, _t, _i, _o, _n, _s, _space, _gt, _space, _V, _i, _d, _e, _o, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt, _space, _S, _h, _a, _d, _e, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s));
printLine();
printString((_E, _u, _p, _h, _o, _r, _i, _a, _space, _P, _a, _t, _c, _h, _e, _s, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt, _space, _P, _o, _p, _u, _l, _a, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s));
printLine();
printString((_gt, _space, _D, _r, _a, _g, _o, _n, _space, _D, _e, _a, _t, _h, _space, _E, _f, _f, _e, _c, _t));
printLine();
endText(color.rgb);
beginTextM(2, vec2(30, 190));
text.fgCol = vec4(0.8, 0.8, 0.8, 1.0);
printString((_P, _l, _e, _a, _s, _e, _space, _n, _o, _t, _e, _space, _t, _h, _a, _t, _space, _u, _s, _i, _n, _g, _space, _a, _n, _space, _o, _l, _d, _space, _I, _r, _i, _s, _space, _v, _e, _r, _s, _i, _o, _n, _space, _w, _i, _l, _l, _space, _n, _o, _t));
printLine();
printString((_w, _o, _r, _k, _space, _a, _n, _d, _space, _m, _a, _y, _space, _s, _t, _i, _l, _l, _space, _c, _a, _u, _s, _e, _space, _t, _h, _i, _s, _space, _e, _r, _r, _o, _r, _space, _t, _o, _space, _a, _p, _p, _e, _a, _r, _dot));
printLine();
endText(color.rgb);
@@ -0,0 +1,30 @@
color.rgb = mix(color.rgb, vec3(0.0), 0.65);
beginTextM(8, vec2(6, 10));
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r, _exclm));
printLine();
endText(color.rgb);
beginTextM(4, vec2(15, 36));
text.fgCol = vec4(1.0, 1.0, 1.0, 1.0);
printString((_T, _h, _e, _space, _E, _n, _d, _space, _C, _r, _y, _s, _t, _a, _l, _space, _V, _o, _r, _t, _e, _x, _space, _o, _p, _t, _i, _o, _n, _space, _i, _s, _space, _n, _o, _t, _space, _s, _u, _p, _p, _o, _r, _t, _e, _d));
printLine();
printString((_o, _n, _space, _A, _p, _p, _l, _e, _space, _d, _e, _v, _i, _c, _e, _s, _dot));
printLine();
printLine();
printString((_D, _i, _s, _a, _b, _l, _e, _space, _i, _t, _space, _u, _n, _d, _e, _r, _colon));
printLine();
printString((_E, _S, _C, _space, _gt, _space, _O, _p, _t, _i, _o, _n, _s, _space, _gt, _space, _V, _i, _d, _e, _o, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt, _space, _S, _h, _a, _d, _e, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s));
printLine();
printString((_E, _u, _p, _h, _o, _r, _i, _a, _space, _P, _a, _t, _c, _h, _e, _s, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt, _space, _P, _o, _p, _u, _l, _a, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s));
printLine();
printString((_gt, _space, _E, _n, _d, _space, _C, _r, _y, _s, _t, _a, _l, _space, _V, _o, _r, _t, _e, _x));
printLine();
endText(color.rgb);
beginTextM(2, vec2(30, 190));
text.fgCol = vec4(0.8, 0.8, 0.8, 1.0);
printString((_P, _l, _e, _a, _s, _e, _space, _n, _o, _t, _e, _space, _t, _h, _a, _t, _space, _u, _s, _i, _n, _g, _space, _a, _n, _space, _o, _l, _d, _space, _I, _r, _i, _s, _space, _v, _e, _r, _s, _i, _o, _n, _space, _w, _i, _l, _l, _space, _n, _o, _t));
printLine();
printString((_w, _o, _r, _k, _space, _a, _n, _d, _space, _m, _a, _y, _space, _s, _t, _i, _l, _l, _space, _c, _a, _u, _s, _e, _space, _t, _h, _i, _s, _space, _e, _r, _r, _o, _r, _space, _t, _o, _space, _a, _p, _p, _e, _a, _r, _dot));
printLine();
endText(color.rgb);
@@ -0,0 +1,30 @@
color.rgb = mix(color.rgb, vec3(0.0), 0.65);
beginTextM(8, vec2(6, 10));
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r, _exclm));
printLine();
endText(color.rgb);
beginTextM(4, vec2(15, 36));
text.fgCol = vec4(1.0, 1.0, 1.0, 1.0);
printString((_T, _h, _e, _space, _E, _n, _d, _space, _P, _o, _r, _t, _a, _l, _space, _R, _a, _y, _s, _space, _a, _r, _e, _space, _n, _o, _t, _space, _s, _u, _p, _p, _o, _r, _t, _e, _d, _space));
printLine();
printString((_o, _n, _space, _A, _p, _p, _l, _e, _space, _d, _e, _v, _i, _c, _e, _s, _dot));
printLine();
printLine();
printString((_D, _i, _s, _a, _b, _l, _e, _space, _i, _t, _space, _u, _n, _d, _e, _r, _colon));
printLine();
printString((_E, _S, _C, _space, _gt, _space, _O, _p, _t, _i, _o, _n, _s, _space, _gt, _space, _V, _i, _d, _e, _o, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt, _space, _S, _h, _a, _d, _e, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s));
printLine();
printString((_E, _u, _p, _h, _o, _r, _i, _a, _space, _P, _a, _t, _c, _h, _e, _s, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt, _space, _P, _o, _p, _u, _l, _a, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s));
printLine();
printString((_gt, _space, _E, _n, _d, _space, _P, _o, _r, _t, _a, _l, _space, _R, _a, _y, _s));
printLine();
endText(color.rgb);
beginTextM(2, vec2(30, 190));
text.fgCol = vec4(0.8, 0.8, 0.8, 1.0);
printString((_P, _l, _e, _a, _s, _e, _space, _n, _o, _t, _e, _space, _t, _h, _a, _t, _space, _u, _s, _i, _n, _g, _space, _a, _n, _space, _o, _l, _d, _space, _I, _r, _i, _s, _space, _v, _e, _r, _s, _i, _o, _n, _space, _w, _i, _l, _l, _space, _n, _o, _t));
printLine();
printString((_w, _o, _r, _k, _space, _a, _n, _d, _space, _m, _a, _y, _space, _s, _t, _i, _l, _l, _space, _c, _a, _u, _s, _e, _space, _t, _h, _i, _s, _space, _e, _r, _r, _o, _r, _space, _t, _o, _space, _a, _p, _p, _e, _a, _r, _dot));
printLine();
endText(color.rgb);
@@ -0,0 +1,36 @@
color.rgb = mix(color.rgb, vec3(0.0), 0.65);
beginTextM(8, vec2(6, 10));
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r));
endText(color.rgb);
beginTextM(4, vec2(15, 36));
printLine();
text.fgCol = vec4(vec3(1.0), 1.0);
printString((
_C, _o, _l, _o, _r, _e, _d, _space, _L, _i, _g, _h, _t, _i, _n, _g, _space, _w, _i, _l, _l,
_space, _n, _o, _t, _space, _w, _o, _r, _k
));
printLine();
printString((
_p, _r, _o, _p, _e, _r, _l, _y, _space, _a, _t, _space, _h, _i, _g, _h,
_space, _w, _o, _r, _l, _d, _space, _c, _o, _o, _r, _d, _i, _n, _a, _t, _e, _s, _dot
));
printLine();
printLine();
printString((
_D, _i, _s, _a, _b, _l, _e, _space, _i, _t, _space, _u, _n, _d, _e, _r, _colon, _space
));
printLine();
printString((
_E, _S, _C, _space, _gt, _space, _O, _p, _t, _i, _o, _n, _s, _space, _gt, _space,
_S, _h, _a, _d, _e, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s,
_space, _gt
));
printLine();
printString((
_P, _e, _r, _f, _o, _r, _m, _a, _n, _c, _e, _space, _gt, _space,
_A, _d, _v, _a, _n, _c, _e, _d, _space, _C, _o, _l, _o, _r, _space, _T, _r, _a, _c, _i, _n, _g
));
endText(color.rgb);
@@ -0,0 +1,113 @@
color.rgb = mix(color.rgb, vec3(0.0), 0.65);
beginTextM(8, vec2(6, 10));
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r));
endText(color.rgb);
beginTextM(4, vec2(15, 36));
printLine();
text.fgCol = vec4(vec3(1.0), 1.0);
printString((
_C, _o, _l, _o, _r, _e, _d, _space, _L, _i, _g, _h, _t, _i, _n, _g, _space, _i, _s, _space,
_n, _o, _t, _space
));
printLine();
printString((
_s, _u, _p, _p, _o, _r, _t, _e, _d, _space, _o, _n, _space, _O, _p, _t, _i, _f, _i, _n, _e,
_dot, _space, _Y, _o, _u, _space, _n, _e, _e, _d
));
printLine();
printString((
_t, _o, _space, _s, _w, _i, _t, _c, _h, _space, _t, _o, _space, _t, _h, _e, _space,
_quote, _I, _r, _i, _s, _quote, _space, _m, _o, _d, _dot
));
printLine();
printString((
_D, _o, _w, _n, _l, _o, _a, _d, _colon, _space,
_w, _w, _w, _dot, _i, _r, _i, _s, _s, _h, _a, _d, _e, _r, _s, _dot, _d, _e, _v
));
endText(color.rgb);
beginTextM(2, vec2(30, 155));
printLine();
text.fgCol = vec4(vec3(0.65), 1.0);
printString((
_O, _p, _t, _i, _f, _i, _n, _e, _space,
_d, _o, _e, _s, _space, _n, _o, _t, _space, _h, _a, _v, _e, _space, _t, _h, _e, _space,
_f, _u, _n, _c, _t, _i, _o, _n, _a, _l, _i, _t, _y, _space, _t, _h, _a, _t, _space,
_C, _o, _m, _p, _l, _e, _m, _e, _n, _t, _a, _r, _y, _space
));
printLine();
printString((
_u, _s, _e, _s, _space, _t, _o, _space, _p, _r, _o, _v, _i, _d, _e, _space, _y, _o, _u, _space,
_a, _space, _f, _u, _l, _l, _y, _space, _f, _l, _e, _d, _g, _e, _d, _space,
_c, _o, _l, _o, _r, _e, _d, _space, _l, _i, _g, _h, _t, _i, _n, _g, _space,
_e, _x, _p, _e, _r, _i, _e, _n, _c, _e, _dot
));
printLine();
printString((
_T, _h, _e, _space, _I, _r, _i, _s, _space, _m, _o, _d, _space, _i, _s, _space, _a, _space,
_m, _u, _c, _h, _space, _b, _e, _t, _t, _e, _r, _space, _a, _l, _t, _e, _r, _n, _a, _t, _i, _v, _e,
_space, _t, _h, _a, _t, _space, _p, _r, _o, _v, _i, _d, _e, _s, _space, _a, _space,
_l, _o, _t, _space, _o, _f
));
printLine();
printString((
_a, _d, _d, _i, _t, _i, _o, _n, _a, _l, _space, _s, _h, _a, _d, _e, _r, _space,
_f, _e, _a, _t, _u, _r, _e, _s, _comma, _space, _l, _e, _s, _s, _space, _b, _u, _g, _s,
_comma, _space, _a, _n, _d, _space, _m, _o, _r, _e, _space,
_p, _e, _r, _f, _o, _r, _m, _a, _n, _c, _e, _dot
));
printLine();
printLine();
printString((
_O, _r, _space, _D, _i, _s, _a, _b, _l, _e, _space, _i, _t, _space, _u, _n, _d, _e, _r, _colon, _space
));
printLine();
printString((
_S, _h, _a, _d, _e, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s,
_space, _gt, _space, _P, _e, _r, _f, _o, _r, _m, _a, _n, _c, _e, _space, _gt, _space,
_A, _d, _v, _a, _n, _c, _e, _d, _space, _C, _o, _l, _o, _r, _space, _T, _r, _a, _c, _i, _n, _g
));
printLine();
printLine();
text.fgCol = vec4(1.0, 0.0, 1.0, 1.0);
printString((
_E, _u, _p, _h, _o, _r, _i, _a, _space, _P, _a, _t, _c, _h, _e, _s
));
text.fgCol = vec4(vec3(0.65), 1.0);
printString((_space, _h, _a, _s, _space,
_a, _space, _s, _c, _r, _e, _e, _n, _s, _p, _a, _c, _e, _space,
_c, _o, _l, _o, _r, _e, _d, _space, _l, _i, _g, _h, _t, _i, _n, _g, _space, _o, _p, _t, _i, _o, _n
));
printLine();
printString((
_w, _h, _i, _c, _h, _space, _w, _o, _r, _k, _s, _space, _o, _n, _space, _O, _p, _t, _i, _F, _n, _e, _dot
));
printLine();
printLine();
printString((
_A, _v, _a, _i, _l, _a, _b, _l, _e, _space, _u, _n, _d, _e, _r, _colon
));
printLine();
printString((
_E, _u, _p, _h, _o, _r, _i, _a, _space, _P, _a, _t, _c, _h, _e, _s, _space, _S, _e, _t, _t, _i, _n, _g, _s,
_space, _gt, _space, _P, _o, _p, _u, _l, _a, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt, _space,
_E, _u, _p, _h, _o, _r, _i, _a, _space, _C, _o, _l, _o, _r, _e, _d, _space, _L, _i, _g, _h, _t, _i, _n, _g
));
printLine();
printLine();
text.fgCol = vec4(vec3(0.6, 0.8196, 0.8549), 1.0);
printString((
_P, _l, _e, _a, _s, _e, _space, _n, _o, _t, _e, _space, _t, _h, _a, _t, _space,
_u, _s, _i, _n, _g, _space, _a, _n, _space, _o, _l, _d, _space, _I, _r, _i, _s, _space,
_v, _e, _r, _s, _i, _o, _n, _space, _w, _i, _l, _l, _space, _n, _o, _t, _space
));
printLine();
printString((
_w, _o, _r, _k, _space, _a, _n, _d, _space, _m, _a, _y, _space,
_s, _t, _i, _l, _l, _space, _c, _a, _u, _s, _e, _space, _t, _h, _i, _s, _space,
_e, _r, _r, _o, _r, _space, _t, _o, _space, _a, _p, _p, _e, _a, _r, _dot
));
endText(color.rgb);
@@ -0,0 +1,55 @@
color.rgb = mix(color.rgb, vec3(0.0), 0.65);
beginTextM(8, vec2(6, 10));
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r));
endText(color.rgb);
beginTextM(4, vec2(15, 36));
printLine();
text.fgCol = vec4(vec3(1.0), 1.0);
printString((
_P, _l, _e, _a, _s, _e, _space, _g, _o, _space, _t, _o, _space,
_E, _S, _C, _space, _minus, _space, _O, _p, _t, _i, _o, _n, _s, _space, _minus
));
printLine();
printString((
_V, _i, _d, _e, _o, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _minus, _space,
_Q, _u, _a, _l, _i, _t, _y, _space, _minus
));
printLine();
printString((
_a, _n, _d, _space, _d, _i, _s, _a, _b, _l, _e, _space,
_A, _n, _i, _s, _o, _t, _r, _o, _p, _i, _c, _space, _F, _i, _l, _t, _e, _r, _i, _n, _g, _dot
));
endText(color.rgb);
beginTextM(2, vec2(30, 140));
printLine();
text.fgCol = vec4(vec3(0.65), 1.0);
printString((
_O, _p, _t, _i, _f, _i, _n, _e, _s, _space, _a, _n, _i, _s, _o, _t, _r, _o, _p, _i, _c, _space,
_f, _i, _l, _t, _e, _r, _i, _n, _g, _space, _c, _h, _a, _n, _g, _e, _s, _space, _h, _o, _w, _space,
_t, _e, _x, _t, _u, _r, _e, _s, _space, _a, _r, _e, _space, _h, _a, _n, _d, _l, _e, _d
));
printLine();
printString((
_i, _n, _space, _a, _space, _w, _a, _y, _space, _t, _h, _a, _t, _space, _c, _a, _u, _s, _e, _s, _space,
_a, _space, _l, _o, _t, _space, _o, _f, _space, _i, _s, _s, _u, _e, _s, _dot, _space,
_C, _o, _m, _p, _l, _e, _m, _e, _n, _t, _a, _r, _y, _space, _h, _a, _s, _space, _i, _t, _s, _space,
_o, _w, _n
));
printLine();
printString((
_t, _e, _x, _t, _u, _r, _e, _space, _f, _i, _l, _t, _e, _r, _i, _n, _g, _space,
_a, _s, _space, _a, _n, _space, _o, _p, _t, _i, _o, _n, _space, _a, _n, _y, _w, _a, _y, _s, _dot, _space,
_Y, _o, _u, _space, _c, _a, _n, _space, _f, _i, _n, _d, _space, _t, _h, _a, _t, _space, _i, _n, _space
));
printLine();
printString((
_S, _h, _a, _d, _e, _r, _space, _O, _p, _t, _i, _o, _n, _s, _space, _minus, _space,
_P, _e, _r, _f, _o, _r, _m, _a, _n, _c, _e, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space,
_i, _f, _space, _y, _o, _u, _space, _w, _a, _n, _t, _space, _t, _e, _x, _t, _u, _r, _e, _space,
_f, _i, _l, _t, _e, _r, _i, _n, _g, _dot
));
endText(color.rgb);
@@ -0,0 +1,30 @@
color.rgb = mix(color.rgb, vec3(0.0), 0.65);
beginTextM(8, vec2(6, 10));
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r, _exclm));
printLine();
endText(color.rgb);
beginTextM(4, vec2(15, 36));
text.fgCol = vec4(1.0, 1.0, 1.0, 1.0);
printString((_T, _h, _e, _space, _D, _r, _a, _g, _o, _n, _space, _D, _e, _a, _t, _h, _space, _E, _f, _f, _e, _c, _t, _space, _o, _p, _t, _i, _o, _n, _space, _i, _s, _space, _n, _o, _t, _space, _s, _u, _p, _p, _o, _r, _t, _e, _d));
printLine();
printString((_o, _n, _space, _O, _p, _t, _i, _F, _i, _n, _e, _dot));
printLine();
printLine();
printString((_D, _i, _s, _a, _b, _l, _e, _space, _i, _t, _space, _u, _n, _d, _e, _r, _colon));
printLine();
printString((_E, _S, _C, _space, _gt, _space, _O, _p, _t, _i, _o, _n, _s, _space, _gt, _space, _V, _i, _d, _e, _o, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt, _space, _S, _h, _a, _d, _e, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s));
printLine();
printString((_E, _u, _p, _h, _o, _r, _i, _a, _space, _P, _a, _t, _c, _h, _e, _s, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt, _space, _P, _o, _p, _u, _l, _a, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s));
printLine();
printString((_gt, _space, _D, _r, _a, _g, _o, _n, _space, _D, _e, _a, _t, _h, _space, _E, _f, _f, _e, _c, _t));
printLine();
endText(color.rgb);
beginTextM(2, vec2(30, 190));
text.fgCol = vec4(0.8, 0.8, 0.8, 1.0);
printString((_P, _l, _e, _a, _s, _e, _space, _n, _o, _t, _e, _space, _t, _h, _a, _t, _space, _u, _s, _i, _n, _g, _space, _a, _n, _space, _o, _l, _d, _space, _I, _r, _i, _s, _space, _v, _e, _r, _s, _i, _o, _n, _space, _w, _i, _l, _l, _space, _n, _o, _t));
printLine();
printString((_w, _o, _r, _k, _space, _a, _n, _d, _space, _m, _a, _y, _space, _s, _t, _i, _l, _l, _space, _c, _a, _u, _s, _e, _space, _t, _h, _i, _s, _space, _e, _r, _r, _o, _r, _space, _t, _o, _space, _a, _p, _p, _e, _a, _r, _dot));
printLine();
endText(color.rgb);
@@ -0,0 +1,30 @@
color.rgb = mix(color.rgb, vec3(0.0), 0.65);
beginTextM(8, vec2(6, 10));
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r, _exclm));
printLine();
endText(color.rgb);
beginTextM(4, vec2(15, 36));
text.fgCol = vec4(1.0, 1.0, 1.0, 1.0);
printString((_T, _h, _e, _space, _E, _n, _d, _space, _C, _r, _y, _s, _t, _a, _l, _space, _V, _o, _r, _t, _e, _x, _space, _o, _p, _t, _i, _o, _n, _space, _i, _s, _space, _n, _o, _t, _space, _s, _u, _p, _p, _o, _r, _t, _e, _d));
printLine();
printString((_o, _n, _space, _O, _p, _t, _i, _F, _i, _n, _e, _dot));
printLine();
printLine();
printString((_D, _i, _s, _a, _b, _l, _e, _space, _i, _t, _space, _u, _n, _d, _e, _r, _colon));
printLine();
printString((_E, _S, _C, _space, _gt, _space, _O, _p, _t, _i, _o, _n, _s, _space, _gt, _space, _V, _i, _d, _e, _o, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt, _space, _S, _h, _a, _d, _e, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s));
printLine();
printString((_E, _u, _p, _h, _o, _r, _i, _a, _space, _P, _a, _t, _c, _h, _e, _s, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt, _space, _P, _o, _p, _u, _l, _a, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s));
printLine();
printString((_gt, _space, _E, _n, _d, _space, _C, _r, _y, _s, _t, _a, _l, _space, _V, _o, _r, _t, _e, _x));
printLine();
endText(color.rgb);
beginTextM(2, vec2(30, 190));
text.fgCol = vec4(0.8, 0.8, 0.8, 1.0);
printString((_P, _l, _e, _a, _s, _e, _space, _n, _o, _t, _e, _space, _t, _h, _a, _t, _space, _u, _s, _i, _n, _g, _space, _a, _n, _space, _o, _l, _d, _space, _I, _r, _i, _s, _space, _v, _e, _r, _s, _i, _o, _n, _space, _w, _i, _l, _l, _space, _n, _o, _t));
printLine();
printString((_w, _o, _r, _k, _space, _a, _n, _d, _space, _m, _a, _y, _space, _s, _t, _i, _l, _l, _space, _c, _a, _u, _s, _e, _space, _t, _h, _i, _s, _space, _e, _r, _r, _o, _r, _space, _t, _o, _space, _a, _p, _p, _e, _a, _r, _dot));
printLine();
endText(color.rgb);
@@ -0,0 +1,28 @@
color.rgb = mix(color.rgb, vec3(0.0), 0.65);
beginTextM(8, vec2(6, 10));
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r, _exclm));
printLine();
endText(color.rgb);
beginTextM(4, vec2(15, 36));
text.fgCol = vec4(1.0, 1.0, 1.0, 1.0);
printString((_T, _h, _e, _space, _E, _n, _d, _space, _P, _o, _r, _t, _a, _l, _space, _R, _a, _y, _s, _space, _a, _r, _e, _space, _n, _o, _t, _space, _s, _u, _p, _p, _o, _r, _t, _e, _d, _space, _o, _n, _space, _O, _p, _t, _i, _F, _i, _n, _e, _dot));
printLine();
printLine();
printString((_D, _i, _s, _a, _b, _l, _e, _space, _i, _t, _space, _u, _n, _d, _e, _r, _colon));
printLine();
printString((_E, _S, _C, _space, _gt, _space, _O, _p, _t, _i, _o, _n, _s, _space, _gt, _space, _V, _i, _d, _e, _o, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt, _space, _S, _h, _a, _d, _e, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s));
printLine();
printString((_E, _u, _p, _h, _o, _r, _i, _a, _space, _P, _a, _t, _c, _h, _e, _s, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt, _space, _P, _o, _p, _u, _l, _a, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s));
printLine();
printString((_gt, _space, _E, _n, _d, _space, _P, _o, _r, _t, _a, _l, _space, _R, _a, _y, _s));
printLine();
endText(color.rgb);
beginTextM(2, vec2(30, 172));
text.fgCol = vec4(0.8, 0.8, 0.8, 1.0);
printString((_P, _l, _e, _a, _s, _e, _space, _n, _o, _t, _e, _space, _t, _h, _a, _t, _space, _u, _s, _i, _n, _g, _space, _a, _n, _space, _o, _l, _d, _space, _I, _r, _i, _s, _space, _v, _e, _r, _s, _i, _o, _n, _space, _w, _i, _l, _l, _space, _n, _o, _t));
printLine();
printString((_w, _o, _r, _k, _space, _a, _n, _d, _space, _m, _a, _y, _space, _s, _t, _i, _l, _l, _space, _c, _a, _u, _s, _e, _space, _t, _h, _i, _s, _space, _e, _r, _r, _o, _r, _space, _t, _o, _space, _a, _p, _p, _e, _a, _r, _dot));
printLine();
endText(color.rgb);
@@ -0,0 +1,34 @@
if (getPaletteTextureSize() == viewWidth) {
#if USE_TEXTURE_PALETTE == 1
#define PALETTE_NUM _1
#elif USE_TEXTURE_PALETTE == 2
#define PALETTE_NUM _2
#elif USE_TEXTURE_PALETTE == 3
#define PALETTE_NUM _3
#elif USE_TEXTURE_PALETTE == 4
#define PALETTE_NUM _4
#elif USE_TEXTURE_PALETTE == 5
#define PALETTE_NUM _5
#elif USE_TEXTURE_PALETTE == 6
#define PALETTE_NUM _6
#elif USE_TEXTURE_PALETTE == 7
#define PALETTE_NUM _7
#elif USE_TEXTURE_PALETTE == 8
#define PALETTE_NUM _8
#elif USE_TEXTURE_PALETTE == 9
#define PALETTE_NUM _9
#elif USE_TEXTURE_PALETTE == 10
#define PALETTE_NUM _1, _0
#endif
beginTextM(8, vec2(15, 30));
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
printString((_E, _R, _R, _O, _R));
printLine();
endText(color.rgb);
beginTextM(4, vec2(30, 80));
printString((_N, _o, _space, _p, _a, _l, _e, _t, _t, _e, PALETTE_NUM, _dot, _p, _n, _g, _space, _f, _o, _u, _n, _d, _space, _i, _n, _space, _t, _h, _e, _space, _p, _a, _l, _e, _t, _t, _e, _space, _f, _o, _l, _d, _e, _r));
printLine();
printString((_P, _l, _e, _a, _s, _e, _space, _c, _h, _e, _c, _k, _space, _s, _h, _a, _d, _e, _r, _s, _space, _gt, _space, _p, _a, _l, _e, _t, _t, _e, _s, _space, _gt, _space, _p, _a, _l, _e, _t, _t, _e, PALETTE_NUM, _dot, _p, _n, _g));
printLine();
endText(color.rgb);
}
@@ -0,0 +1,46 @@
color.rgb = mix(color.rgb, vec3(0.0), 0.65);
beginTextM(8, vec2(6, 10));
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r));
endText(color.rgb);
beginTextM(4, vec2(15, 36));
printLine();
text.fgCol = vec4(vec3(1.0), 1.0);
printString((
_T, _h, _e, _space, _quote, _A, _d, _v, _a, _n, _c, _e, _d, _space, _C, _o, _l, _o, _r, _space,
_T, _r, _a, _c, _i, _n, _g, _quote
));
printLine();
printString((
_s, _e, _t, _t, _i, _n, _g, _space, _m, _u, _s, _t, _space, _n, _o, _t, _space, _b, _e, _space,
_s, _e, _t, _space, _h, _i, _g, _h, _e, _r, _space, _t, _h, _a, _n
));
printLine();
printString((
_t, _h, _e, _space, _quote, _S, _h, _a, _d, _o, _w, _space, _D, _i, _s, _t, _a, _n, _c, _e, _quote, _space,
_s, _e, _t, _t, _i, _n, _g, _dot
));
printLine();
printLine();
printString((
_G, _o, _space, _t, _o, _space, _E, _S, _C, _space, _gt, _space, _O, _p, _t, _i, _o, _n, _s, _space, _gt, _space,
_S, _h, _a, _d, _e, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s
));
printLine();
printString((
_gt, _space, _P, _e, _r, _f, _o, _r, _m, _a, _n, _c, _e, _space, _gt, _space,
_a, _n, _d, _space, _e, _i, _t, _h, _e, _r, _space, _i, _n, _c, _r, _e, _a, _s, _e
));
printLine();
printString((
_t, _h, _e, _space, _S, _h, _a, _d, _o, _w, _space, _D, _i, _s, _t, _a, _n, _c, _e, _space,
_s, _e, _t, _t, _i, _n, _g, _space, _o, _r, _space, _r, _e, _d, _u, _c, _e
));
printLine();
printString((
_t, _h, _e, _space, _A, _d, _v, _a, _n, _c, _e, _d, _space, _C, _o, _l, _o, _r, _space,
_T, _r, _a, _c, _i, _n, _g, _space, _s, _e, _t, _t, _i, _n, _g
));
endText(color.rgb);
@@ -0,0 +1,19 @@
color.rgb = mix(color.rgb, vec3(0.0), 0.65);
beginTextM(8, vec2(6, 10));
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r));
printLine();
endText(color.rgb);
beginTextM(4, vec2(15, 36));
printString((_A, _d, _v, _a, _n, _c, _e, _d, _space, _C, _o, _l, _o, _r, _e, _d, _space, _T, _r,_a, _c, _i, _n, _g, _space, _n, _e, _e, _d, _s, _space, _R, _e, _a, _l, _minus, _T, _i, _m, _e, _space, _S, _h, _a, _d, _o, _w, _s));
printLine();
printString((_t, _o, _space, _b, _e, _space, _e, _n, _a, _b, _l, _e, _d, _exclm));
printLine();
printLine();
printString((_P, _l, _e, _a, _s, _e, _space, _e, _n, _a, _b, _l, _e, _space, _R, _e, _a, _l, _minus, _T, _i, _m, _e, _space, _S, _h, _a, _d, _o, _w, _s, _space, _o, _r, _space, _d, _i, _s, _a, _b, _l, _e));
printLine();
printString((_A, _d, _v, _a, _n, _c, _e, _d, _space, _C, _o, _l, _o, _r, _space, _T, _r, _a, _c, _i, _n, _g, _space, _a, _t, _colon));
printLine();
printString((_S, _h, _a, _d, _e, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt, _space, _P, _e, _r, _f, _o, _r, _m, _a, _n, _c, _e));
printLine();
endText(color.rgb);
@@ -0,0 +1,35 @@
color.rgb = mix(color.rgb, vec3(0.0), 0.65);
beginTextM(8, vec2(6, 10));
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r));
endText(color.rgb);
beginTextM(4, vec2(15, 36));
printLine();
text.fgCol = vec4(vec3(1.0), 1.0);
printString((
_quote, _W, _o, _r, _l, _d, _space, _S, _p, _a, _c, _e, _space, _R, _e, _f, _l, _e, _c, _t, _i, _o, _n, _s, _quote,
_space, _f, _e, _a, _t, _u, _r, _e
));
printLine();
printString((
_r, _e, _q, _u, _i, _r, _e, _s, _space, _t, _h, _e, _space, _quote, _A, _d, _v, _a, _n, _c, _e, _d, _space,
_C, _o, _l, _o, _r, _space, _T, _r, _a, _c, _i, _n, _g, _quote
));
printLine();
printString((
_s, _e, _t, _t, _i, _n, _g, _space, _t, _o, _space, _b, _e, _space, _e, _n, _a, _b, _l, _e, _d, _dot, _space,
_P, _l, _e, _a, _s, _e, _space, _e, _i, _t, _h, _e, _r
));
printLine();
printString((
_e, _n, _a, _b, _l, _e, _space, _quote, _A, _d, _v, _a, _n, _c, _e, _d, _space, _C, _o, _l, _o, _r,
_space, _T, _r, _a, _c, _i, _n, _g, _quote, _space, _o, _r
));
printLine();
printString((
_d, _i, _s, _a, _b, _l, _e, _space, _quote, _W, _o, _r, _l, _d, _space, _S, _p, _a, _c, _e, _space,
_R, _e, _f, _l, _e, _c, _t, _i, _o, _n, _s, _quote, _dot
));
endText(color.rgb);
@@ -0,0 +1,18 @@
animation = min(starter * 0.3, 0.1) * 10.0;
beginTextM(2, vec2(510, 413));
text.bgCol = vec4(0.0, 0.0, 0.0, 0.5);
text.fgCol = vec4(1.0, 0.0, 1.0, 1.0);
printString((_N, _e, _w, _space, _E, _u, _p, _h, _o, _r, _i, _a, _space, _P, _a, _t, _c, _h, _e, _s, _space, _U, _p, _d, _a, _t, _e, _colon));
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
printString((CURRENT_EUPHORIA_PATCHES_VERSION));
text.fgCol = vec4(1.0, 1.0, 1.0, 1.0);
printString((_space, _minus, _gt, _space));
text.fgCol = vec4(0.0, 1.0, 0.0, 1.0);
printString((NEXT_EUPHORIA_PATCHES_VERSION));
printLine();
text.fgCol = vec4(1.0, 1.0, 1.0, 1.0);
printString((_D, _o, _w, _n, _l, _o, _a, _d, _colon, _space, _e, _u, _p, _h, _o, _r, _i, _a, _p, _a, _t, _c, _h, _e, _s, _dot, _c, _o, _m, _slash, _d, _o, _w, _n, _l, _o, _a, _d));
printLine();
vec3 textColor = color.rgb;
endText(textColor);
color.rgb = mix(textColor, color.rgb, animation);
@@ -0,0 +1,24 @@
float animation = min(starter * 0.3, 0.1) * 10.0;
color.rgb = mix(mix(vec3(GetLuminance(color.rgb)), vec3(0.0), 0.65), color.rgb, animation);
beginTextM(4, vec2(20, 90));
text.fgCol = vec4(1.0, 1.0, 1.0, 1.0);
printString((
_P, _l, _e, _a, _s, _e, _space, _g, _o, _space, _t, _o, _space,
_t, _h, _e, _space, _dot, _m, _i, _n, _e, _c, _r, _a, _f, _t, _gt, _s, _h, _a, _d, _e, _r, _p, _a, _c, _k, _s,_space, _F, _o, _l, _d, _e, _r, _space, _minus, _space
));
printLine();
printString((
_O, _p, _e, _n, _space, _t, _h, _e, _space, _S, _e, _t, _t, _t, _i, _n, _s, _dot, _t, _x, _t, _space, _F, _i, _l, _e, _space, _minus, _space
));
printLine();
printString((
_C, _o, _m, _p, _l, _e, _m, _e, _n, _t, _a, _r, _y, _V, _I, _S, _U, _A, _L, _S, _T, _Y, _L, _E, _under, _r, _X, _dot, _x, _space, _plus, _space, _E, _u, _p, _h, _o, _r, _i, _a, _P, _a, _t, _c, _h, _e, _s, _under, _Y, _dot, _y, _dot, _t, _x, _t, _space, _minus, _space
));
printLine();
printString((
_a, _n, _d, _space, _r, _e, _m, _o, _v, _e, _space, _t, _h, _e, _space, _l, _i, _n, _e, _space, _quote, _M, _U, _L, _T, _I, _C, _O, _L, _O, _R, _E, _D, _under, _B, _L, _O, _C, _K, _L, _I, _G, _H, _T, _equal, _t, _r, _u, _e, _quote, _space
));
vec3 textColor = color.rgb;
endText(textColor);
color.rgb = mix(textColor, color.rgb, animation);
@@ -0,0 +1,20 @@
color.rgb = mix(color.rgb, vec3(0.0), 0.65);
beginTextM(4, vec2(30, 30));
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
printString((_I, _m, _p, _o, _r, _t, _a, _n, _t, _space, _E, _r, _r, _o, _r));
printLine();
endText(color.rgb);
beginTextM(4, vec2(30, 50));
text.fgCol = vec4(1.0, 1.0, 1.0, 1.0);
printString((_E, _u, _p, _h, _o, _r, _i, _a, _space, _C, _o, _l, _o, _r, _e, _d, _space, _L, _i, _g, _h, _t, _i, _n, _g, _space, _opprn, _S, _c, _r, _e, _e, _n, _s, _p, _a, _c, _e, _clprn));
printLine();
printString((_d, _o, _e, _s, _space, _n, _o, _t, _space, _w, _o, _r, _k, _space, _b, _e, _l, _o, _w, _space, _1, _dot, _1, _6, _dot, _4));
printLine();
endText(color.rgb);
beginTextM(4, vec2(30, 70));
text.fgCol = vec4(1.0, 1.0, 1.0, 1.0);
printString((_D, _i, _s, _a, _b, _l, _e, _space, _i, _t, _space, _i, _n, _space, _E, _u, _p, _h, _o, _r, _i, _a, _space, _P, _a, _t, _c, _h, _e, _s, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt));
printLine();
printString((_P, _o, _p, _u, _l, _a, _r, _space, _S, _e, _t, _t, _i, _n, _g, _s, _space, _gt, _space, _E, _u, _p, _h, _o, _r, _i, _a, _space, _C, _o, _l, _o, _r, _e, _d, _space, _L, _i, _g, _h, _t, _i, _n, _g));
printLine();
endText(color.rgb);
@@ -0,0 +1,347 @@
/*
--------------------------------------------------------------------------------
GLSL Debug Text Renderer by SixthSurge (updated 2025-03-18)
Character set based on Monocraft by IdreesInc
https://github.com/IdreesInc/Monocraft
With additional characters added by WoMspace
Usage:
// Call beginText to initialize the text renderer. You can scale the fragment position to adjust the size of the text
beginText(ivec2(gl_FragCoord.xy), ivec2(0, viewHeight));
^ fragment position ^ text box position (upper left corner)
// You can print various data types
printBool(false);
printFloat(sqrt(-1.0)); // Prints "NaN"
printInt(42);
printVec3(skyColor);
// ...or arbitrarily long strings
printString((_H, _e, _l, _l, _o, _comma, _space, _w, _o, _r, _l, _d));
// To start a new line, use
printLine();
// You can also configure the text color on the fly
text.fgCol = vec4(1.0, 0.0, 0.0, 1.0);
text.bgCol = vec4(0.0, 0.0, 0.0, 1.0);
// ...as well as the number base and number of decimal places to print
text.base = 16;
text.fpPrecision = 4;
// Finally, call endText to blend the current fragment color with the text
endText(fragColor);
Important: any variables you display must be the same for all fragments, or
at least all of the fragments that the text covers. Otherwise, different
fragments will try to print different values, resulting in, well, a mess
--------------------------------------------------------------------------------
*/
#if !defined UTILITY_TEXTRENDERER_INCLUDED
#define UTILITY_TEXTRENDERER_INCLUDED
// Characters
const uint _A = 0x747f18c4u;
const uint _B = 0xf47d18f8u;
const uint _C = 0x746108b8u;
const uint _D = 0xf46318f8u;
const uint _E = 0xfc39087cu;
const uint _F = 0xfc390840u;
const uint _G = 0x7c2718b8u;
const uint _H = 0x8c7f18c4u;
const uint _I = 0x71084238u;
const uint _J = 0x084218b8u;
const uint _K = 0x8cb928c4u;
const uint _L = 0x8421087cu;
const uint _M = 0x8eeb18c4u;
const uint _N = 0x8e6b38c4u;
const uint _O = 0x746318b8u;
const uint _P = 0xf47d0840u;
const uint _Q = 0x74631934u;
const uint _R = 0xf47d18c4u;
const uint _S = 0x7c1c18b8u;
const uint _T = 0xf9084210u;
const uint _U = 0x8c6318b8u;
const uint _V = 0x8c62a510u;
const uint _W = 0x8c635dc4u;
const uint _X = 0x8a88a8c4u;
const uint _Y = 0x8a884210u;
const uint _Z = 0xf844447cu;
const uint _a = 0x0382f8bcu;
const uint _b = 0x85b318f8u;
const uint _c = 0x03a308b8u;
const uint _d = 0x0b6718bcu;
const uint _e = 0x03a3f83cu;
const uint _f = 0x323c8420u;
const uint _g = 0x03e2f0f8u;
const uint _h = 0x842d98c4u;
const uint _i = 0x40308418u;
const uint _j = 0x080218b8u;
const uint _k = 0x4254c524u;
const uint _l = 0x6108420cu;
const uint _m = 0x06ab5ac4u;
const uint _n = 0x07a318c4u;
const uint _o = 0x03a318b8u;
const uint _p = 0x05b31f40u;
const uint _q = 0x03671784u;
const uint _r = 0x05b30840u;
const uint _s = 0x03e0e0f8u;
const uint _t = 0x211c420cu;
const uint _u = 0x046318bcu;
const uint _v = 0x04631510u;
const uint _w = 0x04635abcu;
const uint _x = 0x04544544u;
const uint _y = 0x0462f0f8u;
const uint _z = 0x07c4447cu;
const uint _0 = 0x746b58b8u;
const uint _1 = 0x23084238u;
const uint _2 = 0x744c88fcu;
const uint _3 = 0x744c18b8u;
const uint _4 = 0x19531f84u;
const uint _5 = 0xfc3c18b8u;
const uint _6 = 0x3221e8b8u;
const uint _7 = 0xfc422210u;
const uint _8 = 0x745d18b8u;
const uint _9 = 0x745e1130u;
const uint _space = 0x0000000u;
const uint _dot = 0x000010u;
const uint _minus = 0x0000e000u;
const uint _comma = 0x00000220u;
const uint _colon = 0x02000020u;
// Additional characters added by WoMspace <3
const uint _under = 0x000007Cu; // _
const uint _quote = 0x52800000u; // "
const uint _exclm = 0x21084010u; // !
const uint _gt = 0x02082220u; // >
const uint _lt = 0x00888208u; // <
const uint _opsqr = 0x3908421Cu; // [
const uint _clsqr = 0xE1084270u; // ]
const uint _opprn = 0x11084208u; // (
const uint _clprn = 0x41084220u; // )
const uint _block = 0xFFFFFFFCu; // █
const uint _copyr = 0x03AB9AB8u; // ©️
const uint _equal = 0x01C0703u; // =
const uint _plus = 0x21364200u; // + good enough but could be better - tired of trial and error
const uint _slash = 0x00022220u; // / same as above lol
const int charWidth = 5;
const int charHeight = 6;
const int charSpacing = 1;
const int lineSpacing = 1;
const ivec2 charSize = ivec2(charWidth, charHeight);
const ivec2 spaceSize = charSize + ivec2(charSpacing, lineSpacing);
// Text renderer
struct Text {
vec4 result; // Output color from the text renderer
vec4 fgCol; // Text foreground color
vec4 bgCol; // Text background color
ivec2 fragPos; // The position of the fragment (can be scaled to adjust the size of the text)
ivec2 textPos; // The position of the top-left corner of the text
ivec2 charPos; // The position of the next character in the text
int base; // Number base
int fpPrecision; // Number of decimal places to print
ivec2 charPadding; // Custom character padding
ivec2 bgPadding; // Custom background padding
} text;
// Fills the global text object with default values
void beginText(ivec2 fragPos, ivec2 textPos) {
text.result = vec4(0.0);
text.fgCol = vec4(1.0);
text.bgCol = vec4(0.0, 0.0, 0.0, 0.6);
text.fragPos = fragPos;
text.textPos = textPos;
text.charPos = ivec2(0);
text.base = 10;
text.fpPrecision = 2;
text.charPadding = ivec2(0); // Paddings by SpacEagle17
text.bgPadding = ivec2(3);
}
// Applies the rendered text to the fragment
void endText(inout vec3 fragColor) {
fragColor = mix(fragColor.rgb, text.result.rgb, text.result.a);
}
void printChar(uint character) {
// Calculate effective spacing that includes current padding settings
ivec2 effectiveSpaceSize = spaceSize + text.charPadding * 2;
// Use this effective spacing for positioning
ivec2 pos = text.fragPos - text.textPos - effectiveSpaceSize * text.charPos * ivec2(1, -1) + ivec2(0, effectiveSpaceSize.y);
// Draw background (larger area with padding)
ivec2 bgPos = pos + text.bgPadding;
if (clamp(bgPos, ivec2(0), effectiveSpaceSize + text.bgPadding * 2 - 1) == bgPos) {
float bgAlpha = text.result.a;
// Only apply background if this pixel hasn't been colored yet
if (bgAlpha < 0.01) {
text.result = mix(text.result, text.bgCol, text.bgCol.a);
}
}
// Draw character
ivec2 charPos = pos - text.charPadding;
if (clamp(charPos, ivec2(0), charSize - 1) == charPos) {
uint index = uint(charWidth - charPos.x + charPos.y * charWidth + 1);
text.result = mix(text.result, text.fgCol, text.fgCol.a * float(character >> index & 1u));
}
// Advance to next character
text.charPos.x++;
}
#define printString(string) { \
uint[] characters = uint[] string; \
for (int i = 0; i < characters.length(); ++i) printChar(characters[i]); \
}
void printUnsignedInt(uint value, int len) {
const uint[36] digits = uint[](
_0, _1, _2, _3, _4, _5, _6, _7, _8, _9,
_a, _b, _c, _d, _e, _f, _g, _h, _i, _j,
_k, _l, _m, _n, _o, _p, _q, _r, _s, _t,
_u, _v, _w, _x, _y, _z
);
// Advance to end of the number
text.charPos.x += len - 1;
// Write number backwards
for (int i = 0; i < len; ++i) {
printChar(digits[int(value) % text.base]);
value /= uint(text.base);
text.charPos.x -= 2;
}
// Return to end of the number
text.charPos.x += len + 1;
}
void printUnsignedInt(uint value) {
float logValue = log(float(value)) + 1e-6;
float logBase = log(float(text.base));
int len = int(ceil(logValue / logBase));
len = max(len, 1);
printUnsignedInt(value, len);
}
void printInt(int value) {
if (value < 0) printChar(_minus);
printUnsignedInt(uint(abs(value)));
}
void printFloat(float value) {
if (value < 0.0) printChar(_minus);
if (isnan(value)) {
printString((_N, _a, _N));
} else if (isinf(value)) {
printString((_i, _n, _f));
} else {
float v = abs(value) * pow(float(text.base), float(text.fpPrecision));
float i, f = modf(floor(v + 0.5) / pow(float(text.base), float(text.fpPrecision)), i);
uint integralPart = uint(i);
uint fractionalPart = uint(f * pow(float(text.base), float(text.fpPrecision)) + 0.5);
printUnsignedInt(integralPart);
printChar(_dot);
printUnsignedInt(fractionalPart, text.fpPrecision);
}
}
void printBool(bool value) {
if (value) {
printString((_t, _r, _u, _e));
} else {
printString((_f, _a, _l, _s, _e));
}
}
void printVec2(vec2 value) {
printFloat(value.x);
printString((_comma, _space));
printFloat(value.y);
}
void printVec3(vec3 value) {
printFloat(value.x);
printString((_comma, _space));
printFloat(value.y);
printString((_comma, _space));
printFloat(value.z);
}
void printVec4(vec4 value) {
printFloat(value.x);
printString((_comma, _space));
printFloat(value.y);
printString((_comma, _space));
printFloat(value.z);
printString((_comma, _space));
printFloat(value.w);
}
void printIvec2(ivec2 value) {
printInt(value.x);
printString((_comma, _space));
printInt(value.y);
}
void printIvec3(ivec3 value) {
printInt(value.x);
printString((_comma, _space));
printInt(value.y);
printString((_comma, _space));
printInt(value.z);
}
void printIvec4(ivec4 value) {
printInt(value.x);
printString((_comma, _space));
printInt(value.y);
printString((_comma, _space));
printInt(value.z);
printString((_comma, _space));
printInt(value.w);
}
void printUvec2(uvec2 value) {
printUnsignedInt(value.x);
printString((_comma, _space));
printUnsignedInt(value.y);
}
void printUvec3(uvec3 value) {
printUnsignedInt(value.x);
printString((_comma, _space));
printUnsignedInt(value.y);
printString((_comma, _space));
printUnsignedInt(value.z);
}
void printUvec4(uvec4 value) {
printUnsignedInt(value.x);
printString((_comma, _space));
printUnsignedInt(value.y);
printString((_comma, _space));
printUnsignedInt(value.z);
printString((_comma, _space));
printUnsignedInt(value.w);
}
void printLine() {
text.charPos.x = 0;
++text.charPos.y;
}
#endif // UTILITY_TEXTRENDERER_INCLUDED