Drivers and Selections #

First of all, I'm happy to say that 3dfx has released OpenGL drivers for my Voodoo3 card, which unlike the Mesa (an open-source implementation of OpenGL for almost all platforms) drivers that I was using until now, support windowed rendering, so Meshroom is now accelerated. There's still some bugs (points aren't drawn, I'll have to make a simple program to see if they're not drawn at all, of if it's just a context thing in my program), and some other things I've observed when running some sample programs, but overall life is good. For unsupported software (the whole Voodoo3-on-a-Mac thing is unsupported, I'm guessing they're using this as a way to familiarize themselves with the Mac platform in anticipation of their next product, where it'll be official) this is getting pretty good too.

Other than that, I've started to work on implementing selections (as in, you can click on an object in the 3D view, and it'll be selected by showing it's bounding box with the corner handles). So far it's working pretty well, except I have to do some better parsing of the selection data that OpenGL returns to me (it gives me all the objects which occur at that point, even if they are hidden behind others, so I should parse the array and select the front-most one, but things get a bit more complicated when you have objects completely contained within one another). I'm also wondering whether I should implement multiple selections or not, in the end I guess I will, because it's more dynamic data structures for the IB, but I might wait until I make the switch to the Mac interface (I'm still using GLUT to prototype the underlying architecture, although making the initial switch shouldn't be that hard, things will get more complicated when I implement the proper UI, with the four views (top, left, front, and a 3D camera view) and the editing tools (this will probably require me to implement controls to the MFrame (my application framework), so far (in Iconographer) I've been implementing them by hand, but this doesn't go well with the whole flexible approach that I'm using with the factory method). Right now I'm thinking of having each control have an unique (four letter of course) code, and a pointer to the class which owns it, or a static function of it (e.g. the sphere tool would point to the sphere class), and each class would also include a method for initially loading the controls, etc.

Post a Comment