[dali_1.4.38] Merge branch 'devel/master' 11/214311/1
authorVictor Cebollada <v.cebollada@samsung.com>
Fri, 20 Sep 2019 06:24:56 +0000 (07:24 +0100)
committerVictor Cebollada <v.cebollada@samsung.com>
Fri, 20 Sep 2019 06:24:56 +0000 (07:24 +0100)
Change-Id: I4f713641bf4cf759d019ca6a6f8a409ce342c003

automated-tests/src/dali/dali-test-suite-utils/test-application.cpp
build/tizen/CMakeLists.txt
dali/integration-api/core.cpp
dali/integration-api/core.h
dali/internal/common/core-impl.cpp
dali/internal/common/core-impl.h
dali/internal/render/common/render-manager.cpp
dali/internal/render/common/render-manager.h
dali/public-api/dali-core-version.cpp
packaging/dali.spec

index 338b71f..44b4964 100644 (file)
@@ -193,7 +193,7 @@ void TestApplication::DoUpdate( uint32_t intervalMilliseconds, const char* locat
 bool TestApplication::Render( uint32_t intervalMilliseconds, const char* location )
 {
   DoUpdate( intervalMilliseconds, location );
-  mCore->Render( mRenderStatus, false );
+  mCore->Render( mRenderStatus, false /*do not force clear*/, false /*do not skip rendering*/ );
 
   mFrame++;
 
@@ -219,7 +219,7 @@ bool TestApplication::GetRenderNeedsUpdate()
 bool TestApplication::RenderOnly( )
 {
   // Update Time values
-  mCore->Render( mRenderStatus, false );
+  mCore->Render( mRenderStatus, false /*do not force clear*/, false /*do not skip rendering*/ );
 
   mFrame++;
 
index 4bb2198..b395e8d 100644 (file)
@@ -92,8 +92,7 @@ SET( CORE_PKG_CFG_FILE dali-core.pc )
 CONFIGURE_FILE( ${CORE_PKG_CFG_FILE}.in ${CORE_PKG_CFG_FILE} @ONLY )
 
 # Set up compiler flags and warnings
-#ADD_COMPILE_OPTIONS( -std=c++11 -ggdb )
-ADD_COMPILE_OPTIONS( -std=c++11 -gdwarf-4 )
+ADD_COMPILE_OPTIONS( -std=c++11 )
 ADD_COMPILE_OPTIONS( -Wnon-virtual-dtor -Woverloaded-virtual -Wold-style-cast )
 
 # TODO: Clang is a lot more strict with warnings, we should address
@@ -139,8 +138,14 @@ ENDIF()
 
 ADD_LIBRARY( ${name} ${LIBTYPE} ${SOURCES} )
 
+# pthread required due to gcc issue
+FIND_LIBRARY(PTHREAD pthread)
+IF(PTHREAD)
+  SET(OPTIONAL_LIBS ${OPTIONAL_LIBS} -lpthread)
+ENDIF()
+
 TARGET_LINK_LIBRARIES( ${name}
-  -lpthread
+  ${OPTIONAL_LIBS}
   ${COVERAGE}
 )
 
index 1f664e4..d154574 100644 (file)
@@ -119,9 +119,9 @@ void Core::Update( float elapsedSeconds, uint32_t lastVSyncTimeMilliseconds, uin
   mImpl->Update( elapsedSeconds, lastVSyncTimeMilliseconds, nextVSyncTimeMilliseconds, status, renderToFboEnabled, isRenderingToFbo );
 }
 
-void Core::Render( RenderStatus& status, bool forceClear )
+void Core::Render( RenderStatus& status, bool forceClear, bool uploadOnly )
 {
-  mImpl->Render( status, forceClear );
+  mImpl->Render( status, forceClear, uploadOnly );
 }
 
 void Core::RegisterProcessor( Processor& processor )
index 2e57a76..e7644af 100644 (file)
@@ -355,8 +355,9 @@ public:
    * @pre The GL context must have been created, and made current.
    * @param[out] status showing whether update is required to run.
    * @param[in] forceClear force the Clear on the framebuffer even if nothing is rendered.
+   * @param[in] uploadOnly uploadOnly Upload the resource only without rendering.
    */
-  void Render( RenderStatus& status, bool forceClear );
+  void Render( RenderStatus& status, bool forceClear, bool uploadOnly );
 
   /**
    * @brief Register a processor
index 75e373b..b78b515 100644 (file)
@@ -230,9 +230,9 @@ void Core::Update( float elapsedSeconds, uint32_t lastVSyncTimeMilliseconds, uin
   // Any message to update will wake it up anyways
 }
 
-void Core::Render( RenderStatus& status, bool forceClear )
+void Core::Render( RenderStatus& status, bool forceClear, bool uploadOnly )
 {
-  mRenderManager->Render( status, forceClear );
+  mRenderManager->Render( status, forceClear, uploadOnly );
 }
 
 void Core::SceneCreated()
index b37e454..4f137a5 100644 (file)
@@ -138,7 +138,7 @@ public:
   /**
    * @copydoc Dali::Integration::Core::Render()
    */
-  void Render( Integration::RenderStatus& status, bool forceClear );
+  void Render( Integration::RenderStatus& status, bool forceClear, bool uploadOnly );
 
   /**
    * @copydoc Dali::Integration::Core::SceneCreated()
index 7c56dfb..a3e6db9 100644 (file)
@@ -459,7 +459,7 @@ ProgramCache* RenderManager::GetProgramCache()
   return &(mImpl->programController);
 }
 
-void RenderManager::Render( Integration::RenderStatus& status, bool forceClear )
+void RenderManager::Render( Integration::RenderStatus& status, bool forceClear, bool uploadOnly )
 {
   DALI_PRINT_RENDER_START( mImpl->renderBufferIndex );
 
@@ -486,8 +486,11 @@ void RenderManager::Render( Integration::RenderStatus& status, bool forceClear )
   {
     DALI_LOG_INFO( gLogFilter, Debug::General, "Render: Processing\n" );
 
-    // Mark that we will require a post-render step to be performed (includes swap-buffers).
-    status.SetNeedsPostRender( true );
+    if ( !uploadOnly )
+    {
+      // Mark that we will require a post-render step to be performed (includes swap-buffers).
+      status.SetNeedsPostRender( true );
+    }
 
     // Switch to the shared context
     if ( mImpl->currentContext != &mImpl->context )
@@ -539,23 +542,26 @@ void RenderManager::Render( Integration::RenderStatus& status, bool forceClear )
       }
     }
 
-    for( uint32_t i = 0; i < count; ++i )
+    if ( !uploadOnly )
     {
-      RenderInstruction& instruction = mImpl->instructions.At( mImpl->renderBufferIndex, i );
+      for( uint32_t i = 0; i < count; ++i )
+      {
+        RenderInstruction& instruction = mImpl->instructions.At( mImpl->renderBufferIndex, i );
 
-      DoRender( instruction );
-    }
+        DoRender( instruction );
+      }
 
-    if ( mImpl->currentContext->IsSurfacelessContextSupported() )
-    {
-      mImpl->glContextHelperAbstraction.MakeSurfacelessContextCurrent();
-    }
+      if ( mImpl->currentContext->IsSurfacelessContextSupported() )
+      {
+        mImpl->glContextHelperAbstraction.MakeSurfacelessContextCurrent();
+      }
 
-    GLenum attachments[] = { GL_DEPTH, GL_STENCIL };
-    mImpl->context.InvalidateFramebuffer(GL_FRAMEBUFFER, 2, attachments);
-    for ( auto&& context : mImpl->surfaceContextContainer )
-    {
-      context->InvalidateFramebuffer(GL_FRAMEBUFFER, 2, attachments);
+      GLenum attachments[] = { GL_DEPTH, GL_STENCIL };
+      mImpl->context.InvalidateFramebuffer(GL_FRAMEBUFFER, 2, attachments);
+      for ( auto&& context : mImpl->surfaceContextContainer )
+      {
+        context->InvalidateFramebuffer(GL_FRAMEBUFFER, 2, attachments);
+      }
     }
 
     //Notify RenderGeometries that rendering has finished
index fd3e35c..cc70287 100644 (file)
@@ -327,9 +327,10 @@ public:
   /**
    * Renders the results of the previous "update" traversal.
    * @param[out] status contains the rendering flags.
-   * @param[in] forceClear force the Clear on the framebuffer even if nothing is rendered.
+   * @param[in] forceClear Force the Clear on the framebuffer even if nothing is rendered.
+   * @param[in] uploadOnly Upload the resource only without rendering.
    */
-  void Render( Integration::RenderStatus& status, bool forceClear );
+  void Render( Integration::RenderStatus& status, bool forceClear, bool uploadOnly );
 
 private:
 
index 057a403..e6af6ad 100644 (file)
@@ -28,7 +28,7 @@ namespace Dali
 
 const uint32_t CORE_MAJOR_VERSION = 1;
 const uint32_t CORE_MINOR_VERSION = 4;
-const uint32_t CORE_MICRO_VERSION = 37;
+const uint32_t CORE_MICRO_VERSION = 38;
 const char * const CORE_BUILD_DATE    = __DATE__ " " __TIME__;
 
 #ifdef DEBUG_ENABLED
index c3f6994..02eb142 100644 (file)
@@ -1,6 +1,6 @@
 Name:       dali
 Summary:    DALi 3D Engine
-Version:    1.4.37
+Version:    1.4.38
 Release:    1
 Group:      System/Libraries
 License:    Apache-2.0 and BSD-3-Clause and MIT