<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/1.5.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
>

<channel>
	<title>fdiv.net</title>
	<link>http://fdiv.net</link>
	<description>the floating point divide</description>
	<pubDate>Wed, 30 Jul 2008 17:51:50 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.2</generator>
	<language>en</language>

		<item>
		<title>Silicon Dioxide (SiO2)</title>
		<link>http://fdiv.net/2008/07/30/silicon-dioxide-sio2/</link>
		<comments>http://fdiv.net/2008/07/30/silicon-dioxide-sio2/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 17:50:33 +0000</pubDate>
		<dc:creator>cwright</dc:creator>
		
	<category>Social Story</category>
	<category>kineme</category>
	<category>Interactive Media</category>
	<category>Quartz Composer</category>
	<category>Apple</category>
	<category>Software Development</category>
	<category>Kosada</category>
		<guid>http://fdiv.net/2008/07/30/silicon-dioxide-sio2/</guid>
		<description><![CDATA[	In the wee small hours of this morning, Kineme Interactive Media released its first commercial product, QuartzCrystal.
	QuartzCrystal is an offline renderer that turns Quartz Compositions into portable QuickTime movies.  It supports 3rd party plugins, as well as patches that do not work in safe-mode-only environments (such as QuickTime Pro).  It also supports software [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://kineme.net/product/QuartzCrystal"><img style="background: none;" align="right" alt="QuartzCrystal Logo" src="http://kineme.net/files/imagecache/product/files/QuartzCrystal-1.0.png" /></a>In the wee small hours of this morning, <a href="http://kineme.net/">Kineme Interactive Media</a> released its first commercial product, <a href="http://kineme.net/product/QuartzCrystal">QuartzCrystal</a>.</p>
	<p>QuartzCrystal is an offline renderer that turns Quartz Compositions into portable QuickTime movies.  It supports 3rd party plugins, as well as patches that do not work in safe-mode-only environments (such as QuickTime Pro).  It also supports software scene antialiasing, so if you have a Mac with plenty of RAM and a hard-core video card, you can make spectacularly beautiful renderings of your plugins, effects, and compositions.</p>
	<p>Beside QuartzCrystal, the only other product that renders and encodes compositions to movies is <a href="http://www.apple.com">Apple</a>&#8217;s own <a href="http://store.apple.com/us/product/D3380Z/A">QuickTime Pro</a>, which doesn&#8217;t support plugins, unsafe patches, or antialiasing.</p>
	<p><a href="http://kineme.net/product/QuartzCrystal"><img style="background: none;" alt="QuartzCrystal Main Window Screenshot" src="http://kineme.net/system/files/QuartzCrystal+Main+Window_1.png" /></a>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2008/07/30/silicon-dioxide-sio2/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Announcing: kineme.net</title>
		<link>http://fdiv.net/2007/07/10/announcing-kinemenet/</link>
		<comments>http://fdiv.net/2007/07/10/announcing-kinemenet/#comments</comments>
		<pubDate>Tue, 10 Jul 2007 22:24:30 +0000</pubDate>
		<dc:creator>cwright</dc:creator>
		
	<category>Social Story</category>
	<category>kineme</category>
	<category>Interactive Media</category>
	<category>Quartz Composer</category>
	<category>Software Development</category>
		<guid>http://fdiv.net/2007/07/10/announcing-kinemenet/</guid>
		<description><![CDATA[	The Kineme Quartz Composer patches now have a proper home at http://kineme.net/, including forums, bug reports, comments, and feature requests &#8212; complete with voting!
	Along with the new site, a few new patches are available as well based on requests from users.

]]></description>
			<content:encoded><![CDATA[	<p><img align="right" src="http://img.b33p.net/pub/0xk3_shbAp63pte73kN2cEqQU7h_WlFM/thumbnail-256" alt="screenshot of kineme.net" />The Kineme Quartz Composer patches now have a proper home at <a href="http://kineme.net/">http://kineme.net/</a>, including forums, bug reports, comments, and feature requests &#8212; complete with voting!</p>
	<p>Along with the new site, a <a href="http://kineme.net/QuartzComposerPatches/ImageDownloaderBlockingPatch">few</a> <a href="http://kineme.net/QuartzComposerPatches/ShellCommandPatch">new</a> <a href="http://kineme.net/QuartzComposerPatches/SpeechSynthesisPatch">patches</a> are available as well based on requests from users.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2007/07/10/announcing-kinemenet/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>How to make Pop-Up Menus in Custom Quartz Composer Patches</title>
		<link>http://fdiv.net/2007/07/05/pop-up-menus-in-custom-quartz-composer-patches/</link>
		<comments>http://fdiv.net/2007/07/05/pop-up-menus-in-custom-quartz-composer-patches/#comments</comments>
		<pubDate>Thu, 05 Jul 2007 18:26:27 +0000</pubDate>
		<dc:creator>smokris</dc:creator>
		
	<category>Quartz Composer</category>
	<category>Apple</category>
	<category>Software Development</category>
		<guid>http://fdiv.net/2007/07/05/pop-up-menus-in-custom-quartz-composer-patches/</guid>
		<description><![CDATA[	Making pop-up menus in custom Quartz Composer patches is actually surprisingly easy.
	 This release is only compatible with Tiger (10.4).Please see kineme.net for Leopard-specific informations.
	1.  Set up a QCIndexPort input.  QCIndexPorts provide values from 0 to whatever max you specify using - (void)setMaxIndexValue:(unsigned int)max;.

	
@interface IndexPortPopUpDemoPatch : QCPatch
{
    QCIndexPort *inputPerson;
}
	
...
	
@end

	2.  [...]]]></description>
			<content:encoded><![CDATA[	<p><img align="right" src="http://img.b33p.net/pub/rdbO8vsyz_OYqrtRiObQF5xTYQzJqYES/png-indexed-64" alt="screenshot of a custom Quartz Composer patch's pop-up menu" />Making pop-up menus in custom Quartz Composer patches is actually surprisingly easy.</p>
	<div class="notice"><img src="/wp-content/themes/alternate0/stop.png" /> This release is only compatible with Tiger (10.4).<br />Please see <a href="http://kineme.net/Leopard">kineme.net</a> for Leopard-specific informations.</div>
	<p>1.  Set up a QCIndexPort input.  QCIndexPorts provide values from 0 to whatever max you specify using <code>- (void)setMaxIndexValue:(unsigned int)max;</code>.<br />
<a id="more-102"></a></p>
	<pre class="code">
@interface IndexPortPopUpDemoPatch : QCPatch
{
    QCIndexPort *inputPerson;
}
	
...
	
@end
</pre>
	<p>2.  Add the &#8220;menu&#8221; key to the port&#8217;s input attributes:</p>
	<pre class="code">
	&lt;key&gt;inputAttributes&lt;/key&gt;
	&lt;dict&gt;
		&lt;key&gt;inputPerson&lt;/key&gt;
		&lt;dict&gt;
			&lt;key&gt;description&lt;/key&gt;
			&lt;string&gt;Person&lt;/string&gt;
			&lt;key&gt;name&lt;/key&gt;
			&lt;string&gt;Person&lt;/string&gt;
			&lt;key&gt;menu&lt;/key&gt;
			&lt;array&gt;
				&lt;string&gt;Arthur Dent&lt;/string&gt;
				&lt;string&gt;Ford Prefect&lt;/string&gt;
				&lt;string&gt;Zaphod Beeblebrox&lt;/string&gt;
				&lt;string&gt;Marvin&lt;/string&gt;
				&lt;string&gt;Trillian&lt;/string&gt;
				&lt;string&gt;Slartibartfast&lt;/string&gt;
				&lt;string&gt;Agrajag&lt;/string&gt;
				&lt;string&gt;Wonko the Sane&lt;/string&gt;
			&lt;/array&gt;
		&lt;/dict&gt;
	&lt;/dict&gt;
</pre>
	<p>3.  Make sure you set the max index value in the <code>initWithIdentifier</code> function:</p>
	<pre class="code">
- (id)initWithIdentifier:(id)fp8
{
        id z=[super initWithIdentifier:fp8];
	
        [inputPerson setMaxIndexValue:7];
	
        return z;
}
</pre>
	<p>4.  Read the value out of the QCIndexPort using <code>- (unsigned int)indexValue;</code>.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2007/07/05/pop-up-menus-in-custom-quartz-composer-patches/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>New Custom Quartz Composer Patch Xcode Template</title>
		<link>http://fdiv.net/2007/06/29/new-custom-quartz-composer-patch-xcode-template/</link>
		<comments>http://fdiv.net/2007/06/29/new-custom-quartz-composer-patch-xcode-template/#comments</comments>
		<pubDate>Fri, 29 Jun 2007 22:02:23 +0000</pubDate>
		<dc:creator>smokris</dc:creator>
		
	<category>Quartz Composer</category>
	<category>Apple</category>
	<category>Software Development</category>
		<guid>http://fdiv.net/2007/06/29/new-custom-quartz-composer-patch-xcode-template/</guid>
		<description><![CDATA[	Here&#8217;s a new version of the Xcode Template for Custom Quartz Composer Patches.
	Changes:
	
	Rebuilt from scratch &#8212; no longer depends on QCJP&#8217;s work &#8212; and, by extension, the Creative Commons &#8220;Attribution-NonCommercial-ShareAlike&#8221; license.  My Xcode Template, as of version 0.2, is released into the Public Domain.  You are free to use it for whatever &#8212; [...]]]></description>
			<content:encoded><![CDATA[	<p><img src="http://img.b33p.net/pub/WTRlYLwZRYymJDeKzyAod4p0-XrkDWhG/png-indexed-64" align="right" alt="Create a new Xcode project with this template" />Here&#8217;s a new version of the Xcode Template for Custom Quartz Composer Patches.</p>
	<p>Changes:</p>
	<ul>
	<li>Rebuilt from scratch &#8212; no longer depends on QCJP&#8217;s work &#8212; and, by extension, the Creative Commons &#8220;Attribution-NonCommercial-ShareAlike&#8221; license.  My Xcode Template, as of version 0.2, is released into the Public Domain.  You are free to use it for whatever &#8212; commercial or non-commercial.</li>
	<li>QCJP&#8217;s headers were replaced with headers assembled directly from the QuartzComposer framework &#8212; now located in the QuartzComposer/ folder of the project.  I&#8217;ve exported a few more headers than QCJP had constructed, so there&#8217;s some added functionality (namely, image input/output ports).</li>
	<li>The project now automatically assigns an icon to the patch bundle, and installs it in /Library/Graphics/Patches/ for you each time you build, for faster edit-build-test workflow.</li>
	</ul>
	<div class="notice"><img src="/wp-content/themes/alternate0/stop.png" /> This release is out-of-date.<br />Please see the <a href="http://kineme.net/XcodeTemplateForCustomQuartzComposerPatches">latest version</a>.</div>
	<p><strong><a href="http://softpixel.com/~smokris/widgets/quartzComposer/XcodeTemplateForCustomQuartzComposerPatches-0.2.pkg.zip">Download the installer, version 0.2</a>.</strong></p>
	<p>See the <a href="http://fdiv.net/2007/05/08/xcode-template-for-custom-quartz-composer-patches/">old version&#8217;s blogpost</a> for some additional instructions and user comments.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2007/06/29/new-custom-quartz-composer-patch-xcode-template/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Monstrous P5 Glove Patch for Quartz Composer</title>
		<link>http://fdiv.net/2007/05/20/monstrous-p5-glove-patch-for-quartz-composer/</link>
		<comments>http://fdiv.net/2007/05/20/monstrous-p5-glove-patch-for-quartz-composer/#comments</comments>
		<pubDate>Sun, 20 May 2007 17:08:55 +0000</pubDate>
		<dc:creator>smokris</dc:creator>
		
	<category>Interactive Media</category>
	<category>Quartz Composer</category>
	<category>Apple</category>
		<guid>http://fdiv.net/2007/05/20/monstrous-p5-glove-patch-for-quartz-composer/</guid>
		<description><![CDATA[	A few weeks ago I stumbled upon a P5 Glove listed on eBay for $20.  It arrived a couple of days later, and I started playing with libp5glove by Jason McMullan, Tim Kreger, and Ross Bencina.  I built a very simple Quartz Composer patch around it.
	&#160;
	
	 This release is only compatible with Tiger [...]]]></description>
			<content:encoded><![CDATA[	<p><img align="right" src="http://img.b33p.net/pub/cYRKyLGDq9ybiOyArOVokg0Mu7_96VPj/thumbnail-256" alt="Steve's gloved hand in front of the P5 Glove Quartz Composer Patch" />A few weeks ago I stumbled upon a P5 Glove listed on eBay for $20.  It arrived a couple of days later, and I started playing with <a href="http://www.simulus.org/p5glove/">libp5glove</a> by Jason McMullan, Tim Kreger, and Ross Bencina.  I built a very simple Quartz Composer patch around it.</p>
	<p>&nbsp;</p>
	<p><a id="more-92"></a></p>
	<div class="notice"><img src="/wp-content/themes/alternate0/stop.png" /> This release is only compatible with Tiger (10.4).<br />Please see <a href="http://kineme.net/">kineme.net</a> for Leopard-compatible patches.</div>
	<p><a href="http://softpixel.com/~smokris/widgets/quartzComposer/P5GlovePatch-0.1.zip"><strong>Get version 0.1 here</strong></a>.</p>
	<p>Notes:</p>
	<ul>
	<li>This depends on Tim Kreger&#8217;s OS X kernel extension &#8212; part of <a href="http://www.simulus.org/p5glove/p5OSX(u)_20061204.zip">P5osc</a>.  Install and enable the driver first.</li>
	<li>Make sure you&#8217;ve plugged the glove in before attempting to render the patch &#8212; there&#8217;s currently no way for it to detect the plugging/unplugging of the glove.</li>
	<li>Only a single glove at a time is supported.</li>
	</ul>
	<p><img src="http://img.b33p.net/pub/hVWjc2scgkIX6OeiwQm3rSLHSFSKOg50/png-indexed-64" alt="The P5 Glove Quartz Composer Patch" />
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2007/05/20/monstrous-p5-glove-patch-for-quartz-composer/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Phidgets Patches for Quartz Composer</title>
		<link>http://fdiv.net/2007/05/16/phidgets-patches-for-quartz-composer/</link>
		<comments>http://fdiv.net/2007/05/16/phidgets-patches-for-quartz-composer/#comments</comments>
		<pubDate>Thu, 17 May 2007 03:18:51 +0000</pubDate>
		<dc:creator>smokris</dc:creator>
		
	<category>Interactive Media</category>
	<category>Quartz Composer</category>
	<category>Apple</category>
		<guid>http://fdiv.net/2007/05/16/phidgets-patches-for-quartz-composer/</guid>
		<description><![CDATA[	I made a pair of patches to allow Quartz Composer to directly interact with the Phidget InterfaceKit 0/0/4 (relay outputs) and 8/8/8 (digital inputs + analog inputs + digital outputs).
	&#160;
	&#160;
	
	 This release is only compatible with Tiger (10.4).Please see kineme.net for Leopard-compatible patches.
	Get version 0.1 here.
	Notes:
	
	These require the Phidget21 drivers to be installed.
	Device Labels are [...]]]></description>
			<content:encoded><![CDATA[	<p><img align="right" src="http://img.b33p.net/pub/Qbn6ehiZIyW8X6KNf1__y01JxF0Co32v/png-indexed-64" alt="Phidgets InterfaceKit 0/0/4 Patch" />I made a pair of patches to allow Quartz Composer to directly interact with the Phidget InterfaceKit <a href="http://phidgets.com/index.php?module=pncommerce&#038;func=itemview&#038;IID=12">0/0/4</a> (relay outputs) and <a href="http://phidgets.com/index.php?module=pncommerce&#038;func=itemview&#038;IID=85">8/8/8</a> (digital inputs + analog inputs + digital outputs).</p>
	<p>&nbsp;</p>
	<p>&nbsp;</p>
	<p><a id="more-90"></a></p>
	<div class="notice"><img src="/wp-content/themes/alternate0/stop.png" /> This release is only compatible with Tiger (10.4).<br />Please see <a href="http://kineme.net/">kineme.net</a> for Leopard-compatible patches.</div>
	<p><a href="http://softpixel.com/~smokris/widgets/quartzComposer/PhidgetPatches-0.1.zip"><strong>Get version 0.1 here</strong></a>.</p>
	<p><img align="right" src="http://img.b33p.net/pub/AeQJILaaGpvRjhkGUjjOWC3IM0diF9G7/png-indexed-64" alt="Phidgets InterfaceKit 8/8/8 Patch" />Notes:</p>
	<ul>
	<li>These require the <a href="http://phidgets.com/modules.php?op=modload&#038;name=Downloads&#038;file=index&#038;req=viewdownload&#038;cid=3">Phidget21</a> drivers to be installed.</li>
	<li>Device Labels are specified using POSIX <a href="http://en.wikipedia.org/wiki/Regular_expression">Regular Expressions</a>.</li>
	<li>Due to <a href="http://phidgets.com/index.php?name=PNphpBB2&#038;file=viewtopic&#038;p=6087">a bug in the Phidget21 driver</a>, I can&#8217;t manually fetch a list of interfaces, and so need to rely on notifications..  So if you change the Device Label regex, you&#8217;ll need to unplug-and-replug the Phidget for it to be recognized.</li>
	<li>Both patches are pink &#8220;Renderer&#8221; patches because they provide output from Quartz Composer &#8212; they are &#8220;sinks&#8221; in <a href="http://en.wikipedia.org/wiki/Graph_theory">graph theory</a>.  Given QC&#8217;s graph evaluation model, I haven&#8217;t yet found a way to make these patches reliably output data unless they&#8217;re (improperly) marked as &#8220;Renderer&#8221;s.</li>
	<li>Both patches should support multiple InterfaceKits of the same or differing types &#8212; as long as you specify non-overlapping Device Labels for each.  I haven&#8217;t been able to test this yet &#8212; my second InterfaceKit 8/8/8 should arrive later this week.</li>
	</ul>
	<p>Here&#8217;s a little test setup, using a distance sensor connected to one of the InterfaceKit 8/8/8&#8217;s analog inputs, which &#8212; via Quartz Composer &#8212; controls a relay output on the InterfaceKit 0/0/4.  <a href="http://re-cursive.com/">Beth</a> and <a href="http://rbtvance.com/">Robert</a> built the 0/0/4 into a box of 120VAC receptacles, into which I&#8217;ve plugged a light.</p>
	<p>Far from distance sensor = Relay off<br />
<img src="http://img.b33p.net/pub/H-4C8b67wxBHDf614zwMegW7itMg1IkO/thumbnail-448" alt="Far from distance sensor = Relay off" /></p>
	<p>Close to distance sensor = Relay on<br />
<img src="http://img.b33p.net/pub/jIkImen_mm43wKZUXXD2uTyDOvk24cCy/thumbnail-448" alt="Close to distance sensor = Relay on" /></p>
	<p>Piece of cake.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2007/05/16/phidgets-patches-for-quartz-composer/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Apple Remote Patch for Quartz Composer</title>
		<link>http://fdiv.net/2007/05/16/apple-remote-patch-for-quartz-composer/</link>
		<comments>http://fdiv.net/2007/05/16/apple-remote-patch-for-quartz-composer/#comments</comments>
		<pubDate>Wed, 16 May 2007 22:51:28 +0000</pubDate>
		<dc:creator>smokris</dc:creator>
		
	<category>Interactive Media</category>
	<category>Quartz Composer</category>
	<category>Apple</category>
		<guid>http://fdiv.net/2007/05/16/apple-remote-patch-for-quartz-composer/</guid>
		<description><![CDATA[	
	I took Martin Kahr&#8217;s Apple Remote Controller Wrapper Class and built a Quartz Composer patch around it.
	 This release is only compatible with Tiger (10.4).Leopard (10.5) includes a built-in Apple Remote patch.Please see also kineme.net for Leopard-compatible patches.
	Get version 0.1 here.
	Some notes:
	
	The events received from the Apple Remote are fairly strange to begin with..  [...]]]></description>
			<content:encoded><![CDATA[	<p><img align="right" src="http://img.b33p.net/pub/hXnu3c_5QiRUT1ZsR_SYCK05u4t1Jw81/thumbnail-256" alt="Apple Remote and Apple Remote patch" /></p>
	<p>I took Martin Kahr&#8217;s <a href="http://www.martinkahr.com/source-code/">Apple Remote Controller Wrapper Class</a> and built a Quartz Composer patch around it.</p>
	<div class="notice"><img src="/wp-content/themes/alternate0/stop.png" /> This release is only compatible with Tiger (10.4).<br />Leopard (10.5) includes a built-in Apple Remote patch.<br />Please see also <a href="http://kineme.net/">kineme.net</a> for Leopard-compatible patches.</div>
	<p><a href="http://softpixel.com/~smokris/widgets/quartzComposer/AppleRemotePatch-0.1.zip"><strong>Get version 0.1 here</strong></a>.</p>
	<p>Some notes:</p>
	<ul>
	<li>The events received from the Apple Remote are fairly strange to begin with..  You don&#8217;t simply get &#8220;key down&#8221; / &#8220;key up&#8221; events as I would have assumed, but instead get cooked events &#8212; for many of the buttons, holding the button down generates a different event than tapping it.</li>
	<li>My patch queues events, to ensure that each keypress is visible for at least one frame.</li>
	</ul>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2007/05/16/apple-remote-patch-for-quartz-composer/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Advanced custom Quartz Composer patch development documentation</title>
		<link>http://fdiv.net/2007/05/13/advanced-custom-quartz-composer-patch-development-documentation/</link>
		<comments>http://fdiv.net/2007/05/13/advanced-custom-quartz-composer-patch-development-documentation/#comments</comments>
		<pubDate>Sun, 13 May 2007 17:03:58 +0000</pubDate>
		<dc:creator>smokris</dc:creator>
		
	<category>Interactive Media</category>
	<category>Quartz Composer</category>
	<category>Apple</category>
	<category>Software Development</category>
		<guid>http://fdiv.net/2007/05/13/advanced-custom-quartz-composer-patch-development-documentation/</guid>
		<description><![CDATA[	In addition to writing the inspector panels for custom Quartz Composer patches tutorial, I spent this weekend writing up some advanced custom-patch-development documentation and posted it on QC Wiki:
	
	QCPatch Configuration
	QCPatch Events
	QCPatch Methods
	
]]></description>
			<content:encoded><![CDATA[	<p>In addition to writing the <a href="http://fdiv.net/2007/05/13/how-to-make-inspector-panels-for-custom-quartz-composer-patches/">inspector panels for custom Quartz Composer patches tutorial</a>, I spent this weekend writing up some advanced custom-patch-development documentation and posted it on QC Wiki:</p>
	<ul>
	<li><a href="http://www.quartzcompositions.com/phpBB2/mediawiki/index.php/QCPatch_Configuration">QCPatch Configuration</a></li>
	<li><a href="http://www.quartzcompositions.com/phpBB2/mediawiki/index.php/QCPatch_Events">QCPatch Events</a></li>
	<li><a href="http://www.quartzcompositions.com/phpBB2/mediawiki/index.php/QCPatch_Methods">QCPatch Methods</a></li>
	</ul>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2007/05/13/advanced-custom-quartz-composer-patch-development-documentation/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>How to make inspector panels for custom Quartz Composer patches</title>
		<link>http://fdiv.net/2007/05/13/how-to-make-inspector-panels-for-custom-quartz-composer-patches/</link>
		<comments>http://fdiv.net/2007/05/13/how-to-make-inspector-panels-for-custom-quartz-composer-patches/#comments</comments>
		<pubDate>Sun, 13 May 2007 16:52:17 +0000</pubDate>
		<dc:creator>smokris</dc:creator>
		
	<category>Interactive Media</category>
	<category>Quartz Composer</category>
	<category>Apple</category>
	<category>Software Development</category>
		<guid>http://fdiv.net/2007/05/13/how-to-make-inspector-panels-for-custom-quartz-composer-patches/</guid>
		<description><![CDATA[	
&#8230;in thirteen easy steps or your money back.
	 This release is only compatible with Tiger (10.4).Please see kineme.net for Leopard-specific informations.
	&#160;
	&#160;
	&#160;
	
	
	
	Start up Interface Builder:
	

	
	Make a new NIB, with a &#8220;Cocoa / Empty&#8221; starting point:
	

	
	Make a subclass of NSObject called QCInspector.  Then make a subclass of QCInspector with the class name of your patch, followed [...]]]></description>
			<content:encoded><![CDATA[	<p><img align="right" src="http://img.b33p.net/pub/BkjtipGDJ1aASf1CNhftutdiQ5doaxL5/png-indexed-64" width="256" height="248" /><br />
&#8230;in thirteen easy steps or your money back.</p>
	<div class="notice"><img src="/wp-content/themes/alternate0/stop.png" /> This release is only compatible with Tiger (10.4).<br />Please see <a href="http://kineme.net/Leopard">kineme.net</a> for Leopard-specific informations.</div>
	<p>&nbsp;</p>
	<p>&nbsp;</p>
	<p>&nbsp;</p>
	<p><a id="more-86"></a></p>
	<ol>
	<li>
	Start up Interface Builder:<br />
	<img src="http://img.b33p.net/pub/7a__sgwFQHfj6jpEKLBgEIIbgiy8wc_Y/png-indexed-64" width="160" height="87" />
</li>
	<li>
	Make a new NIB, with a &#8220;Cocoa / Empty&#8221; starting point:<br />
	<img src="http://img.b33p.net/pub/9Rf0DX5A8CbD8zgfD6mpaM7uXg9Sbclv/png-indexed-64" width="361" height="334" />
</li>
	<li>
	Make a subclass of <code>NSObject</code> called <code>QCInspector</code>.  Then make a subclass of <code>QCInspector</code> with the class name of your patch, followed by &#8220;UI&#8221;.  <code>P5GloveUI</code> in this case:<br />
	<img src="http://img.b33p.net/pub/5jMA2TvC_sVhtQtMsv3r7lN3hSaInoRJ/png-indexed-64" width="484" height="324" />
</li>
	<li>
	Drag a &#8220;CustomView&#8221; into the project:<br />
	<img src="http://img.b33p.net/pub/8ofhgM3fHcAhdbdtv-HSzXfJ6orN3CrD/png-indexed-64" width="344" height="273" />
</li>
	<li>
	Select &#8220;File&#8217;s Owner&#8221; and set its &#8220;Custom Class&#8221; to the UI subclass you created above (<code>P5GloveUI</code> in this case):<br />
	<img src="http://img.b33p.net/pub/UGZ-PXpWBELf_uG1L5OvzxCbAYJhw1vp/png-indexed-64" width="483" height="329" /><img src="http://img.b33p.net/pub/ubW9Avnwu9Xs3W_PAvu5BG3rIuBQpImW/png-indexed-64" width="296" height="477" />
</li>
	<li>
	Control-drag from &#8220;File&#8217;s Owner&#8221; to &#8220;View&#8221;, then &#8220;Connect&#8221; the view to the UI subclass&#8217;s &#8220;view&#8221; outlet:<br />
	<img src="http://img.b33p.net/pub/aHMVAytjLuJWQU1_r5YSlCeZjoABXRju/png-indexed-64" width="478" height="322" /><img src="http://img.b33p.net/pub/jEL9NsPQ0C1hwidyl5Pr56XcpJs3YmmA/png-indexed-64" width="295" height="477" />
</li>
	<li>
	Throw a few controls onto the View if you&#8217;d like:<br />
	<img src="http://img.b33p.net/pub/OflDuAmrCVgN2q0NzwnmQs0z0prf35yL/png-indexed-64" width="262" height="280" />
</li>
	<li>
	Save the NIB in your patch&#8217;s English.lproj folder, and add it to the project:<br />
	<img src="http://img.b33p.net/pub/zb8W0EwrFc9g0Q1mXWZqKF5S80oZJ369/png-indexed-64" width="547" height="474" /><img src="http://img.b33p.net/pub/JdtORbaFVy-03G-_bUvdcJZKEcCLpTaH/png-indexed-64" width="480" height="322" />
</li>
	<li>
	Add the QCInspector interface to your patch&#8217;s <code>qcplugin.h</code>:</p>
	<pre class="code">
@interface QCInspector : NSObject
{
	NSView *view;
	QCPatch *_patch;
	void *_unused2[4];
}
+ (id)viewNibName;
+ (id)viewTitle;
- (id)init;
- (void)didLoadNib;
- (id)patch;
- (void)setupViewForPatch:(id)fp8;
- (void)resetView;
- (id)view;
@end
</pre>
	</li>
	<li>
	Add <code>inspectorClassWithIdentifier</code> to your patch&#8217;s interface:</p>
	<p>P5Glove.h:</p>
	<pre class="code">
@interface P5Glove : QCPatch
	
...
	
+ (Class)inspectorClassWithIdentifier:(id)fp8;
@end
</pre>
	</li>
	<li>
	Implement <code>inspectorClassWithIdentifier</code>:</p>
	<p>P5Glove.m:</p>
	<pre class="code">
@implementation P5Glove : QCPatch
	
...
	
+ (Class)inspectorClassWithIdentifier:(id)fp8
{
	return [P5GloveUI class];
}
@end
</pre>
	</li>
	<li>
	Add the <code>P5GloveUI</code> class interface and implementation to your patch&#8217;s project:</p>
	<p>P5GloveUI.h:</p>
	<pre class="code">
@interface P5GloveUI : QCInspector
+ (id)viewNibName;	// IMP=0x97b89415
@end
</pre>
	<p>P5GloveUI.m:</p>
	<pre class="code">
@implementation P5GloveUI : QCInspector
+ (id)viewNibName
{
	return @\"P5GloveUI\";
}
</pre>
	</li>
	<li>
	Build and launch Quartz Composer.  You&#8217;ve got an inspector:<br />
	<img src="http://img.b33p.net/pub/PTW6DeGmY-s8U79pDrJpE4Em2obYuzo1/png-indexed-64" width="417" height="514" />
</li>
	<li>
	Enjoy.
</li>
	</ol>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2007/05/13/how-to-make-inspector-panels-for-custom-quartz-composer-patches/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Xcode Template for Custom Quartz Composer Patches</title>
		<link>http://fdiv.net/2007/05/08/xcode-template-for-custom-quartz-composer-patches/</link>
		<comments>http://fdiv.net/2007/05/08/xcode-template-for-custom-quartz-composer-patches/#comments</comments>
		<pubDate>Tue, 08 May 2007 19:35:35 +0000</pubDate>
		<dc:creator>smokris</dc:creator>
		
	<category>Quartz Composer</category>
	<category>Apple</category>
	<category>Software Development</category>
		<guid>http://fdiv.net/2007/05/08/xcode-template-for-custom-quartz-composer-patches/</guid>
		<description><![CDATA[	Okay, so, now that the Game Research and Immersive Design Lab&#8217;s infamous first-responder project is finished, I&#8217;m getting back to work on Quartz Composer hackery.
	Frustrated with the tedium of going through all the Xcode project files in a text editor and manually replacing all of the identifiers and filenames when creating a new Quartz Composer [...]]]></description>
			<content:encoded><![CDATA[	<p><img src="http://img.b33p.net/pub/WTRlYLwZRYymJDeKzyAod4p0-XrkDWhG/png-indexed-64" align="right" alt="Create a new Xcode project with this template" />Okay, so, now that the <a href="https://gridlab.ohio.edu/">Game Research and Immersive Design Lab</a>&#8217;s infamous <a href="http://www.toledoblade.com/apps/pbcs.dll/article?AID=/20061107/NEWS21/61107016">first-responder</a> <a href="http://ohio.edu/outlook/06-07/May/594n-067.cfm">project</a> is <a href="http://www.osc.edu/press/releases/2007/atsummit.shtml">finished</a>, I&#8217;m getting back to work on Quartz Composer hackery.</p>
	<p>Frustrated with the tedium of going through all the Xcode project files in a text editor and manually replacing all of the identifiers and filenames when creating a new Quartz Composer Patch, I decided to finally figure out how to create a new Xcode template.  <a id="more-83"></a>  It&#8217;s pretty straightforward, actually, given <a href="http://briksoftware.com/blog/?p=28">Karsten Kusche&#8217;s instructions</a>.</p>
	<p>I started with <a href="http://quartzcomposer.jp/article/16648245.html">QCJP&#8217;s Custom Patch</a> code, made it a little more generic, and substituted macros for all the specific names.</p>
	<div class="notice"><img src="/wp-content/themes/alternate0/stop.png" /> This release is out-of-date.<br />Please see the <a href="http://kineme.net/XcodeTemplateForCustomQuartzComposerPatches">latest version</a>.</div>
	<p><strong><a href="http://softpixel.com/~smokris/widgets/quartzComposer/XcodeTemplateForCustomQuartzComposerPatches-0.1.pkg.zip">Download the installer</a>.</strong></p>
	<p>To make a Quartz Composer Patch, now all you need to do is:</p>
	<ol>
	<li>Create a new Xcode project with this template</li>
	<li>Give the project a name<br />
		<img src="http://img.b33p.net/pub/aw9F9iyyJmX6vrUgILzMEPo6LhDXvQzb/png-indexed-64" alt="Give the project a name" />
	</li>
	<li>Build the project<br />
		<img src="http://img.b33p.net/pub/Ga8RVYsSwETJ6Vpf5dqMgewqCvXNsX_8/png-indexed-64" alt="Build the project" />
	</li>
	<li>Move the <code>.plugin</code> file into <code>/Library/Graphics/Patches/</code></li>
	<li>Launch Quartz Composer<br />
		<img src="http://img.b33p.net/pub/d6CP_OOPUdmaRXdKCRwL9u8uzUFlSazy/png-indexed-64" alt="Launch Quartz Composer" />
	</li>
	</ol>
	<p>And, of course, modify the code, if you want to do something other than draw a triangle.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2007/05/08/xcode-template-for-custom-quartz-composer-patches/feed/</wfw:commentRSS>
	</item>
	</channel>
</rss>
