> I was more looking for a run through tutorial/guide to get me started, having 
> never produced anything with X-Code before, it can be quite daunting. It 
> would also appear that things are done slightly differently when producing a 
> plugin for Quartz rather than a standalone application. Also a good 
> explanation of like time modes, threading etc would be great.

These aren't things that have simple tutorials.  There are Xcode templates to 
create QC plugins, so the "interesting" stuff (setting up bundles, installation 
locations, framework linkings, etc.) is done for you.  Time modes are 
documented here:
http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/QCPlugIn_Class/Introduction/Introduction.html

Specifically:
> Time Modes
> Time modes for custom patches.
> 
> typedef enum {
>    kQCPlugInTimeModeNone = 0,
>    kQCPlugInTimeModeIdle,
>    kQCPlugInTimeModeTimeBase
> } QCPlugInTimeMode;
> Constants
> kQCPlugInTimeModeNone
> No time dependency. The custom patch does not depend on time at all. (It does 
> not use the time parameter of the execute:atTime:withArguments: method.)
> Available in Mac OS X v10.5 and later.
> Declared in QCPlugIn.h.
> kQCPlugInTimeModeIdle
> An idle time dependency. The custom patch does not depend on time but needs 
> the system to execute it periodically. For example if the custom patch 
> connects to a piece of hardware, to ensure that it pulls data from the 
> hardware, you would set the custom patch time dependency to idle time mode. 
> This time mode is typically used with providers.
> Available in Mac OS X v10.5 and later.
> Declared in QCPlugIn.h.
> kQCPlugInTimeModeTimeBase
> A time base dependency. The custom patch does depend on time explicitly and 
> has a time base defined by the system. (It uses the time parameter of the 
> execute:atTime:withArguments: method.)
> Available in Mac OS X v10.5 and later.
> Declared in QCPlugIn.h.
> Declared In
> QCPlugIn.h


Threading is a topic that would take decades to explain, and it'd still be 
wrong.  Threading isn't a topic that has simple answers/abstractions -- you 
absolutely _must_ be able to reason about how things work in order to do it 
correctly.  If you're targeting 10.6 and later, GCD can handle much of the 
complications of threading for you, but there are still cases where you have to 
understand critical sections.  QC Patches generally don't lend themselves to 
threading very well, except in special cases (providers can do it well, but 
others types of patches not so much), so I really encourage you to discuss your 
thoughts, experiments, and questions on the list so that you can have a few 
extra eyes looking things over.  It's difficult to get threading stuff right 
even when you've done it for a really long time.



--
Christopher Wright
christopher_wri...@apple.com



 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list      (Quartzcomposer-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to