Selaa lähdekoodia

Delaying showing a window until back buffer swap now works properly in DX11
Properly convert texture formats on load if current render API doesn't support them
Fixed an issue where queued command debug IDs were not being properly set

Marko Pintera 10 vuotta sitten
vanhempi
sitoutus
65d8dcfb03

+ 8 - 0
BansheeCore/Include/BsCommandQueue.h

@@ -98,6 +98,10 @@ namespace BansheeEngine
 			returnsValue = source.returnsValue;
 			callbackId = source.callbackId;
 			notifyWhenComplete = source.notifyWhenComplete;
+
+#if BS_DEBUG_MODE
+			debugId = source.debugId;
+#endif
 		}
 
 		QueuedCommand& operator=(const QueuedCommand& rhs)
@@ -109,6 +113,10 @@ namespace BansheeEngine
 			callbackId = rhs.callbackId;
 			notifyWhenComplete = rhs.notifyWhenComplete;
 			
+#if BS_DEBUG_MODE
+			debugId = rhs.debugId;
+#endif
+
 			return *this;
 		}
 

+ 13 - 0
BansheeCore/Include/BsPixelData.h

@@ -323,6 +323,19 @@ namespace BansheeEngine
 		 */
 		void setColors(Color* colors, UINT32 numElements);
 
+		/**
+		 * @brief	Constructs a new object with an internal buffer capable of holding "extents" volume of pixels, 
+		 *			where each pixel is of the specified pixel format. Extent offsets are also stored, but are not used
+		 *			internally.
+		 */
+		static PixelDataPtr create(const PixelVolume &extents, PixelFormat pixelFormat);
+
+		/**
+		 * @brief	Constructs a new object with an internal buffer capable of holding volume of pixels described by
+		 *			provided width, height and depth, where each pixel is of the specified pixel format.
+		 */
+		static PixelDataPtr create(UINT32 width, UINT32 height, UINT32 depth, PixelFormat pixelFormat);
+
 	private:
 		/**
 		 * @brief	Set the rowPitch and slicePitch so that the buffer is laid out consecutive

+ 23 - 2
BansheeCore/Include/BsTextureRTTI.h

@@ -122,13 +122,34 @@ namespace BansheeEngine
 			if(texture->mRTTIData.empty())
 				return;
 
-			const TextureProperties texProps = texture->getProperties();
+			TextureProperties& texProps = texture->mProperties;
+
+			// Update pixel format if needed as it's possible the original texture was saved using some other render API
+			// that has an unsupported format.
+			PixelFormat originalFormat = texProps.mFormat;
+			PixelFormat validFormat = TextureManager::instance().getNativeFormat(
+				texProps.mTextureType, texProps.mFormat, texProps.mUsage, texProps.mHwGamma);
+
+			Vector<PixelDataPtr>* pixelData = any_cast<Vector<PixelDataPtr>*>(texture->mRTTIData);
+			if (originalFormat != validFormat)
+			{
+				texProps.mFormat = validFormat;
+
+				for (size_t i = 0; i < pixelData->size(); i++)
+				{
+					PixelDataPtr origData = pixelData->at(i);
+					PixelDataPtr newData = PixelData::create(origData->getWidth(), origData->getHeight(), origData->getDepth(), validFormat);
+					newData->allocateInternalBuffer();
+
+					PixelUtil::bulkPixelConversion(*origData, *newData);
+					(*pixelData)[i] = newData;
+				}
+			}
 
 			// A bit clumsy initializing with already set values, but I feel its better than complicating things and storing the values
 			// in mRTTIData.
 			texture->initialize();
 
-			Vector<PixelDataPtr>* pixelData = any_cast<Vector<PixelDataPtr>*>(texture->mRTTIData);
 			for(size_t i = 0; i < pixelData->size(); i++)
 			{
 				UINT32 face = (size_t)Math::floor(i / (float)(texProps.getNumMipmaps() + 1));

+ 10 - 0
BansheeCore/Source/BsPixelData.cpp

@@ -174,6 +174,16 @@ namespace BansheeEngine
 		setColorsInternal(colors, numElements);
 	}
 
+	PixelDataPtr PixelData::create(const PixelVolume &extents, PixelFormat pixelFormat)
+	{
+		return bs_shared_ptr<PixelData>(extents, pixelFormat);
+	}
+
+	PixelDataPtr PixelData::create(UINT32 width, UINT32 height, UINT32 depth, PixelFormat pixelFormat)
+	{
+		return bs_shared_ptr<PixelData>(width, height, depth, pixelFormat);
+	}
+
 	UINT32 PixelData::getInternalBufferSize() const
 	{
 		return getSize();

+ 0 - 8
BansheeCore/Source/Win32/BsWin32Platform.cpp

@@ -666,14 +666,6 @@ namespace BansheeEngine
 
 		switch( uMsg )
 		{
-		case WM_ACTIVATE:
-			{
-				bool active = (LOWORD(wParam) != WA_INACTIVE);
-				if( active )
-					win->setActive(true);
-
-				return 0;
-			}
 		case WM_DESTROY:
 			{
 				bool reenableWindows = false;

+ 18 - 18
BansheeD3D11RenderSystem/Include/BsD3D11RenderWindow.h

@@ -40,52 +40,52 @@ namespace BansheeEngine
 		/**
 		 * @copydoc RenderWindowCore::move
 		 */
-		void move(INT32 left, INT32 top);
+		void move(INT32 left, INT32 top) override;
 
 		/**
 		 * @copydoc RenderWindowCore::resize
 		 */
-		void resize(UINT32 width, UINT32 height);
+		void resize(UINT32 width, UINT32 height) override;
 
 		/**
 		 * @copydoc RenderWindowCore::setHidden
 		 */
-		void setHidden(bool hidden);
+		void setHidden(bool hidden) override;
 
 		/**
 		 * @copydoc RenderWindowCore::setActive
 		 */
-		void setActive(bool state);
+		void setActive(bool state) override;
 
 		/**
 		 * @copydoc	RenderWindowCore::minimize
 		 */
-		void minimize();
+		void minimize() override;
 
 		/**
 		 * @copydoc	RenderWindowCore::maximize
 		 */
-		void maximize();
+		void maximize() override;
 
 		/**
 		 * @copydoc	RenderWindowCore::restore
 		 */
-		void restore();
+		void restore() override;
 
 		/**
 		 * @copydoc RenderWindowCore::setFullscreen(UINT32, UINT32, float, UINT32)
 		 */
-		void setFullscreen(UINT32 width, UINT32 height, float refreshRate = 60.0f, UINT32 monitorIdx = 0);
+		void setFullscreen(UINT32 width, UINT32 height, float refreshRate = 60.0f, UINT32 monitorIdx = 0) override;
 
 		/**
 		 * @copydoc RenderWindowCore::setFullscreen(const VideoMode&)
 		 */
-		void setFullscreen(const VideoMode& mode);
+		void setFullscreen(const VideoMode& mode) override;
 
 		/**
 		* @copydoc RenderWindowCore::setWindowed
 		*/
-		void setWindowed(UINT32 width, UINT32 height);
+		void setWindowed(UINT32 width, UINT32 height) override;
 
 		/**
 		 * @copydoc RenderWindowCore::copyContentsToMemory
@@ -95,17 +95,17 @@ namespace BansheeEngine
 		/**
 		 * @copydoc RenderWindowCore::swapBuffers
 		 */
-		void swapBuffers();
+		void swapBuffers() override;
 
 		/**
 		 * @copydoc RenderWindowCore::getCustomAttribute
 		 */
-		void getCustomAttribute(const String& name, void* pData) const;
+		void getCustomAttribute(const String& name, void* pData) const override;
 
 		/**
 		 * @copydoc	RenderWindowCore::_windowMovedOrResized
 		 */
-		void _windowMovedOrResized();
+		void _windowMovedOrResized() override;
 
 		/**
 		 * @brief	Returns presentation parameters used for creating the window swap chain.
@@ -153,7 +153,7 @@ namespace BansheeEngine
 		/**
 		 * @copydoc	RenderWindowCore::getProperties
 		 */
-		const RenderTargetProperties& getPropertiesInternal() const { return mProperties; }
+		const RenderTargetProperties& getPropertiesInternal() const override { return mProperties; }
 
 		/**
 		 * @copydoc	RenderWindowCore::getSyncedProperties
@@ -203,17 +203,17 @@ namespace BansheeEngine
 		/**
 		 * @copydoc RenderWindow::screenToWindowPos
 		 */
-		void getCustomAttribute(const String& name, void* pData) const;
+		void getCustomAttribute(const String& name, void* pData) const override;
 
 		/**
 		 * @copydoc RenderWindow::screenToWindowPos
 		 */
-		Vector2I screenToWindowPos(const Vector2I& screenPos) const;
+		Vector2I screenToWindowPos(const Vector2I& screenPos) const override;
 
 		/**
 		 * @copydoc RenderWindow::windowToScreenPos
 		 */
-		Vector2I windowToScreenPos(const Vector2I& windowPos) const;
+		Vector2I windowToScreenPos(const Vector2I& windowPos) const override;
 
 		/**
 		 * @copydoc	RenderWindow::getCore
@@ -230,7 +230,7 @@ namespace BansheeEngine
 		/**
 		 * @copydoc	RenderWindowCore::getProperties
 		 */
-		const RenderTargetProperties& getPropertiesInternal() const { return mProperties; }
+		const RenderTargetProperties& getPropertiesInternal() const override { return mProperties; }
 
 		/**
 		 * @copydoc	RenderWindow::syncProperties

+ 1 - 5
BansheeD3D11RenderSystem/Source/BsD3D11RenderWindow.cpp

@@ -274,7 +274,6 @@ namespace BansheeEngine
 
 		createSizeDependedD3DResources();
 		mDXGIFactory->MakeWindowAssociation(mHWnd, NULL);
-		setHidden(props.isHidden());
 
 		{
 			ScopedSpinLock lock(mLock);
@@ -366,7 +365,7 @@ namespace BansheeEngine
 			}
 			else
 			{
-				ShowWindow(mHWnd, SW_SHOWMINIMIZED);
+				ShowWindow(mHWnd, SW_SHOWMINNOACTIVE);
 				mSwapChain->SetFullscreenState(FALSE, nullptr);
 			}
 		}
@@ -378,9 +377,6 @@ namespace BansheeEngine
 	{
 		THROW_IF_NOT_CORE_THREAD;
 
-		D3D11RenderWindowProperties& props = mProperties;
-
-		props.mHidden = hidden;
 		mShowOnSwap = false;
 
 		if (!mIsExternal)

+ 23 - 18
BansheeD3D9RenderSystem/Include/BsD3D9RenderWindow.h

@@ -36,52 +36,57 @@ namespace BansheeEngine
 		/**
 		 * @copydoc RenderWindowCore::setFullscreen(UINT32, UINT32, float, UINT32)
 		 */
-		void setFullscreen(UINT32 width, UINT32 height, float refreshRate = 60.0f, UINT32 monitorIdx = 0);
+		void setFullscreen(UINT32 width, UINT32 height, float refreshRate = 60.0f, UINT32 monitorIdx = 0) override;
 
 		/**
 		 * @copydoc RenderWindowCore::setFullscreen(const VideoMode&)
 		 */
-		void setFullscreen(const VideoMode& mode);
+		void setFullscreen(const VideoMode& mode) override;
 
 		/**
 		* @copydoc RenderWindowCore::setWindowed
 		*/
-		void setWindowed(UINT32 width, UINT32 height);
+		void setWindowed(UINT32 width, UINT32 height) override;
+
+		/**
+		 * @copydoc RenderWindowCore::setActive
+		 */
+		virtual void setActive(bool state) override;
 
 		/**
 		 * @copydoc RenderWindowCore::setHidden
 		 */
-		void setHidden(bool hidden);
+		void setHidden(bool hidden) override;
 
 		/**
 		 * @copydoc	RenderWindowCore::minimize
 		 */
-		void minimize();
+		void minimize() override;
 
 		/**
 		 * @copydoc	RenderWindowCore::maximize
 		 */
-		void maximize();
+		void maximize() override;
 
 		/**
 		 * @copydoc	RenderWindowCore::restore
 		 */
-		void restore();
+		void restore() override;
 
 		/**
 		 * @copydoc RenderWindowCore::move
 		 */
-		void move(INT32 left, INT32 top);
+		void move(INT32 left, INT32 top) override;
 
 		/**
 		 * @copydoc RenderWindowCore::resize
 		 */
-		void resize(UINT32 width, UINT32 height);
+		void resize(UINT32 width, UINT32 height) override;
 
 		/**
 		 * @copydoc RenderWindowCore::getCustomAttribute
 		 */
-		void getCustomAttribute(const String& name, void* pData) const;
+		void getCustomAttribute(const String& name, void* pData) const override;
 
 		/**
 		 * @copydoc RenderWindowCore::copyContentsToMemory
@@ -91,12 +96,12 @@ namespace BansheeEngine
 		/**
 		 * @copydoc RenderWindowCore::swapBuffers
 		 */
-		void swapBuffers();
+		void swapBuffers() override;
 
 		/**
 		 * @copydoc RenderWindowCore::_windowMovedOrResized
 		 */
-		void _windowMovedOrResized();
+		void _windowMovedOrResized() override;
 
 		/**
 		 * @brief	Gets internal Win32 window handle.
@@ -144,7 +149,7 @@ namespace BansheeEngine
 		/**
 		 * @copydoc	CoreObjectCore::initialize
 		 */
-		virtual void initialize();
+		virtual void initialize() override;
 
 		/**
 		 * @brief	Updates window coordinates and size from actual values provided by Windows.
@@ -160,7 +165,7 @@ namespace BansheeEngine
 		/**
 		 * @copydoc	RenderWindowCore::getProperties
 		 */
-		const RenderTargetProperties& getPropertiesInternal() const { return mProperties; }
+		const RenderTargetProperties& getPropertiesInternal() const override { return mProperties; }
 
 		/**
 		 * @copydoc	RenderWindowCore::getSyncedProperties
@@ -206,17 +211,17 @@ namespace BansheeEngine
 		/**
 		 * @copydoc RenderWindow::screenToWindowPos
 		 */
-		void getCustomAttribute(const String& name, void* pData) const;
+		void getCustomAttribute(const String& name, void* pData) const override;
 
 		/**
 		 * @copydoc RenderWindow::screenToWindowPos
 		 */
-		Vector2I screenToWindowPos(const Vector2I& screenPos) const;
+		Vector2I screenToWindowPos(const Vector2I& screenPos) const override;
 
 		/**
 		 * @copydoc RenderWindow::windowToScreenPos
 		 */
-		Vector2I windowToScreenPos(const Vector2I& windowPos) const;
+		Vector2I windowToScreenPos(const Vector2I& windowPos) const override;
 
 		/**
 		 * @copydoc	RenderWindow::getCore
@@ -232,7 +237,7 @@ namespace BansheeEngine
 		/**
 		 * @copydoc	RenderWindowCore::getProperties
 		 */
-		const RenderTargetProperties& getPropertiesInternal() const { return mProperties; }
+		const RenderTargetProperties& getPropertiesInternal() const override { return mProperties; }
 
 		/**
 		 * @copydoc	RenderWindow::syncProperties

+ 17 - 1
BansheeD3D9RenderSystem/Source/BsD3D9RenderWindow.cpp

@@ -362,13 +362,29 @@ namespace BansheeEngine
 		RenderWindowManager::instance().notifyMovedOrResized(this);
 	}
 
+	void D3D9RenderWindowCore::setActive(bool state)
+	{
+		THROW_IF_NOT_CORE_THREAD;
+
+		D3D9RenderWindowProperties& props = mProperties;
+
+		if (mHWnd)
+		{
+			if (state)
+				ShowWindow(mHWnd, SW_RESTORE);
+			else
+				ShowWindow(mHWnd, SW_SHOWMINNOACTIVE);
+		}
+
+		RenderWindowCore::setActive(state);
+	}
+
 	void D3D9RenderWindowCore::setHidden(bool hidden)
 	{
 		THROW_IF_NOT_CORE_THREAD;
 
 		D3D9RenderWindowProperties& props = mProperties;
 
-		props.mHidden = hidden;
 		mShowOnSwap = false;
 
 		if (!mIsExternal)

+ 1 - 1
BansheeEditor/Source/BsEditorApplication.cpp

@@ -66,7 +66,7 @@ namespace BansheeEngine
 		:Application(createRenderWindowDesc(), renderSystemPlugin, RendererPlugin::Default), 
 		mActiveRSPlugin(renderSystemPlugin), mSBansheeEditorPlugin(nullptr)
 	{
-		
+
 	}
 
 	EditorApplication::~EditorApplication()

+ 1 - 1
BansheeEditorExec/BsEditorExec.cpp

@@ -65,7 +65,7 @@ int CALLBACK WinMain(
 	InitializeDebugConsole();
 #endif
 
-	EditorApplication::startUp(RenderSystemPlugin::OpenGL);
+	EditorApplication::startUp(RenderSystemPlugin::DX11);
 	EditorApplication::instance().runMainLoop();
 	EditorApplication::shutDown();
 

+ 19 - 19
BansheeGLRenderSystem/Include/BsWin32Window.h

@@ -35,47 +35,47 @@ namespace BansheeEngine
 		/**
 		 * @copydoc RenderWindowCore::setFullscreen(UINT32, UINT32, float, UINT32)
 		 */
-		void setFullscreen(UINT32 width, UINT32 height, float refreshRate = 60.0f, UINT32 monitorIdx = 0);
+		void setFullscreen(UINT32 width, UINT32 height, float refreshRate = 60.0f, UINT32 monitorIdx = 0) override;
 
 		/**
 		 * @copydoc RenderWindowCore::setFullscreen(const VideoMode&)
 		 */
-		void setFullscreen(const VideoMode& mode);
+		void setFullscreen(const VideoMode& mode) override;
 
 		/**
 		 * @copydoc RenderWindowCore::setWindowed
 		 */
-		void setWindowed(UINT32 width, UINT32 height);
+		void setWindowed(UINT32 width, UINT32 height) override;
 
 		/**
 		 * @copydoc RenderWindowCore::setHidden
 		 */
-		void setHidden(bool hidden);
+		void setHidden(bool hidden) override;
 
 		/**
 		 * @copydoc	RenderWindowCore::minimize
 		 */
-		void minimize();
+		void minimize() override;
 
 		/**
 		 * @copydoc	RenderWindowCore::maximize
 		 */
-		void maximize();
+		void maximize() override;
 
 		/**
 		 * @copydoc	RenderWindowCore::restore
 		 */
-		void restore();
+		void restore() override;
 
 		/**
 		 * @copydoc RenderWindowCore::move
 		 */
-		void move(INT32 left, INT32 top);
+		void move(INT32 left, INT32 top) override;
 
 		/**
 		 * @copydoc RenderWindowCore::resize
 		 */
-		void resize(UINT32 width, UINT32 height);
+		void resize(UINT32 width, UINT32 height) override;
 
 		/**
 		 * @copydoc RenderWindowCore::copyContentsToMemory
@@ -85,22 +85,22 @@ namespace BansheeEngine
 		/**
 		 * @copydoc RenderWindowCore::swapBuffers
 		 */
-		void swapBuffers();
+		void swapBuffers() override;
 
 		/**
 		 * @copydoc RenderWindowCore::getCustomAttribute
 		 */
-		void getCustomAttribute(const String& name, void* pData) const;
+		void getCustomAttribute(const String& name, void* pData) const override;
 
 		/**
 		 * @copydoc RenderWindowCore::setActive
 		 */
-		virtual void setActive(bool state);
+		virtual void setActive(bool state) override;
 
 		/**
 		 * @copydoc RenderWindowCore::_windowMovedOrResized
 		 */
-		void _windowMovedOrResized();
+		void _windowMovedOrResized() override;
 
 		/**
 		 * @brief	Returns handle to device context associated with the window.
@@ -118,7 +118,7 @@ namespace BansheeEngine
 		/**
 		 * @copydoc	CoreObjectCore::initialize
 		 */
-		virtual void initialize();
+		virtual void initialize() override;
 
 		/**
 		 * @brief	Calculates window size based on provided client area size and currently set window style. 
@@ -128,7 +128,7 @@ namespace BansheeEngine
 		/**
 		 * @copydoc	RenderWindowCore::getProperties
 		 */
-		const RenderTargetProperties& getPropertiesInternal() const { return mProperties; }
+		const RenderTargetProperties& getPropertiesInternal() const override { return mProperties; }
 
 		/**
 		 * @copydoc	RenderWindowCore::getSyncedProperties
@@ -172,17 +172,17 @@ namespace BansheeEngine
 		/**
 		 * @copydoc RenderWindow::screenToWindowPos
 		 */
-		void getCustomAttribute(const String& name, void* pData) const;
+		void getCustomAttribute(const String& name, void* pData) const override;
 
 		/**
 		 * @copydoc RenderWindow::screenToWindowPos
 		 */
-		Vector2I screenToWindowPos(const Vector2I& screenPos) const;
+		Vector2I screenToWindowPos(const Vector2I& screenPos) const override;
 
 		/**
 		 * @copydoc RenderWindow::windowToScreenPos
 		 */
-		Vector2I windowToScreenPos(const Vector2I& windowPos) const;
+		Vector2I windowToScreenPos(const Vector2I& windowPos) const override;
 
 		/**
 		 * @copydoc	RenderWindow::getCore
@@ -199,7 +199,7 @@ namespace BansheeEngine
 		/**
 		 * @copydoc	RenderWindow::getProperties
 		 */
-		const RenderTargetProperties& getPropertiesInternal() const { return mProperties; }
+		const RenderTargetProperties& getPropertiesInternal() const override { return mProperties; }
 
 		/**
 		 * @copydoc	RenderWindow::syncProperties

+ 4 - 40
BansheeGLRenderSystem/Source/BsWin32Window.cpp

@@ -647,49 +647,13 @@ namespace BansheeEngine
 		THROW_IF_NOT_CORE_THREAD;
 
 		Win32RenderWindowProperties& props = mProperties;
-		if (mDeviceName != NULL && state == false)
-		{
-			HWND hActiveWindow = GetActiveWindow();
-			char classNameSrc[_MAX_CLASS_NAME_ + 1];
-			char classNameDst[_MAX_CLASS_NAME_ + 1];
-
-			GetClassName(mHWnd, classNameSrc, _MAX_CLASS_NAME_);
-			GetClassName(hActiveWindow, classNameDst, _MAX_CLASS_NAME_);
 
-			if (strcmp(classNameDst, classNameSrc) == 0)
-			{
-				state = true;
-			}						
-		}
-		
-		props.mActive = state;
-
-		if(props.mIsFullScreen)
+		if (mHWnd)
 		{
-			if( state == false )
-			{	//Restore Desktop
-				ChangeDisplaySettingsEx(mDeviceName, NULL, NULL, 0, NULL);
-				ShowWindow(mHWnd, SW_SHOWMINNOACTIVE);
-			}
+			if (state)
+				ShowWindow(mHWnd, SW_RESTORE);
 			else
-			{	//Restore App
-				ShowWindow(mHWnd, SW_SHOWNORMAL);
-
-				DEVMODE displayDeviceMode;
-
-				memset(&displayDeviceMode, 0, sizeof(displayDeviceMode));
-				displayDeviceMode.dmSize = sizeof(DEVMODE);
-				displayDeviceMode.dmBitsPerPel = props.mColorDepth;
-				displayDeviceMode.dmPelsWidth = props.mWidth;
-				displayDeviceMode.dmPelsHeight = props.mHeight;
-				displayDeviceMode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
-				if (mDisplayFrequency)
-				{
-					displayDeviceMode.dmDisplayFrequency = mDisplayFrequency;
-					displayDeviceMode.dmFields |= DM_DISPLAYFREQUENCY;
-				}
-				ChangeDisplaySettingsEx(mDeviceName, &displayDeviceMode, NULL, CDS_FULLSCREEN, NULL);
-			}
+				ShowWindow(mHWnd, SW_SHOWMINNOACTIVE);
 		}
 
 		RenderWindowCore::setActive(state);

+ 6 - 6
BansheeUtility/Include/BsStdHeaders.h

@@ -136,7 +136,7 @@ namespace BansheeEngine
 	using UnorderedMultimap = std::unordered_multimap<K, V, H, C, A>;
 
 	template <typename T>
-	using SPtr = std::shared_ptr<T> ;
+	using SPtr = std::shared_ptr<T>;
 
 	/**
 	 * @brief	Create a new shared pointer using a custom allocator category.
@@ -148,8 +148,8 @@ namespace BansheeEngine
 	}
 
 	/**
-	* @brief	Create a new shared pointer using the default allocator category.
-	*/
+	 * @brief	Create a new shared pointer using the default allocator category.
+	 */
 	template<class Type, class... Args>
 	std::shared_ptr<Type> bs_shared_ptr(Args &&... args)
 	{
@@ -167,9 +167,9 @@ namespace BansheeEngine
 	}
 
 	/**
-	* @brief	Create a new shared pointer from a previously constructed object.
-	*			Pointer specific data will be allocated using the provided allocator category.
-	*/
+	 * @brief	Create a new shared pointer from a previously constructed object.
+	 *			Pointer specific data will be allocated using the provided allocator category.
+	 */
 	template<class Type, class MainAlloc, class PtrDataAlloc>
 	std::shared_ptr<Type> bs_shared_ptr(Type* data) 
 	{

+ 5 - 1
TODO.txt

@@ -57,11 +57,11 @@ Code quality improvements:
 Polish stage 1
 
 Fix DX11 (and possibly DX9) rendering
+Main window resize areas don't seem to be set up or work
 After undocking ProjectWindow the auto-scroll seems to be stuck in up position
 Decent looking default layout
 When selecting an gizmo icon the selection seems delayed and its gizmos flash for a frame before hiding (Can't reproduce atm but I saw it)
 Make proper window names instead of InspectorWindow
-Selection wireframe seems to render in front of handles
 
 Fix handles
  - Some handle functionality is unfinished
@@ -88,6 +88,10 @@ Remember: Record all portions where objects & components get modified so I can m
 UndoRedo reminders:
  - When breaking or reverting a scene object
 
+When building game make sure to go over texture resources and ensure they are saved in the valid format
+as we don't want to do format conversion at runtime (Not cruical, but it should be done eventually)
+ - This should something similar to Unity where when changing the platform all resources get reimported
+
 ----------------------------------------------------------------------
 Project window