Fluxus : (C) 2008 Dave Griffiths : dave at pawfal dot org : www.pawfal.org

0.16

* fixed autodetect of GLSL and multitexturing 
* frame-hooks
* fixed orientations and texture coordinates to be more consistent
* particle depth sorting
* tiled-framedump for massive resolutions
* moved install out of plt collects
* (mouse-wheel)
* GLSL and multitexturing on by default
* new documentation pdf
* lots of fluxa stability fixes
* internal depth sort on particles
* added (build-type) and (build-extruded-type)
* added Perlin noise and Simplex noise functions (noise), (snoise)
* lots of fixes to fluxa to make it stable
* (reparent)
* (get-global-transform)
* (bb-intersect)
* inline GLSL code
* F4 execute s expr
* added stippled lines, (hint-wire-stippled), (line-pattern)
* added (set-cursor)
* new example game, fluxus invaders
* colour support for NURBS primitives
* OSX application

0.15

* ported to PLT 3.99
* removed scheme versions of obj import/export
* midi support - gabor papp
* added fluxa - an audio synth
* added text opacity on F10 and F11
* fixed saveas dialog, cursor and shift works
* inlined most of dada.h (~5% speedup)
* renamed build-line to build-ribbon
* more meshes to play with (used in frisbee examples)
* shadows now work on immediate mode objects
* key release fixed in drflux
* multi views/cameras
* better random functions with randomness.ss
* frisbee: a functional reactive game engine using frtime
* added -lang (not how useful this is now)
* added -fs and -x for fullscreen and run script at startup
* fixed crashes to do with garbage collection using threads
* sped up pdata-get/ref
* made (backfacecull) local state rather than global
* added (hint-cull-ccw)
* documentation changed so we can have functions in different files sharing the same section
* ported html and text doc conversion to plt 4
* (line-intersect) for raytracing poly primitives
* pixel primitive changes
   - (pixels-width) and (pixels-height) for querying dimensions
   - added a load of commands for drawing into pixels primitives:
     (pixels-circle), (pixels-blend-circle), (pixels-dodge), (pixels-burn) and (pixels-clear) 
	 see docs for more info...
* added (fmod)
* more polygon querying
  - (poly-indices) gets the index list
  - (poly-type) returns the type of the polygon 'triangle-strip, 'triangle-list etc
  - (poly-indexed?) returns #t if the polygon is index mode
* added a load of shortcuts for accessing vectors:
  - (vx (vector 1 2 3)) returns 1
  - (vy (vector 1 2 3)) returns 2
  - (vz (vector 1 2 3)) returns 3
  - (vr (vector 1 2 3)) returns 1
  - (vg (vector 1 2 3)) returns 2
  - (vb (vector 1 2 3)) returns 3
  - (vx-set! (vector 0 0 0) 1) returns (vector 0 0 1)
  - etc ...
* added (occlusion-texture-bake)
* added tools for evaluating polygons - these should eventually work on any type of polygon primitive, they do on most of them now:
  - poly-for-each-face
  - poly-for-each-triangle
  - poly-for-each-tri-sample (random sampling)
* added (rndhemi) and (hrndhemi) for generating points on hemispheres (solid or hollow)
* added HSV colour support, (rgb->hsv), (hsv->rgb), (colour-mode)

0.14

* added vertex colouring to wireframe lines
* fixed torus texture coordinates
* added build option for ACCUM_BUFFER, off by default - bad tempered drivers
* bounds checked the primitive functions
* repl crashfix
* removed force-load-texture and added clear-texture-cache
* (wire-opacity) courtesy of Gabor Papp
* new get-searchpaths and set-searchpaths
* added optional load parameters to (load-texture) for mipmapping or cubemapping
* added (texture-params) for better texture support
* added vreflect
* fixed a bug where poly topology was being regenerated every time (pdata-copy) 
  was called
* put the user callback inside a push/pop state
* added (with-state) (with-primitive) (pdata-map!) (pdata-fold)
* added (pdata-index-map!) (pdata-index-fold)
* collada scene import
* drflux now fully operational - but a little crash prone with some commands
* text improvements courtesy of Gabor Papp
* obj-export for saving out model data
* obj-import fixes
* saves currentscript.scm~ as backup on F5
* osc argument range checking crash fix
* improved parentheses highlighting
* flashing cursor
* fixed the editor text for newer versions of libfreetype (now using 2.3.5)
* added docs/fluxus-documentation.txt

0.13

* stereo rendering support by Alex Norman, adding:
	- (set-stereo-mode ['no-stereo 'crystal-eyes 'colour])
	- (get-stereo-mode)
	- (get-eye-separation) 
	- (set-eye-separation)
* (draw-buffer) added by Alex Norman
* libfluxus clean up, removed old cruft, simplified renderer
* removed (begin-scene) and (end-scene), added (render)
* removed feedback for aesthetic reasons
* added (clear-zbuffer)
* added (pixels-load) for loading pngs into pixel prims
* renamed (upload-pixels) to (pixels-upload)
* added indexed mode polygon support
	- (poly-set-index index-list) 
	- (poly-convert-to-indexed)
* stencil buffer shadows for poly primitives
	- (shadow-light)
	- (shadow-length)
	- (shadow-debug)
* livecode recorder startup flags
	- -r filename : record to file
	- -p filename : playback from file
	- -d time : seconds per frame time override (for use with frame-dump)
* added (build-copy) for making copies of any primitive
* pfuncs added (replacement for pdata-op)
	- (make-pfunc)
	- (pfunc-run)
	- (pfunc-set!)
	- arithmetic pfunc
* skinning
	- genskinweights pfunc
	- skinweights->vertcolours pfunc
	- skinning pfunc
* changed from strings to symbols
	make-light
	light-attenuation
	blend-mode
* changed from int's to symbols
	build_polygons
* changed pdata-set to pdata-set!
* changed pdata-get to pdata-ref
* (hint-lazy-parent) for building scenegraph subtrees which don't
  inherit transforms - this makes building skeletons which are controlled
  by the physics possible
* (blobby->poly) extracts the blobbies mesh into a polygon primitive
* (hint-box) fix
* Portuguese translations of the documentation (thanks to Glauber Alex Dias
  Prado)
* huge text possible with auto livecoding zoom and tracking
* editor and repl fixes
* all error reporting goes to the repl
* new scratchpad font renderer, uses truetype fonts
* minimal unicode support added
* unified helpmap locales, added (set-help-locale!)
* added (help "sections") & section information with function lists
* apple fixes
* (time) now returns time since fluxus startup - to avoid precision problems
* added (draw-torus) and (build-torus)
* fluxus GLSL shader library

0.12

* now uses plt scheme
* fluxus scripts can be written and viewed from the drscheme IDE
* lots of new documentation
* split fluxus up into modular parts - a livecoding application called the 
  scratchpad and a collection of plt extensions for graphics, audio and osc.
* a new autogenerated documentation system and online help command
* new low-level renderer control, with support for multiple renderers,
  scenegraphs and physics worlds
* ported lots of application code into scheme modules
* removed the (edit) and (save-name) commands and added a minimal script 
  file browser interface to the scratchpad
* added (hint-depth-sort) for correctly ordering and rendering transparent
  objects

0.11

* glsl support with (shader) and (shader-set!)
* big (recalc-normals) speedup
* normals recalculated for primitives of type POLYGON
* (keys-down) returns vector of the ascii values of all keys pressed
* (key-special-pressed id) for cursor keys etc
* (keys-special-down) returns vector of all special keys pressed
* kick/twist static object crash fix
* save with text highlighted now actually really safe (saves all rather than 
  selection + random characters)
* immediate mode state fix
* fixed (hint-points) for polygons
* fixed (draw-plane) and (draw-cube) no longer has a plane inside it :)
* equal? implemented for primitive types
* fixed picking when show-fps is turned on
* editor/repl bug fixes
* wireframe/solid z fighting fix
* (time) returns posix time now (don't ask)
* (turtle-attach object) : attaches the turtle to an existing primitive for
  recalculating it's points (turtle-vert) writes into the vertex position
  for the current index
* (turtle-skip count) : when attached to a primitive, this tells the turtle
  to skip points - can be negative to go backwards. the indexing wraps
* (turtle-position) returns current vertex when attached to a primitive
* (hint-ignore-depth) as a cheap fix for transparency
* pgup/pgdown work 
* escape - editor panic button
* ppm frame dump format support
* blobby implicit surface objects
* more examples
* (flx-major-version) and (flx-minor-version)

0.10

* scheme repl (read evaluate print loop) interpreter on ctrl 0
* new cursor
* major overhaul for guile 1.8
* (every frame) now takes a function directly rather than a string
* livecode + osc input recorder for recording and rerendering performances
* (get-projection-transform) gets the projection matrix
* (get-screen-size) returns the resolution as a two value vector
* (set-screen-size (vector x y)) sets the res, and updates the window to match
* support for executable scripts with #!/usr/local/bin/fluxus -x
* grab stack implemented
* (maim) fixed
* (edit) works from the local path again, but searches the searchpaths
first. all script loading uses guile's %load-path, while textures use the
fluxus searchpath, needs unifying maybe and documenting.
* (osc-source) can change port. seems to fail if you set it back to one
used previously, not sure why this is, looking into it. should also be
more stable than before.
* sincos lookup table disabled - was causing "jitteryness" due to lack of
precision in some cases (and it wasn't really helping out speed wise)
* (qaxisangle) : builds a quat with a rotation axis and angle in degrees
* (qmul) : returns two quats multiplied
* (qnormalise) : returns the normalised quat
* (qtomatrix) : returns the rotation matrix for the quaternion
* (build-pixels width height) makes a new pixel primitive
* (upload-pixels) uploads texture data, you need to call this when you've 
finished writing to the pixelprim, and while it's grabbed
* (pixels->texture pixelprim) returns a texture you can use exactly like a 
normal loaded one 
* (camera-lag amount) when locked to a primitive, lags the camera - does
a linear interpolation on the matrix, so you can get some wacky stuff
happening with rotations/scales. smaller numbers are more laggy
* (set-camera-transform) overrides and turns off the mouse camera control - use 
(reset-camera) to switch mouse control back on
* a multiply pdata-op for colour pdata and single float values
* stricter typing - primitive type/exact used where required
* infinite asteroids example
* locator primitive
* (hint-origin) renders the local origin for a primitive
* guile debugging and stack trace supported
* lighting fixes and directional/spotlight support

0.9

* (recalc-normals smooth) now takes an optional smooth flag
* osc fix
* blur works for coloured backgrounds
* (searchpath '("path/to/textures" "path/to/scripts" "path/to/scripts2" "path/to/etc"))
* ctrl-x with no selection no longer eats random bits of your script!
* characters not supported by the editor are now represented by yellow blocks, rather than
troublesome invisible entities
* decent camera rotation control with left mouse
* delete/backspace switched for the mac build
* (osc-msg) now stores all messages in a fifo
* (wire-colour colour)
* hide mouse on ctrl m
* locators for all the joints on (show-axis 1)
* (build-fixedjoint obj)
* rotations work with the physics system properly now
* (turtle-push) (turtle-pop) turtle state stack
* (hint-vertcols)
* (get-transform) when not used between a (grab) and (ungrab) this returns the 
current transform from the stack
* save with text highlighted now safe (saves all rather than selection)
* (full-path) searches the searchpaths and returns a fullpath, or the filename 
if not found
* (hint-box) renders object bounding box
* (clip front back) sets the clipping plane positions, defaults to 1 10000
* (frustum top bottom left right) sets screen area, defaults to -0.75 0.75 -1 1
* (hint-multitex) turns on multitexturing
* (multitexture n texture) loads a texture into multitexture slot n.
* orthographic fixes - mouse zoom works, editor projection fixed



0.8

* fixed object picking (mouse-over)
* framedump 
    * memory leak fixed
    * outputs jpg files rather than tiff
    * uses 6 character frame no filenames (so we can save over 6 minutes
of animation :)
* no more portaudio! fluxus now uses jack directly. 
* (smoothing-bias) a kind of weighted average for the harmonic bands
which smooth them out over time. this setting was hardcoded before (to
1.5) but the best setting really depends on the quality of the music,
and ranges from 0 -> 2. it's obvious if you give it a try with the
bars.scm script
* (oscsend) now takes a type string, so you can differenciate between
floats and ints in a message
* (has-collided) returns true if the currently grabbed object collided
with another object in the last update
* (pdata-op "operator" a b) a one call operator for pdata - performs
operation on all values in the pdata array at once. speeds up rendering
of a particle system of 5000 particles from 20fps (looping through each
particle in scheme the old way), to running at 60fps using pdata-op on
my old laptop.
* (grab)/(ungrab) fixed properly - calling (push) or (pop) when an
object is grabbed will cause it to be ungrabbed and print a warning
* polys can be now be rendered in wireframe only (seems this wasn't
working before)
* (fog colour density start end) sets global fog (density to 0 to
disable)
* (selectable bool) whether an object is selectable by (mouse-over)
* (blend-mode src dest)
* (force-load-texture texturefilename)
* (build-seg-plane) takes x,y tesselation values and builds a poly plane
* added a new mode to the particle primitive so you can render textured
sprites (I'll be expanding it a little more to allow different sized
sprites etc)
* (recalc-normals) works for polygons, and smoothes the normals
* lots of fixes to the editor
* some misc bugs fixes with gl state
* html documentation with pics (cheers to Nik for helping out)


0.7

overhauled the osc support (osc-msg) (osc) (osc-peek)
operations for matrix and vector types in scheme
primitive (set) and (get) for changing per vert primitive values (pdata)
(get-transform) returns grabbed object transform matrix in world space
nurbs objects
(hide)
(draw-instance)
(get-camera-transform)
(build-nurbs-sphere) (build-burbs-plane)
removed flocking stuff - should be a toplevel script
more error checking
(build-text)
new library of useful scheme code 
	primitive operations (pop.scm)
		(pop-deformer)
		(pop-shade)
(engine-callback) renamed to (every-frame)
(frame) removed and replaced with (time) and (delta)
(line-width) fixed
added: 
(build-hingejoint)
(build-sliderjoint)
(build-amotorjoint)
(joint-param)
big document update
loads more scripts, including live ones
more editor features

0.6

scons build system
OSC support with (start-osc) and (from-osc)
new physics commands: (gravity), (set-mass) and (surface-params)
removed fltk
removed fluxface
Built in OpenGL editor
multiple editor workspaces
changed occurances of _ to - in scheme functions to match standard
fftw3 support
decent error reports from guile (still go to commandline)
keyboard support improved
more scripts, including a game.scm example

0.5

assert build error fixed
"Insufficient GL support" error in fltk fixed
texture loader only caches one copy of each texture
much faster retained mode scenegraph lookups
fullscreen mode ("f" or "w" in renderer window)
fps clamping
init $HOME/.fluxus.scm sourced on startup
(start_framedump) (end_framedump) tiff framesave
F5 without text selected executes all
commandline script load
(build_line)
(random) changed to (flxrnd)
(getharmonic) now wraps the harmonic no. so you always get something
(source) loads and executes scripts
(clear_fluxface) crash fixed
fluxface bug fixes and tidy ups
physics groundplane crash fixed
(make_light) and light descriptions
sphere builder fix
parentheses highlighting - good idea for scheme ;)
lock camera works again
polybuilder turtle (normals not working yet, use wireframe hints)
(collisions) allows you to turn off ode collisions - defaults off
(process) for offline wavfile processing

0.4
split up into libfluxus, libfluxphysics and main app
fixed newbie texturing errors - should be much faster
added ambient and emmisive to the materials (shaded f+b)
smoothed cylinders
fixed spheres 
fixed problem with fltk-gl depth buffer
fixed active_sphere
tex coords for spheres
clear clears engine callback
portaudio replacement for jack/oss

0.3
Jack support fixed

0.2 
gcc 3.2 compatibility
added user guide to docs
removed kdevelop project, simple makefile

0.1 
initial release
