*/
// EXTERNAL INCLUDES
-#include <EGL/egl.h>
-#include <EGL/eglext.h>
+#include <dali/internal/graphics/common/egl-include.h>
#include <dali/public-api/common/dali-vector.h>
#include <dali/public-api/common/vector-wrapper.h>
#include <dali/integration-api/core-enumerations.h>
// INTERNAL INCLUDES
-#include <dali/integration-api/egl-interface.h>
+#include <dali/integration-api/adaptor-framework/egl-interface.h>
namespace Dali
{
-
namespace Internal
{
namespace Adaptor
* @param[in] multiSamplingLevel The Multi-sampling level required
* @param[in] depthBufferRequired Whether the depth buffer is required
* @param[in] stencilBufferRequired Whether the stencil buffer is required
+ * @param[in] partialUpdateAvailable Whether the partial update is available
*/
EglImplementation( int multiSamplingLevel,
Integration::DepthBufferAvailable depthBufferRequired,
- Integration::StencilBufferAvailable stencilBufferRequired );
+ Integration::StencilBufferAvailable stencilBufferRequired,
+ Integration::PartialUpdateAvailable partialUpdateAvailable );
/**
* Destructor
*/
virtual void SwapBuffers( EGLSurface& eglSurface );
+ /**
+ * Get current buffer age
+ */
+ virtual int GetBufferAge( EGLSurface& eglSurface );
+
+ /**
+ * Set Damaged rect for Partial update
+ */
+ virtual void SetDamagedRect( std::vector<int> damagedRectArray, EGLSurface& eglSurface );
+
/**
* Performs an OpenGL copy buffers command
*/
void SetGlesVersion( const int32_t glesVersion );
/**
+ * Sets Whether the frame is the first after Resume.
+ */
+ void SetFirstFrameAfterResume();
+
+ /**
* returns the display with which this object was initialized
* @return the EGL Display.
*/
*/
int32_t GetGlesVersion() const;
+ /**
+ * Returns whether the surfaceless context is supported
+ * @return true if the surfaceless context is supported
+ */
+ bool IsSurfacelessContextSupported() const;
+
+ /**
+ * @brief Wait until all rendering calls for the currently context are executed
+ */
+ void WaitClient();
+
private:
Vector<EGLint> mContextAttribs;
int32_t mMultiSamplingLevel;
int32_t mGlesVersion;
+ std::vector<int> mDamagedRectArray;
ColorDepth mColorDepth;
bool mIsWindow;
bool mDepthBufferRequired;
bool mStencilBufferRequired;
+ bool mIsSurfacelessContextSupported;
+ bool mIsKhrCreateContextSupported;
+ uint32_t mSwapBufferCountAfterResume;
+ bool mIsKhrPartialUpdateSupported;
+ bool mPartialUpdateAvailable;
+
+ PFNEGLSETDAMAGEREGIONKHRPROC mEglSetDamageRegionKHR;
+ PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC mSwapBuffersWithDamage;
};
} // namespace Adaptor