Fixed Function Programmable Shader Common Desktop Profile Lifecycle: From the lower right to the top, left step where the GLContext is created with a suitable GL implementation matching the GLProfile. Desktop/Mobile Common Interfaces Private implementation (detail) Mobile final public OpenGL Interfaces Desktop final public OpenGL Interfaces Common GL Stuff GL4bcImpl GLES3Impl <<interface>> NativeWindow AbstractGraphicsConfiguration GLCapabilities GLProfile <<interface>> GLBase <<interface>> GL4bc <<interface>> GL2ES1 <<interface>> GL4 <<interface>> GL <<interface>> GL3bc <<interface>> GL2ES2 <<interface>> GL2 <<interface>> GLES1 <<interface>> GL3 <<interface>> GLES2 <<@interface>> GL4ES3 GLContext GLDrawable <<metaclass>> GL2ES3 <<@interface>> GLES3 GLES1Impl Capabilities <<interface>> GL2GL3 <<@interface>> GL3ES3 0..1 1 chosen 1 requested 1 1 1