From 539196cd45d133dfbf7ba097ef2cfd00eeefd8f3 Mon Sep 17 00:00:00 2001 From: sippeangelo Date: Mon, 19 May 2014 00:51:40 +0200 Subject: [PATCH] Viewport stuff --- src/Components/Camera.h | 3 ++- src/Components/Viewport.h | 26 +++++++++++++++++++ src/GameWorld.cpp | 15 +++++++++++ src/GameWorld.h | 1 + vs11/Returngeance/Returngeance.vcxproj | 1 + .../Returngeance/Returngeance.vcxproj.filters | 3 +++ 6 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 src/Components/Viewport.h diff --git a/src/Components/Camera.h b/src/Components/Camera.h index fb3f7ef..a672b85 100755 --- a/src/Components/Camera.h +++ b/src/Components/Camera.h @@ -2,6 +2,7 @@ #define Components_Camera_h__ #include "Component.h" +#include "Entity.h" namespace Components { @@ -13,7 +14,7 @@ struct Camera : Component , NearClip(0.1f) , FarClip(100.f) { } - std::string Viewport; + EntityID Viewport; float FOV; float NearClip; float FarClip; diff --git a/src/Components/Viewport.h b/src/Components/Viewport.h new file mode 100644 index 0000000..18f3126 --- /dev/null +++ b/src/Components/Viewport.h @@ -0,0 +1,26 @@ +#ifndef Components_Viewport_h__ +#define Components_Viewport_h__ + +#include "Component.h" + +namespace Components +{ + +struct Viewport : Component +{ + Viewport() + : Left(0.f) + , Top(0.f) + , Right(1.f) + , Bottom(1.f) { } + + float Left; + float Top; + float Right; + float Bottom; + + virtual Viewport* Clone() const override { return new Viewport(*this); } +}; + +} +#endif // Components_Viewport_h__ \ No newline at end of file diff --git a/src/GameWorld.cpp b/src/GameWorld.cpp index 151ad43..8748113 100755 --- a/src/GameWorld.cpp +++ b/src/GameWorld.cpp @@ -67,6 +67,20 @@ void GameWorld::Initialize() RegisterComponents(); + auto viewport1 = CreateEntity(); + { + auto viewport = AddComponent(viewport1, "Transform"); + viewport->Right = 0.5f; + } + CommitEntity(viewport1); + + auto viewport2 = CreateEntity(); + { + auto viewport = AddComponent(viewport1, "Transform"); + viewport->Left = 0.5f; + } + CommitEntity(viewport2); + { auto camera = CreateEntity(); auto transform = AddComponent(camera, "Transform"); @@ -74,6 +88,7 @@ void GameWorld::Initialize() transform->Position.y = 20.f; //transform->Orientation = glm::quat(glm::vec3(glm::pi() / 8.f, 0.f, 0.f)); auto cameraComp = AddComponent(camera, "Camera"); + cameraComp->Viewport = viewport1; cameraComp->FarClip = 2000.f; auto freeSteering = AddComponent(camera, "FreeSteering"); CommitEntity(camera); diff --git a/src/GameWorld.h b/src/GameWorld.h index 5e990bb..f0c83c8 100755 --- a/src/GameWorld.h +++ b/src/GameWorld.h @@ -28,6 +28,7 @@ #include "Components/Sprite.h" #include "Components/Template.h" #include "Components/Transform.h" +#include "Components/Viewport.h" #include "Components/Physics.h" #include "Components/SphereShape.h" diff --git a/vs11/Returngeance/Returngeance.vcxproj b/vs11/Returngeance/Returngeance.vcxproj index da9dfb3..f3e136e 100755 --- a/vs11/Returngeance/Returngeance.vcxproj +++ b/vs11/Returngeance/Returngeance.vcxproj @@ -147,6 +147,7 @@ + diff --git a/vs11/Returngeance/Returngeance.vcxproj.filters b/vs11/Returngeance/Returngeance.vcxproj.filters index 2a89626..078900d 100755 --- a/vs11/Returngeance/Returngeance.vcxproj.filters +++ b/vs11/Returngeance/Returngeance.vcxproj.filters @@ -352,6 +352,9 @@ Input\Events + + Rendering\Components +