CoreGL needs an ES interface and implementation set. This should be very easy to do with the existing API. The ES-friendly parts of CoreGL just need to be extracted to a parent interface CoreGLES (or something like that). The same thing can be done with the implementations but with subclassing (sorry @void256 it's the best way to do it for this xD). No overrides will be necessary of course.