Commit Graph

2650 Commits

Author SHA1 Message Date
Campbell Barton
ca5e7113d3 allow python api to set values of library liked data (still checks editable flag)
+ improved exception messages.
2010-02-23 11:19:55 +00:00
Campbell Barton
0c89dcc25c matrix functions, to_3x3, to_4x4
force fixed time when recording in the BGE.
2010-02-23 09:39:47 +00:00
Campbell Barton
4ef1fd1078 game engine support for recording animation back & some other minor changes. 2010-02-22 12:25:58 +00:00
Campbell Barton
e31d0198e6 exclude self references from the ID search list when PROP_ID_SELF_CHECK is set, also raise an error from python if this is attempted 2010-02-22 08:27:45 +00:00
Benoit Bolsee
37b9c9fe4d VideoTexture: improvements to image data access API.
- Use BGL buffer instead of string for image data.
- Add buffer interface to image source.
- Allow customization of pixel format.
- Add valid property to check if the image data is available.

The image property of all Image source objects will now
return a BGL 'buffer' object. Previously it was returning
a string, which was not working at all with Python 3.1.
The BGL buffer type allows sequence access to bytes and
is directly usable in BGL OpenGL wrapper functions.
The buffer is formated as a 1 dimensional array of bytes
with 4 bytes per pixel in RGBA order.

BGL buffers will also be accepted in the ImageBuff load()
and plot() functions.

It is possible to customize the pixel format by using
the VideoTexture.imageToArray(image, mode) function:
the first argument is a Image source object, the second
optional argument is a format string using the R, G, B,
A, 0 and 1 characters. For example "BGR" means that each
pixel will be 3 bytes, corresponding to the Blue, Green
and Red channel in that order. Use 0 for a fixed hex 00
value, 1 for hex FF. The default mode is "RGBA".

All Image source objects now support the buffer interface
which allows to create memoryview objects for direct access
to the image internal buffer without memory copy. The buffer
format is one dimensional array of bytes with 4 bytes per
pixel in RGBA order. The buffer is writable, which allows
custom modifications of the image data.

v = memoryview(source)

A bug in the Python 3.1 buffer API will cause a crash if
the memoryview object cannot be created. Therefore, you
must always check first that an image data is available
before creating a memoryview object. Use the new valid
attribute for that:

if source.valid:
    v = memoryview(source)
    ...	

Note: the BGL buffer object itself does not yet support
the buffer interface.

Note: the valid attribute makes sense only if you use
image source in conjunction with texture object like this:

# refresh texture but keep image data in memory
texture.refresh(False)
if texture.source.valid:
    v = memoryview(texture.source)
    # process image
    ...
    # invalidate image for next texture refresh
    texture.source.refresh()

Limitation: While memoryview objects exist, the image cannot be
resized. Resizing occurs with ImageViewport objects when the
viewport size is changed or with ImageFFmpeg when a new image
is reloaded for example. Any attempt to resize will cause a
runtime error. Delete the memoryview objects is you want to
resize an image source object.
2010-02-21 22:20:00 +00:00
Campbell Barton
6589038350 python rna api now clamps values, (was fun to see the spot_size go backwards)
Vector callbacks still missing clamp checks
2010-02-21 14:48:28 +00:00
Campbell Barton
1bb37bc10e py api: bpy.props
new properties without any arguments were failing.
2010-02-21 12:15:38 +00:00
Martin Poirier
5589050c7e move include where it's needed and won't break other things. 2010-02-20 22:49:45 +00:00
Campbell Barton
86047ac3d5 typo in to_euler() 2010-02-20 22:36:32 +00:00
Joshua Leung
24827ce351 Fix compiling error on windows for mathutils commit 2010-02-20 21:01:05 +00:00
Martin Poirier
aa67aa9ecc Split numinput from transform (reusable in other operator).
Use in marker move operator.
2010-02-20 20:29:09 +00:00
Campbell Barton
02e7871149 Mathutils API: Euler support for rotation order.
Examples.
 euler = Euler(1, 2, 3)
 euler.order = 'ZXY'
 
 euler = matrix.to_euler('XZY')


Still missing rna support. this still wont give the right order, defaulting to XYZ.
 eul = object.rotation_euler
2010-02-20 19:49:04 +00:00
Campbell Barton
0dc8026691 mostly fixed [#21172] Reloading scripts leaks memory (F8)
the same properties were being registered many times with built in structs.

blender memory at least is not leaking, but it seems python is still not freeing some memory.

For the moment dont allow existing properties to be registered again, will need to have a way to unregister rna properties.
2010-02-17 21:58:08 +00:00
Campbell Barton
3c2d59e032 py/rna api property api functions crashed with empty args.
eg: bpy.props.BoolProperty()
2010-02-17 17:22:39 +00:00
Campbell Barton
0b3dfc441e pyrna, adding back foreach functions from collections. they are needed! 2010-02-16 19:27:38 +00:00
Campbell Barton
aefe9be5db [#18961] Use const char * where appropriate (2.5)
from Sean Bartell (wtachi) 

added own changes bpy_props.c
2010-02-16 16:47:41 +00:00
Campbell Barton
768f20d537 update for missing docs & dont include operator classes in sphinx docs. 2010-02-16 15:01:34 +00:00
Campbell Barton
d8ce09ce53 bugfix [#21173] Autocompleate raises an error
split PropertyRNA off into 3 types, base type, collection and array, since array and collections needed internal checks inside almost every function its better to have the, as subclassed to the property type. This makes introspection more useful.

Also made printing of structs and properties prettier giveing type and length.
2010-02-15 23:43:51 +00:00
Campbell Barton
882af97b4b classes were having their dictionary cleared when the blender extension data was freed which made re-registering fail.
now extensions can be enabled and disabled without having to reload them.
2010-02-15 11:24:43 +00:00
Campbell Barton
677386e53a initial support for extensions in the user preferences
only one script at the moment:
 [#20848] Blender Gears for 2.5 (for ideasman42)
 from Michel Anders (varkenvarken)
2010-02-14 23:33:18 +00:00
Campbell Barton
39c04315e2 change python scripts so modules which register with blender have a register() function rather then making import automatically run the register functions (generally considered bad practice by python people) 2010-02-14 11:21:21 +00:00
Campbell Barton
e205acdbaa strip quotes from Buildinfo for bpy.app.build_* 2010-02-12 21:45:47 +00:00
Martin Poirier
c7662c1cf7 Calling operators from Python with non-default context was broken (need to assign to the right variable). 2010-02-12 21:40:46 +00:00
Campbell Barton
533ed7cdaa Python deprcated PyCObject, use PyCapsule instead. 2010-02-12 21:14:01 +00:00
Campbell Barton
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
Campbell Barton
8f4c340915 bpy.utils.home_paths, use this to get script paths for the user/local/system blender paths. 2010-02-11 14:08:22 +00:00
Daniel Salazar
15ef07d684 More tooltip editing 2010-02-11 02:03:18 +00:00
Campbell Barton
c2b2ccde45 fix for python not being able to call operators with a executuon context. 2010-02-10 11:10:38 +00:00
Campbell Barton
52b1c37645 [#21039] OBJ import Clamp Scale limited to .01 as lowest Value. Used to be Zero
[#21053] 2.5alpha0 export obj problem
+ some minor changes.
2010-02-09 19:22:57 +00:00
Brecht Van Lommel
ec7df03c86 Warning fixes, one actual bug found in sequencer sound wave drawing. Also
changed some malloc to MEM_mallocN while trying to track down a memory leak.
2010-02-08 13:55:31 +00:00
Campbell Barton
fc123a40d3 patch [#20889] Support "unit"s for FloatProperty
from Martin Bürbaum (pontiac)
(with own minor changes)
2010-02-02 23:03:56 +00:00
Campbell Barton
755569b020 errors in arg parsing from yesterdays commit 2010-02-02 12:10:13 +00:00
Campbell Barton
ecaa50ed7b PROP_ANIMATEABLE -> PROP_ANIMATABLE (more common spelling) 2010-02-02 00:02:55 +00:00
Campbell Barton
039d087171 subtype support for properties in bpy.props. 2010-02-01 22:04:33 +00:00
Campbell Barton
7fe3ab7e8e bugfix for reading invalid id prop lengths from python. 2010-02-01 18:38:33 +00:00
Campbell Barton
53f8bbd798 bpy.props.IntVectorProperty & BoolVectorProperty 2010-02-01 10:51:34 +00:00
Guillermo S. Romero
65af9585b2 SVN maintenance. 2010-02-01 00:04:28 +00:00
Joshua Leung
8c5645669b Fixed a few lingering compiler warnings with the bpy_app stuff 2010-01-31 23:49:04 +00:00
Campbell Barton
873f2c7125 ugh!, missed this file too 2010-01-31 23:41:46 +00:00
Campbell Barton
74535c435f missed this file 2010-01-31 23:21:33 +00:00
Campbell Barton
f776303de1 setting invalid vector swizzle attributes (from blender2.4x docs for instance), could crash blender.
- disallow setting swizzle's that have duplicate values: vec.xxx = [1,2,3]
 - raise an error if the list setting a swizzle's longer.
 - mathutils write callback was running on the wrong vector, which could crash blender.
2010-01-31 22:50:07 +00:00
Campbell Barton
fd3842f3a2 Mathutils doc improvements + other small things
- bpy.app moved into PyStructSequence (used by sys.float_info)
- added buildinfo into bpy.app.build_*
- bpy.ui removed (wasnt used)
- include external example files in Mathutils docs (only Mathutils and Vector are currently written)
- added support to auto document PyStructSequence's
- CMake had "'s inside all its strings.
2010-01-31 21:52:26 +00:00
Campbell Barton
dde838ec5e bugfix [#20417] <memory> shouldn't be stored in recent item list 2010-01-30 14:34:37 +00:00
Campbell Barton
ec48cbd267 utility functions is_negative_m3 & is_negative_m4, added python Mathutils access Matrix.is_negative
renamed Mathutils attribute wrapped -> is_wrapped
2010-01-30 13:15:39 +00:00
Brecht Van Lommel
e28e6ac5c7 Fix the underlying problem from the last commit, which was worked
around incorrectly in r24435 before that. freeptr in BPy_StructRNA
was uninitialized when creating bpy.context.
2010-01-29 14:49:21 +00:00
Ton Roosendaal
5abb38e566 Bugfix
OSX 10.5 PPC kept crashing on exit. After blaming bad compiles, bad python libs
and all other reasons (almost was switching to linux!) brecht found the bad line 
in python free code. There was code freeing stuff whilst it wasnt allowed to.

Mac PPC gets hug!
2010-01-29 14:13:40 +00:00
Campbell Barton
1b7b5eb434 minor changes needed for PDF generation 2010-01-28 10:48:17 +00:00
Campbell Barton
cc08cc3e8f nicer start page for sphinx docs 2010-01-27 22:17:27 +00:00
Campbell Barton
478dc000b3 * Mathutils attributes documented - http://www.blender.org/documentation/250PythonDoc/Mathutils.html
* Vector.difference() needed normalized vectors
* bpy.DEUBG -> bpy.app.debug
2010-01-27 21:33:39 +00:00
Campbell Barton
89cd4be1af slice assignment wasnt running the properties update function (setting object layers wasnt working from py)
also commented operator subclassing, loosing py property order.
2010-01-27 17:23:28 +00:00