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

View file

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