]> OCCT Git - occt-copy.git/commitdiff
0032081: Visualization - WebGL sample errors when run in Safari browser
authorkgv <kgv@opencascade.com>
Sun, 24 Jan 2021 15:31:54 +0000 (18:31 +0300)
committerkgv <kgv@opencascade.com>
Sun, 24 Jan 2021 20:30:52 +0000 (23:30 +0300)
samples/webgl/CMakeLists.txt
src/OpenGl/OpenGl_Context.cxx

index 3a32e698dacc028a725314a5284918d24fff660e..7838293f5c9516db80ff00d03edd534a8a334b96 100644 (file)
@@ -14,7 +14,8 @@ endif()
 
 # customize build
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s WASM=1")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s USE_WEBGL2=1")
+#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s USE_WEBGL2=1")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s MAX_WEBGL_VERSION=2")
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s ALLOW_MEMORY_GROWTH=1")
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --bind")
 #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s SAFE_HEAP=1")
index 097e12fefe943032e3dd0657529c36ed45ce8d82..d4f12d02705266d072388cab2f9599205dcb25b3 100644 (file)
@@ -1156,6 +1156,20 @@ void OpenGl_Context::ReadGlVersion (Standard_Integer& theGlVerMajor,
   // read numbers
   theGlVerMajor = atoi (aMajorStr);
   theGlVerMinor = atoi (aMinorStr);
+#if defined(__EMSCRIPTEN__)
+  if (theGlVerMajor >= 3)
+  {
+    if (!toCheckVer3
+     || ::strstr (aVerStr, "WebGL 1.0") != NULL)
+    {
+      Message::SendWarning() << "Warning! OpenGL context reports version " << theGlVerMajor << "." << theGlVerMinor
+                             << " but WebGL 2.0 was unavailable\n"
+                             << "Fallback to OpenGL ES 2.0 will be used instead of reported version";
+      theGlVerMajor = 2;
+      theGlVerMinor = 0;
+    }
+  }
+#endif
 
   if (theGlVerMajor <= 0)
   {