X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fgraphics%2Fgles%2Fegl-implementation.h;h=6d9e3c904ca208dc330dd4e48e92d4ff16ff4fe4;hb=97568a209c309d5f99bf288afa951a77f7fdcddd;hp=03c35f45bdc86cd78f09251d9ea4c7c302f42361;hpb=813e2f649d7866ac8ed9233b4b90f3055e143744;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/graphics/gles/egl-implementation.h b/dali/internal/graphics/gles/egl-implementation.h index 03c35f4..6d9e3c9 100644 --- a/dali/internal/graphics/gles/egl-implementation.h +++ b/dali/internal/graphics/gles/egl-implementation.h @@ -19,18 +19,20 @@ */ // EXTERNAL INCLUDES -#include -#include +#include +#include + +#include #include #include +#include #include // INTERNAL INCLUDES -#include +#include namespace Dali { - namespace Internal { namespace Adaptor @@ -48,15 +50,17 @@ public: * @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] partialUpdatedRequired Whether the partial update is required */ EglImplementation( int multiSamplingLevel, Integration::DepthBufferAvailable depthBufferRequired, - Integration::StencilBufferAvailable stencilBufferRequired ); + Integration::StencilBufferAvailable stencilBufferRequired, + Integration::PartialUpdateAvailable partialUpdateRequired ); /** * Destructor */ - virtual ~EglImplementation(); + ~EglImplementation() override; public: @@ -73,7 +77,7 @@ public: * Create the OpenGL context for the shared resource. * @return true if successful */ - virtual bool CreateContext(); + bool CreateContext() override; /** * Create the OpenGL context for the window. @@ -94,7 +98,7 @@ public: /** * Make the OpenGL context current */ - virtual void MakeContextCurrent( EGLSurface eglSurface, EGLContext eglContext ); + void MakeContextCurrent( EGLSurface eglSurface, EGLContext eglContext ) override; /** * clear the OpenGL context @@ -112,7 +116,7 @@ public: /** * Terminate GL */ - virtual void TerminateGles(); + void TerminateGles() override; /** * Checks if GL is initialised @@ -123,17 +127,32 @@ public: /** * Performs an OpenGL swap buffers command */ - virtual void SwapBuffers( EGLSurface& eglSurface ); + void SwapBuffers( EGLSurface& eglSurface ) override; + + /** + * Gets current back buffer age + */ + EGLint GetBufferAge( EGLSurface& eglSurface ) const; + + /** + * Performs an OpenGL set damage command with damaged rects + */ + void SetDamageRegion( EGLSurface& eglSurface, std::vector< Rect< int > >& damagedRects ); + + /** + * Performs an OpenGL swap buffers command with damaged rects + */ + virtual void SwapBuffers( EGLSurface& eglSurface, const std::vector>& damagedRects ); /** * Performs an OpenGL copy buffers command */ - virtual void CopyBuffers( EGLSurface& eglSurface ); + void CopyBuffers( EGLSurface& eglSurface ) override; /** * Performs an EGL wait GL command */ - virtual void WaitGL(); + void WaitGL() override; /** * Choose config of egl @@ -182,6 +201,11 @@ public: 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. */ @@ -205,6 +229,17 @@ public: */ bool IsSurfacelessContextSupported() const; + /** + * @brief Wait until all rendering calls for the currently context are executed + */ + void WaitClient(); + + /** + * @brief Returns whether the partial update is required. + * @return true if the partial update is required. + */ + bool IsPartialUpdateRequired() const; + private: Vector mContextAttribs; @@ -238,7 +273,14 @@ private: bool mIsWindow; bool mDepthBufferRequired; bool mStencilBufferRequired; + bool mPartialUpdateRequired; bool mIsSurfacelessContextSupported; + bool mIsKhrCreateContextSupported; + + uint32_t mSwapBufferCountAfterResume; + PFNEGLSETDAMAGEREGIONKHRPROC mEglSetDamageRegionKHR; + PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC mEglSwapBuffersWithDamageKHR; + }; } // namespace Adaptor