Cinder Changelog

What's new in Cinder 0.8.5

Jun 6, 2013
  • New TinderBox:
  • TinderBox has been rewritten from scratch and now includes support for integrating CinderBlocks (prepackaged libraries of code for use with Cinder). Generating an app to experiment with technologies like the Kinect or OpenCV now requires just a few clicks.
  • Redesigned Window/Event Systems:
  • Cinder's windowing and event subsystems have been rewritten to support multiple windows in a single application. Cinder's event-handling implementation is now built around Boost.Signals2. This allows thread-safe mechanisms for connecting multiple handlers to a given app-level or window-level event and interoperates easily with lambdas and std::function.
  • Visual C++ 2012 support:
  • Cinder and TinderBox now have full support for Visual C++ 2012 (including both the v110 and v110_xp toolsets).
  • New Icons:
  • New icons for Cinder apps and TinderBox.
  • C++11 Features:
  • By standardizing on Xcode 4.4+ we can ensure the universal availability of unique_ptr, lambda functions, move semantics and several other powerful tools in C++11. Additionally, Xcode and Visual C++ 2012 users can take advantage of newer features like range-based for-loops.
  • Screensavers on Mac and Windows:
  • A redesigned Screensaver app type has full support for Mac OS X and Windows. A new TinderBox template makes the process of creating a cross-platform screensaver with Cinder quite simple.
  • Console on Windows:
  • Windows apps can now benefit from an optional external console window for displaying std::cout.
  • Convex Hull Calculation:
  • A new convex hull implementation can calculate the hull of a group of points, a PolyLine2f, a Path2d or a Shape2d. The implementation is able to calculate the extrema of a cubic or quadratic Bézier curves to avoid costly and inexact curve tessellation.
  • OSC Refactored:
  • OSC has been wrapped into a CinderBlock and no longer depends on a static library. Multicast options have been added as well.
  • ASIO Integration:
  • ASIO is a powerful Boost library designed for use with asynchronous operations of all sorts, with a special emphasis on networking. Cinder Apps now maintain an ASIO io_service for simpler integration with this library.
  • FMOD CinderBlock:
  • An official CinderBlock wrapping the FMOD library and matching app template is included with this release.
  • MTL File Parsing:
  • Support for .mtl files in ObjLoader courtesy of Nick Porcino.
  • Stereoscopic Cameras:
  • Stereoscopic rendering support and matching sample courtesy of Paul Houx. Several stereo rendering formats are supported including interlaced, split frame and red/cyan anaglyph.
  • Kaleidoscope Sample:
  • A new Kaleidoscope sample courtesy of Greg Kepler demonstrates multithreaded downloading of Instagram images.
  • Upgraded to Boost 1.53

New in Cinder 0.8.4 (Jun 6, 2013)

  • SVG Parser:
  • A full-featured parser of the SVG vector graphics file format, including support for gradients, embedded images, and compressed SVG (SVGZ). Includes both a Cairo and OpenGL rendering pipeline, as well as full DOM-style access to element data.
  • Timeline API:
  • In the spirit of the popular TweenLite engine for Flash, the new Timeline API allows sophisticated animation of arbitrary properties. Support for a large library of easing functions as well as custom easing, callbacks and fire-and-forget tween management.
  • JSON Parser & Writer:
  • Courtesy of Stephen Schieberl, Cinder now includes a powerful JSON reader/writer called JsonTree, similar to our XmlTree XML parser.
  • Assets System:
  • A new alternative to resources, assets in Cinder provide a convenient method for including data with your application which requires no setup code. Read more here.
  • Numerous New Samples:
  • Many new samples demonstrating multithreaded network I/O, advanced frustum culling as well as the new SVG and Timeline APIs.
  • Polygon Boolean Operations:
  • Polygonal booleans supporting the calculation of arbitrarily complex polygons' union, intersection, XOR and difference.
  • Shape2d Hit-Testing and Precise Bounding Boxes:
  • Simple determination of whether a point is inside of a Shape2d, as well as the precise or "tight" bounding box of a Shape2d. Suitable for click detection, for example in determining which region a user clicked in a map.
  • Standardization On fs::path:
  • All file I/O routines now use fs::path (shorthand for Boost.Filesystem paths) in place of bare strings.
  • Base64 Encode & Decode:
  • Built-in support for encoding and decoding Base64, necessary for things like MIME attachments and embedded images in SVGs.
  • ConcurrentCircularBuffer:
  • An STL-style container which simplifies safe data exchange between threads, especially well-suited for implementing a producer-consumer pattern.
  • New Math Classes:
  • Including new classes for representing planes, frusta and affine matrices in 2D.
  • Fixes and Improvements:
  • A number of other enhancements and bug fixes including new Cairo functionality, gaussian-distributed random numbers, runtime vertical sync and window position control.

New in Cinder 0.8.3 (Sep 19, 2011)

  • Text Layout Improvements:
  • A new TextBox class allows for word-wrapped text layout under all 3 platforms.
  • TextureFont Class:
  • A new class which accelerates text rendering under OpenGL, caching font glyphs to one or more OpenGL textures. Supports kerning, ligatures and under iOS and Mac OS X, word-wrapped layout.
  • New XML Parsing and Export API:
  • A much improved XML parsing API built on the wicked fast RapidXML. Read about it here.
  • OBJ Exporting:
  • Functionality for exporting TriMeshes as OBJ files for interoperating with 3D software and 3D printers.
  • Clipboard Support:
  • Easy to use functionality for copying to and pasting from the system Clipboard for iOS, Mac OS X and Windows.
  • Parallel Transport Frame:
  • Built-in support for calculation of the parallel transport frame, allowing for extrusion and orientations in 3D without "twists". Includes the sample Tubular for demonstration.
  • Sophisticated Path Subdivision:
  • Features in Path2d and Shape2d for subdividing curves in screen space, creating the optimal subdivision for a given resolution.
  • 16-bit Image Pipeline:
  • Variants of both the Surface and Channel classes allowing for native processing of 16-bit integer images, including file I/O and conversion to and from OpenGL equivalents.
  • Triangulation API:
  • Conversion of an arbitrary shape (including bezier paths) to a collection of triangles, suitable for OpenGL rendering.
  • TriMesh2d:
  • A new class for representing 2D triangle meshes.
  • Math Core Cleanup and Optimizations:
  • Significant additions, optimizations and improvements to Cinder's mathematical core.
  • Built-in Penner Easing Equations:
  • Handy easing equations, and a demonstration sample.
  • Fixes and Improvements:
  • Countless utility functions like launchWebBrowser(), Camera utility functions for worldToEye(), worldToEyeDepth() and worldToNdc(), swizzle operators on Vector classes, improvements to the built-in Params interface, as well as many other enhancements and bug fixes.

New in Cinder 0.8.2 (Sep 19, 2011)

  • OpenCV:
  • Cinder now features full support for version 2.1 of the popular computer vision library OpenCV. This integration is designed to be as seamless as possible, allowing very fast & simple exchange of Cinder's native types with OpenCV's. Available for Mac OS X, Windows and iOS.
  • FBO Enhancements:
  • Our OpenGL Framebuffer Object (FBO) class now features full support for iOS, as well as functionality for multiple render targets.
  • TUIO Support:
  • With help from Héctor Sánchez-Pajares of Aer Studio, this release adds support for the TUIO protocol for networkable multiTouch on Windows, iOS and Mac OS X.
  • TinderBox for Windows:
  • Thanks to Hai Nguyen, TinderBox, our application for easily creating Cinder projects, now runs under Windows.
  • QuickTime Exporting:
  • The new MovieWriter class lets users easily export QuickTime video with and without alpha channels, taking full advantage of advanced features like multipass H.264. A guide to using this class is available here.
  • Command Line Parameters:
  • The command line parameters used to launch an application are now accessible under both Mac OS X and Windows via the getArgs() function.
  • Event Callbacks:
  • The AppBasic class now allows users to register callback functions for handling events outside of the App class.
  • Boost & Cairo Upgrades:
  • We've upgraded Boost to the latest release, version 1.44, as well as Cairo to the recent 1.10.0 release.
  • New Native Code:
  • In our unending quest to make Cinder as fast and lightweight as possible, we've eliminated our dependency on libcurl (replacing it with platform-native URL loading code on both Mac OS X and iOS instead). Similarly, we've eliminated our dependency under Mac OS X on the GLee library.
  • New Samples:
  • We've added several new audio samples and a very nice 3D Picking sample contributed by user Paul Houx.
  • Numerous Other Enhancements:
  • This release contains countless other new features, improvements and bug fixes.

New in Cinder 0.8.1 (Sep 19, 2011)

  • MultiTouch:
  • We're pretty excited to offer a multiTouch API right out of the box in Cinder now. The exact same code can be used to support multiTouch on the iPhone, the iPad and Windows 7. We've tested this feature on inexpensive $400 2-point Dell displays on up to pricier 20+ point displays from 3M. The new API makes it incredibly easy to experiment with multiTouch applications.
  • Visual C++ 2010:
  • We now provide full support for Visual C++ 2010 under Windows, in addition to Visual C++ 2008. There are some exceptional new features in this release, in particular support for several important C++0X features. If you are a new Cinder user on Windows, we recommend you use this 2010 version of Visual C++.
  • MSAFluid:
  • A full port of Mehmet Atken's (memo) excellent 2D fluid simulator, MSAFluid. As a bonus for Cinder users, the solver on the Mac benches at just over double the speed of the original. You can see what Robert Hodgin has been up to with this new capability in this video:
  • Open Sound Control (OSC):
  • A CinderBlock contributed by Héctor Sánchez-Pajares. Support for the OSC protocol under both Mac OS X and Windows.
  • Audio Synthesis:
  • A new audio API for synthesizing data on the fly. Full support for 8-bit, 16-bit and 32-bit floating point data.
  • WinInet Support:
  • We replaced libCurl on Windows with the Windows platform-native API for transferring files over HTTP and FTP. This should be user-transparent and allows us to lighten our Windows distribution and executable size.
  • Numerous enhancements:
  • Tons of additional new functionality, bugfixes and improvements - gl::drawString() (with iPhone support), getAverageFps() (courtesy of David Wicks), and countless others.