refactor: move renderer gl/dx files to private section
	
		
			
	
		
	
	
		
	
		
			Some checks reported errors
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build was killed
				
			
		
		
	
	
				
					
				
			
		
			Some checks reported errors
		
		
	
	continuous-integration/drone/push Build was killed
				
			This commit is contained in:
		
							parent
							
								
									65f0d3bb73
								
							
						
					
					
						commit
						d83e269432
					
				
					 26 changed files with 67 additions and 56 deletions
				
			
		|  | @ -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
 | ||||||
|  |  | ||||||
|  | @ -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; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue