ProgrammersGuide

Version 18 (Richy, 03/06/2014 19:56)

1 1 admin
h1. Programmer's Guide
2 1 admin
3 1 admin
{{>toc}}
4 1 admin
5 1 admin
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.
6 1 admin
7 1 admin
h1. More Information
8 1 admin
9 15 coder
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. 
10 15 coder
11 18 Richy
All the examples in the guide are also checked into git under "src/samples":https://github.com/libavg/libavg/tree/master/src/samples, including the necessary media files. You can run them directly in that directory. If you prefer working from a larger piece of code, have look at the "Firebirds sample":https://github.com/libavg/libavg/tree/master/src/samples/firebirds (currently Mac and Linux only). The libavg version of Firebirds is based on an XNA tutorial by the magazine c't and developed by Alfred Bigler. It uses many of the concepts we describe below and is extremly well-readable.
12 1 admin
13 1 admin
Instructions for [[ReleaseInstall|installing libavg]] are also available.
14 1 admin
15 4 coder
If anything is unclear, we have a forum for questions and discussions.
16 1 admin
17 1 admin
h1. Basics
18 1 admin
19 1 admin
[[HelloWorld|Hello World]]: The basics of programming with libavg.
20 1 admin
21 1 admin
[[Nodes]]: How libavg content is structured.
22 1 admin
23 1 admin
[[NodeAttributes|Node Attributes]]: More on libavg content.
24 1 admin
25 1 admin
[[Events]]: Dynamics - handling user input and timing.
26 1 admin
27 17 coder
[[App]]: Structuring applications (Legacy documentation for the deprecated [[AVGApp]] version available as well).
28 1 admin
29 11 coder
[[Logger]]: The libavg Logging facility.
30 1 admin
31 1 admin
h1. Individual Node Classes
32 1 admin
33 1 admin
[[ImageNode]]: Bitmaps displayed on screen.
34 1 admin
35 1 admin
[[WordsNode]]: Displaying text, formatting, and font handling.
36 1 admin
37 1 admin
[[VideoNode]]: Playing back videos.
38 1 admin
39 1 admin
[[CameraNode]]: Interfacing to digital cameras.
40 1 admin
41 1 admin
[[MeshNode]]: Displaying content using a generic triangle mesh.
42 1 admin
43 5 coder
h1. Rendering Specifics
44 1 admin
45 5 coder
[[CoordinateSystem|Coordinate Systems]]: How libavg determines where to display nodes.
46 5 coder
47 5 coder
[[RenderingAttributes|Rendering Attributes]]: Masks, compositing and color adjustments.
48 5 coder
49 5 coder
[[OffscreenRendering|Offscreen Rendering]]: Rendering to an offscreen buffer.
50 5 coder
51 7 coder
[[FXNodes|FX Nodes]]: Rendering with GPU-based filters.
52 7 coder
53 5 coder
h1. Dynamics: Input and Animation
54 5 coder
55 1 admin
[[EventHandlingDetails|Event Handling Details]]: An in-depth description of libavg event handling.
56 1 admin
57 1 admin
[[TouchInput|Touch Input]]: Higher-level events for NUI and touch-based user interfaces. 
58 1 admin
59 6 coder
[[Tracker|Camera Tracking]]: Using the computer vision system in libavg as an input device.
60 6 coder
61 1 admin
[[Timing]]: Details on frame timing and time-based callbacks.
62 1 admin
63 1 admin
[[Animation]]: Using the built-in animation framework.
64 1 admin
65 5 coder
h1. Advanced Topics
66 1 admin
67 1 admin
[[Subclassing]]: Creating your own node classes and inserting them into a libavg scene.
68 1 admin
69 1 admin
[[MemoryManagement|Memory Management]]: Memory usage in libavg applications.
70 1 admin
71 9 coder
[[Multithreading]]: Things you need to know if you have more than one Python thread.
72 9 coder
73 1 admin
[[Plugins]]: Extending libavg with plugins written in C++.
74 1 admin
75 8 coder
[[Backwards Compatibility]]: Incompatible changes.
76 8 coder
77 1 admin
h1. Setup
78 1 admin
79 1 admin
[[EnvironmentVariables|Environment Variables]]
80 1 admin
81 1 admin
[[avgrc|The avgrc file]]
82 10 scotty
83 10 scotty
[[EclipseIDE|Eclipse IDE Notes]]