diff --git a/src/scenes/shader/tile_frag.glsl b/src/scenes/shader/tile_frag.glsl index 4af4ae6..51b0f88 100644 --- a/src/scenes/shader/tile_frag.glsl +++ b/src/scenes/shader/tile_frag.glsl @@ -5,8 +5,7 @@ flat in uint v_tileidx; out vec4 pixcolor; uniform sampler2D t_atlas; uniform b_constants { - //uvec4 animdata; - uint animdata; + uvec4 anim; float R1; float R2; }; @@ -19,8 +18,7 @@ uniform b_locals { void main() { vec2 anim_uv = v_uv; - //if (v_tileidx < 128u && bool(animdata[0 /*v_tileidx / 32u*/] & 1u << v_tileidx % 32u)) { - if (v_tileidx < 32u && bool(animdata & 1u << v_tileidx)) { + if (v_tileidx < 128u && bool(anim[v_tileidx / 32u] & 1u << v_tileidx % 32u)) { anim_uv = vec2(v_uv.x, float((uint(v_uv.y * 1000.0) + millis / 4u) % 1000u) / 1000.0); } vec2 uv = vec2(anim_uv.x, float(v_tileidx) / 256.0 + (1.0 - anim_uv.y) / 256.0); diff --git a/src/scenes/shader/torus_vertex.glsl b/src/scenes/shader/torus_vertex.glsl index 48c0335..2c40e20 100644 --- a/src/scenes/shader/torus_vertex.glsl +++ b/src/scenes/shader/torus_vertex.glsl @@ -12,8 +12,7 @@ uniform b_trans { mat4 u_matrix; }; uniform b_constants { - //uvec4 animdata; - uint animdata; + uvec4 anim; float R1; float R2; }; diff --git a/src/scenes/world.rs b/src/scenes/world.rs index 2f198f8..0ba44cd 100644 --- a/src/scenes/world.rs +++ b/src/scenes/world.rs @@ -35,7 +35,7 @@ gfx_defines! { } constant Constants { - anim: u32 = "anim", + anim: [u32; 4] = "anim", r1: f32 = "R1", r2: f32 = "R2", } @@ -143,7 +143,7 @@ impl> WorldScene { factory.create_vertex_buffer_with_slice(&model, &model_idx[..]); let constants = factory.create_constant_buffer(1); - encoder.update_constant_buffer(&constants, &Constants { anim: ANIMDATA[0], + encoder.update_constant_buffer(&constants, &Constants { anim: ANIMDATA, r1: R1, r2: R2 });