#define __DALI_RENDER_SURFACE_H__
/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
class EglInterface;
class DisplayConnection;
+class ThreadSynchronizationInterface;
namespace Integration
{
{
public:
+ enum Type
+ {
+ ECORE_RENDER_SURFACE,
+ WAYLAND_RENDER_SURFACE,
+ NATIVE_RENDER_SURFACE
+ };
+
/**
* @brief Constructor
* Inlined as this is a pure abstract interface
* a surface to render onto.
* @param[in] egl The Egl interface
* @param[in] glAbstraction OpenGLES abstraction interface
+ * @param[in] resizingSurface True if the surface is being resized
* @return True if the operation is successful, False if the operation failed
*/
- virtual bool PreRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction ) = 0;
+ virtual bool PreRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction, bool resizingSurface ) = 0;
/**
* @brief Invoked by render thread after Core::Render
* @param[in] egl The Egl interface
* @param[in] glAbstraction OpenGLES abstraction interface
* @param[in] displayConnection display connection
- * @param[in] deltaTime Time (in microseconds) since PostRender was last called.
* @param[in] replacingSurface True if the surface is being replaced.
+ * @param[in] resizingSurface True if the surface is being resized.
*/
- virtual void PostRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction, DisplayConnection* displayConnection, unsigned int deltaTime, bool replacingSurface ) = 0;
+ virtual void PostRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction, DisplayConnection* displayConnection, bool replacingSurface, bool resizingSurface ) = 0;
/**
* @brief Invoked by render thread when the thread should be stop
*/
virtual void ReleaseLock() = 0;
+ /**
+ * @brief Sets the ThreadSynchronizationInterface
+ *
+ * @param threadSynchronization The thread-synchronization implementation.
+ */
+ virtual void SetThreadSynchronization( ThreadSynchronizationInterface& threadSynchronization ) = 0;
+
+ virtual RenderSurface::Type GetSurfaceType() = 0;
+
private:
/**