I have some planned GL driver improvements lined up but I’m currently blocked on the fact that I don’t have a Mac. All things I’m planning requires good OSX support (not SDL 1.2 crap), so I’m kinda screwed … Since I was never able to lend a Mac from someone, I’ll have to shell out for a Mac Mini soon …
Anyways, what I want in the near future:
-
Ability to create GL core contexts in libretro GL. Currently, only GL 2.1/GLES2 contexts are supported. This greatly limits libretro GL when you want to do more fancy stuff. Not supporting GL core contexts in 2013 is kinda backwards. Ofc, you can rely on extensions, but in some cases things will conflict. Core contexts requires some fixes in RetroArch as well. I’ve already implemented this in a branch, but it’s not done.
-
Stencil buffers. I dropped that initially because it just didn’t work, but “the way” to do depth and stencil attachments is a packed format, not separate. Atm, it’s 16-bit depth buffer (only thing GLES2 supports without extensions), but stencil attachment means 24/8 packed.
-
Cached GL contexts. Currently, when you go from fullscreen to windowed and vice versa, the GL context is destroyed and recreated. Strictly speaking, this isn’t 100% necessary. It is kinda troublesome for libretro GL cores, because it means they have to handle the context_reset() callback, which can be hard to implement correctly when the code isn’t written with reinit in mind. Even if it’s handled right, it will likely stall quite a bit. Same here, there’s a WIP branch, but not done yet.
-
Cocoa GL context/drivers. SDL 1.2 is fucked up on OSX due to recent breakages from Apple. There are so many hacks right now, it’s not even funny. If Cocoa proves too hard/fucked up, I’ll have a look at SDL 2.0 instead, which recently got its first stable release.
-
A very simple GLEW replacement. Symbol handling in RetroArch is kinda messy atm, since I cannot rely on a symbol loading library and symbol loading goes in many places, ugly. GLEW is inadequate anyways (doesn’t handle EGL stuff or GLES for one …). Apple hates being standard here so they name everything differently in glext.h <_< Ideally, this will be a lib which is easily reusable in libretro GL cores.