/** * Copyright (c) 2025 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #include "tilesetshaderdata.h" #include "assert/assert.h" #include "util/memory.h" shaderbuffer_t TILESET_SHADER_DATA_BUFFER; tilesetshaderdata_t TILESET_SHADER_DATA_DATA; void tilesetShaderDataInit() { memoryZero(&TILESET_SHADER_DATA_DATA, sizeof(tilesetshaderdata_t)); shaderBufferInit(&TILESET_SHADER_DATA_BUFFER, sizeof(tilesetshaderdata_t)); } void tilesetShaderDataUpdate() { uint8_t i = 0; do { if(TILESET_SLOTS[i] == TILESET_NULL) continue; tileset_t *tileset = &TILESETS[TILESET_SLOTS[i]]; texture_t *texture = &TILESET_GL_TEXTURES[TILESET_SLOTS[i]]; tilesetshaderdatatileset_t *dest = &TILESET_SHADER_DATA_DATA.tilesets[i]; dest->columns = tileset->columns; dest->rows = tileset->rows; dest->width = texture->width; dest->height = texture->height; } while(++i < TILESET_COUNT); shaderBufferBind(&TILESET_SHADER_DATA_BUFFER); shaderBufferSetData(&TILESET_SHADER_DATA_BUFFER, &TILESET_SHADER_DATA_DATA); } void tilesetShaderDataDispose() { shaderBufferDispose(&TILESET_SHADER_DATA_BUFFER); }