Enable GLES 3.0 by default.
[platform/core/uifw/dali-adaptor.git] / adaptors / tizen / gl / egl-image-extensions-tizen.cpp
index 88ee62d..24f5c82 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014 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.
@@ -22,8 +22,6 @@
 // EXTERNAL INCLUDES
 #if DALI_GLES_VERSION >= 30
 #include <GLES3/gl3.h>
-#include <GLES3/gl3ext.h>
-
 #else
 #include <GLES2/gl2.h>
 #endif // DALI_GLES_VERSION >= 30
@@ -45,9 +43,9 @@
 namespace
 {
 // function pointers assigned in InitializeEglImageKHR
-PFNEGLCREATEIMAGEKHRPROC eglCreateImageKHR = 0;
-PFNEGLDESTROYIMAGEKHRPROC eglDestroyImageKHR = 0;
-PFNGLEGLIMAGETARGETTEXTURE2DOESPROC glEGLImageTargetTexture2DOES = 0;
+PFNEGLCREATEIMAGEKHRPROC eglCreateImageKHRProc = 0;
+PFNEGLDESTROYIMAGEKHRPROC eglDestroyImageKHRProc = 0;
+PFNGLEGLIMAGETARGETTEXTURE2DOESPROC glEGLImageTargetTexture2DOESProc = 0;
 } // unnamed namespace
 
 
@@ -91,7 +89,7 @@ void* EglImageExtensions::CreateImageKHR(EGLClientBuffer clientBuffer)
     EGL_NONE
   };
 
-  EGLImageKHR eglImage  = eglCreateImageKHR( mEglImplementation->GetDisplay(),
+  EGLImageKHR eglImage  = eglCreateImageKHRProc( mEglImplementation->GetDisplay(),
                                              EGL_NO_CONTEXT,
                                              EGL_NATIVE_SURFACE_TIZEN,
                                              clientBuffer,
@@ -108,32 +106,32 @@ void* EglImageExtensions::CreateImageKHR(EGLClientBuffer clientBuffer)
       }
       case EGL_BAD_DISPLAY:
       {
-        DALI_LOG_ERROR( "EGL_BAD_DISPLAY: Invalid EGLDisplay object" );
+        DALI_LOG_ERROR( "EGL_BAD_DISPLAY: Invalid EGLDisplay object\n" );
         break;
       }
       case EGL_BAD_CONTEXT:
       {
-        DALI_LOG_ERROR( "EGL_BAD_CONTEXT: Invalid EGLContext object" );
+        DALI_LOG_ERROR( "EGL_BAD_CONTEXT: Invalid EGLContext object\n" );
         break;
       }
       case EGL_BAD_PARAMETER:
       {
-        DALI_LOG_ERROR( "EGL_BAD_PARAMETER: Invalid target parameter or attribute in attrib_list" );
+        DALI_LOG_ERROR( "EGL_BAD_PARAMETER: Invalid target parameter or attribute in attrib_list\n" );
         break;
       }
       case EGL_BAD_MATCH:
       {
-        DALI_LOG_ERROR( "EGL_BAD_MATCH: attrib_list does not match target" );
+        DALI_LOG_ERROR( "EGL_BAD_MATCH: attrib_list does not match target\n" );
         break;
       }
       case EGL_BAD_ACCESS:
       {
-        DALI_LOG_ERROR( "EGL_BAD_ACCESS: Previously bound off-screen, or EGLImage sibling error" );
+        DALI_LOG_ERROR( "EGL_BAD_ACCESS: Previously bound off-screen, or EGLImage sibling error\n" );
         break;
       }
       case EGL_BAD_ALLOC:
       {
-        DALI_LOG_ERROR( "EGL_BAD_ALLOC: Insufficient memory is available" );
+        DALI_LOG_ERROR( "EGL_BAD_ALLOC: Insufficient memory is available\n" );
         break;
       }
       default:
@@ -143,7 +141,7 @@ void* EglImageExtensions::CreateImageKHR(EGLClientBuffer clientBuffer)
     }
   }
 
-  return (void*)eglImage;
+  return eglImage;
 }
 
 void EglImageExtensions::DestroyImageKHR(void* eglImageKHR)
@@ -162,7 +160,7 @@ void EglImageExtensions::DestroyImageKHR(void* eglImageKHR)
 
   EGLImageKHR eglImage = static_cast<EGLImageKHR>(eglImageKHR);
 
-  EGLBoolean result = eglDestroyImageKHR(mEglImplementation->GetDisplay(), eglImage);
+  EGLBoolean result = eglDestroyImageKHRProc(mEglImplementation->GetDisplay(), eglImage);
 
   if( EGL_FALSE == result )
   {
@@ -170,17 +168,17 @@ void EglImageExtensions::DestroyImageKHR(void* eglImageKHR)
     {
       case EGL_BAD_DISPLAY:
       {
-        DALI_LOG_ERROR( "EGL_BAD_DISPLAY: Invalid EGLDisplay object" );
+        DALI_LOG_ERROR( "EGL_BAD_DISPLAY: Invalid EGLDisplay object\n" );
         break;
       }
       case EGL_BAD_PARAMETER:
       {
-        DALI_LOG_ERROR( "EGL_BAD_PARAMETER: eglImage is not a valid EGLImageKHR object created with respect to EGLDisplay" );
+        DALI_LOG_ERROR( "EGL_BAD_PARAMETER: eglImage is not a valid EGLImageKHR object created with respect to EGLDisplay\n" );
         break;
       }
       case EGL_BAD_ACCESS:
       {
-        DALI_LOG_ERROR( "EGL_BAD_ACCESS: EGLImage sibling error" );
+        DALI_LOG_ERROR( "EGL_BAD_ACCESS: EGLImage sibling error\n" );
         break;
       }
       default:
@@ -203,7 +201,7 @@ void EglImageExtensions::TargetTextureKHR(void* eglImageKHR)
     GLint glError = glGetError();
 #endif
 
-    glEGLImageTargetTexture2DOES(GL_TEXTURE_EXTERNAL_OES, (GLeglImageOES)eglImage);
+    glEGLImageTargetTexture2DOESProc(GL_TEXTURE_EXTERNAL_OES, reinterpret_cast< GLeglImageOES >( eglImage ) );
 
 #ifdef EGL_ERROR_CHECKING
     glError = glGetError();
@@ -220,12 +218,12 @@ void EglImageExtensions::InitializeEglImageKHR()
   // avoid trying to reload extended KHR functions, if it fails the first time
   if( ! mImageKHRInitializeFailed )
   {
-    eglCreateImageKHR  = (PFNEGLCREATEIMAGEKHRPROC) eglGetProcAddress("eglCreateImageKHR"); /* parasoft-suppress MISRA2004-11_1_DMC "Using EGL defined functions." */
-    eglDestroyImageKHR = (PFNEGLDESTROYIMAGEKHRPROC) eglGetProcAddress("eglDestroyImageKHR"); /* parasoft-suppress MISRA2004-11_1_DMC "Using EGL defined functions." */
-    glEGLImageTargetTexture2DOES = (PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) eglGetProcAddress("glEGLImageTargetTexture2DOES"); /* parasoft-suppress MISRA2004-11_1_DMC "Using EGL defined functions." */
+    eglCreateImageKHRProc  = reinterpret_cast< PFNEGLCREATEIMAGEKHRPROC >( eglGetProcAddress("eglCreateImageKHR") );
+    eglDestroyImageKHRProc = reinterpret_cast< PFNEGLDESTROYIMAGEKHRPROC >( eglGetProcAddress("eglDestroyImageKHR") );
+    glEGLImageTargetTexture2DOESProc = reinterpret_cast< PFNGLEGLIMAGETARGETTEXTURE2DOESPROC >( eglGetProcAddress("glEGLImageTargetTexture2DOES") );
   }
 
-  if (eglCreateImageKHR && eglDestroyImageKHR && glEGLImageTargetTexture2DOES)
+  if (eglCreateImageKHRProc && eglDestroyImageKHRProc && glEGLImageTargetTexture2DOESProc)
   {
     mImageKHRInitialized = true;
   }