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.
Test copy.qtz
Description: application/quartzcomposer
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