animate lava tiles

This commit is contained in:
2016-10-05 14:50:55 -07:00
parent 708e0b4a16
commit 31ab07f615
3 changed files with 5 additions and 8 deletions

View File

@@ -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);

View File

@@ -12,8 +12,7 @@ uniform b_trans {
mat4 u_matrix;
};
uniform b_constants {
//uvec4 animdata;
uint animdata;
uvec4 anim;
float R1;
float R2;
};

View File

@@ -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<D: gfx::Device, F: gfx::Factory<D::Resources>> WorldScene<D, F> {
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 });