Im not sure what bug Troy is discussing (would you care to comment
Troy? - or did I miss it?), but I am passing output values from one
composition serially to other compositions. Id say the best , instant,
no latency and non-networked way would be to make a series of
QCRenderers, and get the value of some output key, and pass it to the
value of some input key. This is essentintially what Troy is saying;
so maybe im being verbose but:
say you have 2 QCRenderers* someRendererA, someRendererB;
//you would do something like (this is psuedo/from memory code)
// this renders the composition, which sets the values for all output
keys
[someRendererA renderAtTime:someTime arguments:someArguments];
// this passes the value published port myOutputKey from renderer A
to the published input port myInputKey for renderer B
[someRendererB setValue:[someRendererA
valueForOutputKey:@"myOutputKey"] forInputKey:@"myInputKey"];
// now render renderer B
[someRendererB renderAtTime:someTime arguments:someArguments];
that *should* be it!
Is this helpful?
I wouldnt bother with a QCView, as it doesnt give you control over the
openGL context, and you can do nice things like enable MSAA in your
pixel format, which gives you REALLY nice and clean results compared
to a QCView. You also have complete control too... I think I have
somewhere some examples of QC platonics rendered with MSAA on and off.
Makes a big difference imo.
On Nov 5, 2008, at 9:03 PM, Troy Koelling wrote:
It should be possible to bind an output port to an input port of
another composition, but there was a bug in KVO last I checked. I
don't know if that got fixed yet or not, but I think the answer is no.
The network stuff will have some inherent latency, even if the
loopback is instant (you would know better than me I guess :) The
network patch is asynchronous so values will not be transmitted
instantly.
There may be other tricks, but I think fastest, most reliable way to
send the values across would be to do it in code. You can subclass
the QCView with your own object and override
renderAtTime:arguments:. At the start of this method, set any inputs
you would like to set, call [super renderAtTime:] and then
setValueForInputKey: the inputs of the second composition with the
values you read of [self valueForOutputKey:]. The entire method
should be quite minimal if you control what the keys/port types are
for both compositions.
Sorry that binding stuff isn't worked out, I'll see if I can get
some action on that bug.
Troy
On Nov 5, 2008, at 5:43 PM, Chris Wood wrote:
Steven,
It's being set in composition 2 (based on mouse input in that
window), and sent to composition 1. I'll also bind it to a text
field for numeric output, but that part isn't an issue. Both
compositions are running in QCViews linked to PatchControllers.
Chris
On 6 Nov 2008, at 01:34, Steven Sokulski wrote:
Chris
Where is the signal you want to work with coming from? Is it
being generated inside the first composition? Or is it being sent
from a control that is bound to the composition?
Steven
On Nov 5, 2008, at 3:53 PM, Chris Wood wrote:
Steven,
I've considered it, but this is for use in a commercial app. It
could be installed literally anywhere, and I really don't want to
rely on any network being available - it introduces too many
unknowns. Otherwise, it'd be the best way by far I think.
Chris
On 5 Nov 2008, at 23:49, Steven Sokulski wrote:
Chris
Your best bet is to either use a combination of Network
Broadcaster and Network Receiver or use the Network
Synchronizer. The Broadcaster / Receiver combo is best when you
need a value to flow from one QCview to another. Synchronizer
works by keeping the value in sync among two or more compositions.
Steven Sokulski
_______________________________________________
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/psonice%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/tkoelling%40apple.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/doktorp%40mac.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]