ProgrammersGuide

Version 21 (coder, 24/11/2014 20:32)

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 21 coder
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. The pages below give a step-by-step introduction. If you prefer working with a larger piece of code and diving in quickly, here's a tutorial based on our Firebirds sample:
12 21 coder
13 21 coder
[[Firebirds|Firebirds Tutorial]]
14 1 admin
15 1 admin
Instructions for [[ReleaseInstall|installing libavg]] are also available.
16 1 admin
17 4 coder
If anything is unclear, we have a forum for questions and discussions.
18 1 admin
19 1 admin
h1. Basics
20 1 admin
21 1 admin
[[HelloWorld|Hello World]]: The basics of programming with libavg.
22 1 admin
23 1 admin
[[Nodes]]: How libavg content is structured.
24 1 admin
25 1 admin
[[NodeAttributes|Node Attributes]]: More on libavg content.
26 1 admin
27 1 admin
[[App]]: Structuring applications (Legacy documentation for the deprecated [[AVGApp]] version available as well).
28 20 coder
29 20 coder
[[Events]]: Dynamics - handling user input and timing.
30 1 admin
31 11 coder
[[Logger]]: The libavg Logging facility.
32 1 admin
33 1 admin
h1. Individual Node Classes
34 1 admin
35 1 admin
[[ImageNode]]: Bitmaps displayed on screen.
36 1 admin
37 1 admin
[[WordsNode]]: Displaying text, formatting, and font handling.
38 1 admin
39 1 admin
[[VideoNode]]: Playing back videos.
40 1 admin
41 1 admin
[[CameraNode]]: Interfacing to digital cameras.
42 1 admin
43 1 admin
[[MeshNode]]: Displaying content using a generic triangle mesh.
44 1 admin
45 5 coder
h1. Rendering Specifics
46 1 admin
47 5 coder
[[CoordinateSystem|Coordinate Systems]]: How libavg determines where to display nodes.
48 5 coder
49 5 coder
[[RenderingAttributes|Rendering Attributes]]: Masks, compositing and color adjustments.
50 5 coder
51 5 coder
[[OffscreenRendering|Offscreen Rendering]]: Rendering to an offscreen buffer.
52 5 coder
53 7 coder
[[FXNodes|FX Nodes]]: Rendering with GPU-based filters.
54 7 coder
55 5 coder
h1. Dynamics: Input and Animation
56 5 coder
57 19 coder
[[MouseAndTouchInput|Mouse and Touch Input]]: Mouse and Touch events, the Contact class and Gesture support. 
58 1 admin
59 19 coder
[[BubblingAndCapture|CursorEvent Bubbling and Capture]]: An in-depth description of how libavg routes events to nodes.
60 1 admin
61 6 coder
[[Tracker|Camera Tracking]]: Using the computer vision system in libavg as an input device.
62 6 coder
63 1 admin
[[Timing]]: Details on frame timing and time-based callbacks.
64 1 admin
65 1 admin
[[Animation]]: Using the built-in animation framework.
66 1 admin
67 5 coder
h1. Advanced Topics
68 1 admin
69 1 admin
[[Subclassing]]: Creating your own node classes and inserting them into a libavg scene.
70 1 admin
71 1 admin
[[MemoryManagement|Memory Management]]: Memory usage in libavg applications.
72 1 admin
73 9 coder
[[Multithreading]]: Things you need to know if you have more than one Python thread.
74 9 coder
75 1 admin
[[Plugins]]: Extending libavg with plugins written in C++.
76 1 admin
77 8 coder
[[Backwards Compatibility]]: Incompatible changes.
78 8 coder
79 1 admin
h1. Setup
80 1 admin
81 1 admin
[[EnvironmentVariables|Environment Variables]]
82 1 admin
83 1 admin
[[avgrc|The avgrc file]]
84 10 scotty
85 10 scotty
[[EclipseIDE|Eclipse IDE Notes]]