#include "processor-controller.h"
// EXTERNAL INCLUDES
+#include <dali/devel-api/common/stage-devel.h>
#include <dali/integration-api/adaptor-framework/adaptor.h>
#ifdef __cplusplus
#endif
ProcessorController::ProcessorController()
-: mHandler(nullptr)
+: mHandler(nullptr),
+ mKeepRenderingApplied(false)
{
{
try
void ProcessorController::Process(bool postProcessor)
{
mHandler();
+ mKeepRenderingApplied = false;
}
void ProcessorController::SetCallback( ProcessorControllerProcessCallback callback )
mHandler = nullptr;
}
+void ProcessorController::Awake()
+{
+ if(DALI_UNLIKELY(!mKeepRenderingApplied))
+ {
+ if(DALI_LIKELY(Dali::Stage::IsInstalled()))
+ {
+ auto stage = Dali::Stage::GetCurrent();
+ stage.KeepRendering(0.0f);
+ mKeepRenderingApplied = true;
+ }
+ }
+}
+
// ProcessorController Bindings
SWIGEXPORT void * SWIGSTDCALL CSharp_Dali_new_ProcessorController() {
}
}
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_ProcessorController_Awake( void* jarg1 )
+{
+ ProcessorController* processorController = (ProcessorController *) jarg1;
+
+ if( processorController )
+ {
+ processorController->Awake();
+ }
+}
+
#ifdef __cplusplus
}
#endif
\ No newline at end of file
*/
void RemoveCallback( ProcessorControllerProcessCallback callback );
+ /**
+ * @brief Awake update thread so dali-core calls the overriden Process() api.
+ */
+ void Awake();
+
private:
ProcessorControllerProcessCallback mHandler;
+ bool mKeepRenderingApplied; ///< True if we call Stage::KeepRendering(0.0f). It need to avoid duplicated keep rendering call
};
#endif // CSHARP_PROCESSOR_CONTROLLER_H
\ No newline at end of file