Yes, it is intentional: GLES gives us more coverage across a more varied spectrum of platforms and devices, and allows us to use zero-copy paths to shared hardware buffers like dmabuf.
You can use gtk_gl_area_set_allowed_apis()
with GDK_GL_API_GL
to tell GLArea to bind the GL API instead of GLES.
Just be careful that unlike Mesa, some drivers—namely, older versions of the closed source nVidia binary driver—do not allow mixing GL and GLES. If that happens, you can use the GDK_DEBUG
environment variable, and set GDK_DEBUG=gl-prefer-gl
in your environment to tell GTK to prefer GL instead of GLES.