/** * 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); } }