/**
 * Copyright (c) 2021 Dominic Masters
 * 
 * This software is released under the MIT License.
 * https://opensource.org/licenses/MIT
 */

#pragma once
#include "../libs.h"
#include "../util/dynarray.h"
#include "../game/game.h"
#include "framebuffer.h"
#include "shader.h"

typedef struct _renderpass_t renderpass_t;
typedef struct _renderlist_t renderlist_t;

typedef void renderitem_t(
  renderlist_t *list, renderpass_t *pass, game_t *game, int32_t i
);

typedef struct _renderpass_t {
  framebuffer_t framebuffer;
  shader_t *shader;
} renderpass_t;

typedef struct _renderlist_t {
  int32_t width;
  int32_t height;
  dynarray_t passes;
} renderlist_t;