For the impatient (it's been forever since I updated this page), the following should be better than what's below: For windows (2a-4, sorta), and for DirectDraw for windows, also 2a-4, kinda. The directx version happens to be compiled for 1600x1200 resolution instead of the otherwise standard 320x240. I need to develop a gui or at least commandline options around this, which means the libraries need to be redeveloped, which which which... EEP.
Binaries: | Windows (MFC) (DirectX) |
Platform source: | gnome | SVGA (missing) | PNG (v1) | Windows (MFC (missing)) (DirectX) |
"library" src for all platforms | |
MFC stands for Microsoft Foundation Classes, and basically means its a normal Windows executable, as opposed to funky DirectX stuff :) |
Commands | |
---|---|
[space] or [right click] | toggle autopilot |
f | toggle fractal type [mandelbrot or julia] |
d | display coordinates |
c | color cycle / change palette |
s | style change 1 |
h/[left], j/[down], k/[up], l/[right] | with autopilot off, move up/down/left/right through the set |
z/x | with autopilot off, zoom in/out |
[left click] | with autopilot off, center image on point |
So far, I've written versions for linux SVGA, linux (mostly) gtk+ [gnome], windows MFC, DirectX. I've also written a version for linux that dumps each frame as a .png file (PNGfractroam). [BTW, officially, .png is pronounced "ping"]. I plan to write a .mng version ("ming") soon -- that's motion png. Also in the mental works is a version that processes over several computers at once so as to get a higher quality image and a better frame rate. :) [The advantage to dumping to .png or .mng is that realtime is no longer an issue]
PNGfractroam is still in its infancy -- I need to come up with commandline options for it so that its progress can be a LITTLE bit better defined. [which color style, julia or mandel, and maybe window size and all that]
I use MetroWerks CodeWarrior for Windows. The DirectX and Win sources compile on it, when you've got all the right libraries set up. I expect the work on other windows c compilers, but... I dunno. Windows is windows, though, so you can just grab the binaries if you like. :)
For linux, of course, I use gcc. The project doesn't really seem to warrant configure
, so I've just tossed in simple makefiles for each.
In order to compile anything, you need to get the source code for the proper platform AS WELL AS the latest "library" -- that's fractroam.h and fractroam.c.
After making my first "video" from the frames of running PNGfractroam and playing around with it for about 8 hours, I think I've figured out how to make the roaming experience more immediately interesting more often than not. When viewing the zooming around in realtime, every time being different, it was less of an issue... but for something you might see more than once, it's really important. And should make the realtime stuff even cooler. :) That will likely be the jump to 2a_4.
Thus was born gnofractroam1a, 1b, and 1c -- all tiny updates while I figured this or that out. Then I ran into the issue than 9/10 people I wanted to show it to used windows, and... it was a bit of a mess to port. So...
Thus was born fractroam2 -- I separated out the UI from the computation, modularized stuff, and set about trying to port it to this that and the other. So far, I've got it written with gtk+ again, much MUCH more cleanly, and the UI is pretty cool. -- You can now pause the auto-zoom, print out the coordinates that you're at (so as to render them prettier in a nicer fractal engine), and you can move around a little bit while the auto-zoom is paused (up, down, left, right, in, out...)
Versioning is a little iffy, I think I'd like to version the "library" (which it effectively is, but not actually...) and the "programs" separately. Not sure how that will work out. For now I'm calling the current port gnofractroam-2a, and the library version 0.2. When things are more definite, I'll probably start following the recommended gnome numbering system. First I need to see how things work with actually trying to port this to windows.... And I'd like to do an Xlib version but I don't understand how insane I have to be about color depths and all that business. I probably will do a *nix SVGA version, but it won't look so hot with my current knowledge. Then it would be good to try a Mac version. ? :)
I'd really like to put together a reference library of some sorts of how simple graphics and UI work with most libraries, and this seems the way to start doing it. =)
REALLY REALLY need to make a readme with notes and stuff. And I really need to pick a sane versioning format. It's hard to decide how to package everything and how to version everything and all that. :(
include('footer.php'); ?>