In article <00e201c7450b$78caec70$0301a8c0@Production>, "Paul" <pdeleeuw@deleeuw.com.au> writes:
So as I understand it, there are 4 streams:
1. Generic fractal code (hopefully machine independent and can make up a linkable library)
Yep.
2. GUI stuff that is platform dependent such as X11, Windows or MAC
Yep.
3. OS stuff like file systems, timers etc.
Yep. Currently this is just separated out by which files you compile. There is a win32 folder and a unix folder that have the OS related stuff in it.
4. Drivers for screen, printers etc
Yeah, printing ... that's another thing that has to be updated for Win32, I think. Has anyone tried it?
This is good as it helps to compartmentalise FRACTINT. It always seemed like an amorphous mass of globals and intertwined code and it was hard to separate out modules to work with. I hope that one day some generous soul can make up some documentation of the globals and what function they all perform.
As for globals... I want to package them into structures relating to the various components. So there would be one structure that holds all the "engine" variables and variables relating solely to graphics output would be in the driver structure, and so-on. They would still be globals, but at least you could have confidence when looking at the engine code that you're looking at all the relevant quantities. Currently, I'm getting most familiar with the UI code, since that's where all the changes are in what I'm doing. There is the occasional bumbling around in other code, mostly to eliminate far-isms and things like extraseg. -- "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/>