52 lines
1.1 KiB
C
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);
|
|
} |