diff --git a/src/dusk/overworld/player.c b/src/dusk/overworld/player.c index 96b8b81..76931b5 100644 --- a/src/dusk/overworld/player.c +++ b/src/dusk/overworld/player.c @@ -27,4 +27,5 @@ void playerUpdate(entity_t *ent) { } else if(inputIsDown(INPUT_DOWN)) { entityMove(ent, FACING_DIRECTION_SOUTH); } + } \ No newline at end of file diff --git a/src/duskgl/display/shader/data/entities.c b/src/duskgl/display/shader/data/entities.c index c3e288a..cc688b0 100644 --- a/src/duskgl/display/shader/data/entities.c +++ b/src/duskgl/display/shader/data/entities.c @@ -19,9 +19,6 @@ void entitiesInit() { } void entitiesUpdate() { - shaderBufferBind(&ENTITIES_BUFFER); - shaderBufferSetData(&ENTITIES_BUFFER, &OVERWORLD); - for(uint8_t i = 0; i < OVERWORLD.entityCount; i++) { // Pack the entity data into the buffer entity_t *src = &OVERWORLD.entities[i]; @@ -35,6 +32,9 @@ void entitiesUpdate() { sizeof(uint_t) ); } + + shaderBufferBind(&ENTITIES_BUFFER); + shaderBufferSetData(&ENTITIES_BUFFER, &OVERWORLD); } void entitiesDispose() { diff --git a/src/duskgl/display/shader/data/entities.glsl b/src/duskgl/display/shader/data/entities.glsl index 04124d3..89f8954 100644 --- a/src/duskgl/display/shader/data/entities.glsl +++ b/src/duskgl/display/shader/data/entities.glsl @@ -9,7 +9,7 @@ struct Entity { uint position; - uvec3 _padding0; + uvec3 _p0; }; layout(std140) uniform b_Entities { diff --git a/src/duskgl/display/shader/data/entities.h b/src/duskgl/display/shader/data/entities.h index 51eb16b..6b18cdd 100644 --- a/src/duskgl/display/shader/data/entities.h +++ b/src/duskgl/display/shader/data/entities.h @@ -13,7 +13,7 @@ typedef struct { uint_t position; - uvec3_t _padding0; + uvec3_t _p0; } entitiesdataent_t; typedef struct { diff --git a/src/duskgl/display/shader/entityshader/entityshader.c b/src/duskgl/display/shader/entityshader/entityshader.c index d62402e..051fa6d 100644 --- a/src/duskgl/display/shader/entityshader/entityshader.c +++ b/src/duskgl/display/shader/entityshader/entityshader.c @@ -37,14 +37,12 @@ void entityShaderInit() { ); // Uniforms - - // Bind - shaderBufferBindToBlock(&TRANSFORMS_BUFFER, ENTITY_SHADER.transformsBlock); - shaderBufferBindToBlock(&ENTITIES_BUFFER, ENTITY_SHADER.entitiesBlock); } void entityShaderUse() { shaderUse(&ENTITY_SHADER.shader); + shaderBufferBindToBlock(&TRANSFORMS_BUFFER, ENTITY_SHADER.transformsBlock); + shaderBufferBindToBlock(&ENTITIES_BUFFER, ENTITY_SHADER.entitiesBlock); } void entityShaderDispose() { diff --git a/src/duskgl/display/shader/mapshader/mapshader.c b/src/duskgl/display/shader/mapshader/mapshader.c index 4c213a1..12f277b 100644 --- a/src/duskgl/display/shader/mapshader/mapshader.c +++ b/src/duskgl/display/shader/mapshader/mapshader.c @@ -33,10 +33,6 @@ void mapShaderInit() { &MAP_SHADER.shader, TRANSFORMS_BLOCK_NAME ); - - // Bind - shaderBufferBindToBlock(&MAP_BUFFER, MAP_SHADER.mapBlock); - shaderBufferBindToBlock(&TRANSFORMS_BUFFER, MAP_SHADER.transformsBlock); } void mapShaderUse() {