I love what SDL2 has done for Open GL ES 2.0 and the desktop. I have expanded it to not need glew, and also leave the linking to SDL.dll up to the SDL logic. Turns out that 6 year old NVIDIA hardware works great directly, and then there is no pain to install angle, and no need to install glew. Just SLD out of the box. So, the list of functions was enought for the test, but not enoug for anything else. So I developed some snobol parsers that get the entire OpenGles list from the khronos gl2.h ( and a couple from gl2ext.h> Then I developed some code based on the excellent Context stuff to provide a shim in two ways. One way is to use #defines to hid the fact that you are calling ctx.glSomething all the time. That is faster and better for performance, slightly, but it wont help if other libraries and modules out of your control want the GLES2.0 library. The second method is creating small stub functions, that appear to be a library, but just use SDL's context for doing the gl commands. I compiled my main program as a monolithic binary with static files. It is a little big, but guarenteed to work. convert_gl2_h_into_gles2funcs_h.sno - this one matches your format. For Nvidia 330M, it had all functions. convert_gl2_h_into_gles2_stubcall_overs_c.sno - this tricky code has LoadContext in it, and a bunch of shim functions that properly handle the __imp_ crap. This looks like the OpenGLES2 dll, but can be linked statically, or dynamically. convert_gl2_h_into_gles2_stubcall_overs_h.sno - a header file which borrows the context definition code from the original test program. convert_gles2funcs_into_gles2_define_overs_h.sno - This generates the define patch - an alternate way to not need to specify the context. .sno requires snobol4 or spitbol to run. gl2.h - the base file, with 3 extenstions for the triangle example to work. Makefile - an attempt to build it - but not configured and all that. readme.txt triangle.c https://gist.github.com/SuperV1234/5c5ad838fe5fe1bf54f9 - tith the Load Context, include, and converted from c++ back down to C. This is a good example for people to try, but not my code. testgles2.c - the test program modified to, well, run, and also has the ctx. prefixes removed. Actual source files SDL_gles2funcs.h - complete for basic set, 3 extenstions. generated from the khronos original file. SDL_gles2_define_overs_wrapper.c - stub with the loadContext routine in it. SDL_gles2_define_overs_wrapper.h - generated from SDL_gles2funcs.h . macros that hide the context prefix. SDL_gles2_stubcall_overs_wrapper.h - header to include to activate for the stub calls that relace the OpenGLes2.0 dll stuff - also autogenerated, but doesnt really need to be SDL_gles2_stubcall_overs_wrapper.c - All the stubs beautifully writtent that map to the __IMP_ weird dll stuff and call SDK's context to do the work. Auto-generated with snobol4. I know this needs some cleanup, but it is what people are looking for - a single platform hardware based to do graphics. Works on iphone, android, most desktops and laptops, and emscriptem javascript! Wow! Hibbard Engler, Nov 1, 2017