The Firtree 0.0.5 release is out. This is going to be the first one which is actually advertised on the website since it is the first one that people might actually stand a good chance of being able to use properly :). See the Launchpad release page for more information.
Getting it
Firtree can be downloaded as a source tar-ball (thanks to Tony for pointing out this deficiency last time) and as a source or binary package for Ubuntu. Your primary sources are therefore:
- The Firtree PPA for Ubuntu Hardy.
- A Firtree source tar-ball for Linux and OSX. It might work on other Unices too.
Changelog
The big things in this release are the playground example which is similar to the Core Image Fun House application which ships with XCode on OSX, an optional software-only backend based on libOSMesa and an important bugfix to do with using swizzled vector types as lvalues.
* NEW: Added the Python-based 'playground' example which shows how to make a
generic filter-oriented image processing pipeline using Firtree.
* NEW: ImageAccumulator and friends are more picky about there being an
OpenGLContext 'current'. Slowly migrating all the examples over to 'best
practise' of making sure that a context is created, even if it is only a
NULL context.
* NEW: Added a software-only rendering backend based on libOSMesa. This
necessitated moving all the GL API entry points inside the OpenGLContext
structure. Hence there *must* always be a context current when Firtree
calls are made.
* BUG FIX: In the kernel language, 'foo.x' et al are all lvalues which can
be assigned to. The GLSL backend was translating swizzles in such a way
that assignment to them was in effect a NOP.
* API CHANGE: ImageProvders now have the semantic of 'creating' a
BitmapImageRep on demand, even if this only involves returning an internal
cached rep and incrementing its reference count. This brings it more into
line with Firtree's object ownership conventions.
* BUG FIX: ImageProviders have no way, currently, of signalling a 'dirty'
bit on their BitmapImageRep and so each time they are used we now copy the
image to the GPU. This is highly sub-optimal and a good signaling method
must be found but it does ensure that changing the bitmap returned by an
ImageProvider changes what ends up on screen.
* BUG FIX: Blob lengths were never being set internally.
* NEW: Added a skeleton API for converting pixel formats into the RGBA form
expected by Firtree. Currently only supports 8-bit luminance values.
* NEW: Long-standing feature need. When creating a kernel, syntax errors in
the kernel source now throw an exception including the error.