On 23-Oct-09, at 2:57 PM, Christopher Wright wrote:

Another option that I have done in the past with a web -> image plugin, is to alloc a brand new window manually at init, and then have a boolean input port that triggers the window to be made key and ordered front. This allowed me to get around my limitations of the setting info pane not being made available in a QC powered app, and was able to set it and fiddle with it outside of executeAtTime.

Okay. And how does your window get disposed of?

Your Plugin never receives a "-close" or "-finalize" call after the -init" phase of the QCPlugin to tell it it's shutting down.

So is it leaking a window each time it's used?


We've already been over this: - (void) stopExecution: (id<QCPlugInContext>)context; is called when QC is shutting down (at least the context the patch is being used in). Whether or not vade's closing the window is at his own peril, but leaking is not implied nor required.

See his next post about leaking windows because -dealloc is never called.

And I don't care if that's 4 bytes or 4 megabytes. A leak is a leak is a leak and degrades system integrity.

This is _The_ time to release any resources in use by your patch, as the patch can't possibly get reused once this method is called (the graph is getting deallocated, any parameter views are already closed, etc).


That is not the case!

How does the -createViewController method set up the QCPlugInViewController panel to allow users to configure the device? And if the device is open in the startExecution, then the QCPlugInViewController can not open and configure it because it's open already. And if it's opened by the QCPlugInViewController then - startExecution can't access it and it fails.

The device has to be accessible to the QCPlugInViewController, QCPlugInOutputImageProvider and the QCPlugIn for it to work properly.

And as Troy pointed out you can't create inputs from within the Execute part, so inputs are a dead end for the user configuration.

Ever wonder why Apple removed the SGSettings buttons from the panel for setting QuickTime video settings in QC 3 and higher? It's because of this mess.

- (void) stopExecution:(id<QCPlugInContext>)context; is called exactly once (per patch instance), when the patch is going out of commission. - (void) startExecution:(id<QCPlugInContext>)context; is called exactly once (per patch instance), when the patch is added to a particular composition.

And as I have said multiple times, performance will SUCK if you do this and it also has other operational issues too.Such as another patch or driver pulling the device out from under you because you have no exclusivity to it. Not being able to determine which device they want to use, not being able to configure the device - the list goes on and on..

If "this" the only way this is "supposed" to (not) work, well then this is done and explains why no one will bother bringing Video or Audio hardware to Quartz Composer.

Have a great weekend..

Milton J. Aupperle
President
ASC - Aupperle Services and Contracting
Mac Software (Drivers, Components and Application) Specialist
#1106 - 428 Chaparral Ravine View SE.
Calgary Alberta T2X 0N2
1-(403)-453-1624
[email protected]
www.outcastsoft.com




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

This email sent to [email protected]

Reply via email to