#ifndef _PIUMA_RENDER_STATE_H_
#define _PIUMA_RENDER_STATE_H_

#include "shader.h"
#include "primitives.h"

struct r_state
{
	// Shaders
	r_shader shader_2d;
	r_shader shader_postprocessing;
	r_shader shader_pbr;
	r_shader shader_shadow_map;
	r_shader shader_environment_map;

	// Screen size
	u32 width, height;

	// Time
	f64 time;

	// Framebuffers
	r_framebuffer *current_framebuffer;

	r_framebuffer framebuffer_SCREEN;
	r_framebuffer framebuffer_HUD;
	r_framebuffer framebuffer_3D;

	// Quads
	u32 gl_screen_quad_VAO;
	u32 gl_screen_quad_VBO;

	// Parameters
	s32 max_texture_size;
};

extern r_state r_render_state;

#endif
