6#include <brenta/renderer.hpp>
7#include <brenta/window.hpp>
8#include <brenta/translation.hpp>
10using namespace brenta;
16std::vector<renderer::item> renderer::render_queue = {};
17glm::mat4 renderer::view;
18glm::mat4 renderer::projection;
19glm::vec3 renderer::cam_position;
25void renderer::begin_frame(
const camera& cam)
27 renderer::render_queue.clear();
28 renderer::projection =
29 cam.get_projection_matrix(window::get_width(),
30 window::get_height());
31 renderer::view = cam.get_view_matrix();
32 renderer::cam_position = cam.get_position();
37 renderer::render_queue.push_back(it);
40void renderer::end_frame()
47 for (
auto i :
renderer::render_queue)
59 i.m->draw(i.material);
69 this->transform = glm::translate(this->transform, translation);
76 this->transform = glm::rotate(this->transform, glm::radians(rotation.x),
77 glm::vec3(1.0f, 0.0f, 0.0f));
78 this->transform = glm::rotate(this->transform, glm::radians(rotation.y),
79 glm::vec3(0.0f, 1.0f, 0.0f));
80 this->transform = glm::rotate(this->transform, glm::radians(rotation.z),
81 glm::vec3(0.0f, 0.0f, 1.0f));
87 this->transform = glm::scale(this->transform, glm::vec3(scale));
static bool set_float(shader::name_t shader_name, const GLchar *name, float value)
Set a float in the shader.
static bool set_vec3(shader::name_t shader_name, const GLchar *name, float x, float y, float z)
Set a 3D vector in the shader.
void set_projection(glm::mat4 projection)
Set the projection matrix.
void set_model(glm::mat4 model)
Set the model matrix.
void set_view(glm::mat4 view)
Set the view matrix.
bool set_shader(shader::name_t shader_name)
Set the shader.