[Tizen] Ensure render target is nullptr or not, and print logs 43/323643/1
authorEunki Hong <eunkiki.hong@samsung.com>
Fri, 2 May 2025 06:58:06 +0000 (15:58 +0900)
committerEunki Hong <eunkiki.hong@samsung.com>
Fri, 2 May 2025 06:59:08 +0000 (15:59 +0900)
Change-Id: I04f0278065c0356cf56590220b0d558d936aa735
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
dali/internal/graphics/gles-impl/egl-graphics-controller.cpp
dali/internal/graphics/gles-impl/gles-context.cpp

index 222e1c71c062a56056b0301c3dd44cf95f2b8d55..304782d4ff44f17ca6d16133290df9fc0a08c1d1 100644 (file)
@@ -317,10 +317,9 @@ void EglGraphicsController::ResolvePresentRenderTarget(GLES::RenderTarget* rende
 {
   mCurrentContext->InvalidateDepthStencilBuffers();
 
-  auto* rt = static_cast<GLES::RenderTarget*>(renderTarget);
-  if(rt->GetCreateInfo().surface)
+  if(DALI_LIKELY(renderTarget) && renderTarget->GetCreateInfo().surface)
   {
-    auto* surfaceInterface = reinterpret_cast<Dali::Integration::RenderSurfaceInterface*>(rt->GetCreateInfo().surface);
+    auto* surfaceInterface = reinterpret_cast<Dali::Integration::RenderSurfaceInterface*>(renderTarget->GetCreateInfo().surface);
     surfaceInterface->MakeContextCurrent();
     surfaceInterface->PostRender();
 
@@ -345,6 +344,10 @@ void EglGraphicsController::ResolvePresentRenderTarget(GLES::RenderTarget* rende
     }
 #endif
   }
+  else
+  {
+    DALI_LOG_ERROR("ResolvePresentRenderTarget() failed! render target : %p\n", renderTarget);
+  }
 }
 
 void EglGraphicsController::PostRender()
index 6b766025fa858a10794e17d832b5994dba051114..6decaff3e38c402a628f1f229c3c291f2906efb1 100644 (file)
@@ -809,17 +809,17 @@ void Context::ResolveStandaloneUniforms()
 
 void Context::BeginRenderPass(const BeginRenderPassDescriptor& renderPassBegin)
 {
-  auto& renderPass   = *renderPassBegin.renderPass;
-  auto& renderTarget = *renderPassBegin.renderTarget;
-
-  const auto& targetInfo = renderTarget.GetCreateInfo();
-
   auto* gl = mImpl->GetGL();
   if(!gl) // Early out if no gl
   {
     return;
   }
 
+  auto& renderPass   = *renderPassBegin.renderPass;
+  auto& renderTarget = *renderPassBegin.renderTarget;
+
+  const auto& targetInfo = renderTarget.GetCreateInfo();
+
   if(targetInfo.surface)
   {
     // Bind surface FB