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]