Remove pointer indirection

We don't need to heap allocate the context or use the pimpl idiom
here.
This commit is contained in:
Chris Thrasher 2024-01-08 12:21:43 -07:00
parent 1a06f6c395
commit 3d4a5f9399
No known key found for this signature in database
GPG Key ID: 56FB686C9DFC8E2C
2 changed files with 8 additions and 28 deletions

View File

@ -42,10 +42,6 @@ namespace sf::priv
RenderTextureImplDefault::RenderTextureImplDefault() = default; RenderTextureImplDefault::RenderTextureImplDefault() = default;
////////////////////////////////////////////////////////////
RenderTextureImplDefault::~RenderTextureImplDefault() = default;
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
unsigned int RenderTextureImplDefault::getMaximumAntiAliasingLevel() unsigned int RenderTextureImplDefault::getMaximumAntiAliasingLevel()
{ {
@ -63,7 +59,7 @@ bool RenderTextureImplDefault::create(Vector2u size, unsigned int, const Context
m_size = size; m_size = size;
// Create the in-memory OpenGL context // Create the in-memory OpenGL context
m_context = std::make_unique<Context>(settings, size); m_context = {settings, size};
return true; return true;
} }
@ -72,14 +68,14 @@ bool RenderTextureImplDefault::create(Vector2u size, unsigned int, const Context
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
bool RenderTextureImplDefault::activate(bool active) bool RenderTextureImplDefault::activate(bool active)
{ {
return m_context->setActive(active); return m_context.setActive(active);
} }
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
bool RenderTextureImplDefault::isSrgb() const bool RenderTextureImplDefault::isSrgb() const
{ {
return m_context->getSettings().sRgbCapable; return m_context.getSettings().sRgbCapable;
} }

View File

@ -29,19 +29,11 @@
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
#include <SFML/Graphics/RenderTextureImpl.hpp> #include <SFML/Graphics/RenderTextureImpl.hpp>
#include <SFML/Window/Context.hpp>
#include <SFML/Window/GlResource.hpp> #include <SFML/Window/GlResource.hpp>
#include <SFML/System/Vector2.hpp>
#include <memory> namespace sf::priv
namespace sf
{
class Context;
struct ContextSettings;
namespace priv
{ {
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Default specialization of RenderTextureImpl, /// \brief Default specialization of RenderTextureImpl,
@ -57,12 +49,6 @@ public:
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
RenderTextureImplDefault(); RenderTextureImplDefault();
////////////////////////////////////////////////////////////
/// \brief Destructor
///
////////////////////////////////////////////////////////////
~RenderTextureImplDefault() override;
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Get the maximum anti-aliasing level supported by the system /// \brief Get the maximum anti-aliasing level supported by the system
/// ///
@ -116,10 +102,8 @@ private:
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// Member data // Member data
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
std::unique_ptr<Context> m_context; //!< P-Buffer based context Context m_context; //!< P-Buffer based context
Vector2u m_size; //!< Width and height of the P-Buffer Vector2u m_size; //!< Width and height of the P-Buffer
}; };
} // namespace priv } // namespace sf::priv
} // namespace sf