Split screen working

This commit is contained in:
2014-05-19 17:20:43 +02:00
parent e07a0a2b1a
commit bd7ba73bca
7 changed files with 184 additions and 115 deletions
+9 -3
View File
@@ -35,7 +35,11 @@ public:
void Draw(double dt);
void DrawText();
void CreateViewport(int identifier, float left, float top, float right, float bottom);
void RegisterViewport(int identifier, float left, float top, float right, float bottom);
void RegisterCamera(int identifier, float FOV, float nearClip, float farClip);
void UpdateViewport(int viewportIdentifier, int cameraIdentifier);
void UpdateCamera(int cameraIdentifier, glm::vec3 position, glm::quat orientation, float FOV, float nearClip, float farClip);
void AddModelToDraw(Model* model, glm::vec3 position, glm::quat orientation, glm::vec3 scale, bool visible, bool shadowCaster);
void AddTextureToDraw(Texture* texture, glm::vec3 position, glm::quat orientation, glm::vec3 scale);
void AddTextToDraw();
@@ -74,9 +78,11 @@ private:
float Top;
float Right;
float Bottom;
std::shared_ptr<Camera> Camera;
};
std::unordered_map<int, Viewport> m_Viewports;
std::unordered_map<int, std::shared_ptr<Camera>> m_Cameras;
struct Light
{
@@ -152,8 +158,8 @@ private:
void CreateShadowMap(int resolution);
void FrameBufferTextures();
void DrawFBO();
void DrawFBOScene();
void DrawLightScene();
void DrawFBOScene(Viewport &viewport);
void DrawLightScene(Viewport &viewport);
void BindFragDataLocation();
glm::mat4 CreateLightMatrix(Light &_light);
void UpdateSunProjection();