-RenderTaskList::RenderTaskList( EventToUpdate& eventToUpdate, RenderTaskDefaults& defaults, bool systemLevel )
-: mEventToUpdate( eventToUpdate ),
- mDefaults( defaults ),
- mIsSystemLevel( systemLevel ),
- mSceneObject( NULL )
+RenderTaskPtr RenderTaskList::GetOverlayTask() const
+{
+ RenderTaskPtr overlayRenderTask;
+ if(mOverlayRenderTask)
+ {
+ overlayRenderTask = mOverlayRenderTask;
+ }
+ return overlayRenderTask;
+}
+
+void RenderTaskList::SetExclusive(RenderTask* task, bool exclusive)
+{
+ // Check to see if this rendertask has an entry?
+ for(auto exclusiveIt = mExclusives.begin(); exclusiveIt != mExclusives.end(); ++exclusiveIt)
+ {
+ if(exclusiveIt->renderTaskPtr == task)
+ {
+ if(!exclusive)
+ {
+ mExclusives.erase(exclusiveIt);
+ break;
+ }
+ else
+ {
+ exclusiveIt->actor.SetActor(task->GetSourceActor());
+ exclusive = false;
+ break;
+ }
+ }
+ }
+ if(exclusive)
+ {
+ Exclusive exclusiveSlot;
+ exclusiveSlot.renderTaskPtr = task;
+ exclusiveSlot.actor.SetActor(task->GetSourceActor());
+ mExclusives.emplace_back(std::move(exclusiveSlot));
+ }
+}
+
+RenderTaskList::RenderTaskList()
+: mEventThreadServices(EventThreadServices::Get()),
+ mDefaults(*Stage::GetCurrent()),
+ mSceneObject(nullptr)