Refactor cmake file so the main part of the code is a lib.

This commit is contained in:
King_DuckZ 2016-11-11 21:18:39 +01:00
parent 7f49ef36d6
commit 0a3897f60a
83 changed files with 111 additions and 98 deletions

View file

@ -0,0 +1,73 @@
#include "sizenotifiable.hpp"
#include "sizeratio.hpp"
#include "sdlmain.hpp"
#include <ciso646>
#include <exception>
namespace cloonel {
namespace implem {
} //namespace implem
namespace regbehaviours {
///----------------------------------------------------------------------
///----------------------------------------------------------------------
void AutoRegister::Register (SizeNotifiableBase* parNotifiable) {
assert(m_sdlmain);
#if !defined(NDEBUG)
assert(not m_registered);
m_registered = true;
#endif
m_id = m_sdlmain->RegisterForResChange(parNotifiable);
}
///----------------------------------------------------------------------
///----------------------------------------------------------------------
void AutoRegister::Unregister() noexcept {
#if !defined(NDEBUG)
assert(m_registered or not m_sdlmain);
m_registered = false;
#endif
if (m_sdlmain) {
m_sdlmain->UnregisterForResChange(m_id);
}
}
///----------------------------------------------------------------------
///----------------------------------------------------------------------
AutoRegister::AutoRegister (AutoRegister&& parOther, SizeNotifiableBase* parSwapTo) :
m_sdlmain(nullptr),
m_id(0)
#if !defined(NDEBUG)
, m_registered(false)
#endif
{
std::swap(m_sdlmain, parOther.m_sdlmain);
std::swap(m_id, parOther.m_id);
#if !defined(NDEBUG)
std::swap(m_registered, parOther.m_registered);
#endif
assert(m_sdlmain);
m_sdlmain->SwapRegisteredForResChange(m_id, parSwapTo);
}
} //namespace regbehaviours
///--------------------------------------------------------------------------
///--------------------------------------------------------------------------
void SizeNotifiableBase::NotifyResChanged (const SizeRatio& parSize) {
m_scaleRatio = parSize.Ratio();
this->OnResChanged(parSize);
}
///--------------------------------------------------------------------------
///--------------------------------------------------------------------------
void SizeNotifiableBase::OnResChanged (const SizeRatio&) {
}
///--------------------------------------------------------------------------
///--------------------------------------------------------------------------
DeferredRegister::~DeferredRegister() {
assert(m_call);
if (not std::uncaught_exception())
m_call();
}
} //namespace cloonel