From 23bf546b6a22884b818bf5bd78a34ec5aa8e6efe Mon Sep 17 00:00:00 2001 From: laurentgom Date: Sun, 31 May 2009 11:38:54 +0000 Subject: [PATCH] FS#84 - Rewrite the OpenGL context handling FS#66 - Free the global rendering context Added thread-local storage classes git-svn-id: https://sfml.svn.sourceforge.net/svnroot/sfml/branches/sfml2@1116 4e206d99-4929-0410-ac5d-dfc041789085 --- CSFML/src/SFML/Window/Context.cpp | 8 +- build/codeblocks/SFML.workspace | 4 +- build/codeblocks/sfml-graphics.cbp | 4 +- build/codeblocks/sfml-system.cbp | 6 + build/codeblocks/sfml-window.cbp | 2 + build/vc2005/sfml-graphics.vcproj | 16 +- build/vc2005/sfml-system.vcproj | 24 +++ build/vc2005/sfml-window.vcproj | 8 + build/vc2008/sfml-graphics.vcproj | 16 +- build/vc2008/sfml-system.vcproj | 24 +++ build/vc2008/sfml-window.vcproj | 8 + dotnet/extlibs/csfml-audio.dll | Bin 102400 -> 61440 bytes dotnet/extlibs/csfml-graphics.dll | Bin 1159168 -> 1163264 bytes dotnet/extlibs/csfml-window.dll | Bin 40960 -> 41984 bytes dotnet/src/Graphics/Image.cs | 2 +- include/SFML/System.hpp | 2 + include/SFML/System/ThreadLocal.hpp | 95 ++++++++++ include/SFML/System/ThreadLocalPtr.hpp | 102 ++++++++++ include/SFML/System/ThreadLocalPtr.inl | 89 +++++++++ include/SFML/Window/Context.hpp | 141 ++++---------- include/SFML/Window/Window.hpp | 5 +- src/SFML/Graphics/Drawable.cpp | 2 +- src/SFML/Graphics/FontLoader.cpp | 5 +- .../{GraphicsContext.hpp => GLCheck.cpp} | 86 ++------- src/SFML/Graphics/GLCheck.hpp | 73 +++++++ src/SFML/Graphics/Image.cpp | 15 +- src/SFML/Graphics/PostFX.cpp | 17 +- src/SFML/Graphics/RenderTarget.cpp | 2 +- src/SFML/Graphics/RenderWindow.cpp | 5 +- src/SFML/Graphics/Shape.cpp | 2 +- src/SFML/Graphics/Sprite.cpp | 2 +- src/SFML/Graphics/String.cpp | 2 +- src/SFML/System/ThreadLocal.cpp | 80 ++++++++ .../Unix/ThreadLocalImpl.cpp} | 72 +++---- src/SFML/System/Unix/ThreadLocalImpl.hpp | 87 +++++++++ src/SFML/System/Win32/ThreadLocalImpl.cpp | 72 +++++++ src/SFML/System/Win32/ThreadLocalImpl.hpp | 87 +++++++++ src/SFML/Window/Context.cpp | 123 ++---------- src/SFML/Window/ContextGL.cpp | 178 ++++++++++++++++++ src/SFML/Window/ContextGL.hpp | 156 +++++++++++++++ src/SFML/Window/Linux/ContextGLX.cpp | 11 +- src/SFML/Window/Win32/ContextWGL.cpp | 19 +- src/SFML/Window/Win32/ContextWGL.hpp | 4 +- src/SFML/Window/Window.cpp | 12 +- 44 files changed, 1263 insertions(+), 405 deletions(-) create mode 100644 include/SFML/System/ThreadLocal.hpp create mode 100644 include/SFML/System/ThreadLocalPtr.hpp create mode 100644 include/SFML/System/ThreadLocalPtr.inl rename src/SFML/Graphics/{GraphicsContext.hpp => GLCheck.cpp} (63%) create mode 100644 src/SFML/Graphics/GLCheck.hpp create mode 100644 src/SFML/System/ThreadLocal.cpp rename src/SFML/{Graphics/GraphicsContext.cpp => System/Unix/ThreadLocalImpl.cpp} (52%) create mode 100644 src/SFML/System/Unix/ThreadLocalImpl.hpp create mode 100644 src/SFML/System/Win32/ThreadLocalImpl.cpp create mode 100644 src/SFML/System/Win32/ThreadLocalImpl.hpp create mode 100644 src/SFML/Window/ContextGL.cpp create mode 100644 src/SFML/Window/ContextGL.hpp diff --git a/CSFML/src/SFML/Window/Context.cpp b/CSFML/src/SFML/Window/Context.cpp index 7b0ac35d9..2f2e1003b 100644 --- a/CSFML/src/SFML/Window/Context.cpp +++ b/CSFML/src/SFML/Window/Context.cpp @@ -32,11 +32,7 @@ struct sfContext { - sfContext() : This(sf::Context::New()) {} - - ~sfContext() {delete This;} - - sf::Context* This; + sf::Context This; }; @@ -63,5 +59,5 @@ void sfContext_Destroy(sfContext* Context) //////////////////////////////////////////////////////////// void sfContext_SetActive(sfContext* Context, sfBool Active) { - CSFML_CALL_PTR(Context, SetActive(Active == sfTrue)) + CSFML_CALL(Context, SetActive(Active == sfTrue)) } diff --git a/build/codeblocks/SFML.workspace b/build/codeblocks/SFML.workspace index a55cc15eb..56e3f261b 100644 --- a/build/codeblocks/SFML.workspace +++ b/build/codeblocks/SFML.workspace @@ -1,11 +1,11 @@ - + - + diff --git a/build/codeblocks/sfml-graphics.cbp b/build/codeblocks/sfml-graphics.cbp index a6a61142d..5230223da 100644 --- a/build/codeblocks/sfml-graphics.cbp +++ b/build/codeblocks/sfml-graphics.cbp @@ -138,14 +138,14 @@ + + - - diff --git a/build/codeblocks/sfml-system.cbp b/build/codeblocks/sfml-system.cbp index 6ae9ecc0b..4a1bd373f 100644 --- a/build/codeblocks/sfml-system.cbp +++ b/build/codeblocks/sfml-system.cbp @@ -99,6 +99,9 @@ + + + @@ -112,6 +115,7 @@ + @@ -119,6 +123,8 @@ + + diff --git a/build/codeblocks/sfml-window.cbp b/build/codeblocks/sfml-window.cbp index 7a1b38a78..7ea8c3abf 100644 --- a/build/codeblocks/sfml-window.cbp +++ b/build/codeblocks/sfml-window.cbp @@ -119,6 +119,8 @@ + + diff --git a/build/vc2005/sfml-graphics.vcproj b/build/vc2005/sfml-graphics.vcproj index 3b34601e3..f2fe6b0aa 100644 --- a/build/vc2005/sfml-graphics.vcproj +++ b/build/vc2005/sfml-graphics.vcproj @@ -3314,18 +3314,18 @@ RelativePath="..\..\src\SFML\Graphics\FontLoader.hpp" > + + + + - - - - diff --git a/build/vc2005/sfml-system.vcproj b/build/vc2005/sfml-system.vcproj index d357c97bb..52490548f 100644 --- a/build/vc2005/sfml-system.vcproj +++ b/build/vc2005/sfml-system.vcproj @@ -365,6 +365,14 @@ RelativePath="..\..\src\SFML\System\Win32\ThreadImpl.hpp" > + + + + + + + + + + + + diff --git a/build/vc2005/sfml-window.vcproj b/build/vc2005/sfml-window.vcproj index d53068fbe..a3187c5de 100644 --- a/build/vc2005/sfml-window.vcproj +++ b/build/vc2005/sfml-window.vcproj @@ -456,6 +456,14 @@ RelativePath="..\..\include\SFML\Window\Context.hpp" > + + + + diff --git a/build/vc2008/sfml-graphics.vcproj b/build/vc2008/sfml-graphics.vcproj index 24a62a308..329cdb7e1 100644 --- a/build/vc2008/sfml-graphics.vcproj +++ b/build/vc2008/sfml-graphics.vcproj @@ -3308,18 +3308,18 @@ RelativePath="..\..\src\SFML\Graphics\FontLoader.hpp" > + + + + - - - - diff --git a/build/vc2008/sfml-system.vcproj b/build/vc2008/sfml-system.vcproj index 00cf086c0..0e4c066bb 100644 --- a/build/vc2008/sfml-system.vcproj +++ b/build/vc2008/sfml-system.vcproj @@ -358,6 +358,14 @@ RelativePath="..\..\src\SFML\System\Win32\ThreadImpl.hpp" > + + + + + + + + + + + + diff --git a/build/vc2008/sfml-window.vcproj b/build/vc2008/sfml-window.vcproj index 564e3bb68..e393f9f40 100644 --- a/build/vc2008/sfml-window.vcproj +++ b/build/vc2008/sfml-window.vcproj @@ -415,6 +415,14 @@ RelativePath="..\..\include\SFML\Window\Context.hpp" > + + + + diff --git a/dotnet/extlibs/csfml-audio.dll b/dotnet/extlibs/csfml-audio.dll index 9627ee95e67bca6a066da9ad8fc9be85fcd9f7bb..e5bd1ddcc595a2181e5685560e4960e3ea349638 100644 GIT binary patch literal 61440 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 I_&)^x1&CLJ;s5{u literal 102400 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 diff --git a/dotnet/extlibs/csfml-graphics.dll b/dotnet/extlibs/csfml-graphics.dll index 846ebdc02b0d54a14b548e482b4b6d8ecaa03059..586ef315d58fbf13f38d8502f500a0bc4bd606e8 100644 GIT binary patch delta 129862 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

Y=v%uC9FoS0` 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 diff --git a/dotnet/extlibs/csfml-window.dll b/dotnet/extlibs/csfml-window.dll index 52dad2d2ea6800a4e6d30d14ce74fdc65d577647..31cdd955f48185764146dd6fe89bd7565a4089cb 100644 GIT binary patch delta 16148 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 UfYHjdtTtYor>$si-rXhrFOK+qRsaA1 delta 15313 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 A;s5{u diff --git a/dotnet/src/Graphics/Image.cs b/dotnet/src/Graphics/Image.cs index be66c2828..463361945 100644 --- a/dotnet/src/Graphics/Image.cs +++ b/dotnet/src/Graphics/Image.cs @@ -70,7 +70,7 @@ namespace SFML { if (This == IntPtr.Zero) throw new LoadingFailedException("image", filename); - } + } //////////////////////////////////////////////////////////// ///

diff --git a/include/SFML/System.hpp b/include/SFML/System.hpp index 635021021..63661f665 100644 --- a/include/SFML/System.hpp +++ b/include/SFML/System.hpp @@ -36,6 +36,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/include/SFML/System/ThreadLocal.hpp b/include/SFML/System/ThreadLocal.hpp new file mode 100644 index 000000000..37b95033c --- /dev/null +++ b/include/SFML/System/ThreadLocal.hpp @@ -0,0 +1,95 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + +#ifndef SFML_THREADLOCAL_HPP +#define SFML_THREADLOCAL_HPP + +//////////////////////////////////////////////////////////// +// Headers +//////////////////////////////////////////////////////////// +#include +#include +#include + + +namespace sf +{ +namespace priv +{ + class ThreadLocalImpl; +} + +//////////////////////////////////////////////////////////// +/// Wrapper to handle variables that are local to threads. +/// This means that the same ThreadLocalStorage variable will +/// hold a different value for each different thread. +/// For a more strongly-typed interface, use the ThreadLocal +/// template class. +//////////////////////////////////////////////////////////// +class SFML_API ThreadLocal : NonCopyable +{ +public : + + //////////////////////////////////////////////////////////// + /// Default constructor + /// + /// \param Value : Optional value to initalize the variable (NULL by default) + /// + //////////////////////////////////////////////////////////// + ThreadLocal(void* Value = NULL); + + //////////////////////////////////////////////////////////// + /// Destructor + /// + //////////////////////////////////////////////////////////// + ~ThreadLocal(); + + //////////////////////////////////////////////////////////// + /// Set the thread-specific value of the variable + /// + /// \param Value : Value of the variable for this thread + /// + //////////////////////////////////////////////////////////// + void SetValue(void* Value); + + //////////////////////////////////////////////////////////// + /// Retrieve the thread-specific value of the variable + /// + /// \return Value of the variable for this thread + /// + //////////////////////////////////////////////////////////// + void* GetValue() const; + +private : + + //////////////////////////////////////////////////////////// + // Member data + //////////////////////////////////////////////////////////// + priv::ThreadLocalImpl* myImpl; ///< Pointer to the OS specific implementation +}; + +} // namespace sf + + +#endif // SFML_THREADLOCAL_HPP diff --git a/include/SFML/System/ThreadLocalPtr.hpp b/include/SFML/System/ThreadLocalPtr.hpp new file mode 100644 index 000000000..ffc759373 --- /dev/null +++ b/include/SFML/System/ThreadLocalPtr.hpp @@ -0,0 +1,102 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + +#ifndef SFML_THREADLOCALPTR_HPP +#define SFML_THREADLOCALPTR_HPP + +//////////////////////////////////////////////////////////// +// Headers +//////////////////////////////////////////////////////////// +#include + + +namespace sf +{ +//////////////////////////////////////////////////////////// +/// Type-safe wrapper for thread local pointer variables +//////////////////////////////////////////////////////////// +template +class ThreadLocalPtr : private ThreadLocal +{ +public : + + //////////////////////////////////////////////////////////// + /// Default constructor + /// + /// \param Value : Optional value to initalize the variable (NULL by default) + /// + //////////////////////////////////////////////////////////// + ThreadLocalPtr(T* Value = NULL); + + //////////////////////////////////////////////////////////// + /// Operator * overload to return a reference to the variable + /// + /// \return Reference to the thread-local value of the variable + /// + //////////////////////////////////////////////////////////// + T& operator *() const; + + //////////////////////////////////////////////////////////// + /// Operator -> overload to return a pointer to the variable + /// + /// \return Pointer to the thread-local value of the variable + /// + //////////////////////////////////////////////////////////// + T* operator ->() const; + + //////////////////////////////////////////////////////////// + /// Implicit cast operator to T* + /// + /// \return Value of the pointer for this thread + /// + //////////////////////////////////////////////////////////// + operator T*() const; + + //////////////////////////////////////////////////////////// + /// Assignment operator + /// + /// \param Value : New pointer value to assign for this thread + /// + /// \return Reference to this + /// + //////////////////////////////////////////////////////////// + ThreadLocalPtr& operator =(T* Value); + + //////////////////////////////////////////////////////////// + /// Assignment operator + /// + /// \param Other : Other thread-local pointer value to assign + /// + /// \return Reference to this + /// + //////////////////////////////////////////////////////////// + ThreadLocalPtr& operator =(const ThreadLocalPtr& Other); +}; + +} // namespace sf + +#include + + +#endif // SFML_THREADLOCALPTR_HPP diff --git a/include/SFML/System/ThreadLocalPtr.inl b/include/SFML/System/ThreadLocalPtr.inl new file mode 100644 index 000000000..c4f8719d7 --- /dev/null +++ b/include/SFML/System/ThreadLocalPtr.inl @@ -0,0 +1,89 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + + +namespace sf +{ +//////////////////////////////////////////////////////////// +/// Default constructor +//////////////////////////////////////////////////////////// +template +ThreadLocalPtr::ThreadLocalPtr(T* Value) : +ThreadLocal(Value) +{ +} + + +//////////////////////////////////////////////////////////// +/// Operator * overload to return a reference to the variable +//////////////////////////////////////////////////////////// +template +T& ThreadLocalPtr::operator *() const +{ + return *static_cast(GetValue()); +} + + +//////////////////////////////////////////////////////////// +/// Operator -> overload to return a pointer to the variable +//////////////////////////////////////////////////////////// +template +T* ThreadLocalPtr::operator ->() const +{ + return static_cast(GetValue()); +} + + +//////////////////////////////////////////////////////////// +/// Implicit cast operator to T* +//////////////////////////////////////////////////////////// +template +ThreadLocalPtr::operator T*() const +{ + return static_cast(GetValue()); +} + + +//////////////////////////////////////////////////////////// +/// Assignment operator +//////////////////////////////////////////////////////////// +template +ThreadLocalPtr& ThreadLocalPtr::operator =(T* Value) +{ + SetValue(Value); + return *this; +} + + +//////////////////////////////////////////////////////////// +/// Assignment operator +//////////////////////////////////////////////////////////// +template +ThreadLocalPtr& ThreadLocalPtr::operator =(const ThreadLocalPtr& Other) +{ + SetValue(Other.GetValue()); + return *this; +} + +} // namespace sf diff --git a/include/SFML/Window/Context.hpp b/include/SFML/Window/Context.hpp index 06b29eef8..aeeaa49e8 100644 --- a/include/SFML/Window/Context.hpp +++ b/include/SFML/Window/Context.hpp @@ -29,7 +29,6 @@ // Headers //////////////////////////////////////////////////////////// #include -#include #include @@ -37,132 +36,70 @@ namespace sf { namespace priv { -class WindowImpl; + class ContextGL; } //////////////////////////////////////////////////////////// -/// Abstract class representing an OpenGL context +/// Class holding a valid drawing context +/// +/// If you need to make OpenGL / graphics calls without +/// having an active window (like in a thread), you can use +/// an instance of this class to get a valid context. +/// +/// Having a valid context is necessary for *every* OpenGL call, +/// and for most of the classes from the Graphics package. +/// +/// Note that a context is only active in its current thread, +/// if you create a new thread it will have no valid context +/// by default. +/// +/// \code +/// void ThreadedFunc(void*) +/// { +/// sf::Context Ctx; +/// // from now on, you have a valid context +/// +/// // you can make OpenGL calls +/// glClear(GL_DEPTH_BUFFER_BIT); +/// +/// // as well as using objects from the graphics package +/// sf::Image Img; +/// Img.LoadFromFile("image.png"); +/// } +/// // the context is automatically deactivated and destroyed +/// // by the sf::Context destructor +/// \endcode //////////////////////////////////////////////////////////// class SFML_API Context : NonCopyable { public : //////////////////////////////////////////////////////////// - /// Create a new context, not associated to a window - /// - /// \return Pointer to the created context - /// - //////////////////////////////////////////////////////////// - static Context* New(); - - //////////////////////////////////////////////////////////// - /// Create a new context attached to a window - /// - /// \param Owner : Pointer to the owner window - /// \param BitsPerPixel : Pixel depth (in bits per pixel) - /// \param Settings : Creation parameters - /// - /// \return Pointer to the created context - /// - //////////////////////////////////////////////////////////// - static Context* New(const priv::WindowImpl* Owner, unsigned int BitsPerPixel, const ContextSettings& Settings); - - //////////////////////////////////////////////////////////// - /// Check if a context is active on the current thread - /// - /// \return True if there's an active context, false otherwise - /// - //////////////////////////////////////////////////////////// - static bool IsContextActive(); - - //////////////////////////////////////////////////////////// - /// Return the default context - /// - /// \return Reference to the default context - /// - //////////////////////////////////////////////////////////// - static Context& GetDefault(); - -public : - - //////////////////////////////////////////////////////////// - /// Virtual destructor - /// - //////////////////////////////////////////////////////////// - virtual ~Context(); - - //////////////////////////////////////////////////////////// - /// Get the settings of the context - /// - /// \return Structure containing the settings - /// - //////////////////////////////////////////////////////////// - const ContextSettings& GetSettings() const; - - //////////////////////////////////////////////////////////// - /// Activate or deactivate the context as the current target - /// for rendering - /// - /// \param Active : True to activate, false to deactivate - /// - /// \return True if operation was successful, false otherwise - /// - //////////////////////////////////////////////////////////// - bool SetActive(bool Active); - - //////////////////////////////////////////////////////////// - /// Display the contents of the context - /// - //////////////////////////////////////////////////////////// - virtual void Display() = 0; - - //////////////////////////////////////////////////////////// - /// Enable / disable vertical synchronization - /// - /// \param Enabled : True to enable v-sync, false to deactivate - /// - //////////////////////////////////////////////////////////// - virtual void UseVerticalSync(bool Enabled) = 0; - -protected : - - //////////////////////////////////////////////////////////// - /// Default constructor + /// Default constructor -- creates and activates the context /// //////////////////////////////////////////////////////////// Context(); //////////////////////////////////////////////////////////// - /// Make this context the current one - /// - /// \param Active : True to activate, false to deactivate - /// - /// \return True on success, false if any error happened + /// Destructor -- deactivates and destroys the context /// //////////////////////////////////////////////////////////// - virtual bool MakeCurrent(bool Active) = 0; + ~Context(); //////////////////////////////////////////////////////////// - /// Evaluate a pixel format configuration. - /// This functions can be used by implementations that have - /// several valid formats and want to get the best one + /// Activate or deactivate explicitely the context /// - /// \param BitsPerPixel : Requested pixel depth (bits per pixel) - /// \param Settings : Requested additionnal settings - /// \param ColorBits : Color bits of the configuration to evaluate - /// \param DepthBits : Depth bits of the configuration to evaluate - /// \param StencilBits : Stencil bits of the configuration to evaluate - /// \param Antialiasing : Antialiasing level of the configuration to evaluate - /// - /// \return Score of the configuration : the lower the better + /// \param Active True to activate, false to deactivate /// //////////////////////////////////////////////////////////// - static int EvaluateFormat(unsigned int BitsPerPixel, const ContextSettings& Settings, int ColorBits, int DepthBits, int StencilBits, int Antialiasing); + void SetActive(bool Active); + +private : //////////////////////////////////////////////////////////// // Member data //////////////////////////////////////////////////////////// - ContextSettings mySettings; ///< Creation settings of the context + priv::ContextGL* myContext; ///< Internal OpenGL context }; } // namespace sf diff --git a/include/SFML/Window/Window.hpp b/include/SFML/Window/Window.hpp index 797c15d34..ef34a4455 100644 --- a/include/SFML/Window/Window.hpp +++ b/include/SFML/Window/Window.hpp @@ -46,10 +46,9 @@ namespace sf namespace priv { class WindowImpl; + class ContextGL; } -class Context; - //////////////////////////////////////////////////////////// /// Window is a rendering window ; it can create a new window /// or connect to an existing one @@ -309,7 +308,7 @@ private : // Member data //////////////////////////////////////////////////////////// priv::WindowImpl* myWindow; ///< Platform-specific implementation of the window - Context* myContext; ///< Platform-specific implementation of the OpenGL context + priv::ContextGL* myContext; ///< Platform-specific implementation of the OpenGL context std::queue myEvents; ///< Queue of received events Input myInput; ///< Input manager connected to window Clock myClock; ///< Clock for measuring the elapsed time between frames diff --git a/src/SFML/Graphics/Drawable.cpp b/src/SFML/Graphics/Drawable.cpp index 7ff5d09ae..98df03690 100644 --- a/src/SFML/Graphics/Drawable.cpp +++ b/src/SFML/Graphics/Drawable.cpp @@ -26,7 +26,7 @@ // Headers //////////////////////////////////////////////////////////// #include -#include +#include #include #include diff --git a/src/SFML/Graphics/FontLoader.cpp b/src/SFML/Graphics/FontLoader.cpp index 922cac984..cf3345672 100644 --- a/src/SFML/Graphics/FontLoader.cpp +++ b/src/SFML/Graphics/FontLoader.cpp @@ -29,7 +29,7 @@ #include #include #include -#include +#include #include FT_GLYPH_H #include #include @@ -163,9 +163,6 @@ bool FontLoader::LoadFontFromMemory(const char* Data, std::size_t SizeInBytes, u //////////////////////////////////////////////////////////// FT_Error FontLoader::CreateBitmapFont(FT_Face FontFace, unsigned int CharSize, const Unicode::UTF32String& Charset, Font& LoadedFont) { - // Make sure we have a valid context - priv::GraphicsContext Ctx; - // Let's find how many characters to put in each row to make them fit into a squared texture GLint MaxSize; GLCheck(glGetIntegerv(GL_MAX_TEXTURE_SIZE, &MaxSize)); diff --git a/src/SFML/Graphics/GraphicsContext.hpp b/src/SFML/Graphics/GLCheck.cpp similarity index 63% rename from src/SFML/Graphics/GraphicsContext.hpp rename to src/SFML/Graphics/GLCheck.cpp index 2fa77a3c0..b626b3d42 100644 --- a/src/SFML/Graphics/GraphicsContext.hpp +++ b/src/SFML/Graphics/GLCheck.cpp @@ -22,84 +22,19 @@ // //////////////////////////////////////////////////////////// -#ifndef SFML_GRAPHICSCONTEXT_HPP -#define SFML_GRAPHICSCONTEXT_HPP - //////////////////////////////////////////////////////////// // Headers //////////////////////////////////////////////////////////// -#include -#include -#include +#include #include -#include namespace sf { -class Context; - -namespace priv -{ -//////////////////////////////////////////////////////////// -/// RAII class ensuring a valid shared OpenGL context is bound -/// to the current thread for all the lifetime of the instance. -/// It also ensures all third party libraries (like GLEW) -/// are properly initialized -/// This class is for internal use only, it is required -/// to solve tricky problems involving multi-threading -//////////////////////////////////////////////////////////// -class GraphicsContext : NonCopyable -{ -public : - - //////////////////////////////////////////////////////////// - /// Default constructor, activate the global context - /// if no other context is bound to the current thread - /// - //////////////////////////////////////////////////////////// - GraphicsContext(); - - //////////////////////////////////////////////////////////// - /// Destructor, deactivate the global context - /// if no other context was previously bound to the current thread - /// - //////////////////////////////////////////////////////////// - ~GraphicsContext(); - -private : - - //////////////////////////////////////////////////////////// - // Member data - //////////////////////////////////////////////////////////// - bool myActivated; ///< Keep track of the activation state of the global context -}; - -} // namespace priv - - -//////////////////////////////////////////////////////////// -/// Let's define a macro to quickly check every OpenGL -/// API calls -//////////////////////////////////////////////////////////// -#ifdef SFML_DEBUG - - // In debug mode, perform a test on every OpenGL call - #define GLCheck(Func) ((Func), GLCheckError(__FILE__, __LINE__)) - -#else - - // Else, we don't add any overhead - #define GLCheck(Func) (Func) - -#endif - - //////////////////////////////////////////////////////////// /// Check the last OpenGL error -/// //////////////////////////////////////////////////////////// -inline void GLCheckError(const std::string& File, unsigned int Line) +void GLCheckError(const std::string& File, unsigned int Line) { // Get the last error GLenum ErrorCode = glGetError(); @@ -170,7 +105,18 @@ inline void GLCheckError(const std::string& File, unsigned int Line) } } + +//////////////////////////////////////////////////////////// +/// Make sure that GLEW is initialized +//////////////////////////////////////////////////////////// +void EnsureGlewInit() +{ + static bool Initialized = false; + if (!Initialized) + { + glewInit(); + Initialized = true; + } +} + } // namespace sf - - -#endif // SFML_GRAPHICSCONTEXT_HPP diff --git a/src/SFML/Graphics/GLCheck.hpp b/src/SFML/Graphics/GLCheck.hpp new file mode 100644 index 000000000..fff945bfc --- /dev/null +++ b/src/SFML/Graphics/GLCheck.hpp @@ -0,0 +1,73 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + +#ifndef SFML_GLCHECK_HPP +#define SFML_GLCHECK_HPP + +//////////////////////////////////////////////////////////// +// Headers +//////////////////////////////////////////////////////////// +#include +#include +#include + + +namespace sf +{ +//////////////////////////////////////////////////////////// +/// Let's define a macro to quickly check every OpenGL +/// API calls +//////////////////////////////////////////////////////////// +#ifdef SFML_DEBUG + + // In debug mode, perform a test on every OpenGL call + #define GLCheck(Func) ((Func), GLCheckError(__FILE__, __LINE__)) + +#else + + // Else, we don't add any overhead + #define GLCheck(Func) (Func) + +#endif + + +//////////////////////////////////////////////////////////// +/// Check the last OpenGL error +/// +/// \param File Source file where the call is located +/// \param Line Line number of the source file where the call is located +/// +//////////////////////////////////////////////////////////// +void GLCheckError(const std::string& File, unsigned int Line); + +//////////////////////////////////////////////////////////// +/// Make sure that GLEW is initialized +/// +//////////////////////////////////////////////////////////// +void EnsureGlewInit(); + +} // namespace sf + + +#endif // SFML_GLCHECK_HPP diff --git a/src/SFML/Graphics/Image.cpp b/src/SFML/Graphics/Image.cpp index f90673cd0..a3f9e2c22 100644 --- a/src/SFML/Graphics/Image.cpp +++ b/src/SFML/Graphics/Image.cpp @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include #include #include @@ -495,9 +495,6 @@ void Image::SetSmooth(bool Smooth) if (myTexture) { - // Make sure we have a valid context - priv::GraphicsContext Ctx; - GLint PreviousTexture; GLCheck(glGetIntegerv(GL_TEXTURE_BINDING_2D, &PreviousTexture)); @@ -569,8 +566,8 @@ FloatRect Image::GetTexCoords(const IntRect& Rect, bool Adjust) const //////////////////////////////////////////////////////////// unsigned int Image::GetValidTextureSize(unsigned int Size) { - // Make sure we have a valid context - priv::GraphicsContext Ctx; + // Make sure that GLEW is initialized + EnsureGlewInit(); if (glewIsSupported("GL_ARB_texture_non_power_of_two") != 0) { @@ -619,9 +616,6 @@ bool Image::CreateTexture() if (!myWidth || !myHeight) return false; - // Make sure we have a valid context - priv::GraphicsContext Ctx; - // Adjust internal texture dimensions depending on NPOT textures support unsigned int TextureWidth = GetValidTextureSize(myWidth); unsigned int TextureHeight = GetValidTextureSize(myHeight); @@ -772,9 +766,6 @@ void Image::DestroyTexture() // Destroy the internal texture if (myTexture) { - // Make sure we have a valid context - priv::GraphicsContext Ctx; - GLuint Texture = static_cast(myTexture); GLCheck(glDeleteTextures(1, &Texture)); myTexture = 0; diff --git a/src/SFML/Graphics/PostFX.cpp b/src/SFML/Graphics/PostFX.cpp index cc5e69882..f7c8d9dfd 100644 --- a/src/SFML/Graphics/PostFX.cpp +++ b/src/SFML/Graphics/PostFX.cpp @@ -28,7 +28,7 @@ //////////////////////////////////////////////////////////// #include #include -#include +#include #include #include #include @@ -43,6 +43,9 @@ namespace sf PostFX::PostFX() : myShaderProgram(0) { + // Make sure that GLEW is initialized + EnsureGlewInit(); + // No filtering on frame buffer myFrameBuffer.SetSmooth(false); } @@ -74,12 +77,7 @@ PostFX::~PostFX() { // Destroy effect program if (myShaderProgram) - { - // Make sure we have a valid context - priv::GraphicsContext Ctx; - GLCheck(glDeleteObjectARB(myShaderProgram)); - } } @@ -264,8 +262,8 @@ PostFX& PostFX::operator =(const PostFX& Other) //////////////////////////////////////////////////////////// bool PostFX::CanUsePostFX() { - // Make sure we have a valid context - priv::GraphicsContext Ctx; + // Make sure that GLEW is initialized + EnsureGlewInit(); return glewIsSupported("GL_ARB_shading_language_100") != 0 && glewIsSupported("GL_ARB_shader_objects") != 0 && @@ -411,9 +409,6 @@ std::string PostFX::PreprocessEffect(std::istream& File) //////////////////////////////////////////////////////////// void PostFX::CreateProgram() { - // Make sure we have a valid context - priv::GraphicsContext Ctx; - // Check that we can use post-FX ! if (!CanUsePostFX()) { diff --git a/src/SFML/Graphics/RenderTarget.cpp b/src/SFML/Graphics/RenderTarget.cpp index f9d9096ad..1c07bc09a 100644 --- a/src/SFML/Graphics/RenderTarget.cpp +++ b/src/SFML/Graphics/RenderTarget.cpp @@ -27,7 +27,7 @@ //////////////////////////////////////////////////////////// #include #include -#include +#include #include diff --git a/src/SFML/Graphics/RenderWindow.cpp b/src/SFML/Graphics/RenderWindow.cpp index 8b11fa639..a2ddabe51 100644 --- a/src/SFML/Graphics/RenderWindow.cpp +++ b/src/SFML/Graphics/RenderWindow.cpp @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include @@ -113,9 +113,6 @@ Image RenderWindow::Capture() const // Set our window as the current target for rendering if (SetActive()) { - // Make sure we have a valid context - priv::GraphicsContext Ctx; - // Get pixels from the backbuffer std::vector Pixels(Width * Height * 4); Uint8* PixelsPtr = &Pixels[0]; diff --git a/src/SFML/Graphics/Shape.cpp b/src/SFML/Graphics/Shape.cpp index ca613f02b..7dbb88546 100644 --- a/src/SFML/Graphics/Shape.cpp +++ b/src/SFML/Graphics/Shape.cpp @@ -26,7 +26,7 @@ // Headers //////////////////////////////////////////////////////////// #include -#include +#include #include diff --git a/src/SFML/Graphics/Sprite.cpp b/src/SFML/Graphics/Sprite.cpp index b5a52a8c5..51e5520ce 100644 --- a/src/SFML/Graphics/Sprite.cpp +++ b/src/SFML/Graphics/Sprite.cpp @@ -27,7 +27,7 @@ //////////////////////////////////////////////////////////// #include #include -#include +#include namespace sf diff --git a/src/SFML/Graphics/String.cpp b/src/SFML/Graphics/String.cpp index 89cfc30df..192a47ccf 100644 --- a/src/SFML/Graphics/String.cpp +++ b/src/SFML/Graphics/String.cpp @@ -27,7 +27,7 @@ //////////////////////////////////////////////////////////// #include #include -#include +#include #include diff --git a/src/SFML/System/ThreadLocal.cpp b/src/SFML/System/ThreadLocal.cpp new file mode 100644 index 000000000..ae2ebf0b5 --- /dev/null +++ b/src/SFML/System/ThreadLocal.cpp @@ -0,0 +1,80 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////// +// Headers +//////////////////////////////////////////////////////////// +#include + + +#if defined(SFML_SYSTEM_WINDOWS) + + #include + +#else + + #include + +#endif + + +namespace sf +{ +//////////////////////////////////////////////////////////// +/// Default constructor +//////////////////////////////////////////////////////////// +ThreadLocal::ThreadLocal(void* Value) +{ + myImpl = new priv::ThreadLocalImpl; + SetValue(Value); +} + + +//////////////////////////////////////////////////////////// +/// Destructor +//////////////////////////////////////////////////////////// +ThreadLocal::~ThreadLocal() +{ + delete myImpl; +} + + +//////////////////////////////////////////////////////////// +/// Set the thread-specific value of the variable +//////////////////////////////////////////////////////////// +void ThreadLocal::SetValue(void* Value) +{ + myImpl->SetValue(Value); +} + + +//////////////////////////////////////////////////////////// +/// Retrieve the thread-specific value of the variable +//////////////////////////////////////////////////////////// +void* ThreadLocal::GetValue() const +{ + return myImpl->GetValue(); +} + +} // namespace sf diff --git a/src/SFML/Graphics/GraphicsContext.cpp b/src/SFML/System/Unix/ThreadLocalImpl.cpp similarity index 52% rename from src/SFML/Graphics/GraphicsContext.cpp rename to src/SFML/System/Unix/ThreadLocalImpl.cpp index da28c3515..f53959638 100644 --- a/src/SFML/Graphics/GraphicsContext.cpp +++ b/src/SFML/System/Unix/ThreadLocalImpl.cpp @@ -25,31 +25,7 @@ //////////////////////////////////////////////////////////// // Headers //////////////////////////////////////////////////////////// -#include -#include - - -namespace -{ - //////////////////////////////////////////////////////////// - // One time initialization of 3rd party libraries. - // We use a global function with a static boolean rather - // than directly a global boolean, to avoid the randomness - // of global variables initializations across compile units. - //////////////////////////////////////////////////////////// - void InitGraphicsLibs() - { - static bool InitDone = false; - if (!InitDone) - { - // Initialize GLEW - glewInit(); - - InitDone = true; - } - } - -} +#include namespace sf @@ -57,36 +33,38 @@ namespace sf namespace priv { //////////////////////////////////////////////////////////// -/// Default constructor, activate the global context -/// if no other context is bound to the current thread +/// Default constructor -- allocate the storage //////////////////////////////////////////////////////////// -GraphicsContext::GraphicsContext() +ThreadLocalImpl::ThreadLocalImpl() { - // Activate the global context - if (!Context::IsContextActive()) - { - Context::GetDefault().SetActive(true); - myActivated = true; - } - else - { - myActivated = false; - } - - // Make sure third party libraries are initialized - InitGraphicsLibs(); + pthread_key_create(&myKey, NULL); } //////////////////////////////////////////////////////////// -/// Destructor, deactivate the global context -/// if no other context was previously bound to the current thread +/// Destructor -- free the storage //////////////////////////////////////////////////////////// -GraphicsContext::~GraphicsContext() +ThreadLocalImpl::~ThreadLocalImpl() { - // Deactivate the global context - if (myActivated) - Context::GetDefault().SetActive(false); + pthread_key_delete(myKey); +} + + +//////////////////////////////////////////////////////////// +/// Set the thread-specific value of the variable +//////////////////////////////////////////////////////////// +void ThreadLocalImpl::SetValue(void* Value) +{ + pthread_setspecific(myKey, Value); +} + + +//////////////////////////////////////////////////////////// +/// Retrieve the thread-specific value of the variable +//////////////////////////////////////////////////////////// +void* ThreadLocalImpl::GetValue() const +{ + return pthread_getspecific(myKey); } } // namespace priv diff --git a/src/SFML/System/Unix/ThreadLocalImpl.hpp b/src/SFML/System/Unix/ThreadLocalImpl.hpp new file mode 100644 index 000000000..3457bf637 --- /dev/null +++ b/src/SFML/System/Unix/ThreadLocalImpl.hpp @@ -0,0 +1,87 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + +#ifndef SFML_THREADLOCALIMPL_HPP +#define SFML_THREADLOCALIMPL_HPP + +//////////////////////////////////////////////////////////// +// Headers +//////////////////////////////////////////////////////////// +#include +#include + + +namespace sf +{ +namespace priv +{ +//////////////////////////////////////////////////////////// +/// Unix implementation of thread-local storage +//////////////////////////////////////////////////////////// +class ThreadLocalImpl : NonCopyable +{ +public : + + //////////////////////////////////////////////////////////// + /// Default constructor -- allocate the storage + /// + //////////////////////////////////////////////////////////// + ThreadLocalImpl(); + + //////////////////////////////////////////////////////////// + /// Destructor -- free the storage + /// + //////////////////////////////////////////////////////////// + ~ThreadLocalImpl(); + + //////////////////////////////////////////////////////////// + /// Set the thread-specific value of the variable + /// + /// \param Value : Value of the variable for this thread + /// + //////////////////////////////////////////////////////////// + void SetValue(void* Value); + + //////////////////////////////////////////////////////////// + /// Retrieve the thread-specific value of the variable + /// + /// \return Value of the variable for this thread + /// + //////////////////////////////////////////////////////////// + void* GetValue() const; + +private : + + //////////////////////////////////////////////////////////// + // Member data + //////////////////////////////////////////////////////////// + pthread_key_t myKey; ///< Index of our thread-local storage slot +}; + +} // namespace priv + +} // namespace sf + + +#endif // SFML_THREADLOCALIMPL_HPP diff --git a/src/SFML/System/Win32/ThreadLocalImpl.cpp b/src/SFML/System/Win32/ThreadLocalImpl.cpp new file mode 100644 index 000000000..0757c8b01 --- /dev/null +++ b/src/SFML/System/Win32/ThreadLocalImpl.cpp @@ -0,0 +1,72 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////// +// Headers +//////////////////////////////////////////////////////////// +#include + + +namespace sf +{ +namespace priv +{ +//////////////////////////////////////////////////////////// +/// Default constructor -- allocate the storage +//////////////////////////////////////////////////////////// +ThreadLocalImpl::ThreadLocalImpl() +{ + myIndex = TlsAlloc(); +} + + +//////////////////////////////////////////////////////////// +/// Destructor -- free the storage +//////////////////////////////////////////////////////////// +ThreadLocalImpl::~ThreadLocalImpl() +{ + TlsFree(myIndex); +} + + +//////////////////////////////////////////////////////////// +/// Set the thread-specific value of the variable +//////////////////////////////////////////////////////////// +void ThreadLocalImpl::SetValue(void* Value) +{ + TlsSetValue(myIndex, Value); +} + + +//////////////////////////////////////////////////////////// +/// Retrieve the thread-specific value of the variable +//////////////////////////////////////////////////////////// +void* ThreadLocalImpl::GetValue() const +{ + return TlsGetValue(myIndex); +} + +} // namespace priv + +} // namespace sf diff --git a/src/SFML/System/Win32/ThreadLocalImpl.hpp b/src/SFML/System/Win32/ThreadLocalImpl.hpp new file mode 100644 index 000000000..dc04ef266 --- /dev/null +++ b/src/SFML/System/Win32/ThreadLocalImpl.hpp @@ -0,0 +1,87 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + +#ifndef SFML_THREADLOCALIMPL_HPP +#define SFML_THREADLOCALIMPL_HPP + +//////////////////////////////////////////////////////////// +// Headers +//////////////////////////////////////////////////////////// +#include +#include + + +namespace sf +{ +namespace priv +{ +//////////////////////////////////////////////////////////// +/// Windows implementation of thread-local storage +//////////////////////////////////////////////////////////// +class ThreadLocalImpl : NonCopyable +{ +public : + + //////////////////////////////////////////////////////////// + /// Default constructor -- allocate the storage + /// + //////////////////////////////////////////////////////////// + ThreadLocalImpl(); + + //////////////////////////////////////////////////////////// + /// Destructor -- free the storage + /// + //////////////////////////////////////////////////////////// + ~ThreadLocalImpl(); + + //////////////////////////////////////////////////////////// + /// Set the thread-specific value of the variable + /// + /// \param Value : Value of the variable for this thread + /// + //////////////////////////////////////////////////////////// + void SetValue(void* Value); + + //////////////////////////////////////////////////////////// + /// Retrieve the thread-specific value of the variable + /// + /// \return Value of the variable for this thread + /// + //////////////////////////////////////////////////////////// + void* GetValue() const; + +private : + + //////////////////////////////////////////////////////////// + // Member data + //////////////////////////////////////////////////////////// + DWORD myIndex; ///< Index of our thread-local storage slot +}; + +} // namespace priv + +} // namespace sf + + +#endif // SFML_THREADLOCALIMPL_HPP diff --git a/src/SFML/Window/Context.cpp b/src/SFML/Window/Context.cpp index 3f3a24a0b..921e1e859 100644 --- a/src/SFML/Window/Context.cpp +++ b/src/SFML/Window/Context.cpp @@ -26,125 +26,38 @@ // Headers //////////////////////////////////////////////////////////// #include -#include -#include -#include - - -#if defined(SFML_SYSTEM_WINDOWS) - - #include - typedef sf::priv::ContextWGL ContextType; - -#elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD) - - #include - typedef sf::priv::ContextGLX ContextType; - -#elif defined(SFML_SYSTEM_MACOS) - - #include - typedef sf::priv::ContextAGL ContextType; - -#endif +#include namespace sf { //////////////////////////////////////////////////////////// -/// Create a new context, not associated to a window -//////////////////////////////////////////////////////////// -Context* Context::New() -{ - ContextType* Shared = static_cast(&GetDefault()); - return new ContextType(Shared); -} - - -//////////////////////////////////////////////////////////// -/// Create a new context attached to a window -//////////////////////////////////////////////////////////// -Context* Context::New(const priv::WindowImpl* Owner, unsigned int BitsPerPixel, const ContextSettings& Settings) -{ - ContextType* Shared = static_cast(&GetDefault()); - ContextType* NewContext = new ContextType(Shared, Owner, BitsPerPixel, Settings); - - // Enable antialiasing if needed - if (NewContext->GetSettings().AntialiasingLevel > 0) - glEnable(GL_MULTISAMPLE_ARB); - - return NewContext; -} - - -//////////////////////////////////////////////////////////// -/// Check if a context is active on the current thread -//////////////////////////////////////////////////////////// -bool Context::IsContextActive() -{ - return ContextType::IsContextActive(); -} - - -//////////////////////////////////////////////////////////// -/// Return the default context -//////////////////////////////////////////////////////////// -Context& Context::GetDefault() -{ - static ContextType DefaultContext(NULL); - - return DefaultContext; -} - - -//////////////////////////////////////////////////////////// -/// Destructor -//////////////////////////////////////////////////////////// -Context::~Context() -{ - // Nothing to do -} - - -//////////////////////////////////////////////////////////// -/// Get the settings of the context -//////////////////////////////////////////////////////////// -const ContextSettings& Context::GetSettings() const -{ - return mySettings; -} - - -//////////////////////////////////////////////////////////// -/// Activate or deactivate the context as the current target -/// for rendering -//////////////////////////////////////////////////////////// -bool Context::SetActive(bool Active) -{ - return MakeCurrent(Active); -} - - -//////////////////////////////////////////////////////////// -/// Default constructor +/// Default constructor -- creates and activates the context //////////////////////////////////////////////////////////// Context::Context() { - + myContext = priv::ContextGL::New(); + SetActive(true); } //////////////////////////////////////////////////////////// -/// Evaluate a pixel format configuration. -/// This functions can be used by implementations that have -/// several valid formats and want to get the best one +/// Destructor -- deactivates and destroys the context //////////////////////////////////////////////////////////// -int Context::EvaluateFormat(unsigned int BitsPerPixel, const ContextSettings& Settings, int ColorBits, int DepthBits, int StencilBits, int Antialiasing) +Context::~Context() { - return abs(static_cast(BitsPerPixel - ColorBits)) + - abs(static_cast(Settings.DepthBits - DepthBits)) + - abs(static_cast(Settings.StencilBits - StencilBits)) + - abs(static_cast(Settings.AntialiasingLevel - Antialiasing)); + SetActive(false); + delete myContext; } + +//////////////////////////////////////////////////////////// +/// Activate or deactivate explicitely the context +//////////////////////////////////////////////////////////// +void Context::SetActive(bool Active) +{ + myContext->SetActive(Active); +} + + } // namespace sf diff --git a/src/SFML/Window/ContextGL.cpp b/src/SFML/Window/ContextGL.cpp new file mode 100644 index 000000000..b49ef02b2 --- /dev/null +++ b/src/SFML/Window/ContextGL.cpp @@ -0,0 +1,178 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////// +// Headers +//////////////////////////////////////////////////////////// +#include +#include +#include +#include +#include + + +#if defined(SFML_SYSTEM_WINDOWS) + + #include + typedef sf::priv::ContextWGL ContextType; + +#elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD) + + #include + typedef sf::priv::ContextGLX ContextType; + +#elif defined(SFML_SYSTEM_MACOS) + + #include + typedef sf::priv::ContextAGL ContextType; + +#endif + + +//////////////////////////////////////////////////////////// +// Private data +//////////////////////////////////////////////////////////// +namespace +{ + // This thread-local variable will hold the "gloabl" context for each thread + sf::ThreadLocalPtr ThreadContext(NULL); + + // Now we create two global contexts. + // The first one is the reference context: it will be shared with every other + // context, and he can't be activated if we want the sharing operation to always succeed. + // That why we need the second context: this one will be activated and used + // in the main thread whenever there's no other context (window) active. + ContextType ReferenceContext(NULL); + ContextType DefaultContext(&ReferenceContext); +} + + +namespace sf +{ +namespace priv +{ +//////////////////////////////////////////////////////////// +/// Create a new context, not associated to a window +//////////////////////////////////////////////////////////// +ContextGL* ContextGL::New() +{ + return new ContextType(&ReferenceContext); +} + + +//////////////////////////////////////////////////////////// +/// Create a new context attached to a window +//////////////////////////////////////////////////////////// +ContextGL* ContextGL::New(const WindowImpl* Owner, unsigned int BitsPerPixel, const ContextSettings& Settings) +{ + ContextType* Context = new ContextType(&ReferenceContext, Owner, BitsPerPixel, Settings); + + // Enable antialiasing if needed + if (Context->GetSettings().AntialiasingLevel > 0) + glEnable(GL_MULTISAMPLE_ARB); + + return Context; +} + + +//////////////////////////////////////////////////////////// +/// Destructor +//////////////////////////////////////////////////////////// +ContextGL::~ContextGL() +{ + if (ThreadContext == this) + { + ThreadContext = NULL; + } + else if (ThreadContext != NULL) + { + ThreadContext->SetActive(true); + } +} + + +//////////////////////////////////////////////////////////// +/// Get the settings of the context +//////////////////////////////////////////////////////////// +const ContextSettings& ContextGL::GetSettings() const +{ + return mySettings; +} + + +//////////////////////////////////////////////////////////// +/// Activate or deactivate the context as the current target +/// for rendering +//////////////////////////////////////////////////////////// +bool ContextGL::SetActive(bool Active) +{ + if (MakeCurrent(Active)) + { + if (Active && (ThreadContext == NULL)) + { + // If this is the first context to be activated on this thread, make + // it the reference context for the whole thread + ThreadContext = this; + } + else if (!Active && (ThreadContext != NULL) && (ThreadContext != this)) + { + // Activate the reference context for this thread to ensure + // that there is always an active context for subsequent graphics operations + ThreadContext->SetActive(true); + } + + return true; + } + else + { + return false; + } +} + + +//////////////////////////////////////////////////////////// +/// Default constructor +//////////////////////////////////////////////////////////// +ContextGL::ContextGL() +{ + // Nothing to do +} + + +//////////////////////////////////////////////////////////// +/// Evaluate a pixel format configuration. +/// This functions can be used by implementations that have +/// several valid formats and want to get the best one +//////////////////////////////////////////////////////////// +int ContextGL::EvaluateFormat(unsigned int BitsPerPixel, const ContextSettings& Settings, int ColorBits, int DepthBits, int StencilBits, int Antialiasing) +{ + return abs(static_cast(BitsPerPixel - ColorBits)) + + abs(static_cast(Settings.DepthBits - DepthBits)) + + abs(static_cast(Settings.StencilBits - StencilBits)) + + abs(static_cast(Settings.AntialiasingLevel - Antialiasing)); +} + +} // namespace priv + +} // namespace sf diff --git a/src/SFML/Window/ContextGL.hpp b/src/SFML/Window/ContextGL.hpp new file mode 100644 index 000000000..1ae5c7ff8 --- /dev/null +++ b/src/SFML/Window/ContextGL.hpp @@ -0,0 +1,156 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + +#ifndef SFML_CONTEXTGL_HPP +#define SFML_CONTEXTGL_HPP + +//////////////////////////////////////////////////////////// +// Headers +//////////////////////////////////////////////////////////// +#include +#include +#include + + +namespace sf +{ +namespace priv +{ +class WindowImpl; + +//////////////////////////////////////////////////////////// +/// Abstract class representing an OpenGL context +//////////////////////////////////////////////////////////// +class ContextGL : NonCopyable +{ +public : + + //////////////////////////////////////////////////////////// + /// Create a new context, not associated to a window + /// + /// \return Pointer to the created context + /// + //////////////////////////////////////////////////////////// + static ContextGL* New(); + + //////////////////////////////////////////////////////////// + /// Create a new context attached to a window + /// + /// \param Owner : Pointer to the owner window + /// \param BitsPerPixel : Pixel depth (in bits per pixel) + /// \param Settings : Creation parameters + /// + /// \return Pointer to the created context + /// + //////////////////////////////////////////////////////////// + static ContextGL* New(const WindowImpl* Owner, unsigned int BitsPerPixel, const ContextSettings& Settings); + +public : + + //////////////////////////////////////////////////////////// + /// Virtual destructor + /// + //////////////////////////////////////////////////////////// + virtual ~ContextGL(); + + //////////////////////////////////////////////////////////// + /// Get the settings of the context + /// + /// \return Structure containing the settings + /// + //////////////////////////////////////////////////////////// + const ContextSettings& GetSettings() const; + + //////////////////////////////////////////////////////////// + /// Activate or deactivate the context as the current target + /// for rendering + /// + /// \param Active : True to activate, false to deactivate + /// + /// \return True if operation was successful, false otherwise + /// + //////////////////////////////////////////////////////////// + bool SetActive(bool Active); + + //////////////////////////////////////////////////////////// + /// Display the contents of the context + /// + //////////////////////////////////////////////////////////// + virtual void Display() = 0; + + //////////////////////////////////////////////////////////// + /// Enable / disable vertical synchronization + /// + /// \param Enabled : True to enable v-sync, false to deactivate + /// + //////////////////////////////////////////////////////////// + virtual void UseVerticalSync(bool Enabled) = 0; + +protected : + + //////////////////////////////////////////////////////////// + /// Default constructor + /// + //////////////////////////////////////////////////////////// + ContextGL(); + + //////////////////////////////////////////////////////////// + /// Make this context the current one + /// + /// \param Active : True to activate, false to deactivate + /// + /// \return True on success, false if any error happened + /// + //////////////////////////////////////////////////////////// + virtual bool MakeCurrent(bool Active) = 0; + + //////////////////////////////////////////////////////////// + /// Evaluate a pixel format configuration. + /// This functions can be used by implementations that have + /// several valid formats and want to get the best one + /// + /// \param BitsPerPixel : Requested pixel depth (bits per pixel) + /// \param Settings : Requested additionnal settings + /// \param ColorBits : Color bits of the configuration to evaluate + /// \param DepthBits : Depth bits of the configuration to evaluate + /// \param StencilBits : Stencil bits of the configuration to evaluate + /// \param Antialiasing : Antialiasing level of the configuration to evaluate + /// + /// \return Score of the configuration : the lower the better + /// + //////////////////////////////////////////////////////////// + static int EvaluateFormat(unsigned int BitsPerPixel, const ContextSettings& Settings, int ColorBits, int DepthBits, int StencilBits, int Antialiasing); + + //////////////////////////////////////////////////////////// + // Member data + //////////////////////////////////////////////////////////// + ContextSettings mySettings; ///< Creation settings of the context +}; + +} // namespace priv + +} // namespace sf + + +#endif // SFML_CONTEXTGL_HPP diff --git a/src/SFML/Window/Linux/ContextGLX.cpp b/src/SFML/Window/Linux/ContextGLX.cpp index 063c49977..f134b59d7 100644 --- a/src/SFML/Window/Linux/ContextGLX.cpp +++ b/src/SFML/Window/Linux/ContextGLX.cpp @@ -27,9 +27,8 @@ //////////////////////////////////////////////////////////// #include #include -#include +#include #include -#include #include @@ -59,6 +58,10 @@ myOwnsWindow(true) // Create the context CreateContext(Shared, VideoMode::GetDesktopMode().BitsPerPixel, ContextSettings(0, 0, 0)); + + // Activate the context + if (Shared) + SetActive(true); } @@ -76,6 +79,10 @@ myOwnsWindow(false) // Create the context if (myWindow) CreateContext(Shared, BitsPerPixel, Settings); + + // Activate the context + if (Shared) + SetActive(true); } diff --git a/src/SFML/Window/Win32/ContextWGL.cpp b/src/SFML/Window/Win32/ContextWGL.cpp index 4dcf563b0..c4af52317 100644 --- a/src/SFML/Window/Win32/ContextWGL.cpp +++ b/src/SFML/Window/Win32/ContextWGL.cpp @@ -27,7 +27,7 @@ //////////////////////////////////////////////////////////// #include #include -#include +#include #include #include @@ -45,7 +45,8 @@ myDC (NULL), myContext (NULL), myOwnsWindow(true) { - // ------------ TEMP ------------ + // TODO : try to create a bitmap in memory instead of a dummy window + // Create a dummy window (disabled and hidden) myWindow = CreateWindowA("STATIC", "", WS_POPUP | WS_DISABLED, 0, 0, 1, 1, NULL, NULL, GetModuleHandle(NULL), NULL); ShowWindow(myWindow, SW_HIDE); @@ -54,7 +55,10 @@ myOwnsWindow(true) // Create the context if (myDC) CreateContext(Shared, VideoMode::GetDesktopMode().BitsPerPixel, ContextSettings(0, 0, 0)); - // ------------ TEMP ------------ + + // Activate the context + if (Shared) + SetActive(true); } @@ -74,6 +78,10 @@ myOwnsWindow(false) // Create the context if (myDC) CreateContext(Shared, BitsPerPixel, Settings); + + // Activate the context + if (Shared) + SetActive(true); } @@ -304,7 +312,10 @@ void ContextWGL::CreateContext(ContextWGL* Shared, unsigned int BitsPerPixel, co // Share this context with others if (SharedContext) - wglShareLists(SharedContext, myContext); + { + if (!wglShareLists(SharedContext, myContext)) + std::cerr << "Failed to share the OpenGL context" << std::endl; + } } } diff --git a/src/SFML/Window/Win32/ContextWGL.hpp b/src/SFML/Window/Win32/ContextWGL.hpp index 32aaaf7cf..36a1639f3 100644 --- a/src/SFML/Window/Win32/ContextWGL.hpp +++ b/src/SFML/Window/Win32/ContextWGL.hpp @@ -28,7 +28,7 @@ //////////////////////////////////////////////////////////// // Headers //////////////////////////////////////////////////////////// -#include +#include #include @@ -39,7 +39,7 @@ namespace priv //////////////////////////////////////////////////////////// /// Windows (WGL) implementation of OpenGL contexts //////////////////////////////////////////////////////////// -class ContextWGL : public Context +class ContextWGL : public ContextGL { public : diff --git a/src/SFML/Window/Window.cpp b/src/SFML/Window/Window.cpp index c94280df3..1320065e1 100644 --- a/src/SFML/Window/Window.cpp +++ b/src/SFML/Window/Window.cpp @@ -26,6 +26,7 @@ // Headers //////////////////////////////////////////////////////////// #include +#include #include #include #include @@ -142,11 +143,11 @@ void Window::Create(VideoMode Mode, const std::string& Title, unsigned long Wind // Make sure another context is bound, so that: // - the context creation can request OpenGL extensions if necessary // - myContext can safely be destroyed (it's no longer bound) - Context::GetDefault().SetActive(true); + Context Ctx; // Recreate the context delete myContext; - myContext = Context::New(myWindow, Mode.BitsPerPixel, Settings); + myContext = priv::ContextGL::New(myWindow, Mode.BitsPerPixel, Settings); Initialize(); } @@ -164,11 +165,11 @@ void Window::Create(WindowHandle Handle, const ContextSettings& Settings) // Make sure another context is bound, so that: // - the context creation can request OpenGL extensions if necessary // - myContext can safely be destroyed (it's no longer bound) - Context::GetDefault().SetActive(true); + Context Ctx; // Recreate the context delete myContext; - myContext = Context::New(myWindow, VideoMode::GetDesktopMode().BitsPerPixel, Settings); + myContext = priv::ContextGL::New(myWindow, VideoMode::GetDesktopMode().BitsPerPixel, Settings); Initialize(); } @@ -183,9 +184,6 @@ void Window::Close() { if (myContext) { - // Make sure that our context is no longer bound - Context::GetDefault().SetActive(true); - // Delete the context delete myContext; myContext = NULL;