« Previous - Version 8/21 (diff) - Next » - Current version
coder, 15/08/2012 23:53

Programmer's Guide

The libvg Programmer's Guide is a collection of tutorials and explanatory articles that explain how to create applications using libavg. It starts with a basic Hello World tutorial and progresses to successively more complex topics.

More Information

In addition to the Programmer's Guide, we provide a complete Reference to libavg. The Reference is concise, possibly a bit terse, but much more exhaustive. All the examples in the guide are checked into svn under libavg/src/samples, including the necessary media files. You can run them directly in that directory.

Instructions for installing libavg are also available.

If anything is unclear, we have a forum for questions and discussions.


Hello World: The basics of programming with libavg.

Nodes: How libavg content is structured.

Node Attributes: More on libavg content.

Events: Dynamics - handling user input and timing.

The AVGApp Class: Structuring applications.

Debugging: Debugging keys and logging available.

Individual Node Classes

ImageNode: Bitmaps displayed on screen.

WordsNode: Displaying text, formatting, and font handling.

VideoNode: Playing back videos.

CameraNode: Interfacing to digital cameras.

MeshNode: Displaying content using a generic triangle mesh.

Rendering Specifics

Coordinate Systems: How libavg determines where to display nodes.

Rendering Attributes: Masks, compositing and color adjustments.

Offscreen Rendering: Rendering to an offscreen buffer.

FX Nodes: Rendering with GPU-based filters.

Dynamics: Input and Animation

Event Handling Details: An in-depth description of libavg event handling.

Touch Input: Higher-level events for NUI and touch-based user interfaces.

Camera Tracking: Using the computer vision system in libavg as an input device.

Timing: Details on frame timing and time-based callbacks.

Animation: Using the built-in animation framework.

Advanced Topics

Subclassing: Creating your own node classes and inserting them into a libavg scene.

Memory Management: Memory usage in libavg applications.

Plugins: Extending libavg with plugins written in C++.

Backwards Compatibility: Incompatible changes.


Environment Variables

The avgrc file