common engine: manage engine initializing context. 01/236201/2
authorHermet Park <chuneon.park@samsung.com>
Mon, 15 Jun 2020 11:55:55 +0000 (20:55 +0900)
committerHermet Park <chuneon.park@samsung.com>
Mon, 15 Jun 2020 11:57:17 +0000 (20:57 +0900)
Change-Id: Ida3997fd7cc9ee0916d48290168cdb884e946833

src/lib/tvgEngine.cpp

index 40b1308..5038cb8 100644 (file)
@@ -24,6 +24,8 @@
 /************************************************************************/
 /* 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;
 }
@@ -44,9 +48,13 @@ Result Engine::init() noexcept
 
 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;
 }