Firtree 0.0.5

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:

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.

Tags:

Comments are closed.