projects
/
platform
/
core
/
uifw
/
dali-core.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[3.0] Ensured consistency of scene graph and render items
[platform/core/uifw/dali-core.git]
/
dali
/
internal
/
update
/
queue
/
update-message-queue.cpp
diff --git
a/dali/internal/update/queue/update-message-queue.cpp
b/dali/internal/update/queue/update-message-queue.cpp
index
0e361f7
..
29b32ba
100644
(file)
--- a/
dali/internal/update/queue/update-message-queue.cpp
+++ b/
dali/internal/update/queue/update-message-queue.cpp
@@
-76,7
+76,11
@@
struct MessageQueue::Impl
~Impl()
{
// Delete the current buffer
~Impl()
{
// Delete the current buffer
- delete currentMessageBuffer;
+ if( currentMessageBuffer )
+ {
+ DeleteBufferContents( currentMessageBuffer );
+ delete currentMessageBuffer;
+ }
// Delete the unprocessed buffers
const MessageBufferIter processQueueEndIter = processQueue.end();
// Delete the unprocessed buffers
const MessageBufferIter processQueueEndIter = processQueue.end();
@@
-145,9
+149,10
@@
MessageQueue::~MessageQueue()
void MessageQueue::EventProcessingStarted()
{
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 );
unsigned int* MessageQueue::ReserveMessageSlot( unsigned int requestedSize, bool updateScene )
{
DALI_ASSERT_DEBUG( 0 != requestedSize );
@@
-194,6
+199,7
@@
unsigned int* MessageQueue::ReserveMessageSlot( unsigned int requestedSize, bool
return mImpl->currentMessageBuffer->ReserveMessageSlot( requestedSize );
}
return mImpl->currentMessageBuffer->ReserveMessageSlot( requestedSize );
}
+// Called from event thread
bool MessageQueue::FlushQueue()
{
const bool messagesToProcess = ( NULL != mImpl->currentMessageBuffer );
bool MessageQueue::FlushQueue()
{
const bool messagesToProcess = ( NULL != mImpl->currentMessageBuffer );
@@
-237,7
+243,7
@@
bool MessageQueue::FlushQueue()
return messagesToProcess;
}
return messagesToProcess;
}
-
void
MessageQueue::ProcessMessages( BufferIndex updateBufferIndex )
+
bool
MessageQueue::ProcessMessages( BufferIndex updateBufferIndex )
{
PERF_MONITOR_START(PerformanceMonitor::PROCESS_MESSAGES);
{
PERF_MONITOR_START(PerformanceMonitor::PROCESS_MESSAGES);
@@
-271,6
+277,8
@@
void MessageQueue::ProcessMessages( BufferIndex updateBufferIndex )
mImpl->processQueue.clear();
PERF_MONITOR_END(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
}
bool MessageQueue::WasEmpty() const