refactor: move renderer gl/dx files to private section
Some checks reported errors
continuous-integration/drone/push Build was killed

This commit is contained in:
light7734 2025-07-23 10:11:55 +03:30
parent 65f0d3bb73
commit d83e269432
Signed by: light7734
GPG key ID: 8C30176798F1A6BA
26 changed files with 67 additions and 56 deletions

View file

@ -4,12 +4,13 @@
#include <renderer/blender.hpp>
#include <renderer/buffers.hpp>
#include <renderer/framebuffer.hpp>
#include <renderer/programs/quad.hpp>
#include <renderer/programs/texture.hpp>
#include <renderer/programs/tinted_texture.hpp>
#include <renderer/render_command.hpp>
#include <renderer/renderer.hpp>
#include <renderer/shader.hpp>
#include <renderer/texture.hpp>
#include <span>
#include <utility>
namespace lt {
@ -21,20 +22,26 @@ Renderer::Renderer(
CreateInfo create_info
)
: m_quad_renderer(
create_scope<QuadRendererProgram>(
LT_MAX_QUAD_RENDERER_VERTICES,
shared_context,
std::move(create_info.quad_renderer_shader)
)
)
, m_texture_renderer(
create_scope<TextureRendererProgram>(
LT_MAX_TEXTURE_RENDERER_VERTICES,
shared_context,
std::move(create_info.texture_renderer_shader)
)
)
, m_tinted_texture_renderer(
create_scope<TintedTextureRendererProgram>(
LT_MAX_TINTED_TEXTURE_RENDERER_VERTICES,
shared_context,
std::move(create_info.tinted_texture_renderer_shader)
)
)
, m_view_projection_buffer(nullptr)
, m_render_command(nullptr)
, m_blender(nullptr)
@ -55,6 +62,10 @@ Renderer::Renderer(
m_blender->enable(BlendFactor::SRC_ALPHA, BlendFactor::INVERSE_SRC_ALPHA);
}
Renderer::~Renderer() // NOLINT
{
}
auto Renderer::create(
GLFWwindow *windowHandle,
Ref<SharedContext> sharedContext,
@ -114,7 +125,7 @@ void Renderer::draw_quad_impl(
//==================== DRAW_QUAD_TINT ====================//
void Renderer::draw_quad_impl(const math::mat4 &transform, const math::vec4 &tint)
{
auto map = std::span<QuadRendererProgram::QuadVertexData> { m_quad_renderer.get_map_current(),
auto map = std::span<QuadRendererProgram::QuadVertexData> { m_quad_renderer->get_map_current(),
4 };
// top left
@ -134,7 +145,7 @@ void Renderer::draw_quad_impl(const math::mat4 &transform, const math::vec4 &tin
map[3].tint = tint;
// advance
if (!m_quad_renderer.advance())
if (!m_quad_renderer->advance())
{
log_wrn("Exceeded LT_MAX_QUAD_RENDERER_VERTICES: {}", LT_MAX_QUAD_RENDERER_VERTICES);
flush_scene();
@ -147,7 +158,7 @@ void Renderer::draw_quad_impl(const math::mat4 &transform, const Ref<Texture> &t
texture->bind();
auto map = std::span<TextureRendererProgram::TextureVertexData> {
m_texture_renderer.get_map_current(),
m_texture_renderer->get_map_current(),
4
};
@ -168,7 +179,7 @@ void Renderer::draw_quad_impl(const math::mat4 &transform, const Ref<Texture> &t
map[3].texcoord = { 0.0f, 1.0f };
// advance
if (!m_texture_renderer.advance())
if (!m_texture_renderer->advance())
{
log_wrn("Exceeded LT_MAX_TEXTURE_RENDERER_VERTICES: {}", LT_MAX_TEXTURE_RENDERER_VERTICES);
flush_scene();
@ -185,7 +196,7 @@ void Renderer::draw_quad_impl(
texture->bind();
auto map = std::span<TintedTextureRendererProgram::TintedTextureVertexData> {
m_tinted_texture_renderer.get_map_current(),
m_tinted_texture_renderer->get_map_current(),
4
};
@ -209,7 +220,7 @@ void Renderer::draw_quad_impl(
map[3].tint = tint;
map[3].texcoord = { 0.0f, 1.0f };
if (!m_tinted_texture_renderer.advance())
if (!m_tinted_texture_renderer->advance())
{
log_wrn("Exceeded LT_MAX_TEXTURE_RENDERER_VERTICES: {}", LT_MAX_TEXTURE_RENDERER_VERTICES);
flush_scene();
@ -256,66 +267,66 @@ void Renderer::begin_scene_impl(
m_view_projection_buffer->un_map();
// map renderers
m_quad_renderer.map();
m_texture_renderer.map();
m_tinted_texture_renderer.map();
m_quad_renderer->map();
m_texture_renderer->map();
m_tinted_texture_renderer->map();
}
void Renderer::flush_scene()
{
/* tinted texture renderer */
m_tinted_texture_renderer.un_map();
if (m_tinted_texture_renderer.get_quad_count())
m_tinted_texture_renderer->un_map();
if (m_tinted_texture_renderer->get_quad_count())
{
m_tinted_texture_renderer.bind();
m_render_command->draw_indexed(m_tinted_texture_renderer.get_quad_count() * 6u);
m_tinted_texture_renderer->bind();
m_render_command->draw_indexed(m_tinted_texture_renderer->get_quad_count() * 6u);
}
/* quad renderer */
m_quad_renderer.un_map();
if (m_quad_renderer.get_quad_count())
m_quad_renderer->un_map();
if (m_quad_renderer->get_quad_count())
{
m_quad_renderer.bind();
m_render_command->draw_indexed(m_quad_renderer.get_quad_count() * 6u);
m_quad_renderer->bind();
m_render_command->draw_indexed(m_quad_renderer->get_quad_count() * 6u);
}
/* texture renderer */
m_texture_renderer.un_map();
if (m_texture_renderer.get_quad_count())
m_texture_renderer->un_map();
if (m_texture_renderer->get_quad_count())
{
m_texture_renderer.bind();
m_render_command->draw_indexed(m_texture_renderer.get_quad_count() * 6u);
m_texture_renderer->bind();
m_render_command->draw_indexed(m_texture_renderer->get_quad_count() * 6u);
}
m_quad_renderer.map();
m_texture_renderer.map();
m_tinted_texture_renderer.map();
m_quad_renderer->map();
m_texture_renderer->map();
m_tinted_texture_renderer->map();
}
void Renderer::end_scene_impl()
{
/* tinted texture renderer */
m_tinted_texture_renderer.un_map();
if (m_tinted_texture_renderer.get_quad_count())
m_tinted_texture_renderer->un_map();
if (m_tinted_texture_renderer->get_quad_count())
{
m_tinted_texture_renderer.bind();
m_render_command->draw_indexed(m_tinted_texture_renderer.get_quad_count() * 6u);
m_tinted_texture_renderer->bind();
m_render_command->draw_indexed(m_tinted_texture_renderer->get_quad_count() * 6u);
}
/* quad renderer */
m_quad_renderer.un_map();
if (m_quad_renderer.get_quad_count())
m_quad_renderer->un_map();
if (m_quad_renderer->get_quad_count())
{
m_quad_renderer.bind();
m_render_command->draw_indexed(m_quad_renderer.get_quad_count() * 6u);
m_quad_renderer->bind();
m_render_command->draw_indexed(m_quad_renderer->get_quad_count() * 6u);
}
/* texture renderer */
m_texture_renderer.un_map();
if (m_texture_renderer.get_quad_count())
m_texture_renderer->un_map();
if (m_texture_renderer->get_quad_count())
{
m_texture_renderer.bind();
m_render_command->draw_indexed(m_texture_renderer.get_quad_count() * 6u);
m_texture_renderer->bind();
m_render_command->draw_indexed(m_texture_renderer->get_quad_count() * 6u);
}
// reset frame buffer

View file

@ -1,6 +1,5 @@
#pragma once
//
#include <math/mat4.hpp>
#include <math/vec3.hpp>
#include <math/vec4.hpp>
@ -8,11 +7,6 @@
#include <renderer/buffers.hpp>
#include <renderer/render_command.hpp>
#include <renderer/renderer.hpp>
///
#include <renderer/programs/quad.hpp>
#include <renderer/programs/texture.hpp>
#include <renderer/programs/tinted_texture.hpp>
#include <utility>
#define LT_MAX_QUAD_RENDERER_VERTICES (1028u * 4u)
@ -32,6 +26,10 @@ class Camera;
class WindowResizedEvent;
class Shader;
class TintedTextureRendererProgram;
class QuadRendererProgram;
class TextureRendererProgram;
class Renderer
{
public:
@ -107,6 +105,8 @@ public:
s_context->end_scene_impl();
}
~Renderer();
void on_window_resize(const WindowResizedEvent &event);
void begin_frame();
@ -116,11 +116,11 @@ public:
private:
static Renderer *s_context;
QuadRendererProgram m_quad_renderer;
Scope<QuadRendererProgram> m_quad_renderer;
TextureRendererProgram m_texture_renderer;
Scope<TextureRendererProgram> m_texture_renderer;
TintedTextureRendererProgram m_tinted_texture_renderer;
Scope<TintedTextureRendererProgram> m_tinted_texture_renderer;
Scope<ConstantBuffer> m_view_projection_buffer;