Commit Graph

241 Commits

Author SHA1 Message Date
a462f7880b disallow rna paths resolving to upper case X/Y/Z/X / R/G/B/A, python cant resolve these. 2011-03-30 11:51:06 +00:00
a73c3fe5c9 subsurf, derived mesh and other misc files: floats were being implicitly promoted to doubles, adjust to use floats. 2011-03-27 17:22:04 +00:00
2c04bab116 SpaceImage.curves --> curve for consistency. 2011-03-25 04:37:59 +00:00
a21f46b6d4 new function RNA_warning(), replaces printf with function which may be called via python.
Now this gives the line number of the scripts thats running, eg:

uiItemFullO: unknown operator 'some.operator'
/c/bin/2.56/scripts/startup/bl_ui/space_view3d_toolbar.py:73
2011-03-25 04:36:10 +00:00
b3d70cbcba RNA & interface functions for checking if RNA in a button uses valid rna property (not currently used). 2011-03-24 09:27:41 +00:00
5528781f79 add BLI_assert() type checks for RNA property get/set functions, since there ended up being quite a lot of these in blenders source.
These wont be compiled into release builds, and will only print errors by default (unless WITH_ASSERT_ABORT is enabled at compile time).
2011-03-22 12:56:57 +00:00
709c727c51 replace 0 with NULL when used as a pointer 2011-03-03 17:58:06 +00:00
Nathan Letwory
a47ca06502 doxygen: blender/makesrna tagged. 2011-02-27 20:20:01 +00:00
Nathan Letwory
5b607701a7 doxygen: prevent GPL license block from being parsed as doxygen comment. 2011-02-23 10:52:22 +00:00
4c35d8d5a8 rename IDPropertyGroup to PropertyGroup
also renamed IDProperty to PropertyGroupItem (these are not referenced for common usage and we already have 'Property' defined).
2011-02-16 02:51:56 +00:00
59f1640ae5 warning cleanup.
- fix mistake with grease pencil UI (&& was intended but & used).
- use (void) rather then () across _all_ blenders code.
- a few minor edits, don't shadow stack variables in roll calculation & avoid running memset() for VBO vertex map.
2011-02-13 15:02:21 +00:00
55f68c3657 fix for more warnings.
- modifier code was using sizeof() without knowing the sizeof the array when clearing the modifier type array.
- use BLI_snprintf rather then sprintf where the size of the string is known.
- particle drawing code kept a reference to stack float values (not a problem at the moment but would crash if accessed later).
2011-02-12 16:54:24 +00:00
ad8c79405a Type checks for internal ID-Property UI min/max/tip & use defines to get values from ID-Props.
Probably wouldn't cause a problem but manually editing these types through python could easily crash blender.

also changed cmake, stub-makefile default build dir to be lower case and leave out architecture string, easier for documentation.
Use ../build/linux/ rather then ../build/Linux_i686/
2011-02-07 05:05:41 +00:00
19efa4301a fix crash from report [#25746] Adding keyframes to nested custom properties (IDProperties) of a bone causes segfault
though keyframing still doesn't work, it gives an error instead.
also use const char * in more parts of the py/rna api.
2011-02-01 23:53:54 +00:00
57289044ca improve unregister error check not to loop over parent classes properties (would check the same property multiple times) 2011-01-25 07:31:11 +00:00
c0e74f9dce fix [#25748] Addons register parameters/functions more than once
- values were added to both the classes __dict__ as well as the internal StructRNA.
- made properties available from the type since this is where the python api assigns them:
>>> bpy.types.Scene.frame_start
<bpy_struct, IntProperty("frame_start")>
- rename RNA_struct_type_properties() -> RNA_struct_type_properties(), added RNA_struct_type_find_property()
2011-01-25 06:54:57 +00:00
9d2292ef7e misc maintenance changes
- metaball tessellation functuion was calculating density when it didn't need to.
- image drawing was using a float as a loop counter, in extreme cases this could cause an infinite loop.
- remove/comment unused vars.
2011-01-17 08:31:57 +00:00
144fb8ed1f "Pointer" properties can now be reset to some kind of "default" value
when using the Numpad0 feature to reset properties to their default
values.

While this implementation here is not a full/proper implementation, as
you cannot truly specify a default value for some pointers that may
require something other than NULL (i.e. nothing), this should be good
enough for the vast majority of (editable) cases which are fine if set
to NULL.

This is most noticeable with the Active Keying Set field in the
TimeLine header, where it's now possible to simply use Numpad0 to
clear it instead of using a confusing click+backspace+enter dance to
do the same thing.
2011-01-11 22:32:18 +00:00
293c1422de comment dead code from RNA_pointer_create(), was finding the id pointer type when 'id' was set, but not using it.
also comment a few unused vars.
2011-01-10 03:47:03 +00:00
00b8c9e7ea rename BKE_assert() --> BLI_assert(). 2011-01-09 15:12:08 +00:00
70a828d5a5 remove unused vars, comment some which look like they could be useful still. have makesrna.c omit unused _data definitions for rna funcs with no args. 2011-01-09 01:17:56 +00:00
89c9aaaa25 remove references to BKE_utildefines where its not needed.
- move GS() define into DNA_ID.h
- add BLI_utildefines as an automatic include with makesrna generated files.
2011-01-07 19:18:31 +00:00
8f21a43535 split BKE_utildefines.h, now it only has blender specific defines like GS() MAKE_ID, FILE_MAXDIR, moved the generic defines to BLI_utildefines.h.
no functional changes.
2011-01-07 18:36:47 +00:00
978bc0d8ac fix for py/rna mesh.materials[:] where empty materials exist, would raise a runtime exception.
problem was there was no way to tell the difference between getting an empty item from a collection or the item not being found.
2011-01-05 14:49:08 +00:00
e7ed8a3be0 fix for [#25470] single property driver vars don't update 2011-01-03 11:50:10 +00:00
d7c51aa3eb Bugfix #25437
Crash in Bezier animation (inserting keys on control points in
curve object). The animation rna paths were not fixed after an
editmode session, which got fixed 2 weeks ago, but for all older
binaries the issue can still pop up.

The crash happened because the RNA array-itterator was not doing
a boundary check, even whilst the array size was passed on to the
itterator callbacks. With rna then writing far outside of valid
memory, very bad and unpredictable corruptions happen.

I've added a range check now, and a decent print to denote the
issue. An assert quit is useless, since a tab-tab on curve objects
will fix the channels nicely.

Example of warning print:
Array itterator out of range: Spline_bezier_points_lookup_int (index 30 range 2)
2011-01-01 13:49:22 +00:00
7006491451 bugfix [#24469] Cannot add keyframes on custom properties in IDPropertyGroups 2010-12-21 11:40:12 +00:00
410c807338 Patch from Dan to use id user functions rather then accessing direct. also use warning fix using const for RNA_parameter_set() arg. 2010-12-19 16:34:58 +00:00
f90a2123ee no functional change: only check against OB_RECALC_ALL but don't use for assignment.
Makes adding new flags give ambiguous results and also makes it less easy to tell whats intended.
In some places it looks like OB_RECALC_TIME should be left out too.
2010-12-17 15:51:42 +00:00
7a581f95d0 check if a path can be created to a property before showing keyframe items in menus since they only give an error when accessed. 2010-12-13 11:39:11 +00:00
a4b410af3d Expose access to PROP_ENUM_FLAG from bpy.props.EnumProperty(), this is exposed as a python set(). The default value is also a python set() so multiple booleans can be used in the 1 property.
Also added PROP_ENUM_FLAG support to operator printouts.
2010-12-13 09:10:16 +00:00
2ca6e5dd01 multi-dimensional array resolving for rna paths.
eg, "matrix[3][2]" could be used as a driver.

Test from python
  bpy.context.object.path_resolve("matrix_world[2][3]")

Before this was always treated as a 1 dimensional array.
2010-12-13 02:33:14 +00:00
b110c7c8f2 Dependency graph: changed DAG_id_flush_update to DAG_id_tag_update. Now it
only tags the ID and does the actual flush/update delayed, before the next
redraw. For objects the update was already delayed, just flushing wasn't
yet.

This should help performance in python and animation editors, by making 
calls to RNA property update quicker. Still need to add calls in a few
places where this was previously avoided due to bad performance.
2010-12-05 18:59:23 +00:00
0271ad6322 Give functions that use printf style formatting GCC format attributes so if incorrect formatting is used the compiler will warn of this.
found & fixed 2x incorrect formatting args.
2010-12-04 11:44:56 +00:00
bfe2447f57 partial fix [#23265] matrix_world rna path is visible but returns 0 to drivers without error however accessed
this report raised a number of problems with rna paths, while we still dont have multi-dimensional array access, invalid paths were being accepted which confused things.

rna path resolving code was accepting all sorts of invalid input because atoi() just returns 0 for non numeric input.
now check if 0 number == '0' character.
2010-12-01 10:17:31 +00:00
2ada145fa4 fix for crashes trying to resolve paths "location[]" or "location.." 2010-12-01 09:12:54 +00:00
ab713ee1f4 fix [#24921] Crash after inserting keyframing UV coords and changing frame in edit mode
zero length arrays were still having their members accessible.
2010-11-29 00:18:26 +00:00
16feaf02af remove support for rna resolving paths with collection['name'], only support collection["name"],
added r31826.

This is valid python syntax but I rather be strict with data path format else it becomes harder to parse them if we try to support this.
it means checks like fcurve.data_path.startswith('pose.bones["SomeBone"]') isn't ensured to work, since blender uses "" quotes everywhere for keyframe paths I dont think its an advantage to allow users to do it differently.
2010-11-26 17:25:06 +00:00
620ba31e63 changes in own recent commit broke MSVC building. 2010-11-23 14:38:02 +00:00
ce2295999e use zero initializers instead of memset(), also change PointerRNA_NULL from an extern into a define. 2010-11-23 08:44:21 +00:00
5cf7699abf RNA_property_as_string support for pointer properties, without this macro arguments were just called '<POINTER>' 2010-11-09 05:58:30 +00:00
3367ef8b65 initialize structs to zero rather then using memset(). 2010-10-31 15:39:37 +00:00
29605fc06d Added function RNA_property_update_check() to check if an update call is needed,
Simple python benchmark shows this to be about 3x faster in the case where an update isn't needed.

This also speeds up rna function argument parsing, since each arg in a function call did 2 string lookups on the context which were never needed.
2010-10-25 21:57:45 +00:00
0ed109c550 missing check in recent commit 2010-09-24 10:39:26 +00:00
5c99f3886e fix for python refcounting leak, RNA_path_resolve_full now unsets the index if its not last. 2010-09-24 03:24:15 +00:00
05f8e53d33 bugfix [#23965] Segmentation fault when using bpy_struct.keyframe_insert() with nested custom property 2010-09-24 00:39:01 +00:00
b27d924aac bugfix [#23514] Modifier names containing ']' character cant be animated. 2010-09-22 09:49:35 +00:00
ced3f3ad15 - fix for using ['prop'] in RNA api
- fix for testing without USE_PY_METACLASS defined.
2010-09-09 06:06:37 +00:00
Nathan Letwory
6abf53b574 Apply patch [#23632] Allow single quotes in RNA paths.
By Lukas Tönne

In the console RNA paths can use double quotes (" ") or single quotes (' ') to select from a collection, an
ID property or a vector/color component. The RNA_path_resolve function however only accepts double quotes. This patch
adds the ability to use single quotes in areas other than the console too.

PS. Note the very nice patch ID :)
2010-09-08 08:42:36 +00:00
ddbfb05c84 rna context rename
* context.main & bpy.types.Main --> context.blend_data & bpy.types.BlendData
* context.manager --> context.window_manager
2010-09-02 04:53:05 +00:00