Commit Graph

2153 Commits

Author SHA1 Message Date
bcddeaa699 2.5 compiles again with scons. Commented out some lines referring to code in the missing file rna_context.c 2009-03-20 03:32:56 +00:00
1b94cb752c Context
* Made it based on string lookups rather than fixed enum, to make
  it extensible by python scripts.
* Context callbacks now also have to specify RNA type when returning
  pointers or collections. For non-RNA wrapped data, UnknownType can
  be used.
* RNA wrapped context. The WM entries are fixed, for data context
  only main and scene are defined properties. Other data entries have
  to be dynamically looked up.
* I've added some special code in python for the dynamic context
  lookups. Tried to hide it behind RNA but didn't find a clean way to
  do it yet. Still unused/untested.

* Also minor fix for warning about propertional edit property in
  transform code, and fix for usage of operator poll with checking if
  it was NULL.
2009-03-19 19:03:38 +00:00
3aab50f775 * removed warnings and fixed some python refcount errors
* operator class names
- Changed 'name' to '__label__' (since __name__ is already used for the class name)
- Changed 'properties' to '__props__'

* added a PyObject_GetAttrStringArgs(), utility function which Id like to see in pythons C api.
PyObject_GetAttrStringArgs(pyob, "someattr", "foo", "bar") /* pyob.someattr.foo.bar */
2009-03-18 22:22:58 +00:00
aeb2225a28 2.50: some warning fixes. 2009-03-17 22:27:15 +00:00
929c3fe91a failed building with python 2.5 and older 2009-03-16 17:02:58 +00:00
16fe92f868 2.5 PyAPI
Support for subclassing blenders operator, to be registered as a new operator.

Still need to... 
* add constants like Operator.FINISHED
* wrap context (with rna?)
* poll() cant work right now because there is no way to access the operatorType that holds the python class.
* Only float, int and bool properties can be added so far.

working example operator.
http://wiki.blender.org/index.php/BlenderDev/Blender2.5/WinterCamp/TechnicalDesign#Operator_Example_Code
2009-03-16 15:54:43 +00:00
6508ad460f 2.5
fix compile error with python on MSVC.
2009-03-15 08:58:33 +00:00
d297058910 return operators as a PyCFunction rather then having our own callable operator type 2009-03-14 13:43:30 +00:00
54a55827ec merging trunk 19093:19274 2009-03-13 18:04:38 +00:00
4c3d64116e 2.5: UI Layout Engine, initial code.
* As a test, used by:
  * Object buttons, tried to make it match the mockup.
  * Text window header.
  * Text window properties panel.
* Panel interaction with view2d is still problematic, need to make
  this work properly still.
* Templates are very basic, the ones there are simple but already
  can follow the object buttons mockup quite closely.
* It's based on a three level system: panels, templates and items.
  To get an idea of what that means in practice, see:

http://wiki.blender.org/index.php/BlenderDev/Blender2.5/UI_LayoutEngine#Panels.2C_Templates_and_Items
2009-03-13 13:38:41 +00:00
a4793a3b4a 2.5 Python api
- rearranged modules bpyui -> bpy.ui, bpy -> bpy.data, remove bpydoc
- new module bpy.types, stores a list of all struct types
- added __rna__ attribute to types - eg bpy.types.World.__rna__ so you can access the rna data from a type. (so bpydoc.structs isnt needed anymore)
- removed unused subtyping method (use python subclassing rather then C PyTypeObject)
2009-03-13 07:50:07 +00:00
64512d3e8e WIP PyAPI from winter camp discussions, make subtypes of the base RNA python type, eventually allowing us to have python defined RNA classes in
python - lux/pov/renderman materials, lamps etc as well as operators.

At the moment there are 2 ways to do this, The first is like subclassing from python, another (disabled) method copies the base PyTypeObject struct 
and makes some changes.

The PyType is stored in the RNA Struct for reuse, right now there are no access functions - needs to be improved.

Added a python script for printing all blend file data to the console which helps testing the api.

dir(rna) wont work for python 2.x now, use rna.__dir__() instead.
2009-03-11 17:28:37 +00:00
155c1fb49a compiler fix part 1
[[Split portion of a mixed commit.]]
2009-03-08 16:50:11 +00:00
63456cefda added python api function to register an operator into a keymap
example...
bpyui.registerKey( C, bpyui.spaceTypes.SEQ, 0, "Sequencer", "SEQUENCER_OT_view_selected",  bpyui.keyTypes.A, bpyui.keyValTypes.PRESS, 0,0, {})
May want to split this into multiple functions.
2009-03-07 09:46:33 +00:00
caf4be7def small commit to allow bpy_operator.c to compile in msvc 2009-03-05 17:47:33 +00:00
c3df168539 PyRNA API: some RNA types were crashing on looping, also return None rather then an RNA struct when the ptr->data is NULL 2009-03-05 16:24:30 +00:00
a7c4009267 Make RNA an Operator dir() work in py 2.5 - 3.0
removed epy docstrings from RNA python api, since Python can get this info from rna. (could be redone in python if getting doc's on RNA is needed)
epy_doc_gen works again
2009-03-05 12:09:30 +00:00
Nathan Letwory
0229621b51 2.5 / PyRNA
* a collection of small changes after review together with Campbell.
2009-03-05 08:53:29 +00:00
36c3ed2350 run script in the text editor is back. UI scripts dont work yet. 2009-03-04 13:26:33 +00:00
c2fdac64c4 * errors in bpyui draw scripts were segfaulting
* added PyLineSpit(), useful for debugging so you can easily find the 
line of the python script running.
2009-03-02 20:18:29 +00:00
Nathan Letwory
2469305376 2.5 \ Python API
* put back #if PY_VERSION_HEX check again, so we without Python 3.0 can still compile
  - Campbell, please don't remove it again, ok?
2009-02-28 15:28:18 +00:00
bab4cd6991 Python experimental UI API
Can draw panels in the scripts space containing RNA and operator buttons.
* Added bpyui.register() so scripts can draw buttons and panels into the scripts space type.
* wrapped drawBlock, drawPanels and matchPanelsView2d
* Operator buttons take a python dictionary used to set the button defaults.
* BPY_getFileAndNum utility function to get the filename and line number python is currently running.
2009-02-28 13:27:45 +00:00
541d49bc2c * blender doesn't need the -w anymore to start in a window
* NULL can be used instead of () args for calling python functions from C.
2009-02-28 09:25:42 +00:00
b992a449f1 Restore the #if around the ui_module declaration, this made compiled fail
with python 2.5 (< 3.0).
2009-02-27 14:10:44 +00:00
66c2f1c2a3 added defAutoButR() and blockSetFlag() and some flags for the experimental python UI, which just wraps C the functions. 2009-02-27 10:22:40 +00:00
b49b02842a update to build with python 3.0.1 which removed Py_InitModule3, added richcompare functions to the operator api. 2009-02-26 05:50:19 +00:00
c77af31166 Minor speedups for the BGE
* Where possible use vec.setValue(x,y,z) to assign values to a vector instead of vec= MT_Vector3(x,y,z), for MT_Point and MT_Matrix types too.
* Comparing TexVerts was creating 10 MT_Vector types - instead compare as floats.
* Added SG_Spatial::SetWorldFromLocalTransform() since the local transform is use for world transform in some cases.
* removed some unneeded vars from UpdateChildCoordinates functions 
* Py API - Mouse, Ray, Radar sensors - use PyObjectFrom(vec) rather then filling the lists in each function. Use METH_NOARGS for get*() functions.
2009-02-25 06:43:03 +00:00
7c830b75f1 merging trunk 17520:19093 2009-02-23 21:00:42 +00:00
f6b0b76fea [#18159] Path -> toggle cyclic -> toggle cyclic again == path corrupted
was not recalculating the knots when the cyclic flag was disabled so the endpoint flag was being ignored until recalculating (extrude for eg).

Also removed unneeded re-allocation of curve knots which are always reallocated by makeknots.

Fixed another bug with which recalculating knots with the Python surface api. (mixed up u/v args to makeknots(..) )
2009-02-18 03:13:57 +00:00
28245a754e python api bugfix,
forgot to remove the cast from short to long when making x,y aspect floats.
2009-02-17 14:41:36 +00:00
46417e1362 WIP, low level python UI functions, so far tested popup menu to work with bpyui.pupMenuBegin, menuItemO and pupMenuEnd functions.
And a popup block with python callback with bpyui.pupBlock, beginBlock, popupBoundsBlock and endBlock funcions.

These functions should not be accessed by scripters directly.
2009-02-16 16:17:20 +00:00
95207cec00 2.5
Added RNA wrapping for F-Curve colour settings
2009-02-15 23:28:30 +00:00
64d2984aa0 add some more modifier types and access to shrink wrap target object (but no other shrink wrap settings) 2009-02-12 16:27:19 +00:00
b96180ec17 * Added description string to operator types, should be set along with ot->idname when defining ops.
* User interface uses this as a tooltip when NULL or "" is given.
* Python doc generation includes this description 
* Python defined ops take the description as an argument.

* NULL check to image_ops.c, was crashing on exit when there was an image open.
2009-02-12 03:39:56 +00:00
41a7b23c41 - Py seq API - Added an option for seq_strip.update() to run update_changed_seq_and_deps and new_tstripdata
- Render stamp sequencer option wasn't ignoring muted strips.
2009-02-09 04:18:30 +00:00
8f70b93124 2.4x Sequencer Python API
- add metastrips now possible
- access to speed options
- access to wipe options
- added seq.startDisp seq.endDisp seq.update()
2009-02-06 14:03:29 +00:00
284db61572 RNA: C API
* RNA_blender.h is now generated along with the other files. It is not
  used anywhere yet, and still located quite hidden next to the other
  rna_*_gen.c files. Read only access for now.
* Inherited properties are not copied from the base anymore but
  iterated over. Patch by Vekoon, thanks!
* Array get/set callbacks now do the whole array instead of getting an
  index. This is needed for some layers for example so python can set
  the array as a whole, otherwise the check that one layer has to be
  enabled at all times gets in the way. Also nicer for the C API.
* Also some changes to returning pointers to make the API cleaner, got
  rid of the type() callback and instead let get() return PointerRNA
  with the type included.

The C API looks like this currently:
http://users.pandora.be/blendix/RNA_blender.h
2009-02-02 19:57:57 +00:00
b1a001942a include Py_CmpToRich for python versions lower then 3 2009-01-29 10:22:03 +00:00
ca36e04362 python3 couldn't generate epydocs because python3 needs richcompare functions for C defined PyTypes (it seems). 2009-01-29 09:38:52 +00:00
5542f25331 Fix for bug #18167: setting Constraint.Settings.SCRIPT checked for type
Object rather than Text so did not work when assigning a text to it.
2009-01-27 21:26:31 +00:00
a21cdd9369 Fix for bug #18183: crash when using "Bake Constraints" script. The constraint
remove function was not working correct, this code uses a pretty bad hack, did
not clean it up, but at least it should work now.
2009-01-27 21:19:19 +00:00
c86579b11e 2.5: multiple small fixes
- wm draw method is now initialized correct when reading older
  files, but the SDNA bug causing the problem is still unsolved.
  is due to // char pad[8]; not being recognized as commented.
- triple buffer proxy texture test follows spec better now,
  was disabling triple buffer unnecessarily on some drivers.
- some cmake compile fixes related to sequencer pthread usage
  and removed bad level calls lib for player.
- show outliner header buttons in oops mode as well until that
  can be switched in the UI.
- fix region data free issue for tooltips
- warning fixes
2009-01-23 20:36:47 +00:00
88e244ebb9 basic transform for sequencer strips
can transform the strips or move their handles
Still todo, click-drag transform, metastrips support, snapping, markers overlap checks and constrain to valid channels.
2009-01-21 07:01:20 +00:00
97692a3bf5 Changes to functions from blender/windowmanager/intern/wm_event_system.c
Python operator api was using WM_operator_name_call() which was confusing things too much.
Added WM_operator_call_py() which ended up being a very small function and split out operator creation into wm_operator_create()

Python operator now runs the poll() function and raises an error if it fails.

Eventually there should be error messages for poll that python can use to give the exact reason for failing (eg - library linked data, no active object...)
2009-01-18 10:46:26 +00:00
c0ecbfce0e blender was crashing if no argument was given after '-t'
mesh.faces.deltete(...) with an empty list no longer returns an error.
2009-01-15 18:06:06 +00:00
0066b6a8aa fix for big in yesterdays commit, color values were not initialized 2009-01-13 05:55:48 +00:00
d0b953d860 can now add sequencer effects with the python api
also fixed crashes when incorrect args were used

cross = 13; track= 5; frame = 1 # no effect constants 
scene.sequence.new((cross, seq1, seq2), frame, track)
2009-01-12 15:58:32 +00:00
7cd4e2781a RNA
* Finished DNA_lamp_types.h, DNA_world_types.h and DNA_sound_types.h.
* Renamed "parent" struct property to "nested", and also remaining "from"
  usage to "base".
* Added a NEVER_NULL subtype for pointers and use it for all properties
  that apply.
* Make sure all structs have a description, and fix any other DOC_BROKEN
  descriptions, also many other naming consistency improvements.
2009-01-10 22:57:33 +00:00
1beef956ca 2.5
Instead of many commits, here 1!

- Constraint edit code back
- Removed XXX stubs for constraints
  (make parent follow path works)
- Removed XXX stubs for armature
  (make parent deform, do center, etc works)
- Found a bad uninitialized global Scene * in code, especially
  in kernel it wreaked havoc.
- added missing include in blenkernel/brush.c
- fixed Nicholas' fix for editmode subsurf crash
  (It needed to check for editmode)
2009-01-10 19:34:23 +00:00
e60be63d23 added rna property "parent" so nested RNA structs can access their parent RNA struct
This is used for generating docs so a nested RNA struct such as MaterialRaytraceTransparency are listed under Material rather then in the global struct list)
These RNA structs are used for grouping properties and don't correspond to a C structure.
2009-01-09 16:08:47 +00:00