Quartz Composition Translation/Compilation/Anything Else

mindoftea's picture


I am an independent computer programmer working on a game based in Quartz. I had planned to submit it to Apple as an iPad app, but you can probably imagine my expression when I had coded 4500 patches, and then discovered that my source for thinking that Quartz Composer was supported on the iPhone/iPad OS was false...

So what I would like to do is translate my Quartz Composition into an iPhone/iPad OS compatible language such as Cocoa and/or OpenGL. Is there any easy way to do this, or must it be done manually? My time is pretty much free.

Advice of any kind would be greatly appreciated.

Thanks, mindoftea

OpenCl Open Gl Interop

mattgolsen's picture

I thought you guys might find this interesting, stumbled across it tonight

The article is for C#, but pretty cool nonetheless.

GL Tools 1.4 crash in Music Visualizer

cybero's picture

Please find quoted below the resulting crash report when iTunes ducked my CLGL variation of the Arabesque screensaver as a music visualier. I am going to dive in and take a look at what I've changed to provoke this error, seems to be one of the presets alone, all others run AOK.

GLTools got mentioned in dispatches as follows :-

Process:         iTunes [1936]
Path:            /Applications/
Version:         9.0.3 (9.0.3)
Build Info:      iTunes-9031501~5
Code Type:       X86 (Native)
Parent Process:  launchd [134]
PlugIn Path:       /Users/cybero/Library/Graphics/Quartz Composer Patches/GLTools.plugin/Contents/MacOS/GLTools
PlugIn Identifier: net.kineme.GLTools
PlugIn Version:    1.4 (20091217.2212r6563)
Date/Time:       2010-02-24 12:41:20.288 +0000
OS Version:      Mac OS X 10.6.2 (10C540)
Report Version:  6
Interval Since Last Report:          321683 sec
Crashes Since Last Report:           58
Per-App Interval Since Last Report:  190820 sec
Per-App Crashes Since Last Report:   1
Anonymous UUID:                      1AA3AE71-8AF0-44AD-8109-9157EDB0AF38
Exception Codes: 0x0000000000000001, 0x0000000000000000
Crashed Thread:  0  Dispatch queue:
Application Specific Information:
objc[1936]: FREED(id): message retain sent to freed object=0x1de4bc30
Thread 0 Crashed:  Dispatch queue:
0   libobjc.A.dylib                  0x970374b4 _objc_error + 116
1   libobjc.A.dylib                  0x970374ea __objc_error + 52
2   libobjc.A.dylib                  0x970357dc _freedHandler + 58
3         0x968d0b48 -[QCStreamExporter_QCArray createRepresentationOfType:withProvider:withCount:elementSize:type:options:] + 1830
4         0x968d0178 -[QCStreamManager createRepresentationFromProvider:ofType:withCount:elementSize:type:options:] + 1490
5         0x969c7ce0 -[QCStream(QCStructure) _populateWithStream] + 301
6         0x969c737e -[QCStream(QCStructure) memberAtIndex:] + 71
7   net.kineme.GLTools               0x1e296ebf 0x1e27c000 + 110271
8         0x96840575 -[QCRenderingManager renderAtTime:arguments:] + 1674
9         0x968a5a71 -[QCRenderInImage executeSubpatches:arguments:] + 118
10         0x968a54cc -[QCRenderInImage execute:time:arguments:] + 2557
11         0x9683f396 -[QCPatch(Private) _renderAtTime:arguments:] + 111
12         0x9683f302 -[QCRenderingManager addPatch:context:time:arguments:nextExecutionTime:] + 2200
13         0x9683e21f -[QCPatch(Private) __execute:arguments:] + 754
14         0x9683deba -[QCPatch(Private) _execute:arguments:] + 1728
15         0x9683e991 -[QCPort _execute:arguments:] + 268
16         0x9683dd6e -[QCPatch(Private) _execute:arguments:] + 1396
17         0x9683e991 -[QCPort _execute:arguments:] + 268
18         0x9683dd6e -[QCPatch(Private) _execute:arguments:] + 1396
19         0x9683e991 -[QCPort _execute:arguments:] + 268
20         0x9685dc3d -[QCMultiplexerImagePort _execute:arguments:] + 130
21         0x9683dd6e -[QCPatch(Private) _execute:arguments:] + 1396
22         0x9683e991 -[QCPort _execute:arguments:] + 268
23         0x9683dd6e -[QCPatch(Private) _execute:arguments:] + 1396
24         0x9683e7ac -[QCPatch(Private) _executeSubpatches:arguments:] + 243
25         0x9683e5e1 -[QCPatch(Customization) nextExecutionTimeForSubpatches:time:arguments:] + 192
26         0x9683e4e9 -[QCPatch(Customization) nextExecutionTime:time:arguments:] + 81
27         0x9683e443 -[QCPatch(Private) _nextExecutionTime:arguments:] + 461
28         0x9683e18f -[QCPatch(Private) __execute:arguments:] + 610
29         0x9683deba -[QCPatch(Private) _execute:arguments:] + 1728
30         0x9683e7ac -[QCPatch(Private) _executeSubpatches:arguments:] + 243
31         0x9683e5e1 -[QCPatch(Customization) nextExecutionTimeForSubpatches:time:arguments:] + 192
32         0x9683e4e9 -[QCPatch(Customization) nextExecutionTime:time:arguments:] + 81
33         0x9683e443 -[QCPatch(Private) _nextExecutionTime:arguments:] + 461
34         0x9683e1d7 -[QCPatch(Private) __execute:arguments:] + 682
35         0x9683deba -[QCPatch(Private) _execute:arguments:] + 1728
36         0x9683c4ba -[QCContext nextExecutionTimeForPatch:time:arguments:] + 643
37         0x9683c231 -[QCGraphicsContext nextExecutionTimeForPatch:time:arguments:] + 73
38         0x9683c00b -[QCOpenGLContext nextExecutionTimeForPatch:time:arguments:] + 528
39         0x9683bde8 -[QCPatch(Runtime) nextExecutionTime:arguments:] + 92
40  ...QuartzComposer.iTunesPlugIn   0x188ead89 iTunesPluginMainMachO + 9304
41  ...QuartzComposer.iTunesPlugIn   0x188eb210 iTunesPluginMainMachO + 10463

I will try to reproduce the CLGL related problem in a simpler composition that does not redistribute Apple's own code, as is personally and privately the case on my machine at present.

First sigill of this year BTW :-) .

openGL 2 CL vertex parser with javascript array data.

dust's picture

first off i want to tell people about my new website this is my personal home blog dynamic dns server that i will be filling with all my quartz composer experiments as well as other cross-modal interactive patches and or related interdisciplinary abstracts.

today i made a openGL2CL writer, or well made a program to parse out the individual structures of vertex, uv and normal data from an openGL mesh header file. This is so I can manually populate vertex data through JavaScript. The problem I am running into is I am unable to do the java equivalent of System.out.println meaning i want to write all my arrays to a file so i can copy and past the correct format into java script. When i try and write a file it seems to only write one index at a time and overwrites the previous line with the new line. so I want to write a file but do /n or carriage return. Is the string file writer the appropriate method for this ?

So I made a patch that is spitting out arrays as well as arrays or structures of the original columns and rows of the vertex data which seems like i could just feed them into javascript to make a structure or pass through as variables. i would like to be able to use the file writer though. Any suggestions.

You can download and view my meshWriter GL2CL structures by the following link.