[Bf-committers] Shader node loses Object connection
Smells Like Donkey
contact at smellslikedonkey.com
Thu Jul 20 22:17:31 CEST 2017
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
More information about the Bf-committers
mailing list