2025-07-05 11:33:43 +03:30
|
|
|
#include <glad/gl.h>
|
2025-07-11 14:05:59 +03:30
|
|
|
#include <renderer/gl/render_command.hpp>
|
2022-03-08 21:19:19 +03:30
|
|
|
#ifndef DONT_FUCKING_ORDER_THESSE_PLEASE_FOR_THE_LOVE_OF_GOD_CLANG_FORMAT
|
|
|
|
#include <GLFW/glfw3.h>
|
|
|
|
#endif
|
2021-05-26 18:39:40 +04:30
|
|
|
|
2025-07-11 00:05:48 +03:30
|
|
|
namespace lt {
|
2021-05-26 18:39:40 +04:30
|
|
|
|
2025-07-05 14:23:01 +03:30
|
|
|
glRenderCommand::glRenderCommand(GLFWwindow *windowHandle): m_window_handle(windowHandle)
|
2022-03-08 21:19:19 +03:30
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2025-07-05 15:36:53 +03:30
|
|
|
void glRenderCommand::swap_buffers()
|
2022-03-08 21:19:19 +03:30
|
|
|
{
|
2025-07-05 14:23:01 +03:30
|
|
|
glfwSwapBuffers(m_window_handle);
|
2022-03-08 21:19:19 +03:30
|
|
|
}
|
|
|
|
|
2025-07-17 10:44:00 +03:30
|
|
|
void glRenderCommand::clear_back_buffer(const math::vec4 &clearColor)
|
2022-03-08 21:19:19 +03:30
|
|
|
{
|
|
|
|
glClearColor(clearColor.r, clearColor.g, clearColor.b, clearColor.a);
|
|
|
|
glClear(GL_COLOR_BUFFER_BIT);
|
|
|
|
}
|
|
|
|
|
2025-07-05 15:36:53 +03:30
|
|
|
void glRenderCommand::draw(unsigned int count)
|
2022-03-08 21:19:19 +03:30
|
|
|
{
|
|
|
|
glDrawArrays(GL_TRIANGLES, 0, count);
|
|
|
|
}
|
|
|
|
|
2025-07-05 15:36:53 +03:30
|
|
|
void glRenderCommand::draw_indexed(unsigned int count)
|
2022-03-08 21:19:19 +03:30
|
|
|
{
|
|
|
|
glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_INT, nullptr);
|
|
|
|
}
|
|
|
|
|
2025-07-05 15:36:53 +03:30
|
|
|
void glRenderCommand::default_target_framebuffer()
|
2022-03-08 21:19:19 +03:30
|
|
|
{
|
2025-07-16 11:31:58 +03:30
|
|
|
glBindFramebuffer(GL_FRAMEBUFFER, {});
|
2022-03-08 21:19:19 +03:30
|
|
|
}
|
|
|
|
|
2025-07-05 15:36:53 +03:30
|
|
|
void glRenderCommand::set_viewport(
|
2025-07-05 13:28:41 +03:30
|
|
|
unsigned int x,
|
|
|
|
unsigned int y,
|
|
|
|
unsigned int width,
|
|
|
|
unsigned int height
|
|
|
|
)
|
2022-03-08 21:19:19 +03:30
|
|
|
{
|
|
|
|
glViewport(x, y, width, height);
|
|
|
|
}
|
|
|
|
|
2025-07-11 00:05:48 +03:30
|
|
|
} // namespace lt
|