Skip to content

OpenGL Support Matrix

WangBin edited this page Sep 5, 2020 · 3 revisions

If OpenGL context can be provided by user, it should always be supported.

OpenGL context aslo can be created internally from native surface handle, and various kinds of context are supported.

Native GL context to create a client API

OS\API OpenGL OpenGL ES
Win32 WGL WGL/EGL
WinRT EGL
Linux GLX/EGL GLX/EGL
macOS CGL/NSGL/GLX EGL
iOS EAGL
Android EGL(?) EGL

android may not support Desktop GL on EGL.

  • EGL+OpenGL: must no OpenGLES
  • Disable EGL: must no EGL
  • EGL is preferred if Context::EGL is set
  • OpenGLES is preferred if EGL and OpenGLES are set
  • Desktop OpenGL is preferred if EGL is not set and OpenGL is set
  • OpenGL from WGL/GLX: Context::OpenGL.
  • OpenGLES from WGL/GLX: Context::OpenGLES

Native surface to create a context

OS\Surface OpenGL OpenGL ES
Win32 HWND HWND
WinRT ICoreWindow/ISwapChainPanel/IPropertySet
Linux Window Window/wl_egl_window/gbm_surface
macOS NSWindow/NSView/CALayer NSWindow/NSView/CALayer
iOS UIView/CAEAGLLayer
Android ANativeWindow ANativeWindow
Raspberry Pi Linux EGL_DISPMANX_WINDOW_T/Linux
ARM Mali Linux fbdev_window/Linux
Clone this wiki locally