#include <dali/integration-api/platform-abstraction.h>
#include <dali/integration-api/processor-interface.h>
#include <dali/integration-api/render-controller.h>
+#include <dali/integration-api/trace.h>
#include <dali/internal/event/actors/actor-impl.h>
#include <dali/internal/event/animation/animation-playlist.h>
// The Update for frame N+1 may be processed whilst frame N is being rendered.
const uint32_t MAXIMUM_UPDATE_COUNT = 2u;
+DALI_INIT_TRACE_FILTER(gTraceFilter, DALI_TRACE_PERFORMANCE_MARKER, false);
+
#if defined(DEBUG_ENABLED)
Debug::Filter* gCoreFilter = Debug::Filter::New(Debug::Concise, false, "LOG_CORE");
#endif
void Core::RunProcessors()
{
- // Copy processor pointers to prevent changes to vector affecting loop iterator.
- Dali::Vector<Integration::Processor*> processors(mProcessors);
+ if(mProcessors.Count() != 0)
+ {
+ DALI_TRACE_BEGIN(gTraceFilter, "DALI_CORE_RUN_PROCESSORS");
- // To prevent accessing processor unregistered during the loop
- mProcessorUnregistered = false;
+ // Copy processor pointers to prevent changes to vector affecting loop iterator.
+ Dali::Vector<Integration::Processor*> processors(mProcessors);
- for(auto processor : processors)
- {
- if(processor)
+ // To prevent accessing processor unregistered during the loop
+ mProcessorUnregistered = false;
+
+ for(auto processor : processors)
{
- if(!mProcessorUnregistered)
+ if(processor)
{
- processor->Process(false);
- }
- else
- {
- // Run processor if the processor is still in the list.
- // It may be removed during the loop.
- auto iter = std::find(mProcessors.Begin(), mProcessors.End(), processor);
- if(iter != mProcessors.End())
+ if(!mProcessorUnregistered)
{
processor->Process(false);
}
+ else
+ {
+ // Run processor if the processor is still in the list.
+ // It may be removed during the loop.
+ auto iter = std::find(mProcessors.Begin(), mProcessors.End(), processor);
+ if(iter != mProcessors.End())
+ {
+ processor->Process(false);
+ }
+ }
}
}
+ DALI_TRACE_END(gTraceFilter, "DALI_CORE_RUN_PROCESSORS");
}
}
void Core::RunPostProcessors()
{
- // Copy processor pointers to prevent changes to vector affecting loop iterator.
- Dali::Vector<Integration::Processor*> processors(mPostProcessors);
+ if(mPostProcessors.Count() != 0)
+ {
+ DALI_TRACE_BEGIN(gTraceFilter, "DALI_CORE_RUN_POST_PROCESSORS");
- // To prevent accessing processor unregistered during the loop
- mPostProcessorUnregistered = false;
+ // Copy processor pointers to prevent changes to vector affecting loop iterator.
+ Dali::Vector<Integration::Processor*> processors(mPostProcessors);
- for(auto processor : processors)
- {
- if(processor)
+ // To prevent accessing processor unregistered during the loop
+ mPostProcessorUnregistered = false;
+
+ for(auto processor : processors)
{
- if(!mPostProcessorUnregistered)
+ if(processor)
{
- processor->Process(true);
- }
- else
- {
- // Run processor if the processor is still in the list.
- // It may be removed during the loop.
- auto iter = std::find(mPostProcessors.Begin(), mPostProcessors.End(), processor);
- if(iter != mPostProcessors.End())
+ if(!mPostProcessorUnregistered)
{
processor->Process(true);
}
+ else
+ {
+ // Run processor if the processor is still in the list.
+ // It may be removed during the loop.
+ auto iter = std::find(mPostProcessors.Begin(), mPostProcessors.End(), processor);
+ if(iter != mPostProcessors.End())
+ {
+ processor->Process(true);
+ }
+ }
}
}
+ DALI_TRACE_END(gTraceFilter, "DALI_CORE_RUN_POST_PROCESSORS");
}
}
// INTERNAL INCLUDES
#include <dali/devel-api/common/owner-container.h>
#include <dali/devel-api/threading/mutex.h>
+#include <dali/integration-api/debug.h>
+#include <dali/integration-api/trace.h>
#include <dali/internal/common/message.h>
#include <dali/internal/event/common/complete-notification-interface.h>
#include <dali/internal/event/common/property-notification-impl.h>
{
typedef Dali::Vector<CompleteNotificationInterface*> InterfaceContainer;
+DALI_INIT_TRACE_FILTER(gTraceFilter, DALI_TRACE_PERFORMANCE_MARKER, false);
+
/**
* helper to move elements from one container to another
* @param from where to move
MessageContainer::Iterator iter = mImpl->eventMessageQueue.Begin();
const MessageContainer::Iterator end = mImpl->eventMessageQueue.End();
- for(; iter != end; ++iter)
+ if(iter != end)
{
- (*iter)->Process(0u /*ignored*/);
+ DALI_TRACE_BEGIN(gTraceFilter, "DALI_PROCESS_NOTIFICATION_MESSAGE");
+ for(; iter != end; ++iter)
+ {
+ (*iter)->Process(0u /*ignored*/);
+ }
+ DALI_TRACE_END(gTraceFilter, "DALI_PROCESS_NOTIFICATION_MESSAGE");
}
// release the processed messages from event side queue
mImpl->eventMessageQueue.Clear();
#include <dali/internal/event/events/key-event-processor.h>
// INTERNAL INCLUDES
-#include <dali/integration-api/debug.h>
#include <dali/integration-api/events/key-event-integ.h>
+#include <dali/integration-api/trace.h>
#include <dali/internal/event/common/scene-impl.h>
#include <dali/internal/event/events/key-event-impl.h>
#include <dali/public-api/events/key-event.h>
{
namespace Internal
{
+namespace
+{
+DALI_INIT_TRACE_FILTER(gTraceFilter, DALI_TRACE_PERFORMANCE_MARKER, false);
+} // namespace
+
KeyEventProcessor::KeyEventProcessor(Scene& scene)
: mScene(scene)
{
KeyEventPtr keyEvent(new KeyEvent(event.keyName, event.logicalKey, event.keyString, event.keyCode, event.keyModifier, event.time, static_cast<Dali::KeyEvent::State>(event.state), event.compose, event.deviceName, event.deviceClass, event.deviceSubclass));
Dali::KeyEvent keyEventHandle(keyEvent.Get());
- DALI_LOG_RELEASE_INFO("Start processing key event [%s, %d]\n", event.keyName.c_str(), event.state);
+#ifdef TRACE_ENABLED
+ std::ostringstream stream;
+ if(gTraceFilter->IsTraceEnabled())
+ {
+ stream << "DALI_PROCESS_KEY_EVENT [" << event.keyName << ", " << event.state << "]\n";
+ DALI_TRACE_BEGIN(gTraceFilter, stream.str().c_str());
+ }
+#endif
// Emit the key event signal from the scene.
bool consumed = mScene.EmitInterceptKeyEventSignal(keyEventHandle);
mScene.EmitKeyEventSignal(keyEventHandle);
}
- DALI_LOG_RELEASE_INFO("End processing key event [consumed = %d]\n", consumed);
+#ifdef TRACE_ENABLED
+ if(gTraceFilter->IsTraceEnabled())
+ {
+ DALI_TRACE_END(gTraceFilter, stream.str().c_str());
+ }
+#endif
}
} // namespace Internal
// INTERNAL INCLUDES
#include <dali/integration-api/debug.h>
#include <dali/integration-api/render-controller.h>
+#include <dali/integration-api/trace.h>
#include <dali/internal/event/actors/actor-impl.h>
#include <dali/internal/event/common/stage-impl.h>
#include <dali/internal/event/common/thread-local-storage.h>
{
namespace
{
+DALI_INIT_TRACE_FILTER(gTraceFilter, DALI_TRACE_PERFORMANCE_MARKER, false);
+
#if defined(DEBUG_ENABLED)
Integration::Log::Filter* gLogFilter(Integration::Log::Filter::New(Debug::NoLogging, false, "LOG_RELAYOUT_CONTROLLER"));
// 2. Iterate through the stack until it's empty.
if(mRelayoutStack->Size() > 0)
{
+ DALI_TRACE_BEGIN(gTraceFilter, "DALI_RELAYOUT");
PRINT_HIERARCHY;
while(mRelayoutStack->Size() > 0)
mRelayoutInfoAllocator.ResetMemoryPool();
PRINT_HIERARCHY;
+ DALI_TRACE_END(gTraceFilter, "DALI_RELAYOUT");
}
mPerformingRelayout = false;