ProgrammersGuide

Version 1 (admin, 20/03/2012 14:14) → Version 2/21 (admin, 20/03/2012 15:18)

h1. Programmer's Guide

{{>toc}}

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, you are welcome to ask questions on the [[MailingLists|libavg-users mailing list]].

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. Advanced Topics

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

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

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

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

[[Animation]]: Using the built-in animation framework.

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

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

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

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

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

[[Tracker|Camera Tracking]]: Using the computer vision system in libavg as an input device.

h1. Setup

[[EnvironmentVariables|Environment Variables]]

[[avgrc|The avgrc file]]