wxGLCanvasEGL for Angle (OpenGL ES on DirectX / Metal / Vulcan)

124 views
Skip to first unread message

Vojtěch Bubník

unread,
Apr 20, 2022, 2:49:12 AM4/20/22
to wx-u...@googlegroups.com
Hello. 

I am not sure whether the gang is aware of this widespread technology:


Google implemented an OpenGL ES emulator on top of native graphics interfaces (DirectX, Metal, Vulcan) to support stable WebGL on all platforms for Chrome (and MS Edge as they just reskinned Chrome). Newly Apple claims to support WebGL 2.0 (based on OpenGL ES 3.0) on Safari using Angle and they contributed Metal support to Angle.

DirectX is more stable on Windows than OpenGL while Apple deprecated OpenGL a couple of years ago. DirectX is more stable on Windows, because the vendor only provides thin hardware abstraction layer drivers, while Microsoft provides the rest of the API. On the contrary, the vendor provides the whole OpenGL driver stack on windows. OpenGL ES is natively supported on mobile platforms. Thus it is a good idea to support Angle on all platforms going forward, having to maintain a single 3D rendering code base for both desktop and mobile.

We tried Angle on Windows, however we need to suppress the default wxGLCanvas linking because it links implicitly with opengl32.dll and we need a variant of wxGLCanvasEGL for Windows. 

The similar likely applies to Apple, however while the following link https://www.khronos.org/blog/webgl-2-achieves-pervasive-support-from-all-major-web-browsers states that Apple uses Angle already in production code, the Angle library compatibility table still marks Metal support as unfinished.

We have ported our 3D rendering code to OpenGL ES in PrusaSlicer already, thus we may try to port wxGLCanvasEGL to Windows this year, however it is not at the top of our priority list as of now.


Stefan Csomor

unread,
Apr 20, 2022, 3:31:15 AM4/20/22
to wx-u...@googlegroups.com

Hi Vojtěch

 

Thanks for mentioning it, for an iOS app written by someone else, with only a few textures and modest performance requirements, I’m torn between a simple layer that directly translates to either OpenGL(ES) or Metal and Angle. I was reluctant about the latter because of the “in Progress” status … so I went forward with the former, and our simple wx-opengl-samples work, but since OpenGL Code is spread through that other project it’s quite a pain … perhaps I should give angle another shot …

 

Best Regards,

 

Stefan

--
Please read https://www.wxwidgets.org/support/mlhowto.htm before posting.
---
You received this message because you are subscribed to the Google Groups "wx-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to wx-users+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/wx-users/CAAE6JuzK-K35R8W9Vy4%2BjwFQFv-xqADj%3DrnD3jb1uUyXiqvBHg%40mail.gmail.com.

Reply all
Reply to author
Forward
0 new messages