- Added CameraComponent - Added SceneCamera - Renamed the previous Camera to OrthographicCamera - Added Camera - Renderer now takes a Camera* for projection and mat4& for view - Scene::OnRender now takes in an optional Framebuffer to render to - Minor tidying
58 lines
No EOL
1.1 KiB
C++
58 lines
No EOL
1.1 KiB
C++
#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 TextureRendererProgram : RendererProgram
|
|
{
|
|
public:
|
|
struct TextureVertexData
|
|
{
|
|
glm::vec4 position;
|
|
glm::vec2 texcoord;
|
|
};
|
|
|
|
private:
|
|
Ref<Shader> m_Shader;
|
|
Ref<VertexBuffer> m_VertexBuffer;
|
|
Ref<IndexBuffer> m_IndexBuffer;
|
|
Ref<VertexLayout> m_VertexLayout;
|
|
|
|
TextureVertexData* m_MapCurrent = nullptr;
|
|
TextureVertexData* m_MapEnd = nullptr;
|
|
|
|
unsigned int m_QuadCount;
|
|
unsigned int m_MaxVertices;
|
|
|
|
public:
|
|
TextureRendererProgram(unsigned int maxVertices, Ref<SharedContext> sharedContext);
|
|
|
|
bool Advance();
|
|
|
|
void Map() override;
|
|
void UnMap() override;
|
|
|
|
void Bind() override;
|
|
|
|
inline TextureVertexData* GetMapCurrent() { return m_MapCurrent; }
|
|
|
|
inline unsigned int GetQuadCount() const { return m_QuadCount; }
|
|
|
|
inline constexpr unsigned int GetVertexSize() const { return sizeof(TextureVertexData); }
|
|
};
|
|
|
|
} |