QUAT - Ein 3D-Fraktal-Generator
Version 0.92
Copyright (C) 1997,98 Dirk Meyer

Hinweise zum Source-Code

1. Rechtliches

1.1 Copyright
Dieses Programm ist freie Software. Sie koennen es unter
den Bedingungen der GNU General Public License, wie von der
Free Software Foundation herausgegeben, weitergeben und/oder
modifizieren, entweder unter Version 2 der Lizenz oder (wenn
Sie es wuenschen) jeder spaeteren Version.

Die Veroeffentlichung dieses Programms erfolgt in der
Hoffnung, dass es Ihnen von Nutzen sein wird, aber OHNE JEDE
GEWAEHRLEISTUNG - sogar ohne die implizite Gewaehrleistung
der MARKTREIFE oder der EIGNUNG FUER EINEN BESTIMMTEN ZWECK.
Details finden Sie in der GNU General Public License.

Sie sollten eine Kopie der GNU General Public License zusammen
mit diesem Programm erhalten haben. Falls nicht, schreiben Sie
an die Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
MA 02139, USA.

Teile des Codes (das Farbauswahl-Tool fr die X-Version, dessen Code
im "contrib_kde"-Verzeichnis liegt), wurden vom KDE-Projekt 
(K Desktop Environment) entnommen, das ebenfalls GNU-lizensiert ist.

1.2 Verbesserungen am Source-Code
Falls Sie Verbesserungen im Sourcecode anbringen, wuerde es mich freuen,
wenn Sie mit mir Kontakt aufnehmen, damit ich sie in zukuenftigen Versionen 
einbauen kann. (Natuerlich werden Sie als deren Autor erwaehnt!)
Mir schwebt dabei das grosse Vorbild "Fractint" vor, vielleicht finden sich
ja auch hier ein paar Enthusiasten!

1.3 Kontakt
Meine email-Adresse lautet: dirk.meyer@studbox.uni-stuttgart.de
Meine postalische Adresse:
Dirk Meyer
Marbacher Weg 29
D-71334 Waiblingen
Neue Versionen von QUAT sollten immer verfuegbar sein unter:
http://wwwcip.rus.uni-stuttgart.de/~phy11733

Wie gesagt, falls Sie Verbesserungen oder Bugs gefunden haben, auch was das
Compilieren betrifft (auf welchem System/Compiler funktioniert es, auf
welchem nicht [und warum]?), wuerde ich mich freuen, von Ihnen zu hoeren!


2. Das Compilieren von QUAT

Um die PNG-Dateien zu schreiben, bedient sich QUAT einer Library namens 
"zlib". Sie wird zum Compilieren benoetigt. (Hinweis: Die Library "libpng" 
wird _nicht_ benoetigt)
Die ZLib-Library dient generell der Datenkompression und hat nichts mit QUAT 
zu tun, QUAT benutzt sie nur zum Schreiben der PNG-Dateien.
Sie wurde von Jean-loup Gailly und Mark Adler programmiert und ist QUAT nicht 
beigefuegt. Wer QUAT selbst compilieren moechte, muss sie sich also erst im 
Netz besorgen.
Die ZLib-Homepage ist zu finden unter: http://www.cdrom.com/pub/infozip/zlib
Ich verwende Version 1.1.3, aber ich denke, dass auch andere Versionen 
funktionieren.

QUAT kann in mehreren Versionen compiliert werden. Unter anderen gibt es eine
Textversion, die keine Grafikausgabe zeigt. Sie sollte auf jedem System, das
ANSI-C unterstuetzt, compilierbar sein.

Eine bersicht ber das Source-Verzeichnis:
<QuatDir>/src/quatlib
             /gui
                /qtarch
             /contrib_kde
             /util
- Das "quatlib"-Verzeichnis enthlt den Hauptteil des Codes und die Teile fr 
  die Windows-Version. Die Dateien in diesem Verzeichnis werden fr _jede_
  Version zum Compilieren bentigt. Die Dateien sind in C geschrieben.
- Das "gui"-Verzeichnis (mit Unterverzeichnis) enthlt die Benutzeroberflche
  fr das X Window System. Sie bentigen es _nur_, wenn Sie die X-Version
  compilieren wollen. Dateien hier sind in C++ geschrieben.
- Das "contrib_kde"-Verzeichnis enthlt das Farbauswahl-Tool fr die X-Version.
  (Das ist der Dialog, der erscheint, wenn Sie in der X-Version "Sel" im Color
  Editor anklicken). Die Dateien hier sind C++, wurden dem KDE-Projekt
  entnommen (K Desktop Environment) und leicht verndert, um sie dem anderen
  Zusammenhang anzupassen. Sie bentigen diese Dateien nur, wenn Sie die
  X-Version von Quat compilieren wollen.
- Das "util"-Verzeichnis enthlt den Titelbild-Compiler. Er wird dazu bentigt,
  ein 24bit-True-Color-PNG-Bild in eine C-Datei zu konvertieren, die ein Array
  definiert, das die reinen Bilddaten in Form eines zlib-komprimierten Streams
  enthlt.
  Wenn Sie kein Titelbild haben wollen, benennen Sie einfach die Datei
  "title.png" im "quatlib"-Verzeichnis um. Das kann ebenfalls ntig sein, wenn
  Sie nicht gengend Speicher haben, um "title.c" zu kompilieren, was die
  Datei ist, die der Titelbild-Compiler generiert.

Unter DOS sollte man beachten, dass QUAT relativ viel Speicher benoetigt 
(fuer DOS-Verhaeltnisse) und daher vermutlich nicht mit Real-Mode-Compilern 
compiliert werden kann - und auch nicht im Real-Mode laeuft. (Ich weiss es 
nicht, ich hab's nicht probiert). 
Ich empfehle "DJGPP", den fuer DOS portierten Unix-GNU-C-Compiler "GCC". 
Er arbeitet im Protected Mode und sollte keine Speicherprobleme haben.

Generell muss vor dem Compilieren von QUAT die ZLib-Library compiliert 
werden. Anweisung hierzu sind der Library beigefuegt.

Verwendet man das Unix-Makefile ("makefile"), muss der Pfad, in dem sich die 
ZLib-Library und die Header befinden, in das Makefile eingetragen werden.

2.1 Compilieren der Textversion
Nach dem Entpacken des Source-Codes in ein (moeglichst eigenes) Verzeichnis 
das Makefile den Erfordernissen anpassen (speziell: Pfad von ZLib).
Danach im Source-Verzeichnis (/quat/src z.B.) eingeben:
make textver
Das funktioniert unter Unix.
Fuer andere Compiler muss eine eigene Projektdatei/Makefile angelegt werden.

2.2 Windows-Version
Ich habe "mingw32" (das eine Portierung des Unix-GCC-Compilers nach Windows 
ist) zum Compilieren der Windows-Version benutzt. Mingw32 ist frei und Sie
knnen es bei
http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32
herunterladen.
Wenn Sie ebenfalls diesen Compiler benutzen, gehen Sie in das "quatlib"-
Verzeichnis und editieren Sie das Makefile, bis es Ihrem System entspricht:
1. Pfad zur ZLib-Library einstellen
2. "-lm" von den Link-Optionen entfernen. Scheinbar enthlt bei mingw32 
   die Standard-C-Library die Math-Library.
Ein Problem ist das Compilieren der Resource-Datei quat.rc nach quat.res.
Ich mute den Ressourcen-Compiler, der bei den MSSDK-Headern dabei ist,
benutzen (verfgbar bei Microsofts ftp-Server, in einer Datei namens
"IBLDENV.EXE", wenn ich mich recht erinnere...) Um es einfacher zu machen,
liegt eine compilierte Ressourcen-Datei "quat.res" dem Code von Quat bei.
So lange Sie die Ressourcen nicht ndern, sollten Sie kein Problem
haben, hoffe ich.
Wenn Sie MSVC (>=2.0) benutzen wollen, um Quat zu compilieren, erstellen
Sie eine Projektdatei und fgen Sie ihr die folgenden Source-Dateien hinzu:
calculat.c, colors.c, files.c, iter.c, png.c, qmath.c, quat.c, quat.rc,
win2.c und winver.c
Definieren Sie das Symbol "GUI", damit "quat.c" zu einer Version compiliert,
die die Benutzeroberflche (GUI) benutzt.
Sie mssen auch den Pfad zur ZLib-Library und den Headern angeben.
Anmerkung: MSVC 1.0 kann Quat nicht compilieren, da es 16 Bit compiliert,
und Quat 32-Bit-Code ist.

2.3 X-Window-Version
(Das X-Window-System ist die grafische Benutzeroberflaeche unter Unix / Linux)
Diese Version benoetigt eine Library namens "Qt". Sie ist in vielen modernen
Linux-Distributionen enthalten, wenn Sie sie nicht haben, koennen Sie sie
erhalten bei:
http://www.troll.no
Die X-Window-Version dieser Library ist frei verfgbar. 
Natrlich bentigens Sie ebenfalls die ZLib-Library, wie fr jede andere
Version von Quat auch.
Sie mssen beides, C und C++, compilieren knnen, um die X-Version zu
compilieren.
Gehen Sie in das Source-Verzeichnis (z.B. /home/dirk/quat/src),
passen Sie das Makefile an (Pfad zu "moc", zu "zlib" und zu "Qt"),
und geben Sie ein:
make x11ver
Die Dialog wurden mit QtArchitekt erstellt, wenn Sie sie verndern wollen,
verwenden Sie am besten die *.dlg-Dateien im "gui/qtarch"-Verzeichnis.
Sie brauchen QtArchitekt nicht, um Quat zu compilieren! Ein Link zu
QtArchitekt sollte auf der Homepage von Troll Tech bei http://www.troll.no
zu finden sein.

2.4 Die DOS-Version
Ich habe DJGPP 2.02 benutzt, um die DOS-Version zu compilieren. Die DOS-
Version ist die selbe wie die Textversion, mit dem einen Unterschied,
da die Berechnung durch Drcken einer Taste abgebrochen werden kann.
Gehen Sie in das "quatlib"-Verzeichnis, passen Sie das Makefile an und
geben Sie ein:
make dosver
