Cleaned some code, drastically reduced memory footprint.

This commit is contained in:
2021-09-05 15:02:02 -07:00
parent cb447a6033
commit 2285568480
19 changed files with 263 additions and 108 deletions

View File

@ -26,7 +26,7 @@ void primitiveInit(primitive_t *primitive,
primitive->indexBuffer = buffer[1];
free(buffer);
//Buffer an empty set of data then buffer each component
// Buffer an empty set of data then buffer each component
glBindBuffer(GL_ARRAY_BUFFER, primitive->vertexBuffer);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, primitive->indexBuffer);
glBufferData(GL_ARRAY_BUFFER, sizePositions+sizeCoordinates, 0, GL_DYNAMIC_DRAW);

43
src/display/renderlist.c Normal file
View File

@ -0,0 +1,43 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "renderlist.h"
void renderListInit(renderlist_t *list, int32_t passes, int32_t width, int32_t height) {
int32_t i;
renderpass_t *pass;
list->width = width;
list->height = height;
dynArrayInit(&list->passes, sizeof(renderpass_t), passes);
for(i = 0; i < passes; i++) {
pass = (renderpass_t *)dynArrayGet(&list->passes, i);
frameBufferInit(&pass->framebuffer, width, height);
}
}
void renderListRenderPass(renderlist_t *list, game_t *game, int32_t pass, dynarray_t *items, int32_t itemCount) {
int32_t i;
renderpass_t *renderPass;
renderitem_t *item;
renderPass = (renderpass_t *)dynArrayGet(&list->passes, pass);
// Bind the shader.
frameBufferUse(&renderPass->framebuffer, true);
shaderUse(renderPass->shader);
// "Uniforms"
// Render list
for(i = 0; i < itemCount; i++) {
item = (renderitem_t *)dynArrayGet(items, i);
item(list, renderPass, game, i);
}
}

16
src/display/renderlist.h Normal file
View File

@ -0,0 +1,16 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include <dawn/dawn.h>
#include "framebuffer.h"
#include "primitive.h"
#include "shader.h"
#include "primitives/quad.h"
#include "../util/dynarray.h"
void renderListInit(renderlist_t *renderList, int32_t passes);