From a0439cfb703d104883ef0dbcbf902093cd1efc38 Mon Sep 17 00:00:00 2001 From: Francisco Santos Date: Fri, 27 Oct 2017 16:34:44 +0100 Subject: [PATCH] Change in texture set requires recreation of uniform map Aging SceneGraph::Renderer::mRegenerateUniformMap() isn't necessarily matched by calls to Render::Renderer::SetUniforms(), which isn't called if textures aren't ready. Change-Id: Ifb1d366c579dac196de27d653688e776184a513d --- dali/internal/render/renderers/render-renderer.cpp | 5 +++-- dali/internal/update/rendering/scene-graph-renderer.cpp | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/dali/internal/render/renderers/render-renderer.cpp b/dali/internal/render/renderers/render-renderer.cpp index 690ae55..1d2328d 100644 --- a/dali/internal/render/renderers/render-renderer.cpp +++ b/dali/internal/render/renderers/render-renderer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2018 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -231,7 +231,8 @@ void Renderer::SetUniforms( BufferIndex bufferIndex, const SceneGraph::NodeDataP const SceneGraph::UniformMapDataProvider& uniformMapDataProvider = mRenderDataProvider->GetUniformMap(); if( uniformMapDataProvider.GetUniformMapChanged( bufferIndex ) || - node.GetUniformMapChanged(bufferIndex)) + node.GetUniformMapChanged(bufferIndex) || + mUniformIndexMap.Count() == 0) { const SceneGraph::CollectedUniformMap& uniformMap = uniformMapDataProvider.GetUniformMap( bufferIndex ); const SceneGraph::CollectedUniformMap& uniformMapNode = node.GetUniformMap( bufferIndex ); diff --git a/dali/internal/update/rendering/scene-graph-renderer.cpp b/dali/internal/update/rendering/scene-graph-renderer.cpp index f2ecb41..5127be3 100644 --- a/dali/internal/update/rendering/scene-graph-renderer.cpp +++ b/dali/internal/update/rendering/scene-graph-renderer.cpp @@ -636,6 +636,7 @@ Renderer::Opacity Renderer::GetOpacity( BufferIndex updateBufferIndex, const Nod void Renderer::TextureSetChanged() { + mRegenerateUniformMap = REGENERATE_UNIFORM_MAP; mResendFlag |= RESEND_DATA_PROVIDER; } @@ -643,6 +644,7 @@ void Renderer::TextureSetDeleted() { mTextureSet = NULL; + mRegenerateUniformMap = REGENERATE_UNIFORM_MAP; mResendFlag |= RESEND_DATA_PROVIDER; } void Renderer::ConnectionsChanged( PropertyOwner& object ) -- 2.7.4