TintedTextureRendererProgram
- I want to die, please just kill me and end my fucking suffering....
This commit is contained in:
		
							parent
							
								
									f46cf23550
								
							
						
					
					
						commit
						367bce3596
					
				
					 10 changed files with 257 additions and 4 deletions
				
			
		
							
								
								
									
										13
									
								
								Engine/res/Shaders/TintedTexture/TintedTexture_PS.glsl
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								Engine/res/Shaders/TintedTexture/TintedTexture_PS.glsl
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,13 @@
 | 
			
		|||
#version 440 core
 | 
			
		||||
 | 
			
		||||
in vec4 vso_Tint;
 | 
			
		||||
in vec2 vso_TexCoord;
 | 
			
		||||
 | 
			
		||||
uniform sampler2D u_Texture;
 | 
			
		||||
 | 
			
		||||
out vec4 fso_FragmentColor;
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
	fso_FragmentColor = texture(u_Texture, vso_TexCoord) * vso_Tint;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								Engine/res/Shaders/TintedTexture/TintedTexture_PS.hlsl
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								Engine/res/Shaders/TintedTexture/TintedTexture_PS.hlsl
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
sampler samplerState : register(s0);
 | 
			
		||||
Texture2D<float4> myTexture : register(t0);
 | 
			
		||||
 | 
			
		||||
float4 main(float2 InTexChoord : TEXCOORD, float4 InTint : TINT) : SV_Target
 | 
			
		||||
{
 | 
			
		||||
	return myTexture.Sample(samplerState, InTexChoord) * InTint;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								Engine/res/Shaders/TintedTexture/TintedTexture_VS.glsl
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								Engine/res/Shaders/TintedTexture/TintedTexture_VS.glsl
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
#version 440 core
 | 
			
		||||
 | 
			
		||||
layout(location = 0) in vec4 a_Position;
 | 
			
		||||
layout(location = 1) in vec4 a_Tint;
 | 
			
		||||
layout(location = 2) in vec2 a_TexCoord;
 | 
			
		||||
 | 
			
		||||
layout(std140, binding = 0) uniform ub_ViewProjection
 | 
			
		||||
{
 | 
			
		||||
	mat4 u_ViewProjection;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
out vec4 vso_Tint;
 | 
			
		||||
out vec2 vso_TexCoord;
 | 
			
		||||
 | 
			
		||||
void main()
 | 
			
		||||
{
 | 
			
		||||
	gl_Position = u_ViewProjection * a_Position;
 | 
			
		||||
 | 
			
		||||
	vso_Tint = a_Tint;
 | 
			
		||||
	vso_TexCoord = a_TexCoord;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								Engine/res/Shaders/TintedTexture/TintedTexture_VS.hlsl
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								Engine/res/Shaders/TintedTexture/TintedTexture_VS.hlsl
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
struct VertexOut
 | 
			
		||||
{
 | 
			
		||||
	float2 TexChoord : TEXCOORD;
 | 
			
		||||
	float4 Tint : TINT;
 | 
			
		||||
	float4 Position : SV_Position;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
cbuffer cb_ViewProjection : register(b0)
 | 
			
		||||
{
 | 
			
		||||
	row_major matrix  viewProjection;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
VertexOut main(float4 InPosition : POSITION, float4 InTint : TINT,float2 InTexChoord : TEXCOORD)
 | 
			
		||||
{
 | 
			
		||||
	VertexOut vso;
 | 
			
		||||
	vso.Position = mul(float4(InPosition), viewProjection);
 | 
			
		||||
	vso.Tint = InTint;
 | 
			
		||||
	vso.TexChoord = InTexChoord;
 | 
			
		||||
 | 
			
		||||
	return vso;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -22,6 +22,7 @@ namespace Light {
 | 
			
		|||
	Renderer::Renderer(GLFWwindow* windowHandle, Ref<SharedContext> sharedContext)
 | 
			
		||||
		: m_QuadRenderer(LT_MAX_QUAD_RENDERER_VERTICES, sharedContext),
 | 
			
		||||
		  m_TextureRenderer(LT_MAX_TEXTURE_RENDERER_VERTICES, sharedContext),
 | 
			
		||||
		  m_TintedTextureRenderer(LT_MAX_TEXTURE_RENDERER_VERTICES, sharedContext),
 | 
			
		||||
		  m_ViewProjectionBuffer(nullptr),
 | 
			
		||||
		  m_RenderCommand(nullptr),
 | 
			
		||||
		  m_Blender(nullptr),
 | 
			
		||||
| 
						 | 
				
			
			@ -49,6 +50,13 @@ namespace Light {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	//======================================== DRAW_QUAD ========================================//
 | 
			
		||||
	/* tinted textures */
 | 
			
		||||
	void Renderer::DrawQuadImpl(const glm::vec3& position, const glm::vec2& size, const glm::vec4& tint, Ref<Texture> texture)
 | 
			
		||||
	{
 | 
			
		||||
		DrawQuad(glm::translate(glm::mat4(1.0f), position) * glm::scale(glm::mat4(1.0f), { size.x, size.y, 1.0f }),
 | 
			
		||||
		         tint, texture);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* tint */
 | 
			
		||||
	void Renderer::DrawQuadImpl(const glm::vec3& position, const glm::vec2& size, const glm::vec4& tint)
 | 
			
		||||
	{
 | 
			
		||||
| 
						 | 
				
			
			@ -128,6 +136,42 @@ namespace Light {
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void Renderer::DrawQuadImpl(const glm::mat4& transform, const glm::vec4& tint, Ref<Texture> texture)
 | 
			
		||||
	{
 | 
			
		||||
		// #todo: implement a proper binding
 | 
			
		||||
		texture->Bind();
 | 
			
		||||
 | 
			
		||||
		// locals
 | 
			
		||||
		TintedTextureRendererProgram::TintedTextureVertexData* bufferMap = m_TintedTextureRenderer.GetMapCurrent();
 | 
			
		||||
 | 
			
		||||
		// top left
 | 
			
		||||
		bufferMap[0].position = transform * glm::vec4(-0.5f, -0.5f, 0.0f, 1.0f);
 | 
			
		||||
		bufferMap[0].tint = tint;
 | 
			
		||||
		bufferMap[0].texcoord = { 0.0f, 0.0f };
 | 
			
		||||
 | 
			
		||||
		// top right
 | 
			
		||||
		bufferMap[1].position = transform * glm::vec4(0.5f, -0.5f, 0.0f, 1.0f);
 | 
			
		||||
		bufferMap[1].tint = tint;
 | 
			
		||||
		bufferMap[1].texcoord = { 1.0f, 0.0f };
 | 
			
		||||
 | 
			
		||||
		// bottom right
 | 
			
		||||
		bufferMap[2].position = transform * glm::vec4(0.5f, 0.5f, 0.0f, 1.0f);
 | 
			
		||||
		bufferMap[2].tint = tint;
 | 
			
		||||
		bufferMap[2].texcoord = { 1.0f, 1.0f };
 | 
			
		||||
 | 
			
		||||
		// bottom left
 | 
			
		||||
		bufferMap[3].position = transform * glm::vec4(-0.5f, 0.5f, 0.0f, 1.0f);
 | 
			
		||||
		bufferMap[3].tint = tint;
 | 
			
		||||
		bufferMap[3].texcoord = { 0.0f, 1.0f };
 | 
			
		||||
 | 
			
		||||
		// advance
 | 
			
		||||
		if (!m_TintedTextureRenderer.Advance())
 | 
			
		||||
		{
 | 
			
		||||
			LT_ENGINE_WARN("Renderer::DrawQuadImpl: exceeded LT_MAX_TEXTURE_RENDERER_VERTICES: {}", LT_MAX_TEXTURE_RENDERER_VERTICES);
 | 
			
		||||
			FlushScene();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//==================== DRAW_QUAD_TEXTURE ====================//
 | 
			
		||||
 | 
			
		||||
	void Renderer::BeginFrame()
 | 
			
		||||
| 
						 | 
				
			
			@ -163,6 +207,7 @@ namespace Light {
 | 
			
		|||
		// map renderers
 | 
			
		||||
		m_QuadRenderer.Map();
 | 
			
		||||
		m_TextureRenderer.Map();
 | 
			
		||||
		m_TintedTextureRenderer.Map();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void Renderer::FlushScene()
 | 
			
		||||
| 
						 | 
				
			
			@ -171,6 +216,7 @@ namespace Light {
 | 
			
		|||
 | 
			
		||||
		m_QuadRenderer.Map();
 | 
			
		||||
		m_TextureRenderer.Map();
 | 
			
		||||
		m_TintedTextureRenderer.Map();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void Renderer::EndSceneImpl()
 | 
			
		||||
| 
						 | 
				
			
			@ -178,6 +224,15 @@ namespace Light {
 | 
			
		|||
		// enable blending
 | 
			
		||||
		m_Blender->Enable(BlendFactor::SRC_ALPHA, BlendFactor::INVERSE_SRC_ALPHA);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		/* tinted texture renderer */
 | 
			
		||||
		m_TintedTextureRenderer.UnMap();
 | 
			
		||||
		if (m_TintedTextureRenderer.GetQuadCount())
 | 
			
		||||
		{
 | 
			
		||||
			m_TintedTextureRenderer.Bind();
 | 
			
		||||
			m_RenderCommand->DrawIndexed(m_TintedTextureRenderer.GetQuadCount() * 6u);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		/* quad renderer */
 | 
			
		||||
		m_QuadRenderer.UnMap();
 | 
			
		||||
		if (m_QuadRenderer.GetQuadCount())
 | 
			
		||||
| 
						 | 
				
			
			@ -186,7 +241,7 @@ namespace Light {
 | 
			
		|||
			m_RenderCommand->DrawIndexed(m_QuadRenderer.GetQuadCount() * 6u);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		/* text renderer */
 | 
			
		||||
		/* texture renderer */
 | 
			
		||||
		m_TextureRenderer.UnMap();
 | 
			
		||||
		if (m_TextureRenderer.GetQuadCount())
 | 
			
		||||
		{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,7 @@
 | 
			
		|||
 | 
			
		||||
#include "RendererPrograms/QuadRendererProgram.h"
 | 
			
		||||
#include "RendererPrograms/TextureRendererProgram.h"
 | 
			
		||||
#include "RendererPrograms/TintedTextureRendererProgram.h"
 | 
			
		||||
 | 
			
		||||
#define LT_MAX_QUAD_RENDERER_VERTICES    1028u * 4u
 | 
			
		||||
#define LT_MAX_TEXTURE_RENDERER_VERTICES 1028u * 4u
 | 
			
		||||
| 
						 | 
				
			
			@ -32,6 +33,7 @@ namespace Light {
 | 
			
		|||
		// renderer programs
 | 
			
		||||
		QuadRendererProgram m_QuadRenderer;
 | 
			
		||||
		TextureRendererProgram m_TextureRenderer;
 | 
			
		||||
		TintedTextureRendererProgram m_TintedTextureRenderer;
 | 
			
		||||
 | 
			
		||||
		// constant buffers
 | 
			
		||||
		Scope<ConstantBuffer> m_ViewProjectionBuffer;
 | 
			
		||||
| 
						 | 
				
			
			@ -47,9 +49,11 @@ namespace Light {
 | 
			
		|||
	public:
 | 
			
		||||
		static Scope<Renderer> Create(GLFWwindow* windowHandle, Ref<SharedContext> sharedContext);
 | 
			
		||||
		
 | 
			
		||||
		static inline void DrawQuad(const glm::vec3& position, const glm::vec2& size, const glm::vec4& tint, Ref<Texture> texture) { s_Context->DrawQuadImpl(position, size, tint, texture); }
 | 
			
		||||
		static inline void DrawQuad(const glm::vec3& position, const glm::vec2& size, const glm::vec4& tint) { s_Context->DrawQuadImpl(position, size, tint); }
 | 
			
		||||
		static inline void DrawQuad(const glm::vec3& position, const glm::vec2& size, Ref<Texture> texture) { s_Context->DrawQuadImpl(position, size, texture); }
 | 
			
		||||
 | 
			
		||||
		static void DrawQuad(const glm::mat4& transform, const glm::vec4& tint, Ref<Texture> texture) { s_Context->DrawQuadImpl(transform, tint, texture); }
 | 
			
		||||
		static void DrawQuad(const glm::mat4& transform, const glm::vec4& tint) { s_Context->DrawQuadImpl(transform, tint); }
 | 
			
		||||
		static void DrawQuad(const glm::mat4& transform, Ref<Texture> texture) { s_Context->DrawQuadImpl(transform, texture); }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -64,9 +68,12 @@ namespace Light {
 | 
			
		|||
	private:
 | 
			
		||||
		Renderer(GLFWwindow* windowHandle, Ref<SharedContext> sharedContext);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		void DrawQuadImpl(const glm::vec3& position, const glm::vec2& size, const glm::vec4& tint, Ref<Texture> texture);
 | 
			
		||||
		void DrawQuadImpl(const glm::vec3& position, const glm::vec2& size, const glm::vec4& tint);
 | 
			
		||||
		void DrawQuadImpl(const glm::vec3& position, const glm::vec2& size, Ref<Texture> texture);
 | 
			
		||||
 | 
			
		||||
		void DrawQuadImpl(const glm::mat4& transform, const glm::vec4& tint, Ref<Texture> texture);
 | 
			
		||||
		void DrawQuadImpl(const glm::mat4& transform, const glm::vec4& tint);
 | 
			
		||||
		void DrawQuadImpl(const glm::mat4& transform, Ref<Texture> texture);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,68 @@
 | 
			
		|||
#include "ltpch.h"
 | 
			
		||||
#include "TintedTextureRendererProgram.h"
 | 
			
		||||
 | 
			
		||||
#include "Camera/Camera.h"
 | 
			
		||||
 | 
			
		||||
#include "Graphics/Shader.h"
 | 
			
		||||
#include "Graphics/Buffers.h"
 | 
			
		||||
#include "Graphics/VertexLayout.h"
 | 
			
		||||
 | 
			
		||||
#include "Utility/ResourceManager.h"
 | 
			
		||||
 | 
			
		||||
namespace Light {
 | 
			
		||||
 | 
			
		||||
	TintedTextureRendererProgram::TintedTextureRendererProgram(unsigned int maxVertices, Ref<SharedContext> sharedContext)
 | 
			
		||||
		: m_Shader(nullptr),
 | 
			
		||||
		  m_IndexBuffer(nullptr),
 | 
			
		||||
		  m_VertexLayout(nullptr),
 | 
			
		||||
		  m_MapCurrent(nullptr),
 | 
			
		||||
		  m_MapEnd(nullptr),
 | 
			
		||||
		  m_QuadCount(0u),
 | 
			
		||||
		  m_MaxVertices(maxVertices)
 | 
			
		||||
	{
 | 
			
		||||
		// #todo: don't use relative path
 | 
			
		||||
		ResourceManager::LoadShader("LT_ENGINE_RESOURCES_TINTED_TEXTURE_SHADER", "../Engine/res/Shaders/TintedTexture/TintedTexture_VS", "../Engine/res/Shaders/TintedTexture/TintedTexture_PS");
 | 
			
		||||
 | 
			
		||||
		m_Shader = ResourceManager::GetShader("LT_ENGINE_RESOURCES_TINTED_TEXTURE_SHADER");
 | 
			
		||||
		m_VertexBuffer = Ref<VertexBuffer>(VertexBuffer::Create(nullptr, sizeof(TintedTextureVertexData), maxVertices, sharedContext));
 | 
			
		||||
		m_IndexBuffer = Ref<IndexBuffer>(IndexBuffer::Create(nullptr, (maxVertices / 4) * 6, sharedContext));
 | 
			
		||||
		m_VertexLayout = Ref<VertexLayout>(VertexLayout::Create(m_VertexBuffer, m_Shader, { { "POSITION", VertexElementType::Float4 },
 | 
			
		||||
		                                                                                    { "TINT"    , VertexElementType::Float4 },
 | 
			
		||||
		                                                                                    { "TEXCOORD", VertexElementType::Float2 }}, sharedContext));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	bool TintedTextureRendererProgram::Advance()
 | 
			
		||||
	{
 | 
			
		||||
		if (m_MapCurrent + 4 >= m_MapEnd)
 | 
			
		||||
		{
 | 
			
		||||
			LT_ENGINE_WARN("TintedTextureRendererProgram::Advance: 'VertexBuffer' map went beyond 'MaxVertices': {}", m_MaxVertices);
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		m_MapCurrent += 4;
 | 
			
		||||
		m_QuadCount++;
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void TintedTextureRendererProgram::Map()
 | 
			
		||||
	{
 | 
			
		||||
		m_QuadCount = 0u;
 | 
			
		||||
 | 
			
		||||
		m_MapCurrent = (TintedTextureRendererProgram::TintedTextureVertexData*)m_VertexBuffer->Map();
 | 
			
		||||
		m_MapEnd = m_MapCurrent + m_MaxVertices;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void TintedTextureRendererProgram::UnMap()
 | 
			
		||||
	{
 | 
			
		||||
		m_VertexBuffer->UnMap();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void TintedTextureRendererProgram::Bind()
 | 
			
		||||
	{
 | 
			
		||||
		m_Shader->Bind();
 | 
			
		||||
		m_VertexLayout->Bind();
 | 
			
		||||
		m_VertexBuffer->Bind();
 | 
			
		||||
		m_IndexBuffer->Bind();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,59 @@
 | 
			
		|||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "RendererProgram.h"
 | 
			
		||||
 | 
			
		||||
#include "Base/Base.h"
 | 
			
		||||
 | 
			
		||||
#include <glm/glm.hpp>
 | 
			
		||||
 | 
			
		||||
namespace Light {
 | 
			
		||||
 | 
			
		||||
	class Shader;
 | 
			
		||||
	class VertexBuffer;
 | 
			
		||||
	class IndexBuffer;
 | 
			
		||||
	class VertexLayout;
 | 
			
		||||
 | 
			
		||||
	class OrthographicCamera;
 | 
			
		||||
 | 
			
		||||
	class SharedContext;
 | 
			
		||||
 | 
			
		||||
	class TintedTextureRendererProgram : RendererProgram
 | 
			
		||||
	{
 | 
			
		||||
	public:
 | 
			
		||||
		struct TintedTextureVertexData
 | 
			
		||||
		{
 | 
			
		||||
			glm::vec4 position;
 | 
			
		||||
			glm::vec4 tint;
 | 
			
		||||
			glm::vec2 texcoord;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
	private:
 | 
			
		||||
		Ref<Shader> m_Shader;
 | 
			
		||||
		Ref<VertexBuffer> m_VertexBuffer;
 | 
			
		||||
		Ref<IndexBuffer> m_IndexBuffer;
 | 
			
		||||
		Ref<VertexLayout> m_VertexLayout;
 | 
			
		||||
 | 
			
		||||
		TintedTextureVertexData* m_MapCurrent = nullptr;
 | 
			
		||||
		TintedTextureVertexData* m_MapEnd = nullptr;
 | 
			
		||||
 | 
			
		||||
		unsigned int m_QuadCount;
 | 
			
		||||
		unsigned int m_MaxVertices;
 | 
			
		||||
 | 
			
		||||
	public:
 | 
			
		||||
		TintedTextureRendererProgram(unsigned int maxVertices, Ref<SharedContext> sharedContext);
 | 
			
		||||
 | 
			
		||||
		bool Advance();
 | 
			
		||||
 | 
			
		||||
		void Map() override;
 | 
			
		||||
		void UnMap() override;
 | 
			
		||||
 | 
			
		||||
		void Bind() override;
 | 
			
		||||
 | 
			
		||||
		inline TintedTextureVertexData* GetMapCurrent() { return m_MapCurrent; }
 | 
			
		||||
 | 
			
		||||
		inline unsigned int GetQuadCount() const { return m_QuadCount; }
 | 
			
		||||
 | 
			
		||||
		inline constexpr unsigned int GetVertexSize() const { return sizeof(TintedTextureVertexData); }
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -9,12 +9,14 @@ namespace Light {
 | 
			
		|||
	struct SpriteRendererComponent
 | 
			
		||||
	{
 | 
			
		||||
		Ref<Texture> texture;
 | 
			
		||||
		glm::vec4 tint;
 | 
			
		||||
 | 
			
		||||
		SpriteRendererComponent() = default;
 | 
			
		||||
		SpriteRendererComponent(const SpriteRendererComponent&) = default;
 | 
			
		||||
 | 
			
		||||
		SpriteRendererComponent(Ref<Texture> _texture)
 | 
			
		||||
			: texture(_texture) 
 | 
			
		||||
		SpriteRendererComponent(Ref<Texture> _texture, const glm::vec4& _tint = glm::vec4(1.0f, 1.0f, 1.0f, 1.0f))
 | 
			
		||||
			: texture(_texture),
 | 
			
		||||
			  tint(_tint)
 | 
			
		||||
		{
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -75,7 +75,7 @@ namespace Light {
 | 
			
		|||
				m_Registry.group(entt::get<TransformComponent, SpriteRendererComponent>).
 | 
			
		||||
				each([](TransformComponent& transformComp, SpriteRendererComponent& spriteRendererComp)
 | 
			
		||||
				{
 | 
			
		||||
					Renderer::DrawQuad(transformComp.transform, spriteRendererComp.texture);
 | 
			
		||||
					Renderer::DrawQuad(transformComp.transform, spriteRendererComp.tint, spriteRendererComp.texture);
 | 
			
		||||
				});
 | 
			
		||||
 | 
			
		||||
				Renderer::EndScene();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue