Glossary of Terms

A

application object

An instance of a C++ class that is given to the VR Juggler kernel for execution. Such objects contain the visuals and the interactions that make up a virtual world.

C

callback

In the C programming language, a function pointer that is invoked to “call back” to some other code. Usually, a function pointer is passed as an argument to some function that stores the pointer for later use.

context-specific data

In OpenGL terms, some information that is associated with a specific OpenGL context.

critical section

In multi-threaded programming, a block of code that reads from or writes to data that is shared across multiple threads.

D

daemon

In UNIX-based operating systems, a background process that performs some job continuously while the computer is running. For example, a web server runs a daemon (often called httpd) that manages incoming HTTP requests.

device interface

A high-level feature provided by Gadgeteer for getting easy access to a type-specific device proxy. For each input device type, there is one device proxy type, and for each device proxy type, there is one device interface type. For example, digital input devices are of type gadget::Digital. Digital input data is accessed by VR Juggler application objects through a gadget::DigitalProxy. The proxy reference is most easily acquired through a gadget::DigitalInterface object.

display context

The location to which OpenGL rendering commands draw.

F

frame

In computer graphics terms, one iteration of a rendering loop. In VR Juggler, a frame is one complete pass through an application object's methods, beginning with vrj::App::preFrame() and ending with vrj::App::postFrame(). Methods called in between include vrj::App::intraFrame() and methods that are specific to a given graphics API.

G

GUID

Globally unique identifier that is generated using various properties of a machine and a random number generator. It has been proven that it is statistically impossible for the same number to be generated twice within the average human lifetime.

I

interface

An interface is a collection of operations used to specify a service of a class or a component.

O

OpenGL rendering context

An OpenGL state machine associated with a display window.

P

proxy

An intermediary that passes information between two parties.

S

smart pointer

In C++ terminology, a smart pointer is a pointer-like object where the pointer dereference operators (-> and *) are overloaded to perform special functionality. This takes advantage of C++ operator overloading to hide extra processing steps behind a familiar syntax.

stupefied proxy

A device proxy that has no device. Such a proxy always returns the same data because it cannot query new data from an input device. Proxies become stupefied when there is an error in the configuration or when the proxied device is unavailable for some reason.

T

thread of control

In a multi-threaded application, a single sequence of execution. Each thread in a multi-threaded application has its own thread of control that can execute in parallel with the other threads of control.

triple buffering

An extension to double buffering that uses three data buffers instead of two. Triple buffering minimizes the time that two threads have to wait to access shared data. At most, one thread will wait while another thread copies no more than four bytes of data. That is, regardless of the size of a single data buffer, the amount of memory copied to swap buffers is no more than four bytes (the size of a 32-bit memory address).

V

virtual platform

An abstraction of the operating system and hardware (both the computer architecture and the input devices) that comprise a VR system. A virtual platform provides a cross-platform and cross-VR system layer upon which portable VR applications can be written.