28 days and counting

Time flies. 4 weeks old already? Where does it go? Lost in a blur of nappies, puke and caffeine. One the upside, I get to wallow in all the silly milestones (look forward to 3/6/12 and 18 months!).

Though growing fast, there is still time for chilling out with dad on the floor:

DSC_6259_c

Of course modelling some attractive headgear provides lots of light entertainment:

DSC_6302_c

It turns out to be a lot harder than Dad expected to cook cake in between nappy demands. On the upside, the cake was very nice thank you Amelia. Mummy and Daddy will happily take care of finishing it for you.

DSC_6576_c

After all the excitement, time to go to bed. For all of us:

DSC_6643_c

OpenGL and GTK+: Have I learned anything?

So looking through the codebases for gtkglarea and gtkglext the contrast in approaches is pretty stark:

gtkglext gtkglarea
large codebase small code
separates platform specific code ifdefs everywhere
dead maintained for the moment

For my purposes, I think I’m best to port back to gtkglarea. It is maintained for now (not to slight the current maintainers, just we’ve been through this dance before).

update:

I’ve done the port.  Since kludge3d used gtkglarea in the past it wasn’t really that hard. So for now I’d say unless you need gtkglext’s extra features, use gtkglarea.

OpenGL and GTK+

DSC_0345

Once upon a time, kludge3d (and g3d before it) implemented OpenGL rendering via gtkglarea. gtkglarea (developed by J. Löf and originally hosted at http://www.student.oulu.fi/~jlof/gtkglarea/ – now a dead site) it provided a gtkdrawingarea like widget. Then some time goes by and gtkglarea seems to have gone unmaintained.

In the meantime, gtkglext had come into existence. So by the kludge3d 2003-07-18 release, gtkglext was the display option of choice. gtkglext offered the possibility of placing an OpenGL view onto any GTK+ widget. (Though I’ve never been convinced that you need to do that very often).

So then in 2008, I get my first Vista based laptop. At work, I’ve been internally maintaining a version of kludge3d for many years. I was disappointed that kludge3d only worked properly with desktop compositing turned off. It is not the end of the world sure, but it looks bad, and anyway, it should be fixable right? A quick look at the gtkglext source made it clear I didn’t really have the understanding of how gdk actually does anything on win32. With deadlines looming and the fact that my users were all on XP, I shelved further investigation.

Fastforward to now. Vista or Windows7 is in our corporate future. So while trawling the gtkglext mailing lists I see a post from Mike Farrell. He suggested enabling PFD_SUPPORT_COMPOSITION based on the information at OpenGL.org. Unfortunately the suggested patch didn’t work for me, but did get me digging into the gtkglext source code again. I worked out some of the path from GTK to the screen. gtkglext looks like it is violating the assumptions that DWM has about GDI and the OpenGL context.

Enter a new gtkglarea. (http://www.mono-project.com/GtkGLArea). It looks like it is being maintained again. And hey, it builds properly on windows with mingw out of the box. And better yet, all of the examples run properly with desktop compositing enabled. Woohoo.

So now the question is:

  • fix gtkglext
  • port kludge3d back to gtkglarea?
2003-07-18

Sometimes a quiet day at home is the best

Cool and wet today. Actually perfect to stay at home and play house. I mean that in a good way.

c_DSC_5063

Sometimes its best to sleep late…

c_DSC_5216

… ponder the state of the universe…

c_DSC_5324

… and fool around with daddy.

c_DSC_5346

‘Cause you never know when someone inconsiderate will give you a bath!

c_DSC_5349

But its nice to hold hands afterward.

Home, at last

Funny thing. We’ve lived in our flat for 6 years. But only this year have the local cockatoos started to visit our balcony. One bird we’ve named Bryan is a regular and pretty quirky. So within a couple of hours of coming home, we had Bryan looking through the window while May and Amelia had a late lunch.

c_DSC_5018

After lunch it was time for a sleep. As long as the neighbours lay off the home improvements, it will be sweet.

c_DSC_5021