void MessageQueue::EventProcessingStarted()
{
- mImpl->processingEvents = true;
+ mImpl->processingEvents = true; // called from event thread
}
+// Called from event thread
unsigned int* MessageQueue::ReserveMessageSlot( unsigned int requestedSize, bool updateScene )
{
DALI_ASSERT_DEBUG( 0 != requestedSize );
// If we are outside, then we have to request a call to Core::ProcessEvents() on idle.
if ( false == mImpl->processingEvents )
{
- mImpl->renderController.RequestProcessEventsOnIdle();
+ mImpl->renderController.RequestProcessEventsOnIdle( false );
}
return mImpl->currentMessageBuffer->ReserveMessageSlot( requestedSize );
}
+// Called from event thread
bool MessageQueue::FlushQueue()
{
const bool messagesToProcess = ( NULL != mImpl->currentMessageBuffer );
return messagesToProcess;
}
-void MessageQueue::ProcessMessages( BufferIndex updateBufferIndex )
+bool MessageQueue::ProcessMessages( BufferIndex updateBufferIndex )
{
PERF_MONITOR_START(PerformanceMonitor::PROCESS_MESSAGES);
mImpl->processQueue.clear();
PERF_MONITOR_END(PerformanceMonitor::PROCESS_MESSAGES);
+
+ return ( mImpl->sceneUpdate & 0x01 ); // if it was previously 2, scene graph was updated.
}
bool MessageQueue::WasEmpty() const