Version 6 (coder, 28/07/2012 13:21) → Version 7/21 (coder, 28/07/2012 13:22)

h1. 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.

h1. 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 [[ReleaseInstall|installing libavg]] are also available.

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

h1. Basics

[[HelloWorld|Hello World]]: The basics of programming with libavg.

[[Nodes]]: How libavg content is structured.

[[NodeAttributes|Node Attributes]]: More on libavg content.

[[Events]]: Dynamics - handling user input and timing.

[[AVGApp|The AVGApp Class]]: Structuring applications.

[[Debugging]]: Debugging keys and logging available.

h1. 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.

h1. Rendering Specifics

[[CoordinateSystem|Coordinate Systems]]: How libavg determines where to display nodes.

[[RenderingAttributes|Rendering Attributes]]: Masks, compositing and color adjustments.

[[OffscreenRendering|Offscreen Rendering]]: Rendering to an offscreen buffer.

[[FXNodes|FX Nodes]]: Rendering with GPU-based filters.

h1. Dynamics: Input and Animation

[[EventHandlingDetails|Event Handling Details]]: An in-depth description of libavg event handling.

[[TouchInput|Touch Input]]: Higher-level events for NUI and touch-based user interfaces.

[[Tracker|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.

h1. Advanced Topics

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

[[MemoryManagement|Memory Management]]: Memory usage in libavg applications.

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

h1. Setup

[[EnvironmentVariables|Environment Variables]]

[[avgrc|The avgrc file]]