{
class Processor;
class RenderController;
+class GlAbstraction;
class PlatformAbstraction;
class UpdateStatus;
class RenderStatus;
/**
* @copydoc Dali::Integration::Core::PreRender()
*/
- void PreRender(Integration::Scene& scene, std::vector<Rect<int>>& damagedRects);
+ void PreRender(Integration::RenderStatus& status, Integration::Scene& scene, std::vector<Rect<int>>& damagedRects);
/**
* @copydoc Dali::Integration::Core::RenderScene()
/**
* @copydoc Dali::Integration::Core::RegisterProcessor
*/
- void RegisterProcessor(Dali::Integration::Processor& processor);
+ void RegisterProcessor(Integration::Processor& processor, bool postProcessor = false);
/**
* @copydoc Dali::Integration::Core::UnregisterProcessor
*/
- void UnregisterProcessor(Dali::Integration::Processor& processor);
+ void UnregisterProcessor(Dali::Integration::Processor& processor, bool postProcessor = false);
/**
* @copydoc Dali::Internal::ThreadLocalStorage::AddScene()
*/
void RunProcessors();
+ /**
+ * Run each registered postprocessor
+ */
+ void RunPostProcessors();
+
// for use by ThreadLocalStorage
/**
OwnerPointer<NotificationManager> mNotificationManager; ///< Notification manager
OwnerPointer<GestureEventProcessor> mGestureEventProcessor; ///< The gesture event processor
Dali::Vector<Integration::Processor*> mProcessors; ///< Registered processors (not owned)
+ Dali::Vector<Integration::Processor*> mPostProcessors; ///< Registered post processors those will called after relayout(not owned)
using SceneContainer = std::vector<ScenePtr>;
SceneContainer mScenes; ///< A container of scenes that bound to a surface for rendering, owned by Core