Browse Source

Fixed scene viewport rendering

Marko Pintera 11 years ago
parent
commit
6d383c78a4

+ 0 - 1
BansheeCore/Include/BsCoreObjectCore.h

@@ -82,7 +82,6 @@ namespace BansheeEngine
 		bool isCoreDirty() const { return mCoreDirtyFlags != 0; }
 
 		UINT32 mCoreDirtyFlags;
-		bool mIsDestroyed;
 		std::weak_ptr<CoreObjectCore> mThis;
 	};
 }

+ 3 - 1
BansheeD3D11RenderSystem/Source/BsD3D11RenderTexture.cpp

@@ -11,7 +11,9 @@ namespace BansheeEngine
 {
 	D3D11RenderTextureCore::D3D11RenderTextureCore(const RENDER_TEXTURE_DESC& desc)
 		:RenderTextureCore(desc), mProperties(desc, false)
-	{ }
+	{ 
+
+	}
 
 	void D3D11RenderTextureCore::getCustomAttribute(const String& name, void* pData) const
 	{

+ 2 - 0
BansheeEngine/Include/BsCameraHandler.h

@@ -509,6 +509,8 @@ namespace BansheeEngine
 		CameraHandlerCore(SPtr<RenderTargetCore> target = nullptr,
 			float left = 0.0f, float top = 0.0f, float width = 1.0f, float height = 1.0f);
 
+		CameraHandlerCore(const SPtr<ViewportCore>& viewport);
+
 		/**
 		 * @copydoc	CoreObjectCore::initialize
 		 */

+ 8 - 2
BansheeEngine/Source/BsCameraHandler.cpp

@@ -505,6 +505,7 @@ namespace BansheeEngine
 		mPosition = position;
 
 		mRecalcView = true;
+		_markCoreDirty();
 	}
 
 	void CameraHandlerBase::setRotation(const Quaternion& rotation)
@@ -512,6 +513,7 @@ namespace BansheeEngine
 		mRotation = rotation;
 
 		mRecalcView = true;
+		_markCoreDirty();
 	}
 
 	void CameraHandlerBase::invalidateFrustum() const
@@ -684,6 +686,11 @@ namespace BansheeEngine
 		mViewport = ViewportCore::create(target, left, top, width, height);
 	}
 
+	CameraHandlerCore::CameraHandlerCore(const SPtr<ViewportCore>& viewport)
+	{
+		mViewport = viewport;
+	}
+
 	void CameraHandlerCore::initialize()
 	{
 		RendererManager::instance().getActive()->_notifyCameraAdded(this);
@@ -745,8 +752,7 @@ namespace BansheeEngine
 	{
 		Rect2 normArea = mViewport->getNormArea();
 
-		CameraHandlerCore* handler = new (bs_alloc<CameraHandlerCore>()) 
-			CameraHandlerCore(mViewport->getTarget()->getCore(), normArea.x, normArea.y, normArea.width, normArea.height);
+		CameraHandlerCore* handler = new (bs_alloc<CameraHandlerCore>()) CameraHandlerCore(mViewport->getCore());
 		SPtr<CameraHandlerCore> handlerPtr = bs_shared_ptr<CameraHandlerCore, GenAlloc>(handler);
 		handlerPtr->_setThisPtr(handlerPtr);