[Bf-committers] Shader node loses Object connection

Smells Like Donkey contact at smellslikedonkey.com
Thu Jul 20 22:34:11 CEST 2017


Alright Sergey, here’s the patch in the Tangent Animation branch (now a public repo as of 5 minutes ago) that I’m referring to. If you have any insight it would be greatly appreciated.

https://github.com/tangent-animation/blender278/compare/ReactivateCurveTexture <https://github.com/tangent-animation/blender278/compare/ReactivateCurveTexture>

and specifically on line 3088 here for the readfile modification:

https://github.com/tangent-animation/blender278/blob/ReactivateCurveTexture/source/blender/blenloader/intern/readfile.c

Thanks,
Tod.


> On Jul 20, 2017, at 2:17 PM, Smells Like Donkey <contact at smellslikedonkey.com> wrote:
> 
> Hi Sergey,
> 
> I added the code to readfile and it seems to work when saving and reloading the files. It’s only during linking that it’s getting lost.
> 
> Let me see if I can get you a link to the patch. Stay tuned.
> 
> Tod.
> 
> P.S. The code added to readfile
> 
> else if (node->type == SH_NODE_TEX_CURVE) {
> 	NodeTexCurve *ntc = (NodeTexCurve*)node->storage;
> 	ntc->object = newlibadr(fd, ntree->id.lib, ntc->object);
> }
> 
> 
> 
>> On Jul 20, 2017, at 2:10 PM, Sergey Sharybin <sergey.vfx at gmail.com> wrote:
>> 
>> Hi,
>> 
>> Hard to tell without seeing actual patch, but guess is that you didn't add
>> linking code to readfile. You would need to make sure to call newlibadr_us
>> for the new node, so the pointer to Curve is not properly restored on
>> redo/reload.
>> 
>> On Thu, Jul 20, 2017 at 9:58 PM, Smells Like Donkey <
>> contact at smellslikedonkey.com> wrote:
>> 
>>> Hi,
>>> 
>>> I’m hoping someone here can shed some light on how I can fix this linking
>>> issue.
>>> 
>>> We built a new texture node that can project Bezier curves onto a texture.
>>> So it’s a shading node that had a field where you can select a bezier
>>> curve. The RNA code is at the end of this if it’s relevant.
>>> 
>>> It all works and renders fine but there’s a linking issue. If I do these
>>> steps...
>>> 
>>> 1. Create an asset with the shader
>>> 2. Link that asset in (still works), save the file
>>> 3. Reopen (doesn’t work)
>>> 
>>> ...the connection to the Curve doesn’t get set and the node is broken.
>>> Where should I be looking to fix this issue? Any ideas would be appreciated.
>>> 
>>> Thanks,
>>> Tod.
>>> 
>>> 
>>> /**************** Curve Texture ****************/
>>> 
>>> class ShaderNodeTexCurve : public ShaderNode {
>>> public:
>>>       ShaderNodeTexCurve(const PointerRNA &ptr_arg) :
>>>               ShaderNode(ptr_arg)
>>>               {}
>>> 
>>>       inline TexMapping texture_mapping(void);
>>>       inline ColorMapping color_mapping(void);
>>>       inline Object object(void);
>>>       enum curve_type_enum {
>>>               curve_type_LINE = 0,
>>>               curve_type_FILL = 1,
>>>               curve_type_GRAD = 2,
>>>       };
>>>       inline curve_type_enum curve_type(void);
>>>       inline void curve_type(curve_type_enum value);
>>> 
>>>       inline int is_registered_node_type();
>>>       inline NodeInternalSocketTemplate input_template(int index);
>>>       inline NodeInternalSocketTemplate output_template(int index);
>>> };
>>> 
>>> _______________________________________________
>>> Bf-committers mailing list
>>> Bf-committers at blender.org
>>> https://lists.blender.org/mailman/listinfo/bf-committers
>>> 
>> 
>> 
>> 
>> -- 
>> With best regards, Sergey Sharybin
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> https://lists.blender.org/mailman/listinfo/bf-committers
> 
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> https://lists.blender.org/mailman/listinfo/bf-committers



More information about the Bf-committers mailing list