40 lines
1.2 KiB
C
40 lines
1.2 KiB
C
/**
|
|
* 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);
|
|
} |