Commit Graph

3129 Commits

Author SHA1 Message Date
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
415e8df10e simplify rna internal weakref use. 2011-03-02 16:56:13 +00:00
0abffe22c2 align weakref list for rna (properties were using wrong pointer) 2011-03-02 16:22:04 +00:00
7159bc0b1c minor fixes to weakref validation before making bigger changes 2011-03-02 06:56:21 +00:00
54b654c18f fixed compile problem intruduced in r35295
one import was missing, another one used twice.
2011-03-02 06:47:08 +00:00
58eb5ffc28 SVN maintenance. 2011-03-02 05:06:43 +00:00
e2304a4dbb move anim functions out of bpy_rna.c, its getting too big. 2011-03-02 04:51:43 +00:00
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
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
7b636c717d bpy/rna support for invalidating objects.
access will raise an error.
2011-02-28 22:56:29 +00:00
55268331f6 missed these last commit. 2011-02-28 21:06:09 +00:00
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
2e5eb41522 pedantic warning cleanup, also remove texspace_edit() since its been added using a different method. 2011-02-27 08:31:10 +00:00
61235fcc8a fix for 'live edit', running python scripts as you type
- errors would jump to the line which gets in the way.
- the window wouldn't always redraw.
2011-02-26 15:30:38 +00:00
457aba9d1b fix [#26227] "Sequence must have 2 items total, not -2" 2011-02-26 12:26:01 +00:00
18c7354bd2 remove warning left in by mistake and comment unused function. 2011-02-25 02:27:54 +00:00
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
31c7d694e0 remove 2 unnecessary checks for array type before assignment. 2011-02-24 07:25:47 +00:00
fbd9364944 revert part of own commit r35117 which modified mathutils initialization functions, found this could be done in a better way which doesnt have to deal with partly initialize instances being freed. 2011-02-24 05:46:57 +00:00
b1639dc118 support pythons cyclic garbage collector for mathutils types. 2011-02-24 04:58:51 +00:00
Nathan Letwory
9aa9ade42a doxygen: some more license block fixes. 2011-02-23 23:22:25 +00:00
65bb4ff8d1 py/rna api:
ifdef'd out weakref for blender/py api, worth testing to see if it adds much overhead.
2011-02-23 13:43:45 +00:00
Nathan Letwory
5b607701a7 doxygen: prevent GPL license block from being parsed as doxygen comment. 2011-02-23 10:52:22 +00:00
9416daf97e remove unused functions,
note: BPY_class_validate() could come in handy later if we need to check classes for properties/functions but for now there is no point in keeping it in.
2011-02-23 09:12:55 +00:00
692b711bf4 SVN maintenance. 2011-02-22 20:47:17 +00:00
bde2f96257 blender as module - workaround for not knowing __file__ when the module is initialized. 2011-02-22 14:19:09 +00:00
d60a5cfc55 feature back from 2.4x where a python error moves the cursor to the error line, added moving to exact column for syntax errors too. 2011-02-22 11:32:29 +00:00
8186ba15ab last commit used py3.2 function, inline for py3.1 2011-02-22 08:29:25 +00:00
1e120098fc pyapi, use direct access to the frame rather then python attributes. 2011-02-22 07:57:18 +00:00
dd8383e469 make doc generation close files (py3.2 complains about this),
minor formatting changes for C docstrings.
2011-02-22 05:23:20 +00:00
9ef0eed4b6 build python module without binreloc, add dummy argv[0] to initialize bprogname. 2011-02-21 13:13:08 +00:00
Nathan Letwory
cff782e5f1 Missed this in battle against BLO vs MEM storm. 2011-02-21 12:54:40 +00:00
Nathan Letwory
322ff7dfe4 I swear, it was just an innocence change in guardedalloc!
The butterfly wing flap, causing a nice storm in the rest of blender.

Now all dependencies should point ok again. CMakers, do double-test.
2011-02-21 12:35:04 +00:00
Nathan Letwory
8c8ae3dedf doxygen: entry for gpu, modifiers, nodes, python and render 2011-02-21 06:58:46 +00:00
c30149991c Experimental option to build blender as a python module, rather then blender embedding python.
CMake build option WITH_PYTHON_MODULE, will build ./bin/bpy.so

This allows 'bpy' to be imported from python or other applications/IDE's which embed python, eg:
   python -c "import bpy ; bpy.ops.render.render(write_still=True)"

This runs in background mode and has similar restrictions to running a script:
   blender --background --python test.py

TODO:
 - install to site-packages with blender scripts
 - add support for imp.reload()
2011-02-20 23:39:29 +00:00
9ee1b3930f set main() argv functions to be const char *
also set minimum cmake version to 2.8
2011-02-19 12:05:20 +00:00
d17df68c24 - clear some warnings
- rename layout.operator_enums -> operator_enum (since we have operator_menu_enum, only called in 4 places)
2011-02-18 06:07:41 +00:00
6524d27462 py api was raising SystemError exception incorrectly, this is intended for internal interpreter problems.
Replace most with RuntimeError.
2011-02-18 06:04:05 +00:00
2ae5c3932d Change to how python classes are initialized when blender calls them.
Annoyance was that operators that defined and __init__ function would need to do...
    def __init__(self, another_self):
        ....

py/rna was calling the class directly with PyObject_Call() but needed to pass the pre-allocated object only so __init__() would run .
This works OK internally but becomes messy since __new__ and __init__ always get the same args there was no way to avoid a superfluous self argument to __init__.
2011-02-17 07:21:44 +00:00
73df566b4a error case not being handled when calling python classes from RNA 2011-02-17 06:56:24 +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
669cffdb1e fix [#26098] python API: quaternion.rotate never seems to work. 2011-02-16 02:05:36 +00:00
f5217afd18 Ugly hack to get PoseLib UI working ok (problem mentioned in log for
r34883).

Full description:
When defining an operator button in the UI layout code, trying to set
the value for such an operator's enum properties, where said enum uses
a dynamically generated list of items (which depends on using context
info), will "fail". No context info will be passed to the callbacks
used to generate this list of items, as PROP_ENUM_NO_CONTEXT is still
set on the operator properties (it seems these will only get cleared
when the operator actually runs, which is far too late already for
this usage) so RNA_property_enum_items() will pass NULL instead of a
context pointer *even* when one exists!

I'm not sure of why we even need this flag. It seems to have caused a
few other rounds of problems already, from quick searches I did on
this matter...
2011-02-16 01:46:32 +00:00
d5316768c3 corrention for bpy.props docstrings. 2011-02-15 11:43:35 +00:00
be8c8942f4 fix for own error with image info display, also dont draw if the mouse is outside the image. 2011-02-15 04:06:13 +00:00
07e9cfef81 fix warnings. 2011-02-15 03:20:12 +00:00
ba0d167d2a more vars made static 2011-02-14 18:20:10 +00:00
8b7482892b made most variables which are only used in a single file and not defined in header static for blenlib, blenkernel and editors. 2011-02-14 17:55:27 +00:00
d845d6308a comments for how py-rna calls api new classes. small speedup for StructRNA.__new__(...) used for creating new classes and corrected exception type. 2011-02-14 11:30:35 +00:00