Halyard is a scriptable multimedia engine with support for video, audio, graphics, and user interaction. It currently runs on Windows, and has a preliminary Macintosh port. It is based on PLT Scheme, wxWidgets, and the Quake 2 Engine. It includes a rudimentary IDE based on Scintilla.
|Tags||multimedia Software Development education Games/Entertainment|
|Operating Systems||Windows Mac OS X|
Release Notes: This version fixes many long-standing Z-order, visibility, and cursor-grabbing bugs. To fix these bugs, the flat C++ element list was replaced with a hierarchy based on the Scheme node hierarchy. There is also support for legacy semantics, which can have a default that is toggled per project or per element. This engine introduces the new API (find-node-at point), which takes a point in screen coordinates, and returns the node at that point. This engine also includes an important bugfix for stale event handling and some preliminary Linux/wxGTK patches.
Release Notes: This release introduces a few more performance optimizations. Element creation was improved by a factor of around 3, and primitive call overhead by a factor of around 20. draw-text and draw-graphic were updated to return the bounding box of the item drawn. This can help DRAW methods avoid an extra primitive call to measure text or a graphic.
Release Notes: New Halyard-based programs can now be create from the GUI. The "Recent Programs" list finally works. An icon was provided for Mac OS X. The old SashFrame class has been replaced by a new AUI-based GUI, complete with dockable palettes. The listener's focus and scrolling behavior has been improved significantly. A "Media Info" palette was provided. It shows the path and timecode of whatever element the script is waiting on. This is experimental, and will be refined further in future releases.
Release Notes: This release replaces Halyard's offscreen drawing routines with Cairo. Cairo is a fast, portable 2D graphics library used by Firefox, Gnome, and many other open source projects.
Release Notes: This release introduces a number of simple performance optimizations. Element creation has always been slow, so this release has several quick and easy optimizations that buy a good deal of extra performance. It also exposes a bit more of its benchmarking to Halyard programs, so it can more easily compare the differences in performance depending on the size of the program being run, or other factors affected by the program (like monkey patching).