All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
Data Structures
Here are the data structures with brief descriptions:
 C_VVBufferDescriptorThis C struct describes the basic characteristics of a VVBuffer's internal GL properties
 CCIGLSceneSubclass of GLScene for working with CoreImage resources. As written, the API renders CIImages to VVBuffers (typically textures of some sort), since this seems to be the easiest way to work with CI resources. Can be easily modified to render directly in a view
 CGLSceneWrapper around a GL context with the intent of standardizing the more common render-to-texture operations while also making it easier to write customizable rendering code that doesn't necessarily require a different subclass for every purpose. Most of the rendering classes I write either use an instance of GLScene to do their rendering or descend directly from it (GLScene's nature- a discrete GL context with built-in render-to-texture- makes it a good choice of superclass when adding support for other hardware-accelerated APIs)
 CGLShaderSceneSubclass of GLScene for working with vertex & frag shaders- just give it some shader strings and watch it go!
 CISFAttribInternally, an ISFGLScene creates an ISFAttrib for each of the declared inputs in an ISF file. if you query an ISFGLScene's inputs- for introspection, for example- you'll get an array of ISFAttribs, which can be examined to learn more about the nature of the input
 CISFAttribValUnion describing a value for one of the listed attribute types
 CISFFileManagerClass interface to aid in discovering ISF files installed in the default location on the host system (/Library/Graphics/ISF and ~/Library/Graphics/ISF)
 CISFGLSceneSubclass of GLShaderScene- loads and renders ISF files
 CMutLockArraySimilar to NSMutableArray, but thread-safe. Internally, uses an NSMutableArray and a rwlock
 CMutLockDictMutLockDict is a thread-safe version of NSMutableDictionary
 CMutNRLockArraySubclass of MutLockArray; this class does NOT retain the objects in its array!
 CMutNRLockDictSubclass of MutLockDict; this class does NOT retain the objects in its array!
 CObjectHolderHolds a weak ref to an NSObject. stupid by default, but can also use a MAZeroingWeakRef, which is a totally frickin sweet class written by the venerable Mike Ash
 C<OldVVCrashReporterDelegate>The crash reporter's delegate must adhere to this protocol
 COSCAddressSpaceOSCAddressSpace is the primary means of interacting with the OSC address space described in the OSC specification. This class is optional- it's not needed for basic OSC message sending/receiving
 COSCBundleAn OSCBundle is a "container" for multiple OSC messages or bundles (bundles may also be nested)
 C<OSCDelegateProtocol>Most common means of passing OSC data to your application. Delegates of OSCManager and OSCInPort should support this protocol
 COSCInPortOSCInPort handles everything needed to receive OSC data on a given port
 COSCManagerMain VVOSC class- manages in & out port creation, zero configuration networking (bonjour/zeroconf)
 COSCMessageCorresponds to an OSC message: contains zero or more values, and the address path the values have to get sent to
 COSCNodeOSCNode describes a single destination for OSC addresses. The OSC address space is made up of many different nodes. This class is optional- it is not used for basic OSC message sending/receiving, and only gets used if you start working with OSCAddressSpace
 C<OSCNodeDelegateProtocol>Delegates of OSCNode must respond to all three of these methods
 C<OSCNodeQueryDelegate>An OSCNode's queryDelegate must respond to these methods, which are called when a query-type OSCMessage is dispatched to an OSCNode
 COSCOutPortOSCOutPort handles everything needed to send OSC data to a given address
 COSCPacketUsed to parse raw OSC data or to assemble raw OSC data from OSCMessages/OSCBundles
 COSCValueOSCValue encapsulates any value you can send or receive via OSC. It is NOT mutable at this time
 CQCGLSceneSubclass of GLScene for working with QC compositions
 CRenderThreadSubclass of VVThreadLoop from VVBasics, provides a simple interface for dealing with GL resources that aren't threadsafe, and need to be created, rendered, and deleted all on the same thread
 CVVBufferVVBuffer represents a buffer- almost always in VRAM as a GL texture or renderbuffer- created and managed by VVBufferPool. Conceptually, it's safe to think of VVBuffers as "images" or "frames", as that is typically what they're used for. You should never alloc/init a VVBuffer- if you want a buffer, you need to get one by asking a VVBufferPool to create one for you
 CVVBufferAggregateConvenience class i've been using lately to pass around groups of VVBuffers. this is a relatively new class, we'll see how it goes..
 CVVBufferCopierSubclass of GLScene, used to copy the contents of VVBuffer instances by rendering them into a texture
 CVVBufferGLViewSubclass of NSOpenGLView, fastest and easiest way to display a VVBuffer. automatically sizes the buffer proportionally to fit
 CVVBufferPoolCreates VVBuffers. Should be the only way you create VVBuffers- most projects will only have a single instance of VVBufferPool, which shares an OpenGL context with other parts of your program so GL resources (specifically textures) may be shared
 CVVCrashReporterSimple class which automatically uploads crash logs and other relevant diagnostic information automatically made available by os x to a remote server
 CVVQCCompositionLoad a Quartz Composer composition and parse it as a text file (QC comps are basically big plists) to retrieve data about the composition without invoking the Quartz Composer runtime, which can be slow
 CVVSizingToolSimplifies the act of generating transforms and other geometry-related data around the relatively common act of resizing one rect to fit inside another
 CVVStopwatchThis class is used to measure how long it takes to do things; much easier to work with than NSDate
 CVVSysVersionClass-based API for quickly determining which version of os x you're using at runtime
 CVVThreadLoopSimple class for spawning a thread which executes at a specified interval- simpler and easier to work with than NSThread/NSTimer in multi-threaded programming environments