Hello.

I have 2 compositions I am loading in 2 QCRenderers, and I am iterating over 
the published input keys and their attributes. Each composition has a published 
port, of type index, with menu items listed in the settings pane. I am building 
a custom interface by checking for the existence of the 
QCPortAttributeMenuItemsKey. One input splitter reports the 
QCPortAttributeMenuItemsKey, the other does not. Looking at a very very simple 
(attached) composition, reveals no reason for the discrepancy in the QC Editor.

However, I was able to reproduce "losing" the QCPortAttributeMenuItemsKey in 
the one published input that worked, via Property List editor: By opening the 
composition, and editing the UserInfo Key (actually, just removing it), of the 
published rootPatch -> publishedInputPorts-> (published item) ->state->userInfo.

That resulted in the one working input (that returned proper 
QCPortAttributeMenuItemsKey) to returning a key with a min and max, and no menu 
items listed.

Attached is two *very simple* compositions which show the issue. 

The first, "Test":

This has an an input key published named "Texture Format", which properly 
returns menu items. It has a second published input key named "test", which in 
the user intefrace has menu items declared, but has no menu items reported 
programmatically. This compostion *was not altered in any way* and was the 
result of editing a QC composition, and noticing that ports behaved differently.

The second composition "Test Copy",

Same as the first, in the editor, both input keys have menu items declared, 
however, neither report any QCPortAttributeMenuItemsKey, and both report a min 
and a max. This feat was accomplished by editing the user info keys of the 
published ports, via Property List editor (as an experiment to try and 
determine if I can fix this myself). My feeling is that somehow the userInfo 
key had a min key added by somehow flipping a input splitter preference or some 
such, but flipping it back did not remove it, resulting in a disparity between 
the user interface, and the reported values. (total speculation...)

I am aware there is a known bug about QCPortAttributeMenuItemsKey, but, this 
*really* inhibits any 3rd party applications from properly loading and 
presenting user custom interfaces by introspecting keys and their attributes, 
especially if the behavior is inconsistent.

Thank you.


Attachment: Test copy.qtz
Description: application/quartzcomposer

Attachment: Test.qtz
Description: application/quartzcomposer


:The result of looking at "Test.qtz" via GDB, attemping to read the input 
attributes of the port values from a loaded QCRenderer.

(gdb) po inputAttributes
{
   QCPortAttributeMaximumValueKey = 5;
   QCPortAttributeMinimumValueKey = 0;
   QCPortAttributeNameKey = Test;
   QCPortAttributeTypeKey = QCPortTypeIndex;
}
(gdb) continue

(gdb) po inputAttributes
{
   QCPortAttributeMaximumValueKey = 14;
   QCPortAttributeMenuItemsKey =     (
       "GL_RGB4",
       "GL_RGB5",
       "GL_RGB8",
       "GL_RGB10",
       "GL_RGB12",
       "GL_RGB16",
       "GL_RGB16F_ARB",
       "GL_RGBA2",
       "GL_RGBA4",
       "GL_RGB5_A1",
       "GL_RGBA8",
       "GL_RGB10_A2",
       "GL_RGBA12",
       "GL_RGBA16",
       "GL_RGBA16F_ARB"
   );
   QCPortAttributeMinimumValueKey = 0;
   QCPortAttributeNameKey = "Texture Format";
   QCPortAttributeTypeKey = QCPortTypeIndex;
}

 _______________________________________________
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