Files
axyz/include/Engine/Rendering/Renderer.h
T
viktorljung a82c7c1e3b Merge branch 'Rendering' of github.com:teamfisk/TacticalZ into Rendering
# Conflicts:
#	include/Engine/Rendering/Renderer.h
#	src/Engine/Rendering/Renderer.cpp
2015-12-03 19:06:24 +01:00

65 lines
1.7 KiB
C++

#ifndef Renderer_h__
#define Renderer_h__
#include <sstream>
#include "IRenderer.h"
#include "ShaderProgram.h"
//TODO: Temp resourceManager
#include "../Core/ResourceManager.h"
#include "Util/UnorderedMapVec2.h"
#include "Util/FrameBuffer.h"
class Renderer : public IRenderer
{
public:
virtual void Initialize() override;
virtual void Update(double dt) override;
virtual void Draw(RenderQueueCollection& rq) override;
private:
//----------------------Variables----------------------//
RenderQueueCollection m_TempRQ;
Texture* m_ErrorTexture;
Texture* m_WhiteTexture;
float m_CameraMoveSpeed;
FrameBuffer m_PickingBuffer;
GLuint m_PickingTexture;
GLuint m_DepthBuffer;
Model* m_ScreenQuad;
Model* m_UnitQuad;
Model* m_UnitSphere;
//Temporary
Model* m;
Model* m2;
Model* m3;
Model* MapModel;
std::unordered_map<glm::vec2, const Model*> m_PickingColorsToModels;
//----------------------Functions----------------------//
void InitializeWindow();
void InitializeShaders();
void InitializeTextures();
void InitializeFrameBuffers();
//TODO: Renderer: Remove ModelsToDraw from Renderer.
void ModelsToDraw();
//TODO: Renderer: Get EnqueueModel and InputUpdate out of renderer
void EnqueueModel(Model* model);
void InputUpdate(double dt);
void PickingPass();
void DrawScreenQuad(GLuint textureToDraw);
void DrawScene(RenderQueueCollection& rq);
void GenerateTexture(GLuint* texture, GLenum wrapping, GLenum filtering, glm::vec2 dimensions, GLint internalFormat, GLint format, GLenum type);
//--------------------ShaderPrograms-------------------//
ShaderProgram m_BasicForwardProgram;
ShaderProgram m_PickingProgram;
ShaderProgram m_DrawScreenQuadProgram;
};
#endif