Ensure render target is nullptr or not, and print logs 42/323642/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:58:06 +0000 (15:58 +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 30b649c66debd1c7a71e234506d626d3ba05bcc9..db8845a773c205673760c66fbc627550b02aa87a 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 481ae03606c27fc37f662e52389dc4eee8ff5148..1fa0ce0b17321e4c4815ff7fb209c9fc04d693a9 100644 (file)
@@ -869,17 +869,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(DALI_UNLIKELY(!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