Changing the email subject as to not thread hijack (sorry about that)

Indeed, there are totally times when the custom view apparatus is necessary, and that some combinations of settings may be mutually exclusive, so having the custom view makes total sense. I just try to avoid it as much as possible to keep things as inter-operable as possible. My point to Milton was that his possible catch-22 could be avoided by forgo-ing the Settings view completely and providing input ports for the settings he exposed there, should that be a reasonable approach and not cause confusion or a loss of functionality. Additionally, for preview output, just supply a secondary QCPluginOutputImageProvider output port. This would let app developers provide custom preview controls using his plugin for the DFG or what not device.

Personally, the reason I use Quartz now and not other tools like Max/ MSP/Jitter is mostly for the Quartz Composer Application interface. Its amazingly powerful. The settings UI is one of those weird things that sits on the sideline and can make some options odd.

One work around I've used for things like that antialias option on the Sprite, or the Billboard 'Native Core Image Rendering" checkbox is to simply use a De-multiplexor patch upstream and create two Billboards, one with the option enabled, one without. That works to some extent, but that approach can be unusable for patches with many options.


On Oct 22, 2009, at 9:25 PM, Keith Lang wrote:

Thanks Vade, that helps muchly.

Let’s take a simple example, Sprite, which has one Checkbox in it’s
Settings inspector—antialiased edges. What would be the reasons for
making this un-noodle-able? Is it because this depends on Blending
being set to Over or Add? Or might there be some other
(engine-related) reason why it’s not available simply as an input?

I can understand why this is more complex for patches like Timeline,
which require richer input, that breaks with the current ability to
set input values on input ports (even if no noodle is attached the the
input port.)

Keith



On Fri, Oct 23, 2009 at 11:51 AM, vade <[email protected]> wrote:
Lets say you write a plugin that has a special patch, call it uh, v002 Foo
for arguments sake :)

v002 Foo has some input and output parameters, these are the standard "I can connect them to other things via noodles/patch-coords" in QC input and
output ports. However, if I decide to make the plugin have a Settings
inspector view, ( a custom view like the interpolation patch - you can see this by going to settings / Apple-2 when you have the patch inspector open when viewing the interpolation patch, the special ), controls I make in there are limited to being touched/fiddled with in Quartz Composer Editor
only.

Since controls in the Settings pane have no external input or output
publishable ports, this means you cannot:

a) programatically set them from within Quartz Composer
b) publish them so that an external, Quartz Composer friendly application can use a custom UI to make controls and actually send values to those
params in the view
c) limits settings in that view from being changed outside of Quartz.

This is why I don't personally make plugins that do that (have custom
setting user interfaces), and have all controls publishable as inputs ports so you can use them from 3rd party apps and programatically edit them. This makes them end user friendly so you can control them from QC, and lets the composition or plugin be used in apps that leverage QC much more easily.

Now, my proposed solution to being able to 'get at' these Settings panes that are locked to only being available in Quartz Composer Editor (as far as
I know you cant get at them any other way), is to extend the
QCRenderer/QCPlugin API to allow applications to get an NSView object from the Plugin and draw it in their host app. This alleviates all of the listed limitations from above, so I as an app developer can let you get at and manipulate the custom look up curve in the interpolation patch within my nice, shiny, beautiful Cocoa App and not just have it hidden away in QC.

So, as far as I am aware, there is no public way of getting at those plugin custom controls from a Cocoa App, and since so much of what is lovely about
Quartz Composer is the app integration, thats a real shame.

Maybe thats a bit more clear where I am coming from?

On Oct 22, 2009, at 8:32 PM, Keith Lang wrote:

Vade

Would you be so kind as to extrapolate on what you said… for the
lurking non-programmers like me please?

Being able to get an NSView object from a plugin and being able to
drop it into a nice designed UI would be really cool, especially for
patches
like interpolate and timeline with interesting parameters.).


Are you saying it your suggestion is to allow 3rd party QC interfaces
to replace/augment the current inspector interfaces in patches like
Timeline? That is, to have the very interface elements of the QC
Editor be QC’s themselves?

Keith




On Fri, Oct 23, 2009 at 11:13 AM, vade <[email protected]> wrote:

Just as a developer and an end user, I really frown upon using view
controllers for custom QC patches. The reason is simple as this:

you cannot publish controls exposed in the view controller to the host
app
since they have no outlets or inlets, nor can you publish the view itself
to
the host app*
In short, if your patch has controls, please make them standard input
ports,
so they can be used with 3rd party Quartz friendly apps by other devs.

Just saying :). Why not make your controls parameters?

*(this is actually a pending feature request of mine, and i think would
be
awesome. Being able to get an NSView object from a plugin and being able
to
drop it into a nice designed UI would be really cool, especially for
patches
like interpolate and timeline with interesting parameters.).

On Oct 22, 2009, at 5:31 PM, Milton Aupperle wrote:

So we have a catch 22 situation here. The device doesn't get accessed
from
the -createViewController until the -startExecution method gets called because it hasn't been opened yet and -createViewController is already
allocated by the plugin so it's all set to fail!. And if device is
released
in the -stopExecution call, then it once again can not be accessed at
all in
-createViewController. This is just a very poor user experience - I
expect
Apple to be better than this kludge!


_______________________________________________
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/songcarver%40gmail.com

This email sent to [email protected]




_______________________________________________
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