From 12a0a4c349eff27ae6205b329ed64ba36afc2ee2 Mon Sep 17 00:00:00 2001
From: Mathias Paulin <mathias.paulin@irit.fr>
Date: Thu, 8 Apr 2021 15:07:34 +0200
Subject: [PATCH] fix crash due to envmap in custom pass

---
 .../Passes/CustomAttribToColorPass.cpp        | 30 +++++++++----------
 1 file changed, 14 insertions(+), 16 deletions(-)

diff --git a/src/libRender/RadiumNBR/Passes/CustomAttribToColorPass.cpp b/src/libRender/RadiumNBR/Passes/CustomAttribToColorPass.cpp
index 911902a..c4d29a2 100644
--- a/src/libRender/RadiumNBR/Passes/CustomAttribToColorPass.cpp
+++ b/src/libRender/RadiumNBR/Passes/CustomAttribToColorPass.cpp
@@ -143,26 +143,24 @@ void CustomAttribToColorPass::execute(
 
     glClearBufferfv( GL_DEPTH, 0, &clearDepth );
 
-
     if ( m_envmap ) {
         m_passParams.addParameter( "envStrength", m_envmap->getEnvStrength() );
-    }
-
-    // TODO : if an envmap is set, render with the envmap only ?
-    if ( m_lightmanager->count() > 0 )
-    {
-        // for ( const auto& l : m_lights )
-        for ( size_t i = 0; i < m_lightmanager->count(); ++i )
+        for ( const auto& ro : *m_objectsToRender )
         {
-            Ra::Engine::Data::RenderParameters passParams;
-            const auto l = m_lightmanager->getLight( i );
-            l->getRenderParameters( passParams );
-            if (m_envmap) {
-                passParams.concatParameters( m_passParams );
-            }
-            for ( const auto& ro : *m_objectsToRender )
+            ro->render( m_passParams, viewParams, passIndex() );
+        }
+    } else {
+        if ( m_lightmanager->count() > 0 )
+        {
+            for ( size_t i = 0; i < m_lightmanager->count(); ++i )
             {
-                ro->render( passParams, viewParams, passIndex() );
+                Ra::Engine::Data::RenderParameters passParams;
+                const auto l = m_lightmanager->getLight( i );
+                l->getRenderParameters( passParams );
+                for ( const auto& ro : *m_objectsToRender )
+                {
+                    ro->render( passParams, viewParams, passIndex() );
+                }
             }
         }
     }
-- 
GitLab