In article <1168796213.3514.20.camel@linux.site>, Jonathan Osuch <osuchj@avalon.net> writes:
At any rate, there's still quite a bit of work to be done before incorporating new features. As Jonathan points out, I still need to get the X11 driver working and all the existing features need to be heavily tested before we merge this into the HEAD.
You may be surprised by what doesn't work. Look at solid-guessing and boundary tracing. I never did get them to work with the Allegro driver.
OK, good things to look at.
Additionally, I'd like to have the polling architecture exchanged for a true event architecture before we add new features. [...]
Doesn't the WinFract code do this, after a fashion?
It does it in the fashion I'm doing now: since they keyboard is polled frequently, you sneak the event loop into the keyboard processing. This restructure is a fairly big change in that it removes all the keypressed() and getkeypress() calls from all the fractal computation code and changes the organization of the main loop. Its an even more pervasive change than the current driver model; it completely rips out all UI processing from the computation code. At the moment, what I'm thinking is that the computation code will check some global state to see if it should return or keep going as it computes. This check is what would replace the keyboard polling in the image computation code. The global state also tells the compute engine things like "the UI changed the parameters, so restart the image generation" without the UI being directly invoked by the compute code. Moving in this direction lets you do things like put the image compute code in a separate thread from the UI, factor out the engine into its own code that can be invoked by *any* UI, create a distributed parallel processing engine, etc. By separting the UI from the compute engine entirely, you can get a nice native feeling UI on each platform and they all talk through the same interface to the compute engine which doesn't change. That way you don't try and shoehorn every platform into the same UI, which is what I'm doing now as an interim step. But, as we've said, there is lots to get working before taking on that restructuring. -- "The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download <http://www.xmission.com/~legalize/book/download/index.html> Legalize Adulthood! <http://blogs.xmission.com/legalize/>