X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Frender%2Fcommon%2Frender-manager.cpp;h=1e141d05ab9a0e11fbc371299e88a36da6a0ad41;hb=9133fbd0adbe9fae271868dc7fc12aab2153cb80;hp=497b0e511656c91e46895a40505aef1d352b7310;hpb=449cde6cfe99f1e9297bec8cdb5cedff37502afb;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/render/common/render-manager.cpp b/dali/internal/render/common/render-manager.cpp index 497b0e5..1e141d0 100644 --- a/dali/internal/render/common/render-manager.cpp +++ b/dali/internal/render/common/render-manager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2016 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. @@ -31,7 +31,6 @@ #include #include #include -#include #include #include #include @@ -142,7 +141,6 @@ struct RenderManager::Impl Integration::GlSyncAbstraction& glSyncAbstraction; ///< GL sync abstraction RenderQueue renderQueue; ///< A message queue for receiving messages from the update-thread. TextureCache textureCache; ///< Cache for all GL textures - Render::UniformNameCache uniformNameCache; ///< Cache to provide unique indices for uniforms LockedResourceQueue& textureUploadedQueue; ///< A queue for requesting resource post processing in update thread // Render instructions describe what should be rendered during RenderManager::Render() @@ -191,16 +189,6 @@ RenderManager::RenderManager() RenderManager::~RenderManager() { - for ( TextureOwnerIter iter = mImpl->textureContainer.Begin(); iter != mImpl->textureContainer.End(); ++iter ) - { - (*iter)->Destroy( mImpl->context ); - } - - for ( FrameBufferOwnerIter iter = mImpl->frameBufferContainer.Begin(); iter != mImpl->frameBufferContainer.End(); ++iter ) - { - (*iter)->Destroy( mImpl->context ); - } - delete mImpl; } @@ -231,6 +219,18 @@ void RenderManager::ContextDestroyed() // inform texture cache mImpl->textureCache.GlContextDestroyed(); // Clears gl texture ids + //Inform textures + for( TextureOwnerIter iter = mImpl->textureContainer.Begin(); iter != mImpl->textureContainer.End(); ++iter ) + { + (*iter)->GlContextDestroyed(); + } + + //Inform framebuffers + for( FrameBufferOwnerIter iter = mImpl->frameBufferContainer.Begin(); iter != mImpl->frameBufferContainer.End(); ++iter ) + { + (*iter)->GlContextDestroyed(); + } + // inform renderers RendererOwnerContainer::Iterator end = mImpl->rendererContainer.End(); RendererOwnerContainer::Iterator iter = mImpl->rendererContainer.Begin(); @@ -269,7 +269,7 @@ void RenderManager::SetDefaultSurfaceRect(const Rect& rect) void RenderManager::AddRenderer( Render::Renderer* renderer ) { // Initialize the renderer as we are now in render thread - renderer->Initialize( mImpl->context, mImpl->textureCache, mImpl->uniformNameCache ); + renderer->Initialize( mImpl->context, mImpl->textureCache ); mImpl->rendererContainer.PushBack( renderer );