Core: Add MovablePtr class

This commit is contained in:
Lynix
2017-09-30 13:57:25 +02:00
parent f95fc332f1
commit 2cd9fa2b7a
29 changed files with 157 additions and 259 deletions

View File

@@ -8,6 +8,7 @@
#define NAZARA_CONTEXT_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Core/MovablePtr.hpp>
#include <Nazara/Core/ObjectLibrary.hpp>
#include <Nazara/Core/ObjectRef.hpp>
#include <Nazara/Core/RefCounted.hpp>
@@ -35,7 +36,7 @@ namespace Nz
public:
Context() = default;
Context(const Context&) = delete;
Context(Context&&) = delete;
Context(Context&&) noexcept = default;
~Context();
bool Create(const ContextParameters& parameters = ContextParameters());
@@ -52,7 +53,7 @@ namespace Nz
void SwapBuffers();
Context& operator=(const Context&) = delete;
Context& operator=(Context&&) = delete;
Context& operator=(Context&&) noexcept = default;
static bool EnsureContext();
@@ -69,7 +70,7 @@ namespace Nz
static void Uninitialize();
ContextParameters m_parameters;
ContextImpl* m_impl = nullptr;
MovablePtr<ContextImpl> m_impl = nullptr;
static std::unique_ptr<Context> s_reference;
static std::vector<std::unique_ptr<Context>> s_contexts;