Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / ui / gl / gl_context.cc
index 1bc4d12..cd9a28c 100644 (file)
@@ -14,6 +14,7 @@
 #include "ui/gl/gl_implementation.h"
 #include "ui/gl/gl_surface.h"
 #include "ui/gl/gl_switches.h"
+#include "ui/gl/gl_version_info.h"
 
 namespace gfx {
 
@@ -58,6 +59,20 @@ std::string GLContext::GetExtensions() {
   return std::string(ext ? ext : "");
 }
 
+std::string GLContext::GetGLVersion() {
+  DCHECK(IsCurrent(NULL));
+  const char *version =
+      reinterpret_cast<const char*>(glGetString(GL_VERSION));
+  return std::string(version ? version : "");
+}
+
+std::string GLContext::GetGLRenderer() {
+  DCHECK(IsCurrent(NULL));
+  const char *renderer =
+      reinterpret_cast<const char*>(glGetString(GL_RENDERER));
+  return std::string(renderer ? renderer : "");
+}
+
 bool GLContext::HasExtension(const char* name) {
   std::string extensions = GetExtensions();
   extensions += " ";
@@ -68,6 +83,16 @@ bool GLContext::HasExtension(const char* name) {
   return extensions.find(delimited_name) != std::string::npos;
 }
 
+const GLVersionInfo* GLContext::GetVersionInfo() {
+  if(!version_info_) {
+    std::string version = GetGLVersion();
+    std::string renderer = GetGLRenderer();
+    version_info_ = scoped_ptr<GLVersionInfo>(
+        new GLVersionInfo(version.c_str(), renderer.c_str()));
+  }
+  return version_info_.get();
+}
+
 GLShareGroup* GLContext::share_group() {
   return share_group_.get();
 }
@@ -114,14 +139,14 @@ bool GLContext::WasAllocatedUsingRobustnessExtension() {
   return false;
 }
 
-bool GLContext::InitializeExtensionBindings() {
+bool GLContext::InitializeDynamicBindings() {
   DCHECK(IsCurrent(NULL));
   static bool initialized = false;
   if (initialized)
     return initialized;
-  initialized = InitializeGLExtensionBindings(GetGLImplementation(), this);
+  initialized = InitializeDynamicGLBindings(GetGLImplementation(), this);
   if (!initialized)
-    LOG(ERROR) << "Could not initialize extension bindings.";
+    LOG(ERROR) << "Could not initialize dynamic bindings.";
   return initialized;
 }