Been switching gears from Gaff to Gleam. Did a big round of bug fixes, majority on the OpenGL side. Turns out glTexStorageXD() (X being the dimension) followed by glTexSubImageXD() does not produce the same result as calling glTexImageXD(). While it compiled and glError() reported nothing, textures were not getting loaded correctly. The texture would have a random sized black block in the bottom-right corner. Switching to glTexImageXD() fixed this issue.
In major news, I’ve added multi-device and multi-monitor support! … in theory anyways. My second monitor died, so I can’t actually test my changes, but according to the documentation (or lack thereof), it should work! Even if it doesn’t, I at least haven’t broken the single device, single monitor support. Why did I decide to add support for this? Well, for starters, why not? It basically extends the already existing concept of a device and an output. The real reason I decided to add support for this is because I was talking with some co-workers about some game ideas. It got me excited about playing around with game mechanics (or just useful features) revolving around having multiple monitors. To my knowledge, the only game that utilizes multiple monitors is Supreme Commander.
Now that both the OpenGL and DirectX renderers in Gleam work exactly the same now, I feel I can start attempting to integrate it into a game engine! … once I have one to integrate it into. So, I guess it’s time to make an engine and learn some FLTK to make some tools!
I think I’ll write my next post about what I ended up doing for my multi-device/monitor support. Took me quite a bit of digging to figure out how to do it and it might be useful to a couple people.