52 lines
1.1 KiB
C

/**
* Copyright (c) 2025 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "assert/assert.h"
#include "assert/assertgl.h"
#include "util/memory.h"
#include "entityshader.h"
#include "entity_vert.glsl.h"
#include "entity_frag.glsl.h"
#include "display/shader/data/transforms.h"
#include "display/shader/data/entities.h"
entityshader_t ENTITY_SHADER;
void entityShaderInit() {
memoryZero(&ENTITY_SHADER, sizeof(entityshader_t));
shaderInit(
&ENTITY_SHADER.shader,
entity_vertShaderSource,
entity_fragShaderSource
);
// Uniform buffers
ENTITY_SHADER.transformsBlock = shaderGetBlock(
&ENTITY_SHADER.shader,
TRANSFORMS_BLOCK_NAME
);
ENTITY_SHADER.entitiesBlock = shaderGetBlock(
&ENTITY_SHADER.shader,
ENTITIES_BLOCK_NAME
);
// Uniforms
// Bind
shaderBufferBindToBlock(&TRANSFORMS_BUFFER, ENTITY_SHADER.transformsBlock);
shaderBufferBindToBlock(&ENTITIES_BUFFER, ENTITY_SHADER.entitiesBlock);
}
void entityShaderUse() {
shaderUse(&ENTITY_SHADER.shader);
}
void entityShaderDispose() {
shaderDispose(&ENTITY_SHADER.shader);
}