apool.2D->apoolGL-0.99-pre1:
* OpenGL view is switched on, when the balls start moving.
* For targeting the old User Interface of apool.2D is used.
* The table consists out of the walls and the table cloth. 
  The latter is build out of only one polygon.
* Some simple shadows have been implemented (circle directly under the balls).

pre1->pre2:
* OpenGL now used for targeting too.
* The 2D-UI has been removed.
* The table cloth is now curved at the pocket entrances and split into
  several pices for a better look of the light effects...
* Control elements for spin and initial speed (middle and right button) 
  have been introduced.
* Better shadows like in the newer releases made out of a gluSphere scaled
  to minimal height.

pre2->pre3:
* Textures for the walls. 
* Some kind of "caps" for the pockets ;-)
* ...?!

pre3->pre4:
* Size of the balls has changed to "original" size. 
* Some changes in lighting, ...?!
* Rotation (compared to translation) of the balls is now slower (better).
* The walls do have some slope now (as realistivc tables have).
* An error according the slopeness-stuff introduced. Fixed in pre10 ;-)

pre4->pre5:
* Framecounter
* First try with specular light effects on the balls.
* ...?!

pre5->pre6:
* Table geometry. The Radius of the pockets has been corrected (the radius of
  the middle-pockets is now smaller than the one of the corner pockets).
* Introduced "shelf" of the corner-pockets (corner pockets moved "away" from 
  the center of the table).
* The radius of the pockets inside the table is calculated dynamically - was 
  fixed up to now.
* Function create_table (and creatabl.c) has been removed, since the geometry
  of the table is now fixed in table.dat and the program code itself.

pre6->pre7:
* Table geometry: Pockets have now curved walls on the back side.
* Shining surface for the wood and the metall splitted into several 
  pieces for better effect of the specular lights.

pre7->pre8:
* One ball in the left upper corner shows which kind of ball should be played
  next. 
* Dumb text "ZackBumm" removed...
* Only one global rotition of the Modelview Matrix used instead of rotations
  (faster)
* for every polygon/quadric. 
* Nice option for the underlying lightmodel found ;-)
* Quadrics were now deleted after use ;-)

pre8->pre9:
* Fixing display of paint_spin() (graphics.c) and my_gl_line(,,,) (computer.c)
* Now using displaylists for the table and polygons for the shadows 
  (instead of "flattened" spheres before). The increase of speed is 
	allmost not measurable!?
* Help screen and credits ("F1","F2") screen now available (text has not 
  yet been updated ;-)

pre9->pre10:
* Curved corners, curved borders, curved pockets -> program became slower.
* Cleaned up OpenGL code a bit -> program became faster. 
* Playability: program is a bit slower than pre9.
* Statistic ("F12") now available.
* Player: 1/2 display
* Pre10 displays some errormessages and some game messages.
* Program is almost ready to implement some high/low-detail-switch.
* Shadow "under" the walls using alpha blended black polygons.
* Rubber covering on top of the pockets.
* Adjustment of the walls fixed.

pre10->pre11:
* Curved table edge at the pocket entrances.
* Some display errors removed (at the table edges and corners [metall,wood])
  looks smoother now and is faster since these errors were removed using 
  quad_strips instead of quads for the wood and metall-stuff and normals
	for each vertex not only for the whole polygon!
  -> high geometry looks a bit nicer now and is also a bit faster,
     furthermore low geometric detail looks quite good now and is
  	 and is noticaeble faster (50%).
* Smoother shadow of the balls using alpha colors, other geometry
  (triangle_fan in the middle and some quad_strips surrounding), were
  just two large polygons before.
* Foot field line painted out of 3 Polygons.
* New ball textures.
* New font texture. Better resolution, nicer fonts but therefore larger.
* Light effect on the ball in the upper left corner.
* Added a switch for high/low geometric detail ("F5"). default is low.

pre11->pre12:
* User interface is way better now. Check it out ;-) The mouse coordinates
  were now again taken absolute and not relative to the last change. Therefore
  it doesn't matter any more how fast your machine is when positioning
  the white ball and the target. Furthermore no clicks werde "eaten" when
  changing spin and initial power of the white ball.
* Kewl title screen ;-)
* Some minor changes in the ball textures again (colors, some errors).

pre12->pre13:
* Many changes in the OpenGL-part. 
  - Now "cull-face" is enabled. That is back-facing polygons won't be painted.
    All Polygons have to be created counterclockwise or clockwise not mixed
	  without problems. 
  - Metal edges of the pockets, the rubber blendings and such stuff were now
  	rotated in position instead of "calculated" ;-)
  - The overall speed increases is roughly about 20% in default mode.

pre13->pre14:
* User Interface. SPACE toggles between free look and target mode. The others
  keys were not affected for now. So now its possible to target, rotate the
	table and then cue without switching back again for the last part.
* More message were shown.
* Two errors of pre13 removed (left middle metal blending "outside" and at 
  the bottom of the table).
* New special target mode: white ball centered, table moving aound while 
  targeting: press "w" -> cool!
* Shadows were back on again (forgot to put the vertices in the right order
  for cull-face).

pre14-pre>15:
* More improvements in the UI.
* Special Target Mode ("w") improved. Still some bugs.
* Undo is now working better. Still not good since fouls were not taken back.
* "z" calculates immediately the end position of the current move.
* Key "ESC" quits in every situation now.
* Key "h" (SIMULATION_MODE) shows the end position using the current values 
  of spin and speed by drawing some triangles (still has to be improved).
* Free Look during motion of the balls using the right mouse button and 
  nouse motion.
* Key "F4" toggles display of textures on and off.
* Command line option "-hd" for high gemoetric detail instead of low detail 
  from the beginning - especially during the title screen ;-)

pre15->pre16:
* More improvements on undo-mode... still not perfect (s. pre14->15)
* Screen refresh works now correctly when switching to another desktop and back.
* Balls are now created out of an icosahedron (20 triangles) which is split up
  at program start in several steps (1 triangle -> 4 triangles) up to 5120 
  triangles for high detail mode (320 triangles for low detail mode).
  Compared to gluSphere it looks almost the same and is a bit faster,
  especially in high geometric detail mode.
* Therefore had to create new textures.
* Tried to use smaller textures for the balls. This results in 10% better
  performance in my GForce2-MX400. There will be a switch in one of the 
  next releases...
* Furthermore automatic mipmapping and texture-smoothing (GL_LINEAR) is enabled.
  This results in a better look especially on the wood rails (small effect ;-)
* z-Fighting at the corners on the underside of the table removed.
* Cleaned up the gl-code. Especially the main drawing function gl_plot_balls()
  is now called gl_plotall() and contains calls to several subroutines for the 
  table, rails, balls and the different shadow functions (s. below).
* Introduced "perspective correct shadows" using shadow volumes and the 
  stencil buffer. Compared to planar shadows as in the releases before it 
  looks... different ;-) 
  Now the balls do self shadowing and could shadow each other partially. 
	Furthermore there are no "multiple shadow regions" (when using planar 
	shadows it's possible to shadow the same region more than once) since 
	the "new" method uses the stencil buffer to avoid this "mistake".
	Warning: compared to planar shadows it's way slower since multipass 
	rendering of the objects which are not in shadow is required. So planar
	shadows are still default ;-). Try not to use stencil shadows together
	with the high gemetric detail modes...
	
	!!!!
	For now the mode is unusable since the colors of the rails and corners
	have not been corrected for the multipass rendering and so on....
	!!!!

* "F6" switches through the different shadow modes (off, planar, stencil).
* "f" toggles display of frames per second on and off respectively.
* More values for geoemtric detail. "F5" switches now between very low, low, 
  medium, high and very high. The amount of polygons starts from roughly 2000
	multiplied by a factor of roughly 4 for each step. That is very high detail
	is build out of 440000 Polygons. "very low" has big graphics errers at the
	metal edges and the balls are not very smooth ;-). Default mode is now
	medium since medium is as fast as the low detail mode in the last releases 
	and looks definitely better.
* Texture detail level introduced. Besides the 512x512 some 128x128 textures
  were created. For "FOV=45" there seems to be no allmost no difference. When
	changing the ("hardcoded") FOV to 20 it's possible to see the differences
	between the texture modes (low and high for now). Low is default for the
	geometric detail modes lower than high. For the high and very high detail
	mode the texture detail is set to high. However, "F7" changes the texture
	detail manually. As the default geometric detail mode is medium the default
	texture mode is low.

pre16->pre17:
* Command line parameters will now be scanned using getopt. More command
  line options availabe (see apool -h).
* Shadow volumes will now be calculated in a more easy way. Better: no 
  acos(). Faster since some trigonometrical functions (sin,cos,acos) have
	been replaced by one cross product.
* Colors in stencil shadow mode have been corrected... and have been 
  rechanged to "not good" again ;-))
* The edge of the cutouts for the pockets in the table are smoother now.
  (now each vertex has its own normal vector).
* The corner edges have also been "smoothed". Once again every vertex got 
  its own normal vector instead of one normal for the whole polygon.
* Environment Mapping at the metal edges. still not finished...
* Environment mapping for the balls "F9" change through the modes
  off/cube/sphere. Cube is just a test for now ;-)
* Display lists for the icosahedron spheres. Slightly faster.

pre17->pre18:
* Introduced another stencil shadow mode. This one is using a blended polygon 
  to paint the shadows instead of rendering the scene again for each light. 
	Therefore the darkness of the shadow is not correct and the specular
	highlights are even worse since they were not shadowed but it's at least 
	twice as fast than the other stencil mode and we don't have problems
  with too bright colors caused by multiple rendering...
* Removed wood texture coordinate bug on small sides.
* Cube environment mapping: the cubical texture is now rotated with the inverse
  rotation of the MODELVIEW matrix to view a stable environment while
	rotating the scene for instance. Still a test mode. No reflections 
	for now. Still a test mode. No reflections 
	for now.
* Textures are now 16 bit instead of 32 before. Since the textures don't 
  use many colors no difference is viewable. Faster on GF2MX200 with 32MB.
* Fixed a getopt bug (command line interface). "T" was not initialized.
* Texture mapping of cloth texture to whole "floor".
* "F3" toggles the cloth texture on and off respectively.
* Some changes in the geometric detail behaviour.
* Some comments in the source code... ;-)

pre18->pre19:
* Fixed forgotten "break;". So the "f"-key removes also all balls from table...
* New wood texture.
* Changed slightly the viewing angle in play mode of normal target-mode.
* 3 table skins/color sets. Change with "F11"
* dynamic cube mapping implemented. Renders only whiteball-environment
  for now.
* removed GL_POLYGON_SMOOTH since strange lines occur at the polygon edges
  if the GL-driver supports this feature (can be seen using MESA and
	switching texturing off and with some Windows OpenGL drivers). 
	Since there is no easy solution for this problem one can only enable 
	full screen antialiasing (FSAA) to smooth polygon edges. This can be 
	done by setting the environment variable "__GL_FSAA_MODE" to some value 
	(3 or 4 for GF2-MX cards) for nvidia cards.
	Look at the readme file that comes with your graphics driver. Windows user
	may change these values in "system properties->graphics properties->
	more properties->very important properties->
	even more important properties ->OpenGL->...." ;-)
	Removing this POLYGON_SMOOTH stuff results also in a speed increase for 
	MESA of factor about 10. That is one can "use" MESA for displaying the
	game with framerates around 10fps in 640x480 mode with low geometric detail 
	(-g 2).
* changed texture resolution to 256x256 to reduce file size and increase speed
  on low memory graphics cards (mem size < 64 MB)

pre19->pre20:
* all messages will be displayed now.
* During ball movement mouse motion rotates now the table and right button 
  together with mouse motion changes the zoom level when moving up and down.
	Middle buttons changes center  point of rotation that is translates the
	table.
* changed normal vectors on the "outside" of the table.

pre20->pre21: iirc, default play mode has changed.... ?!

pre21->pre22: 
* sequences before/after ball motion and before placing cue ball are now timed.
* First occurrence of problems on fast machines/gfx-cards -> "jumping" scenes, 
  Caused by "jumping timer()"... Still has to be fixed

