Hi Peter,

The suggested wrapper functions can be added to existing SceneView_KnobI
interface without removing the STL version, my plugin runs fine on Linux
and OSX with getSelectedItems() and getImportedItems() .

I will dump the backtrace when I back to the office tomorrow ( GMT+8 ) and
send the sample code to you asap.

Best,
Shing


On Mon, Dec 17, 2012 at 10:11 PM, Peter Crossley
<[email protected]>wrote:

>  Hi Shing,
>
> The additions to the interface you've detailed seem like a reasonable
> request, however we can't break NDK compatibility until the next major
> release. I would suggest you contact [email protected] directly
> with a feature request for this.
>
> I would also like to get to the bottom of your crashes. There shouldn't be
> any problems calling these functions unless you're mixing crt versions.
>
> Would it be possible for you to send us a code sample that causes the
> crash?
>
> Regards,
>
> Peter.
>
>
> On 17/12/2012 13:12, Chishing Yip wrote:
>
> Hi Tom,
>
>  Thanks a lot for your reply.
> We always make release build on windows, we have developed windows pluginfor 
> two years without any
> STL/compiler version problem in Nuke 6.3, this problem is new to us.
>
>  As I can see SceneView_knob is the only one that has this problem so far
> in our plugins, is adding few wrappers an alternative? e.g. we are using:
> const std::vector< std::string >& SceneView_KnobI::menus() const;
> const std::vector< std::string >& SceneView_KnobI::getItemNames() const;
> void SceneView_KnobI::getImportedItems( std::vector< unsigned int >&
> items ) const;
> void SceneView_KnobI::getSelectedItems( std::vector< unsigned int >&
> items ) const;
>
>  but we could also do the same thing without any STL interface if we
> could have wrappers like these:
>
> unsigned int SceneView_KnobI::numOfMenus() const;
> const char* SceneView_KnobI::getMenuItem( unsigned int menuIndex ) const;
>
> unsigned int SceneView_KnobI::numOfItemNames() const;
> const char* SceneView_KnobI::getItemName( unsigned int itemIndex ) const;
>
> unsigned int SceneView_KnobI::numOfItems() const;
> bool SceneView_KnobI::isImportedItem( unsigned int itemIndex ) const;
> bool SceneView_KnobI::isSelectedItem( unsigned int itemIndex ) const;
>
> in the private implementation in SceneView_KnobI.cpp ( or any private 
> .cppimplementation inside Nuke ):
>
>  unsigned int SceneView_KnobI::numOfMenus() const
> {
> return menu.size();
>  }
> const char* SceneView_KnobI::getMenuItem( unsigned int menuIndex ) const
> {
>  return menu[ menuIndex ].c_str();
>  }
>
> unsigned int SceneView_KnobI::numOfItemNames() const
> {
> return getItemNames.size();
>  }
> const char* SceneView_KnobI::getItemName( unsigned int itemIndex ) const
> {
> return getItemNames[ menuIndex ].c_str();
>  }
>
> unsigned int SceneView_KnobI::numOfItems() const
> {
> return /* the total items scene view knob holds*/ ;
>  }
> bool SceneView_KnobI::isImportedItem( unsigned int itemIndex ) const
> {
> return /*if getImportedItems() contains the input itemIndex or not*/;
>  }
> bool SceneView_KnobI::isSelectedItem( unsigned int itemIndex ) const
> {
> return /*if getSelectedItems() contains the input itemIndex or not*/;
>  }
>
> In this way, we don't need to deal with any STL interface but we could
> construct the item list inside our plugin by ourselves, so there won't be
> any STL compatibility issue between Nuke and any 3rd party plugins, and
> since these are all wrappers I don't think that's difficult to implement.
>
> We understand the API in Nuke 7.0 has been frozen, if above suggestion is
> an acceptable alternative, we could wait until Nuke 7.1 release, what do
> you think?
>
> Thanks again for your reply.
> Best,
> Shing
> --
> Zhicheng YE - Shing
> the /*jupiter jazz*/ group - visual research
> mercenaries of jupiter jazz limited - hong kong
> www.jupiter-jazz.com
>
>
> On Mon, Dec 17, 2012 at 6:58 AM, Tom Ward <[email protected]> wrote:
>
>> Hi Paolo,
>>
>>  The version of VS2010 that Nuke is compiled against is indeed
>> 16.00.30319.01 and as far as I know there have been no breaking CRT
>> changes in 2010 (unlike 2005) so don't think that would be the problem
>>
>>  Are you definitely always linking against the release version of the
>> CRT? As we don't ship the debug versions of DDImage (or Nuke) you need to
>> always build release versions of your plugins for Windows, not doing so
>> usually results in STL problems like you're apparently seeing.
>>
>>  Hope that helps
>>
>>  Tom
>>
>>  On Sun, Dec 16, 2012 at 12:33 PM, Paolo Berto 
>> <[email protected]>wrote:
>>
>>>  Hi Fellaz,
>>>
>>>  we mailed on nuke-dev but got no answers.
>>>
>>>  In a nutshell, we have a plugin which uses SceneView_knob in Nuke 7.0,
>>> it always crashes after accessing SceneView_KnobI::getSelectedItems()
>>> or SceneView_KnobI::getImportedItems(), to us this looks like a STL version
>>> related problem.
>>>
>>>  Our compiler version:
>>>
>>>      > cl.exe
>>>         Microsoft (R) C/C++ Optimizing Compiler Version 16.00.30319.01 for
>>> x64
>>>     > link.exe
>>>         Microsoft (R) Incremental Linker Version 10.00.30319.01 for x64
>>>
>>>  We installed MSVC 2010, without SDK 7.1, without 2010 SP1.
>>>
>>>  How can we setup the correct development environment for Nuke 7.0 ?
>>>  Which compiler ( and /exact/ version ) Nuke 7.0 was compiled against?
>>>
>>>  Best,
>>>
>>>
>>>  --
>>> pbd
>>>
>>> paolo berto durante
>>> space cowboy // jupiter jazz ltd // hong kong
>>> https://atomkraft.hk
>>>   --
>>>
>>>
>>>
>>
>>
>>
>>  --
>> Tom Ward, Software Engineer
>> The Foundry, 6th Floor, The Communications Building,
>> 48 Leicester Square, London, UK, WC2H 7LT
>> Tel: +44 (0)20 7434 0449 <%2B44%20%280%2920%207434%200449>   Web:
>> www.thefoundry.co.uk
>>
>> The Foundry Visionmongers Ltd.
>> Registered in England and Wales No: 4642027
>>
>>
>
>  --
>
>
>
>
>
_______________________________________________
Nuke-dev mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev

Reply via email to