GL Tools

GL Tools

Release: GLTools, v1.6

Release Type: Production
Version: 1.6
Release Notes

Changes since 1.5

  • Fixed issue with GL Stereo Environment flickering on Mac OS X 10.6.
  • Added new GL Structure Renderer patch --- renders its subpatches multiple times, once for each element in the provided structure, after applying the specified transformation.
  • Source code is available on GitHub.

Thanks to @toneburst, @gtoledo3, and @cybero for help sorting this out.

Known issues

  • The GL Field of View patch doesn't work properly on Mac OS 10.9 (it produces stretched output).

Release: GL Tools, v1.5

Release Type: Production
Version: 1.5
Release Notes

Changes since GLTools 1.4

  • New Stereo Environment patch, which renders its child patches twice using an asymmetric projection frustum, once for the right eye, once for the left eye, and provides each as an image output.
  • New Look At patch (a two-point camera).
  • New Camera patch (a one-point camera).
  • Added "Image Structure" input to the GL Quad Structure patch.
  • Fixed GL Inverse Rotation so that it executes every frame (rather than only once).
  • Fixed SuperGLSLGrid so that color uniform values are properly set in 64bit mode.
  • Separated the Alpha blendmode override to a separate plugin, so that GLTools itself doesn't perform any runtime hackery (and is thus somewhat less risky).

Release: GL Tools, v1.4

Release Type: Production
Version: 1.4
Release Notes

Changes since GLTools 1.3

New Features

  • GL Frustum Patch (perspective equivalent of the GL Ortho Patch)


  • Added support for Snow Leopard's new structure representations (allowing use with the OpenCL and Mesh Components patches)
  • Fixed issue with GL Spline crashing while making changes on a non-rendering composition.

Release: GL Tools, v1.3

Release Type: Production
Version: 1.3
Release Notes

This build of GLTools fixes numerous bugs with Snow Leopard compatibility, and some PPC bugs on Leopard as well. Some minor performance improvements were made, as well as other minor bug fixes.

Some new private patches were added/modified -- they're still private, so please don't expect them to remain compatible/unchanged in the future.

Please be as clear as possible with bug reports (include sample compositions, descriptions, steps to reproduce, etc.) -- we're rather backlogged at the moment, so saving us a few minutes here and there helps a lot.

Release: GL Tools, v20090707 (1.3)

Release Type: Beta
Version: 20090707 (1.3)
Release Notes

This build of GLTools includes much more debugging information to help us track down a few reported issues (mostly with the spline patch). It also contains some cleanup/optimizations.

Release: GL Tools, v20090704 (1.3)

Release Type: Beta
Version: 20090704 (1.3)
Release Notes

This build of GLTools addresses some bugs with blending on PPC, and fixes the Field of View patch to work in more diverse environments.

Release: GL Tools, v20090702 (1.3)

Release Type: Beta
Version: 20090702 (1.3)
Release Notes

This beta of GLTools addresses some bugs with Read Pixels and GL Spline.

Release: GL Tools, v1.2

Release Type: Production
Version: 1.2
Release Notes

This version of GLTools adds numerous enhancements, fixes, and improvements.

  • Alpha blend ports got a significant performance improvement -- also some bug fixes from the alphas that caused problems outside of QC.

  • A new Depth Sort environment patch (with sample composition)

  • The Spline Corruption bug was fixed (finally)

  • There's a new Cube Structure patch, for rendering axis-aligned cubes at several locations simultaneously -- this works just like the Point Structure patch.

  • The point-structure and line-structure patches received some optimizations and tweaks. Also, the demo compositions show "indexed" mode, which typically performs better than keyed mode.

  • There's a new Inverse Rotation patch, which allows you to align objects to the screen (kinda like billboards) -- handy for sprite-powered particle systems (the depth sort demo demonstrates this patch as well).

  • Other assorted memory leak fixes and performance tweaks.

The zip contains the plugin, as well as sample compositions.

Release: GL Tools, v20090205 (1.2)

Release Type: Beta
Version: 20090205 (1.2)
Release Notes

This update to GLTools provides numerous enhancements and a few fixes.

  • updated ReadPixels patch is public, and supports depth buffer reading as well as color buffer. Much faster, too.
  • updated GridRenderer private patch allows automatic subdivision (for faking perspective projection). The Grid Generator was fixed so it doesn't crash on start/stop cycles.
  • an amazingly cool Line Expression patch allows for parametric curves
  • the GL Scissor patch, for enabling rendering in specific subregions of the screen (similar to the ViewPort patch, but without re-scaling)
  • Some cleanup and optimization of other patches.

The plugin zip also contains sample compositions.

Release is planned sometime tomorrow or saturday, so please bang on it to make sure it's up to snuff.

Release: GL Tools, v1.1

Release Type: Production
Version: 1.1
Release Notes

This update to GLTools adds a couple new patches, and adds support for proper alpha blending (as found in GLTools v0.4).

The new patches:

  • Kineme GL Polygon Offset -- useful for creating wireframe overlays (example composition included)
  • Kineme GL Torus -- a new primitive that renders a torus.


  • The Triangle and Quad Structure patches now have position and rotation inputs, allowing for easier positioning.

A word about blending:

In Quartz Composer, blending is typically controlled by an input port called "Blending", which traditionally has the following values: Replace (no blending), Over (pre-multiplied overlay), and Add (Source + Destination). In GLTools 1.0, we transitioned from using our own manual blending to using QC's built-in ones. This meant less code, and more consistent behaviour with other QC patches. Unfortunately, as many have noted, the Over blend mode simply wasn't useful with line and point antialiasing, because it expects pre-multiplied colors, which OpenGL doesn't naturally provide when performing antialiasing. This lead to the ugly halos around objects, and improper transparency, especially around splines. (Secret: The built-in line patch doesn't have a Blending input for exactly this reason -- it manually controls blending itself to work around QC's limited implementation, just like we did on a much larger scale in GLTools 0.4)

This put us in a difficult position -- on the one hand, relying on QC's built-in functionality means less code for us, more reliability, and seamless feature compatabilty. On the other hand, having beautiful output is important, and having happy users is even more important.

Thus, we worked some more kineme magic, and Modified QC's Blending Port to add proper Alpha-blending support to anything with a Blending Port. Along with the standard Replace, Over, and Add inputs, you'll now see a fourth option, called "Alpha". This sets the blend mode to a proper unpremultiplied alpha blend, as found in GLTools v0.4. To enable pretty blending for your compositions, you simply have to locate your renderers, and change their blend input to "Alpha".