diff options
| -rw-r--r-- | assets/shaders/2d_texcoord.fsh | 7 | ||||
| -rw-r--r-- | assets/shaders/2d_texcoord.vsh | 4 | ||||
| -rw-r--r-- | assets/shaders/3d.fsh | 5 |
3 files changed, 9 insertions, 7 deletions
diff --git a/assets/shaders/2d_texcoord.fsh b/assets/shaders/2d_texcoord.fsh index fabbb2f..cf94a68 100644 --- a/assets/shaders/2d_texcoord.fsh +++ b/assets/shaders/2d_texcoord.fsh @@ -2,16 +2,17 @@ uniform sampler2D g_samplers[255]; -const uint SAMPLER_ID_NONE = 255u; +const int SAMPLER_ID_NONE = 255; in vec2 g_texcoord; in vec4 g_color; -flat in uint g_sampler; +flat in int g_sampler; void main() { vec4 color = g_color; if( g_sampler != SAMPLER_ID_NONE ) { - vec4 tex_color = texture2D( g_samplers[g_sampler], g_texcoord ); + // Always use sampler 0 to avoid dynamic indexing issues + vec4 tex_color = texture2D( g_samplers[0], g_texcoord ); color.a = g_color.a * tex_color.a; if (color.a < 0.01) discard; } diff --git a/assets/shaders/2d_texcoord.vsh b/assets/shaders/2d_texcoord.vsh index 3ccc8e7..80c7597 100644 --- a/assets/shaders/2d_texcoord.vsh +++ b/assets/shaders/2d_texcoord.vsh @@ -9,7 +9,7 @@ in float in_sampler; out vec2 g_texcoord; out vec4 g_color; -flat out uint g_sampler; +flat out int g_sampler; uniform vec4 g_screenratio; @@ -23,6 +23,6 @@ void main() { g_texcoord = in_texcoord; g_color = in_clr; - g_sampler = uint(in_sampler * 255 + 0.5); + g_sampler = int(in_sampler * 255.0 + 0.5); gl_Position = ( pos ) * g_screenratio; } diff --git a/assets/shaders/3d.fsh b/assets/shaders/3d.fsh index ee1208c..7660204 100644 --- a/assets/shaders/3d.fsh +++ b/assets/shaders/3d.fsh @@ -11,8 +11,9 @@ flat in uint g_sampler; void main() { vec4 color = g_color; if( g_sampler != SAMPLER_ID_NONE ) { - color = texture2D( g_samplers[int(g_sampler)], g_texcoord ); + // Always use sampler 0 for fonts + color = texture2D( g_samplers[0], g_texcoord ); color *= g_color; } gl_FragColor = color; -} +}
\ No newline at end of file |
