X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=dali%2Finternal%2Fgraphics%2Fgles%2Fegl-implementation.cpp;h=91d4fab593e5c6aeeac9d19a3a7c35bcb4fa805a;hb=6206c977d8ec33445d0fa948886b214bee02214d;hp=6580a6fd3df4e8d80792f596610b0870e064e7c0;hpb=6f87db7f10cf41060ba6417eb108897f8140eb2a;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/graphics/gles/egl-implementation.cpp b/dali/internal/graphics/gles/egl-implementation.cpp index 6580a6f..91d4fab 100755 --- a/dali/internal/graphics/gles/egl-implementation.cpp +++ b/dali/internal/graphics/gles/egl-implementation.cpp @@ -20,6 +20,7 @@ #include // EXTERNAL INCLUDES +#include #include #include @@ -32,6 +33,11 @@ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wold-style-cast" +namespace +{ + const std::string EGL_KHR_SURFACELESS_CONTEXT = "EGL_KHR_surfaceless_context"; +} + namespace Dali { @@ -71,7 +77,8 @@ EglImplementation::EglImplementation( int multiSamplingLevel, mIsOwnSurface( true ), mIsWindow( true ), mDepthBufferRequired( depthBufferRequired == Integration::DepthBufferAvailable::TRUE ), - mStencilBufferRequired( stencilBufferRequired == Integration::StencilBufferAvailable::TRUE ) + mStencilBufferRequired( stencilBufferRequired == Integration::StencilBufferAvailable::TRUE ), + mIsSurfacelessContextSupported( false ) { } @@ -107,6 +114,19 @@ bool EglImplementation::InitializeGles( EGLNativeDisplayType display, bool isOwn mIsOwnSurface = isOwnSurface; } + // Query EGL extensions to check whether surfaceless context is supported + const char* const extensionStr = eglQueryString( mEglDisplay, EGL_EXTENSIONS ); + std::istringstream stream(extensionStr); + std::string currentExtension; + while ( std::getline( stream, currentExtension, ' ' ) ) + { + if ( currentExtension == EGL_KHR_SURFACELESS_CONTEXT ) + { + mIsSurfacelessContextSupported = true; + break; + } + } + // We want to display this information all the time, so use the LogMessage directly Integration::Log::LogMessage(Integration::Log::DebugInfo, "EGL Information\n" " Vendor: %s\n" @@ -116,7 +136,7 @@ bool EglImplementation::InitializeGles( EGLNativeDisplayType display, bool isOwn eglQueryString( mEglDisplay, EGL_VENDOR ), eglQueryString( mEglDisplay, EGL_VERSION ), eglQueryString( mEglDisplay, EGL_CLIENT_APIS ), - eglQueryString( mEglDisplay, EGL_EXTENSIONS )); + extensionStr); return mGlesInitialized; } @@ -538,6 +558,11 @@ int32_t EglImplementation::GetGlesVersion() const return mGlesVersion; } +bool EglImplementation::IsSurfacelessContextSupported() const +{ + return mIsSurfacelessContextSupported; +} + } // namespace Adaptor } // namespace Internal