[Bf-committers] Defaults for RNA array parameters

Tom Edwards contact at steamreview.org
Wed Jul 27 00:03:47 CEST 2011


Everything is working now. :)

On 26/07/2011 5:02, Brecht Van Lommel wrote:
> Hi Tom,
>
> There was an error in the function calling code, fix in svn, hopefully
> it works now.
>
> Brecht.
>
> On Sun, Jul 24, 2011 at 12:02 AM, Tom Edwards<contact at steamreview.org>  wrote:
>> Brecht, I see uninitialised memory whenever I should see the default. It
>> has never worked, and there are no code examples in the whole of Blender
>> to go on.
>>
>> Declaring the array static doesn't help, but I must admit I hadn't
>> thought of it!
>>
>> This is what ends up in rna_texture_gen.c:
>>
>>> static float rna_EnvironmentMap_save_layout_default[12] = {
>>>      0.0f,
>>>      0.0f,
>>>      0.0f,
>>>      1.0f,
>>>      0.0f,
>>>      2.0f,
>>>      1.0f,
>>>      0.0f,
>>>      1.0f,
>>>      1.0f,
>>>      1.0f,
>>>      2.0f
>>> };
>>>
>>> FloatPropertyRNA rna_EnvironmentMap_save_layout = {
>>>      {NULL, (PropertyRNA*)&rna_EnvironmentMap_save_scene,
>>>      -1, "layout", 3, "File layout",
>>>      "Snip",
>>>      0,
>>>      PROP_FLOAT, PROP_NONE|PROP_UNIT_NONE, NULL, 1, {12, 0, 0}, 12,
>>>      NULL, 0, NULL, NULL,
>>>      0, -1, NULL},
>>>      NULL, NULL, NULL, NULL, NULL, 0.0f, 0.0f, -FLT_MAX, FLT_MAX, 1.0f,
>>> 3, 0.0f, rna_EnvironmentMap_save_layout_default
>>> };
>> Which does suggest that I'm doing things right...
>>
>> Here is the entire API:<http://pastebin.com/VZdrDeMs>. There wasn't a
>> texture API at all before I started, if that makes any difference.
>>
>> On 23/07/2011 8:32, Brecht Van Lommel wrote:
>>> Hi Tom,
>>>
>>> It's not clear to me when you saw uninitialized memory, am I right
>>> thinking that the malloc made it work, but didn't look like a good
>>> solution? In other places the array is defined "static" to keep it in
>>> memory, without a malloc.
>>>
>>> Brecht.
>>>
>>> On Fri, Jul 22, 2011 at 3:45 PM, Tom Edwards<contact at steamreview.org>    wrote:
>>>> I can't work out how to provide a default value for an RNA array
>>>> parameter. Ominously, the unit tests don't cover this at all.
>>>>
>>>> The code is:
>>>>
>>>> const int default_layout_size = sizeof(float) * 12;
>>>> const float default_layout_stack[] = { 0,0, 0,1, 0,2, 1,0, 1,1, 1,2 };
>>>>
>>>> float* default_layout_heap = (float*)malloc(default_layout_size);
>>>> memcpy(default_layout_heap,default_layout_stack,default_layout_size);
>>>>
>>>> ...
>>>>
>>>> parm = RNA_def_float_array(func, "layout", 12, default_layout_heap,
>>>> 0.0f, 0.0f, "File layout", "Snip", 0.0f, 0.0f);
>>>>
>>>> There is no problem if a value is provided, but the default appears to
>>>> be uninitialised memory.
>>>> _______________________________________________
>>>> Bf-committers mailing list
>>>> Bf-committers at blender.org
>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>>
>>> _______________________________________________
>>> Bf-committers mailing list
>>> Bf-committers at blender.org
>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
>>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
>


More information about the Bf-committers mailing list