diff options
Diffstat (limited to 'assets')
| -rw-r--r-- | assets/shaders/2d_texcoord.fsh | 9 | ||||
| -rw-r--r-- | assets/shaders/2d_texcoord.vsh | 4 | ||||
| -rw-r--r-- | assets/shaders/3d.fsh | 2 |
3 files changed, 8 insertions, 7 deletions
diff --git a/assets/shaders/2d_texcoord.fsh b/assets/shaders/2d_texcoord.fsh index 276f305..38dc69c 100644 --- a/assets/shaders/2d_texcoord.fsh +++ b/assets/shaders/2d_texcoord.fsh @@ -2,17 +2,18 @@ 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 ) { - color = texture2D( g_samplers[g_sampler], g_texcoord ); - color *= g_color; + vec4 tex_color = texture2D( g_samplers[g_sampler], g_texcoord ); + color *= tex_color; + if (color.a < 0.01) discard; } gl_FragColor = color; } 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..276f305 100644 --- a/assets/shaders/3d.fsh +++ b/assets/shaders/3d.fsh @@ -11,7 +11,7 @@ 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 ); + color = texture2D( g_samplers[g_sampler], g_texcoord ); color *= g_color; } gl_FragColor = color; |
