浏览代码

Refactored RenderTarget a bit to make is prettier (no real funcionality added)

Marko Pintera 12 年之前
父节点
当前提交
6b1dfdc6be

+ 2 - 2
CamelotClient/CamelotClient.cpp

@@ -37,9 +37,9 @@
 #include "CmRTTIType.h"
 #include "CmRTTIType.h"
 #include "CmCursor.h"
 #include "CmCursor.h"
 
 
-#define DX11
+//#define DX11
 //#define DX9
 //#define DX9
-//#define GL
+#define GL
 
 
 using namespace CamelotFramework;
 using namespace CamelotFramework;
 using namespace BansheeEditor;
 using namespace BansheeEditor;

+ 4 - 1
CamelotCore/Include/CmMultiRenderTexture.h

@@ -23,6 +23,9 @@ namespace CamelotFramework
 		 */
 		 */
 		bool isWindow() const { return true; }
 		bool isWindow() const { return true; }
 
 
+		/**
+		 * @copydoc RenderTarget::requiresTextureFlipping.
+		 */
 		bool requiresTextureFlipping() const { return false; }
 		bool requiresTextureFlipping() const { return false; }
 
 
 	protected:
 	protected:
@@ -39,6 +42,6 @@ namespace CamelotFramework
 	private:
 	private:
 		void throwIfBuffersDontMatch() const;
 		void throwIfBuffersDontMatch() const;
 
 
-		virtual void copyContentsToMemory(const PixelData &dst, FrameBuffer buffer = FB_AUTO);
+		virtual void copyToMemory(const PixelData &dst, FrameBuffer buffer = FB_AUTO);
 	};
 	};
 }
 }

+ 26 - 123
CamelotCore/Include/CmRenderTarget.h

@@ -25,8 +25,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 THE SOFTWARE.
 -----------------------------------------------------------------------------
 -----------------------------------------------------------------------------
 */
 */
-#ifndef __RenderTarget_H__
-#define __RenderTarget_H__
+#pragma once
 
 
 #include "CmPrerequisites.h"
 #include "CmPrerequisites.h"
 
 
@@ -36,13 +35,6 @@ THE SOFTWARE.
 #include "CmCoreObject.h"
 #include "CmCoreObject.h"
 #include "boost/signal.hpp"
 #include "boost/signal.hpp"
 
 
-/* Define the number of priority groups for the render system's render targets. */
-#ifndef CM_NUM_RENDERTARGET_GROUPS
-	#define CM_NUM_RENDERTARGET_GROUPS 10
-	#define CM_DEFAULT_RT_GROUP 4
-	#define CM_REND_TO_TEX_RT_GROUP 2
-#endif
-
 namespace CamelotFramework 
 namespace CamelotFramework 
 {
 {
 	struct CM_EXPORT RENDER_SURFACE_DESC
 	struct CM_EXPORT RENDER_SURFACE_DESC
@@ -53,23 +45,6 @@ namespace CamelotFramework
 		UINT32 mipLevel;
 		UINT32 mipLevel;
 	};
 	};
 
 
-	/** \addtogroup Core
-	*  @{
-	*/
-	/** \addtogroup RenderSystem
-	*  @{
-	*/
-	/** A 'canvas' which can receive the results of a rendering
-        operation.
-        @remarks
-            This abstract class defines a common root to all targets of rendering operations. A
-            render target could be a window on a screen, or another
-            offscreen surface like a texture or bump map etc.
-        @author
-            Steven Streeting
-        @version
-            1.0
-     */
     class CM_EXPORT RenderTarget : public CoreObject
     class CM_EXPORT RenderTarget : public CoreObject
     {
     {
     public:
     public:
@@ -82,124 +57,52 @@ namespace CamelotFramework
 
 
         virtual ~RenderTarget();
         virtual ~RenderTarget();
 
 
-        /// Retrieve target's name.
-        virtual const String& getName(void) const;
-
-        /// Retrieve information about the render target.
-        virtual void getMetrics(unsigned int& width, unsigned int& height, unsigned int& colourDepth);
+        const String& getName() const { return mName; }
+        UINT32 getWidth() const { return mWidth; }
+        UINT32 getHeight() const { return mHeight; }
+		UINT32 getColorDepth() const { return mColorDepth; }
+		UINT32 getFSAA() const { return mFSAA; }
+		const String& getFSAAHint() const { return mFSAAHint; }
 
 
-        virtual unsigned int getWidth(void) const;
-        virtual unsigned int getHeight(void) const;
-        virtual unsigned int getColourDepth(void) const;
+		/**
+		 * @brief	Returns true if the render target will wait for vertical sync before swapping buffers.
+		 */
+		bool getVSync() const { return mVSync; }
 
 
-        /**
-         * @brief	Swaps the frame buffers to display the next frame.
-         * 			
-		 * @note	Core thread only.
-         */
-		virtual void swapBuffers() {};
+		virtual void getCustomAttribute(const String& name, void* pData) const;
 
 
 		/**
 		/**
 		 * @brief	Returns true if the render target is a render window.
 		 * @brief	Returns true if the render target is a render window.
 		 */
 		 */
 		virtual bool isWindow() const = 0;
 		virtual bool isWindow() const = 0;
+		bool isActive() const { return mActive; }
+		bool isHwGammaEnabled() const { return mHwGamma; }
 
 
-        /** Gets a custom (maybe platform-specific) attribute.
-            @remarks
-                This is a nasty way of satisfying any API's need to see platform-specific details.
-                It horrid, but D3D needs this kind of info. At least it's abstracted.
-            @param
-                name The name of the attribute.
-            @param
-                pData Pointer to memory of the right kind of structure to receive the info.
-        */
-        virtual void getCustomAttribute(const String& name, void* pData) const;
-
-		/** Sets the priority of this render target in relation to the others. 
-        @remarks
-            This can be used in order to schedule render target updates. Lower
-            priorities will be rendered first. Note that the priority must be set
-            at the time the render target is attached to the render system, changes
-            afterwards will not affect the ordering.
-        */
-        virtual void setPriority( UINT8 priority ) { mPriority = priority; }
-        /** Gets the priority of a render target. */
-		virtual UINT8 getPriority() const { return mPriority; }
-
-        /** Used to retrieve or set the active state of the render target.
-        */
-        virtual bool isActive() const;
-
-        /** Used to set the active state of the render target.
-        */
-        virtual void setActive( bool state );
-
-		/** Copies the current contents of the render target to a pixelbox. 
-		@remarks See suggestPixelFormat for a tip as to the best pixel format to
-			extract into, although you can use whatever format you like and the 
-			results will be converted.
-		*/
-		virtual void copyContentsToMemory(const PixelData &dst, FrameBuffer buffer = FB_AUTO) = 0;
-
-		/** Suggests a pixel format to use for extracting the data in this target, 
-			when calling copyContentsToMemory.
-		*/
-		virtual PixelFormat suggestPixelFormat() const { return PF_BYTE_RGBA; }
+		virtual void setActive(bool state) { mActive = state; }
 
 
+        /**
+         * @brief	Swaps the frame buffers to display the next frame.
+         * 			
+		 * @note	Core thread only.
+         */
+		virtual void swapBuffers() {};
+		virtual void copyToMemory(const PixelData &dst, FrameBuffer buffer = FB_AUTO) = 0;
 		virtual bool requiresTextureFlipping() const = 0;
 		virtual bool requiresTextureFlipping() const = 0;
 
 
-		/** Indicates whether on rendering, linear colour space is converted to 
-			sRGB gamma colour space. This is the exact opposite conversion of
-			what is indicated by Texture::isHardwareGammaEnabled, and can only
-			be enabled on creation of the render target. For render windows, it's
-			enabled through the 'gamma' creation misc parameter. For textures, 
-			it is enabled through the hwGamma parameter to the create call.
-		*/
-		virtual bool isHardwareGammaEnabled() const { return mHwGamma; }
-
-		/** Indicates whether multisampling is performed on rendering and at what level.
-		*/
-		virtual UINT32 getFSAA() const { return mFSAA; }
-
-		/** Gets the FSAA hint (@see Root::createRenderWindow)
-		*/
-		virtual const String& getFSAAHint() const { return mFSAAHint; }
-
-		/**
-		 * @brief	Returns true if the render target will wait for vertical sync before swapping buffers.
-		 */
-		bool getVSync() const { return mVSync; }
-
-		/**
-		 * @brief	Set whether the render target will wait for vertical sync before swapping buffers.
-		 */
-		void setVSync(bool vsync)  { mVSync = vsync; }
-
 		mutable boost::signal<void(RenderTarget*)> onMovedOrResized;
 		mutable boost::signal<void(RenderTarget*)> onMovedOrResized;
     protected:
     protected:
 		RenderTarget();
 		RenderTarget();
 
 
-        /// The name of this target.
         String mName;
         String mName;
-		/// The priority of the render target.
-		UINT8 mPriority;
 
 
-        unsigned int mWidth;
-        unsigned int mHeight;
-        unsigned int mColorDepth;
+        UINT32 mWidth;
+        UINT32 mHeight;
+        UINT32 mColorDepth;
 
 
         bool mActive;
         bool mActive;
-		// Hardware sRGB gamma conversion done on write?
 		bool mHwGamma;
 		bool mHwGamma;
-		// Wait for vsync?
 		bool mVSync;
 		bool mVSync;
-		// FSAA performed?
 		UINT32 mFSAA;
 		UINT32 mFSAA;
 		String mFSAAHint;
 		String mFSAAHint;
     };
     };
-	/** @} */
-	/** @} */
-
-} // Namespace
-
-#endif
+}

+ 15 - 26
CamelotCore/Include/CmRenderTexture.h

@@ -25,8 +25,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 THE SOFTWARE.
 -----------------------------------------------------------------------------
 -----------------------------------------------------------------------------
 */
 */
-#ifndef __RenderTexture_H__
-#define __RenderTexture_H__
+#pragma once
 
 
 #include "CmPrerequisites.h"
 #include "CmPrerequisites.h"
 #include "CmTexture.h"
 #include "CmTexture.h"
@@ -40,50 +39,40 @@ namespace CamelotFramework
 		RENDER_SURFACE_DESC depthStencilSurface;
 		RENDER_SURFACE_DESC depthStencilSurface;
 	};
 	};
 
 
-	/** \addtogroup Core
-	*  @{
-	*/
-	/** \addtogroup RenderSystem
-	*  @{
-	*/
-	/** This class represents a RenderTarget that renders to a Texture. There is no 1 on 1
-        relation between Textures and RenderTextures, as there can be multiple 
-        RenderTargets rendering to different mipmaps, faces (for cubemaps) or slices (for 3D textures)
-        of the same Texture.
-    */
     class CM_EXPORT RenderTexture : public RenderTarget
     class CM_EXPORT RenderTexture : public RenderTarget
     {
     {
 	public:
 	public:
 		virtual ~RenderTexture();
 		virtual ~RenderTexture();
 
 
-		bool requiresTextureFlipping() const { return false; }
+		static RenderTexturePtr create(TextureType textureType, UINT32 width, UINT32 height, 
+			PixelFormat format, bool hwGamma, UINT32 fsaa, const String& fsaaHint, 
+			bool createDepth = true, PixelFormat depthStencilFormat = PF_D24S8);
+
+		void initialize(const RENDER_TEXTURE_DESC& desc);
 
 
 		/**
 		/**
 		 * @copydoc RenderTarget::isWindow.
 		 * @copydoc RenderTarget::isWindow.
 		 */
 		 */
 		bool isWindow() const { return false; }
 		bool isWindow() const { return false; }
 
 
-		void initialize(const RENDER_TEXTURE_DESC& desc);
+		/**
+		 * @copydoc RenderTarget::requiresTextureFlipping.
+		 */
+		bool requiresTextureFlipping() const { return false; }
 
 
 	protected:
 	protected:
+		TextureViewPtr mColorSurface;
+		TextureViewPtr mDepthStencilSurface;
+
 		RenderTexture();
 		RenderTexture();
 
 
 		/**
 		/**
 		 * @copydoc RenderTarget::destroy_internal()
 		 * @copydoc RenderTarget::destroy_internal()
 		 */
 		 */
 		virtual void destroy_internal();
 		virtual void destroy_internal();
-
-	protected:
-		TextureViewPtr mColorSurface;
-		TextureViewPtr mDepthStencilSurface;
-
 	private:
 	private:
 		void throwIfBuffersDontMatch() const;
 		void throwIfBuffersDontMatch() const;
 
 
-		virtual void copyContentsToMemory( const PixelData &dst, FrameBuffer buffer = FB_AUTO );
+		virtual void copyToMemory(const PixelData &dst, FrameBuffer buffer = FB_AUTO);
 	};
 	};
-	/** @} */
-	/** @} */
-}
-
-#endif
+}

+ 4 - 45
CamelotCore/Include/CmRenderWindow.h

@@ -23,8 +23,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE
 THE SOFTWARE
 -------------------------------------------------------------------------*/
 -------------------------------------------------------------------------*/
-#ifndef __RenderWindow_H__
-#define __RenderWindow_H__
+#pragma once
 
 
 #include "CmPrerequisites.h"
 #include "CmPrerequisites.h"
 
 
@@ -81,41 +80,14 @@ namespace CamelotFramework
 		NameValuePairList platformSpecific;
 		NameValuePairList platformSpecific;
 	};
 	};
 
 
-	/** \addtogroup Core
-	*  @{
-	*/
-	/** \addtogroup RenderSystem
-	*  @{
-	*/
-	/** Manages the target rendering window.
-        @remarks
-            This class handles a window into which the contents
-            of a scene are rendered. There is a many-to-1 relationship
-            between instances of this class an instance of RenderSystem
-            which controls the rendering of the scene. There may be
-            more than one window in the case of level editor tools etc.
-            This class is abstract since there may be
-            different implementations for different windowing systems.
-        @remarks
-            Instances are created and communicated with by the render system
-            although client programs can get a reference to it from
-            the render system if required for resizing or moving.
-            Note that you can have multiple viewpoints
-            in the window for effects like rear-view mirrors and
-            picture-in-picture views (see Viewport and Camera).
-        @author
-            Steven Streeting
-        @version
-            1.0
-    */
     class CM_EXPORT RenderWindow : public RenderTarget
     class CM_EXPORT RenderWindow : public RenderTarget
     {
     {
     public:
     public:
 		virtual ~RenderWindow();
 		virtual ~RenderWindow();
 
 
 		/** 
 		/** 
-			@brief Core method. Alter fullscreen mode options.
-		*/
+		 *	@brief Core method. Alter fullscreen mode options.
+		 */
 		virtual void setFullscreen(bool fullScreen, UINT32 width, UINT32 height)
 		virtual void setFullscreen(bool fullScreen, UINT32 width, UINT32 height)
                 { (void)fullScreen; (void)width; (void)height; }
                 { (void)fullScreen; (void)width; (void)height; }
 
 
@@ -167,13 +139,6 @@ namespace CamelotFramework
 		 */
 		 */
 		bool hasFocus() const { return mHasFocus; }
 		bool hasFocus() const { return mHasFocus; }
 
 
-        /**   
-        * @brief	Overloaded version of getMetrics from RenderTarget, including extra details
-		*			specific to windowing systems.
-        */
-        virtual void getMetrics(UINT32& width, UINT32& height, UINT32& colourDepth, 
-			INT32& left, INT32& top);
-
 		/**
 		/**
          * @brief	Internal method. Core method. Called when window is moved or resized.
          * @brief	Internal method. Core method. Called when window is moved or resized.
          */
          */
@@ -205,8 +170,6 @@ namespace CamelotFramework
     protected:
     protected:
 		friend class RenderWindowManager;
 		friend class RenderWindowManager;
 
 
-        /** Default constructor.
-        */
         RenderWindow(const RENDER_WINDOW_DESC& desc);
         RenderWindow(const RENDER_WINDOW_DESC& desc);
         
         
 	protected:
 	protected:
@@ -217,8 +180,4 @@ namespace CamelotFramework
 
 
 		RENDER_WINDOW_DESC mDesc;
 		RENDER_WINDOW_DESC mDesc;
     };
     };
-	/** @} */
-	/** @} */
-
-} // Namespace
-#endif
+}

+ 1 - 2
CamelotCore/Source/CmMultiRenderTexture.cpp

@@ -40,7 +40,6 @@ namespace CamelotFramework
 
 
 				if(!colorSurfacePropertiesSet)
 				if(!colorSurfacePropertiesSet)
 				{
 				{
-					mPriority = CM_REND_TO_TEX_RT_GROUP;
 					mWidth = texture->getWidth();
 					mWidth = texture->getWidth();
 					mHeight = texture->getWidth();
 					mHeight = texture->getWidth();
 					mColorDepth = CamelotFramework::PixelUtil::getNumElemBits(texture->getFormat());
 					mColorDepth = CamelotFramework::PixelUtil::getNumElemBits(texture->getFormat());
@@ -147,7 +146,7 @@ namespace CamelotFramework
 		}
 		}
 	}
 	}
 
 
-	void MultiRenderTexture::copyContentsToMemory( const PixelData &dst, FrameBuffer buffer /*= FB_AUTO */ )
+	void MultiRenderTexture::copyToMemory(const PixelData &dst, FrameBuffer buffer)
 	{
 	{
 		throw std::exception("The method or operation is not implemented.");
 		throw std::exception("The method or operation is not implemented.");
 	}
 	}

+ 2 - 40
CamelotCore/Source/CmRenderTarget.cpp

@@ -34,11 +34,8 @@ THE SOFTWARE.
 namespace CamelotFramework {
 namespace CamelotFramework {
 
 
     RenderTarget::RenderTarget()
     RenderTarget::RenderTarget()
-		:mPriority(CM_DEFAULT_RT_GROUP),
-		mActive(true),
-		mHwGamma(false), 
-		mVSync(false),
-		mFSAA(0)
+		:mActive(true), mHwGamma(false), mVSync(false), mFSAA(0),
+		mWidth(0), mHeight(0), mColorDepth(0)
     {
     {
     }
     }
 
 
@@ -46,43 +43,8 @@ namespace CamelotFramework {
     {
     {
     }
     }
 
 
-    const String& RenderTarget::getName(void) const
-    {
-        return mName;
-    }
-
-    void RenderTarget::getMetrics(unsigned int& width, unsigned int& height, unsigned int& colourDepth)
-    {
-        width = mWidth;
-        height = mHeight;
-        colourDepth = mColorDepth;
-    }
-
-    unsigned int RenderTarget::getWidth(void) const
-    {
-        return mWidth;
-    }
-    unsigned int RenderTarget::getHeight(void) const
-    {
-        return mHeight;
-    }
-    unsigned int RenderTarget::getColourDepth(void) const
-    {
-        return mColorDepth;
-    }
-
 	void RenderTarget::getCustomAttribute(const String& name, void* pData) const
 	void RenderTarget::getCustomAttribute(const String& name, void* pData) const
     {
     {
         CM_EXCEPT(InvalidParametersException, "Attribute not found.");
         CM_EXCEPT(InvalidParametersException, "Attribute not found.");
     }
     }
-
-    bool RenderTarget::isActive() const
-    {
-        return mActive;
-    }
-
-    void RenderTarget::setActive( bool state )
-    {
-        mActive = state;
-    }
 }        
 }        

+ 8 - 2
CamelotCore/Source/CmRenderTexture.cpp

@@ -45,6 +45,13 @@ namespace CamelotFramework
 
 
 	}
 	}
 
 
+	RenderTexturePtr RenderTexture::create(TextureType textureType, UINT32 width, UINT32 height, 
+		PixelFormat format, bool hwGamma, UINT32 fsaa, const String& fsaaHint, 
+		bool createDepth, PixelFormat depthStencilFormat)
+	{
+		return TextureManager::instance().createRenderTexture(textureType, width, height, format, hwGamma, fsaa, fsaaHint, createDepth, depthStencilFormat);
+	}
+
 	void RenderTexture::destroy_internal()
 	void RenderTexture::destroy_internal()
 	{
 	{
 		if(mColorSurface != nullptr)
 		if(mColorSurface != nullptr)
@@ -68,7 +75,6 @@ namespace CamelotFramework
 			mColorSurface = Texture::requestView(texture, desc.colorSurface.mipLevel, 1, 
 			mColorSurface = Texture::requestView(texture, desc.colorSurface.mipLevel, 1, 
 				desc.colorSurface.face, desc.colorSurface.numFaces, GVU_RENDERTARGET);
 				desc.colorSurface.face, desc.colorSurface.numFaces, GVU_RENDERTARGET);
 
 
-			mPriority = CM_REND_TO_TEX_RT_GROUP;
 			mWidth = texture->getWidth();
 			mWidth = texture->getWidth();
 			mHeight = texture->getWidth();
 			mHeight = texture->getWidth();
 			mColorDepth = CamelotFramework::PixelUtil::getNumElemBits(texture->getFormat());
 			mColorDepth = CamelotFramework::PixelUtil::getNumElemBits(texture->getFormat());
@@ -132,7 +138,7 @@ namespace CamelotFramework
 		}
 		}
 	}
 	}
 
 
-	void RenderTexture::copyContentsToMemory( const PixelData &dst, FrameBuffer buffer /*= FB_AUTO */ )
+	void RenderTexture::copyToMemory( const PixelData &dst, FrameBuffer buffer /*= FB_AUTO */ )
 	{
 	{
 		throw std::exception("The method or operation is not implemented.");
 		throw std::exception("The method or operation is not implemented.");
 	}
 	}

+ 1 - 14
CamelotCore/Source/CmRenderWindow.cpp

@@ -33,10 +33,7 @@ THE SOFTWARE.
 namespace CamelotFramework 
 namespace CamelotFramework 
 {
 {
     RenderWindow::RenderWindow(const RENDER_WINDOW_DESC& desc)
     RenderWindow::RenderWindow(const RENDER_WINDOW_DESC& desc)
-        : RenderTarget()
-		, mIsFullScreen(false)
-		, mDesc(desc)
-		, mHasFocus(false)
+        : RenderTarget(), mIsFullScreen(false), mDesc(desc), mHasFocus(false), mLeft(0), mTop(0)
     {
     {
 
 
     }
     }
@@ -46,16 +43,6 @@ namespace CamelotFramework
 		
 		
 	}
 	}
 
 
-    void RenderWindow::getMetrics(UINT32& width, UINT32& height, UINT32& colourDepth,
-		INT32& left, INT32& top)
-    {
-        width = mWidth;
-        height = mHeight;
-        colourDepth = mColorDepth;
-        left = mLeft;
-        top = mTop;
-    }
-
 	void RenderWindow::setVisible(bool visible)
 	void RenderWindow::setVisible(bool visible)
 	{
 	{
 		THROW_IF_NOT_CORE_THREAD;
 		THROW_IF_NOT_CORE_THREAD;

+ 0 - 7
CamelotCore/Source/CmWindowEventUtilities.cpp

@@ -324,15 +324,8 @@ void GLXProc( RenderWindow *win, const XEvent &event )
 	case ConfigureNotify:
 	case ConfigureNotify:
 	{    
 	{    
         // This could be slightly more efficient if windowMovedOrResized took arguments:
         // This could be slightly more efficient if windowMovedOrResized took arguments:
-		unsigned int oldWidth, oldHeight, oldDepth;
-		int oldLeft, oldTop;
-		win->getMetrics(oldWidth, oldHeight, oldDepth, oldLeft, oldTop);
 		win->_windowMovedOrResized();
 		win->_windowMovedOrResized();
 
 
-		unsigned int newWidth, newHeight, newDepth;
-		int newLeft, newTop;
-		win->getMetrics(newWidth, newHeight, newDepth, newLeft, newTop);
-
 		break;
 		break;
 	}
 	}
 	case FocusIn:     // Gained keyboard focus
 	case FocusIn:     // Gained keyboard focus

+ 1 - 4
CamelotD3D11RenderSystem/Include/CmD3D11RenderWindow.h

@@ -38,7 +38,7 @@ namespace CamelotFramework
 		/**
 		/**
 		 * @copydoc RenderWindow::copyContentsToMemory
 		 * @copydoc RenderWindow::copyContentsToMemory
 		 */
 		 */
-		void copyContentsToMemory(const PixelData &dst, FrameBuffer buffer);
+		void copyToMemory(const PixelData &dst, FrameBuffer buffer);
 
 
 		/**
 		/**
 		 * @copydoc RenderWindow::swapBuffers
 		 * @copydoc RenderWindow::swapBuffers
@@ -81,9 +81,6 @@ namespace CamelotFramework
 		void startMove();
 		void startMove();
 		void endMove();
 		void endMove();
 
 
-		/**
-		 * @copydoc RenderWindow::reposition
-		 */
 		void _windowMovedOrResized();
 		void _windowMovedOrResized();
 
 
 		DXGI_SWAP_CHAIN_DESC* _getPresentationParameters(void) { return &mSwapChainDesc; }
 		DXGI_SWAP_CHAIN_DESC* _getPresentationParameters(void) { return &mSwapChainDesc; }

+ 1 - 1
CamelotD3D11RenderSystem/Source/CmD3D11RenderWindow.cpp

@@ -457,7 +457,7 @@ namespace CamelotFramework
 		RenderWindow::getCustomAttribute(name, pData);
 		RenderWindow::getCustomAttribute(name, pData);
 	}
 	}
 
 
-	void D3D11RenderWindow::copyContentsToMemory(const PixelData &dst, FrameBuffer buffer)
+	void D3D11RenderWindow::copyToMemory(const PixelData &dst, FrameBuffer buffer)
 	{
 	{
 		THROW_IF_NOT_CORE_THREAD;
 		THROW_IF_NOT_CORE_THREAD;
 
 

+ 1 - 1
CamelotD3D9Renderer/Include/CmD3D9RenderWindow.h

@@ -81,7 +81,7 @@ namespace CamelotFramework
 		/**
 		/**
 		 * @copydoc RenderWindow::copyContentsToMemory
 		 * @copydoc RenderWindow::copyContentsToMemory
 		 */
 		 */
-		void copyContentsToMemory(const PixelData &dst, FrameBuffer buffer);
+		void copyToMemory(const PixelData &dst, FrameBuffer buffer);
 
 
 		/**
 		/**
 		 * @copydoc RenderWindow::requiresTextureFlipping
 		 * @copydoc RenderWindow::requiresTextureFlipping

+ 1 - 1
CamelotD3D9Renderer/Source/CmD3D9RenderSystem.cpp

@@ -1164,7 +1164,7 @@ namespace CamelotFramework
 			CM_EXCEPT(RenderingAPIException, "Failed to set viewport.");
 			CM_EXCEPT(RenderingAPIException, "Failed to set viewport.");
 
 
 		// Set sRGB write mode
 		// Set sRGB write mode
-		__SetRenderState(D3DRS_SRGBWRITEENABLE, target->isHardwareGammaEnabled());
+		__SetRenderState(D3DRS_SRGBWRITEENABLE, target->isHwGammaEnabled());
 	}
 	}
 	//---------------------------------------------------------------------
 	//---------------------------------------------------------------------
 	void D3D9RenderSystem::beginFrame()
 	void D3D9RenderSystem::beginFrame()

+ 1 - 1
CamelotD3D9Renderer/Source/CmD3D9RenderWindow.cpp

@@ -479,7 +479,7 @@ namespace CamelotFramework
 		return Int2(pos.x, pos.y);
 		return Int2(pos.x, pos.y);
 	}
 	}
 
 
-	void D3D9RenderWindow::copyContentsToMemory(const PixelData &dst, FrameBuffer buffer)
+	void D3D9RenderWindow::copyToMemory(const PixelData &dst, FrameBuffer buffer)
 	{
 	{
 		THROW_IF_NOT_CORE_THREAD;
 		THROW_IF_NOT_CORE_THREAD;
 
 

+ 1 - 1
CamelotGLRenderer/Include/CmWin32Window.h

@@ -71,7 +71,7 @@ namespace CamelotFramework
 		/**
 		/**
 		 * @copydoc RenderWindow::copyContentsToMemory
 		 * @copydoc RenderWindow::copyContentsToMemory
 		 */
 		 */
-		void copyContentsToMemory(const PixelData &dst, FrameBuffer buffer);
+		void copyToMemory(const PixelData &dst, FrameBuffer buffer);
 
 
 		/**
 		/**
 		 * @copydoc RenderWindow::swapBuffers
 		 * @copydoc RenderWindow::swapBuffers

+ 1 - 1
CamelotGLRenderer/Source/CmGLRenderSystem.cpp

@@ -617,7 +617,7 @@ namespace CamelotFramework
 		if (GLEW_EXT_framebuffer_sRGB)
 		if (GLEW_EXT_framebuffer_sRGB)
 		{
 		{
 			// Enable / disable sRGB states
 			// Enable / disable sRGB states
-			if (target->isHardwareGammaEnabled())
+			if (target->isHwGammaEnabled())
 			{
 			{
 				glEnable(GL_FRAMEBUFFER_SRGB_EXT);
 				glEnable(GL_FRAMEBUFFER_SRGB_EXT);
 
 

+ 1 - 1
CamelotGLRenderer/Source/CmWin32Window.cpp

@@ -598,7 +598,7 @@ namespace CamelotFramework
 		}
 		}
 	}
 	}
 
 
-	void Win32Window::copyContentsToMemory(const PixelData &dst, FrameBuffer buffer)
+	void Win32Window::copyToMemory(const PixelData &dst, FrameBuffer buffer)
 	{
 	{
 		THROW_IF_NOT_CORE_THREAD;
 		THROW_IF_NOT_CORE_THREAD;
 
 

+ 6 - 0
EditorWindowDock.txt

@@ -39,6 +39,12 @@ DockContainer biggest issues:
 
 
 FIRST CREATE DOCK CONTAINER WITHOUT DRAG AND DROP SUPPORT
 FIRST CREATE DOCK CONTAINER WITHOUT DRAG AND DROP SUPPORT
 
 
+Add RenderTexture::create
+ - Attempt creating one and attaching it to the primary camera
+ - Test DX9/DX11/OpenGL
+ - Figure out how to use it for display, and then create a GUIRenderTexture element.
+    - Rendering from it should technically just involve setting it as a sprite texture and using ImageSprite
+
 Make sure to test everything thoroughly - right now I have tested very little
 Make sure to test everything thoroughly - right now I have tested very little
 Drag and drop manager currently ignores the provided icon, but it should use it as a cursor
 Drag and drop manager currently ignores the provided icon, but it should use it as a cursor
 
 

+ 1 - 0
TODO.txt

@@ -40,6 +40,7 @@ TextBox needed elements:
   - Add special text input commands, which will get repeatedly sent as long as their corresponding key is set in GUIManager
   - Add special text input commands, which will get repeatedly sent as long as their corresponding key is set in GUIManager
  - Get DebugCamera to ignore input if GUI has already processed it
  - Get DebugCamera to ignore input if GUI has already processed it
  - Cut/Copy/Paste
  - Cut/Copy/Paste
+ - Clicking on the InputBox doesn't display the cursor. I need to click another time and then it shows up.
 
 
  - LATER
  - LATER
   - TAB between input elements
   - TAB between input elements