Thursday, March 15, 2007

GLFW braindump #2

I've been working almost exclusively on GLFW during the past few days, an endaevour much simplified by me getting a new keyboard for my laptop. That's one more point for Zepto, as not many manufacturers willingly send out replacement parts to customers and trust them to make the repair themselves. A few minutes and my lovely 6214W is once again the best laptop ever.

Uhm, yes, GLFW.

RandR support is nearly done, with just a few details left. Fullscreen on X11 now Just Works. I've begun to write changelogs and update the LaTeX documentation. The code for FSAA on Win32 is almost merged, with only the really nasty bit inside _glfwPlatformOpenWindow remaining. There's a bug in the FSAA support for X11, but I'm going to look into it once I've posted this, and it's on open drivers so I'm confident that it's our fault.

Looking at the changelog for 2.6, it's apparent that a great deal of work has been done, even though it's taken longer than I would have liked. I've had to learn quite a lot of new things in order to work effectively as project leader and primary maintainer of GLFW, from Xlib to diplomacy. I've also been really bad at keeping the community updated of our progress in the last few month. I really must do better at that, and if any of you read this, I apologise for the lack of updates.

I'm starting to feel comfortable as maintainer, however, and it's no longer daunting to look through the 20,000 lines of C that I was put in charge of (especially since I threw out or rewrote the really nasty bits). I still don't have a deep understanding of every line, but I'm now familiar enough with the code to make large changes relatively unhindered.

Once 2.6 is out, which shouldn't be long now, I'm going to rip out and replace some internal interfaces. No, it won't be an uncompilable mess for three months (and some of this work is already in 2.6, so I'm pretty sure of that), but it will make future development easier (and in some cases, possible). Both multi-window and multi-monitor support requires certain things to be changed, and I think both can be added for 3.0.

0 comments: