/************************************************************************/
/* Internal Class Implementation */
/************************************************************************/
+static bool initialized = false;
+
/************************************************************************/
Result Engine::init() noexcept
{
+ if (initialized) return Result::InsufficientCondition;
+
//TODO: Initialize Raster engines by configuration.
+ SwRenderer::init();
+ GlRenderer::init();
- int ret = 0;
- ret |= SwRenderer::init();
- ret |= GlRenderer::init();
+ initialized = true;
return Result::Success;
}
Result Engine::term() noexcept
{
- int ret = 0;
- ret |= SwRenderer::term();
- ret |= GlRenderer::term();
+ if (!initialized) return Result::InsufficientCondition;
+
+ //TODO: Terminate only allowed engines.
+ SwRenderer::term();
+ GlRenderer::term();
+
+ initialized = false;
return Result::Success;
}