2 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include <dali/internal/update/resources/sync-resource-tracker.h>
22 #include <dali/internal/update/controllers/render-message-dispatcher.h>
23 #include <dali/internal/render/queue/render-queue.h>
24 #include <dali/internal/render/common/render-tracker.h>
25 #include <dali/internal/render/common/render-manager.h>
26 #include <dali/internal/update/resources/resource-tracker-debug.h>
35 SyncResourceTracker::SyncResourceTracker( Integration::GlSyncAbstraction& glSyncAbstraction,
36 SceneGraph::RenderMessageDispatcher& renderMessageDispatcher)
38 mGlSyncAbstraction(glSyncAbstraction),
39 mRenderMessageDispatcher(renderMessageDispatcher),
44 SyncResourceTracker::~SyncResourceTracker()
48 void SyncResourceTracker::Initialize()
50 mRenderTracker = new SceneGraph::RenderTracker(mGlSyncAbstraction);
52 // Pass ownership of render tracker to render manager, keep pointer for access
53 mRenderMessageDispatcher.AddRenderTracker( *mRenderTracker );
56 void SyncResourceTracker::OnDestroy()
58 if( mRenderTracker != NULL )
60 mRenderMessageDispatcher.RemoveRenderTracker( *mRenderTracker );
61 mRenderTracker = NULL;
65 SceneGraph::RenderTracker* SyncResourceTracker::GetRenderTracker()
67 return mRenderTracker;
70 void SyncResourceTracker::DoReset()
72 if( mRenderTracker != NULL )
74 mRenderTracker->ResetSyncFlag();
78 void SyncResourceTracker::DoSetComplete()
80 // Do nothing with this status, we are using only the RenderTracker to manage completeness
83 bool SyncResourceTracker::DoIsComplete()
85 if( ! mComplete && mRenderTracker != NULL )
87 if( mRenderTracker->IsSynced() )
89 TRACKER_LOG_FMT(Debug::General, " Synced");