Commit Graph

446 Commits

Author SHA1 Message Date
Campbell Barton
d33b63c5d8 update cmake checker to ignore file list and add some headers to the source list. 2011-06-21 17:00:34 +00:00
Campbell Barton
a50aa13fac py api: make all classes __init__ functions in a readonly state, except for operators.
In bug [#27701], the panels __init__ function (which runs on every draw), was adding new rna properties.
2011-06-21 08:09:42 +00:00
Campbell Barton
82216030e9 py-api: store frequently used strings as unicode PyObject's to avoid creating/distroying every time.
also fix for cmake warning
2011-06-18 08:45:45 +00:00
Campbell Barton
1356082063 fix [#27681] Python: crash assigning a 'set' to an array 2011-06-17 02:22:38 +00:00
Campbell Barton
e44ae2c2a9 disable the readonly state while rna property callbacks run. 2011-06-07 16:08:49 +00:00
Campbell Barton
d46da5a09d mathutils support for color arithmetic, also some minor whitespace edits. 2011-06-02 08:29:16 +00:00
Campbell Barton
11014aa34b access pythons code object directly rather than attribute access. 2011-05-29 11:05:52 +00:00
M.G. Kishalmi
9b5800bcd7 fixed "rather then" -> "rather than" typos all over the place 2011-05-28 13:11:24 +00:00
Campbell Barton
78d41d061b sphinx docstrng formatting (some lines were getting really long) 2011-05-26 19:13:01 +00:00
Campbell Barton
15289c6048 use PyDoc_STRVAR macro, so its possible to build without docstrings. 2011-05-24 16:05:51 +00:00
Brecht Van Lommel
66f51ba5d1 RNA: make mechanism used by operators to keep python instance alive more generic, to be used by render engine later. 2011-05-18 11:21:10 +00:00
Brecht Van Lommel
178ba76b09 RNA: pass Main rather than Context to register/unregister callbacks. 2011-05-18 10:56:26 +00:00
Campbell Barton
ba5d18b41f py/rna debugging option (defaults to off), which quickly exposes errors with RNA functions holding string pointers by making a temp copy of the string and freeing after the function is called. 2011-05-06 03:29:55 +00:00
Campbell Barton
f86565c90e whitespace edits for bpy api, split some really long lines. 2011-04-30 13:58:31 +00:00
Campbell Barton
f9f771cd01 converted more mixed tab/space indentations to tabs. only whitespace changes. 2011-04-21 15:53:30 +00:00
Campbell Barton
6bb626f253 minor changes
- remove some warnings
- fix typos
- cmake allow in-source build (when WITH_IN_SOURCE_BUILD is defined)
- cmake, use an explicit list of rna files (don't glob)
2011-04-21 05:49:47 +00:00
Campbell Barton
70cd0803ab add new subtype PROP_COORDS, for generic coordinates that are not to be changed by units. 2011-04-08 13:32:56 +00:00
Campbell Barton
6b3f5ecd18 change to fcurve keyframe coords broke simplify addon since the property
was no longer wrapped by python as a vector. now fixed size float arrays
with PROP_NONE subtype are wrapped as vectors since its convenient to
have x/y access.
2011-04-08 01:40:54 +00:00
Martin Poirier
371a7b477d Fix register method order. Was broken when Campbell moved it to the C implementation.
register has to be called AFTER the type is registered while unregister has to be called BEFORE it's unregistered.
2011-04-02 14:58:58 +00:00
Campbell Barton
66a1259153 fix for crash when running blender with define WITH_PYTHON_SAFETY & no startup.blend was found.
was calling python function when python was not initialized.
2011-03-31 04:43:26 +00:00
Campbell Barton
bf1e2ce41e color gamma (such as theme colors), were not being wrapped by python as 'mathutils.Color' types 2011-03-28 13:47:39 +00:00
Campbell Barton
587bbc4213 fix [#26616] Line of code make Blender crash 2011-03-27 06:56:37 +00:00
Campbell Barton
f87b37b3ef allow unregistered rna classes to have rna properties assigned before registration.
this is useful for the register() class method which is called before the class gets structRNA assigned.

eg:

class MyClass(bpy.types.PropertyGroup):
    @classmethod
    def register(cls):
        cls.name = StringProperty()  # assigned but registration is delayed.
2011-03-23 12:44:22 +00:00
Campbell Barton
1b80538fea fix [#25688] undocumted functions in pyapi
expose collection function docs.
2011-03-22 04:28:51 +00:00
Campbell Barton
f3686b5885 py/api registration:
move calls to the classes register/unregister function into register_class() / unregister_class() and add docs.

also other minor changes:
- remove face sorting keybinding, was Ctrl+Alt+F, this is quite and obscure feature and face order normally doesn't matter, so access from Face menu is enough.
- add commented out call to mesh.validate() in addon template since its useful to correct incomplete meshes during development.
2011-03-22 01:38:26 +00:00
Campbell Barton
cadc1218c8 C, style changes (mostly white space edits), no functional change. 2011-03-19 11:12:48 +00:00
Campbell Barton
3ac925b7d1 fix own error - missing NULL check [#26523] Crash when load factory settings ( linked to rigify add-on ? ) 2011-03-16 22:25:31 +00:00
Campbell Barton
dc5a78ac25 fix own error [#26522] Api autocomplete return many errors
collections were getting __call__ attribute from the StructRNA, now ignore all starting with '_'
2011-03-16 21:58:45 +00:00
Campbell Barton
f2b1645a75 fix/disallow [#26502] segmentationfault on pressing button to browse existing images for UV window
creating RNA within draw functions can free existing RNA, crashing blender when this is already used in the UI.
disallowing this so it raises a python exception.

This was being used to dynamically generate addon categories so for now they are hard coded and we need proper enum-functions for python to do this.
2011-03-14 23:02:47 +00:00
Campbell Barton
4a747bebf4 fix [#26489] Auto completion in console broken
own mistake in r35492.
2011-03-14 05:39:07 +00:00
Campbell Barton
90d42e114c py/rna: BPy_reports_to_error() now takes the exception type as an argument and returns -1 as an error value 2011-03-12 15:18:08 +00:00
Campbell Barton
c678bd2d7d py/rna, ability to have python static methods in collections. 2011-03-12 14:32:30 +00:00
Campbell Barton
d7257a983f bugfix [#26454] WITH_PYTHON_SAFETY crash. 2011-03-11 02:43:30 +00:00
Nathan Letwory
5b6223fdeb Py_hash_t is new typedef in Python 3.2, typedeffing Py_ssize_t. Changing to that to keep "slow adaptors" happy ;) 2011-03-04 11:08:22 +00:00
Nathan Letwory
292f633698 long hash caused stack corruption in _PySet_NextEntry. This wanted a Py_hash_t, so made hash into such. 2011-03-04 10:37:49 +00:00
Campbell Barton
e197cc95e6 fix crash from own recent changes [#26271] Crash when accessing bpy.data.node_groups 2011-03-03 13:55:15 +00:00
Campbell Barton
b6b77b8426 Py/RNA api:
fix for crash when iterating over a collection which allocates the collection and frees on when finished.

The ability for BPy_StructRNA to hold a reference to other PyObject's was added to support this.
2011-03-03 09:16:06 +00:00
Campbell Barton
3a2ce2be83 Py/RNA api - real collection iterator
Previously the api just converted the collection to a list and got the iterator from the list to return.

This has the advantage that it uses minimal memory on large collections where before it would make an array.

Though the main reason for this change is to support a bugfix for collections which free memory when they are done, this currently crashes the python api since once the list is built, the data is freed which is used by the list items in some cases (dynamic enums for eg).
2011-03-03 07:41:09 +00:00
Campbell Barton
5f5fb5061b formatting edits. (no functional changes) 2011-03-03 05:42:16 +00:00
Campbell Barton
9c45fed287 Change RNA weakref code to use a ghash rather then a PyList, removing items from the list was far too slow. 2011-03-02 18:59:43 +00:00
Campbell Barton
415e8df10e simplify rna internal weakref use. 2011-03-02 16:56:13 +00:00
Campbell Barton
7159bc0b1c minor fixes to weakref validation before making bigger changes 2011-03-02 06:56:21 +00:00
Campbell Barton
e2304a4dbb move anim functions out of bpy_rna.c, its getting too big. 2011-03-02 04:51:43 +00:00
Campbell Barton
623822626a Py/RNA Stability: don't allow python to reference freed ID's and crash.
Second method for not having python crash blender on invalid access (ifdef'd out ATM, so no functional change).

This uses a weakref list per ID, and invalidates all members of that list when the ID is freed.
the list is not stores in the ID pointer but using a hash table since storing python in DNA data is not acceptable.

This is more correct then the previous method but shows down execution of scripts significantly since its always adding and removing from lists when data is created and freed.
2011-03-01 14:53:26 +00:00
Campbell Barton
c9ee017fb5 Py/RNA API test code to prevent crashing blender when python references freed ID's.
This uses pythons GC so its no overhead during runtime but makes removing ID's slower.

Commented definition 'USE_PYRNA_INVALIDATE_GC' for now, so no functional change.
2011-03-01 09:02:54 +00:00
Campbell Barton
7b636c717d bpy/rna support for invalidating objects.
access will raise an error.
2011-02-28 22:56:29 +00:00
Campbell Barton
55268331f6 missed these last commit. 2011-02-28 21:06:09 +00:00
Campbell Barton
7348a50d79 change return values from mathutils callbacks to match pythons (-1 is error), so error macro's can be used in both. 2011-02-28 18:42:41 +00:00
Nathan Letwory
5a760e22fc doxygen: blender/python tagged. 2011-02-27 20:10:08 +00:00
Campbell Barton
cd615f6fcc found moving verts in pythons 2.5 api is approx 10x slower because the multi-dimensional array assignment reads the array 3 times (typecheck, length-check & for-real).
the length check was running sequence checks on every number which would fail, small speedup by avoiding this.

should eventually get this working faster by reading once into an allocated array.
2011-02-24 08:47:58 +00:00