Vuo  1.2.8
Todo List
Member [VuoGraphicsView initWithInitCallback:updateBackingCallback:backingScaleFactor:resizeCallback:drawCallback:userData:]
Remove drawQueue after switching to single-context, since VuoGl_perform() will take care of that.
Member [VuoWindowRecorder finish]
Replace with -finishWritingWithCompletionHandler: when we drop Mac OS 10.8 support.
Member CompileShader (GLenum type, const char *source)
this function is a temporary workaround until VuoShader can handle GLSL 1.50
Member convertAINodesToVuoSceneObjectsRecursively (const struct aiScene *scene, const struct aiNode *node, VuoShader *shaders, bool *shadersUsed, VuoSceneObject *sceneObject)

Can a single aiNode use multiple aiMaterials? If so, we need to split the aiNode into multiple VuoSceneObjects. For now, just use the first mesh's material.

handle other texture coordinate channels

Member createContext (void)
this function is a temporary workaround until VuoGlContext can create OpenGL 3.2 contexts
Member currentEditor
make these non-global — how can we pass them through to changeFont and changeAttributes?
Module DevelopingLibraryModules
(https://b33p.net/kosada/node/5252)
Member VuoAudio_make (unsigned int deviceId)
https://b33p.net/kosada/node/4724
Member VuoAudio_receivedEvent (void *outputBuffer, void *inputBuffer, unsigned int nBufferFrames, double streamTime, RtAudioStreamStatus status, void *userData)

handle differing sample rates

Should we clamp here (or after all buffers for this channel have been summed), or does CoreAudio handle that for us?

Member VuoAudioFile_decodeChannels (VuoAudioFileInternal afi)
https://b33p.net/kosada/node/4726#comment-27512
Member VuoAudioFile_make (VuoText url)

https://b33p.net/kosada/node/4726#comment-27512

https://b33p.net/kosada/node/4726#comment-27512

Member VuoAudioFrame::blah [42]
https://b33p.net/kosada/node/4124
Member VuoAudioIn_getShared (VuoAudioInputDevice aid)
https://b33p.net/kosada/node/4724
Member VuoAudioOut_getShared (VuoAudioOutputDevice aod)
https://b33p.net/kosada/node/4724
Member VuoBarcode_read (VuoImage image, VuoInteger format, VuoText *outputFormat, VuoRectangle *outputPosition)
Check whether MultiFormatReader::decodeWithState is faster
Member VuoBlackmagicInputDevice::blah [42]
https://b33p.net/kosada/node/4124
Member VuoBlackmagicOutputDevice::blah [42]
https://b33p.net/kosada/node/4124
Member VuoCompilerCodeGenUtilities::generateSerialization (Module *module, BasicBlock *block, Value *valueToSerialize, VuoCompilerConstantStringCache &constantStrings)
Handle other primitive types and structs (https://b33p.net/kosada/node/3942)
Member VuoCompilerCodeGenUtilities::generateUnserialization (Module *module, BasicBlock *block, Value *stringToUnserialize, Value *destinationVariable, VuoCompilerConstantStringCache &constantStrings)
Handle other primitive types and structs (https://b33p.net/kosada/node/3942)
Member VuoCompilerComposition::groupGenericPortsByType (bool useOriginalType)
https://b33p.net/kosada/node/7655 Handle published ports (node is NULL).
Member VuoCompilerGraph::getHash (VuoCompilerComposition *composition)
Check for change in to-port's event blocking (https://b33p.net/kosada/node/8197)
Member VuoCompilerMakeListNodeClass::getOriginalGenericNodeSet (void)
somehow return the vuo.list node set
Member VuoCompilerPublishedInputNodeClass::createSpecializedNodeClassNameWithReplacement (string genericTypeName, string specializedTypeName)
https://b33p.net/kosada/node/7655
Member VuoCompilerPublishedInputNodeClass::createUnspecializedNodeClassName (set< VuoPortClass *> portClassesToUnspecialize)
https://b33p.net/kosada/node/7655
Member VuoCompilerPublishedInputNodeClass::getOriginalPortType (VuoPortClass *portClass)
https://b33p.net/kosada/node/7655
Member VuoCompilerPublishedOutputNodeClass::createSpecializedNodeClassNameWithReplacement (string genericTypeName, string specializedTypeName)
https://b33p.net/kosada/node/7655
Member VuoCompilerPublishedOutputNodeClass::createUnspecializedNodeClassName (set< VuoPortClass *> portClassesToUnspecialize)
https://b33p.net/kosada/node/7655
Member VuoCompilerPublishedOutputNodeClass::getOriginalPortType (VuoPortClass *portClass)
https://b33p.net/kosada/node/7655
Member VuoCompilerPublishedPort::getDetails (bool isInput)

https://b33p.net/kosada/node/7317

https://b33p.net/kosada/node/7317

https://b33p.net/kosada/node/7317

Member VuoData::blah [42]
https://b33p.net/kosada/node/4124
Member VuoDialogForInputEditor::VuoDialogForInputEditor (bool isDark, bool showArrow)
copied from VuoErrorPopover
Member VuoDictionary_VuoText_VuoReal::unused
https://b33p.net/kosada/node/4124
Member VuoDictionary_VuoText_VuoText::unused
https://b33p.net/kosada/node/4124
Member VuoDragEvent::blah [42]
https://b33p.net/kosada/node/4124
Member VuoFileFormat_isFileOfFormat (const char *path, const char **formats, size_t numFormats)
https://b33p.net/kosada/node/8795 : Determine the file type from its content.
Member VuoFileUtilities::makeTmpFile (string file, string extension, string directory="/tmp")
Keep file open and return file handle. (https://b33p.net/kosada/node/4987)
Member VuoGlContextPool::perform (void(^function)(CGLContextObj cgl_ctx))
check other changes Vuo makes
Member VuoGlShader_use (VuoGlContext glContext, GLenum type, const char *source)
prefix the following with VuoGlsl_
Member VuoGlTexturePool_use (VuoGlContext glContext, GLenum internalformat, unsigned short width, unsigned short height, GLenum format)

Better error handling per https://b33p.net/kosada/node/4724

Better error handling per https://b33p.net/kosada/node/4724

Member VuoImageBlend_blend (VuoImageBlend blend, VuoList_VuoImage images)
Could maybe improve performance by blending more than one image per iteration.
Member VuoInputEditorWithMenu::show (QPoint portLeftCenter, json_object *originalValue, json_object *details, map< QString, json_object *> portNamesAndValues)
https://b33p.net/kosada/node/8133
Member VuoIntegerRange::blah [42]
https://b33p.net/kosada/node/4124
Member VuoIoSurfacePool_use (VuoGlContext glContext, unsigned short pixelsWide, unsigned short pixelsHigh, GLuint *outputTexture)
kIOSurfaceIsGlobal is deprecated on 10.11; replace int32 lookup with IOSurfaceCreateXPCObject or something. http://web.archive.org/web/20151220161520/https://lists.apple.com/archives/mac-opengl/2009/Sep/msg00110.html
Member VuoLayer
Ideally this should just be typedef VuoSceneObject VuoLayer, but https://b33p.net/kosada/node/6824
Member VuoLeapFrame::hands
VuoLeapTransform motion;
Member VuoLeapFrame_getJson (const VuoLeapFrame value)
serialize other values
Member VuoLeapFrame_makeFromJson (json_object *js)
unserialize other values
Member VuoMathExpressionList::unused
https://b33p.net/kosada/node/4124
Member VuoMidiController::blah [42]
https://b33p.net/kosada/node/4124
Member VuoMidiIn_make (VuoMidiInputDevice md)
https://b33p.net/kosada/node/4724
Member VuoMidiInputDevice::blah [42]
https://b33p.net/kosada/node/4124
Member VuoMidiNote::blah [42]
https://b33p.net/kosada/node/4124
Member VuoMidiOut_make (VuoMidiOutputDevice md)
https://b33p.net/kosada/node/4724
Member VuoMidiOutputDevice::blah [42]
https://b33p.net/kosada/node/4124
Member VuoMidiPitchBend::blah [42]
https://b33p.net/kosada/node/4124
Member VuoMovieExporter::~VuoMovieExporter ()
Replace with -finishWritingWithCompletionHandler: when we drop Mac OS 10.8 support.
Member VuoNodeClass::isTypecastNodeClass (void)
Temporary workaround. Instead use VuoNode::isCollapsed() elsewhere. (https://b33p.net/kosada/node/5477)
Member VuoQtListener::mVideoInputDevices
Make this a singleton?
Member VuoRange::blah [42]
https://b33p.net/kosada/node/4124
Member VuoRendererComposition::hasURLType (VuoPort *port)
https://b33p.net/kosada/node/9204 Just check whether it has a VuoUrl type. For now, use hard-coded rules.
Member VuoRendererPort::canConnectDirectlyWithSpecializationTo (VuoRendererPort *toPort, bool eventOnlyConnection, VuoRendererPort **portToSpecialize, string &specializedTypeName)
(https://b33p.net/kosada/node/7032)
Member VuoRendererPort::getConstantAsStringToRender (void) const
Implement with input viewers (https://b33p.net/kosada/node/5700)
Member VuoRendererPort::paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
Implement with input viewers (https://b33p.net/kosada/node/5700)
Member VuoSceneObject_copy (const VuoSceneObject object)
The shaders are not copied, so changes to the copy's shaders will affect both the original and the copy.
Member VuoSceneObject_get (VuoText sceneURL, VuoSceneObject *scene, bool center, bool fit, bool hasLeftHandedCoordinates)
load and blend multiple diffuse textures
Member VuoSceneRenderer_drawSceneObject (VuoSceneObject so, VuoSceneRendererInternal_object *soi, float projectionMatrix[16], float modelviewMatrix[16], VuoSceneRendererInternal *sceneRenderer, VuoGlContext glContext)
https://b33p.net/kosada/node/12014
Member VuoShader_activate (VuoShader shader, const VuoMesh_ElementAssemblyMethod inputPrimitiveMode, VuoGlContext glContext, VuoGlProgram *outputProgram)
support multisampled framebuffers (like the color image case above)
Member VuoShader_getAttributeLocations (VuoShader shader, const VuoMesh_ElementAssemblyMethod inputPrimitiveMode, VuoGlContext glContext, int *positionLocation, int *normalLocation, int *tangentLocation, int *bitangentLocation, int *textureCoordinateLocation)
cache values for each program?
Member VuoSubmesh::positions
Change to VuoDictionary_VuoPoint4D vertexAttributes; once dictionaries exist: a string-keyed list of equal-size arrays of points (vertex attributes). Typically contains at least 'positions', 'normals', and 'textureCoordinates'.
Member VuoSubmesh_getSummary (const VuoSubmesh value)
Report if value.elementCount isn't a multiple of 3.
Member VuoSyphon_filterServerDescriptions (VuoList_VuoSyphonServerDescription allDescriptions, VuoSyphonServerDescription partialDescription)
Handle UTF8 names (add VuoText function).
Member VuoTextComparison::blah [42]
https://b33p.net/kosada/node/4124
Member VuoUrl_fetch (const char *url, void **data, unsigned int *dataLength)
Better error handling per https://b33p.net/kosada/node/4724
Member VuoVideoFrame::blah [42]
https://b33p.net/kosada/node/4124
Member VuoVideoInputDevice::blah [42]
https://b33p.net/kosada/node/4124