Commit Graph

32 Commits

Author SHA1 Message Date
1652884463 BPython:
-- removed struct Script (DNA_script_types.h) from makesdna to blender/include/BPI_script.h
   (BPI meaning Blender Python-related external Include file).
   Had agreed with Ton that makesdna was not the proper place for it.
-- fixed two small warnings in Ipo.c (variables might be used uninitialized)
-- fixed a bug reported on blender.org's python forum by Wim Van Hoydonck (aka tuinbels):
   Blender would hang if a script failed.  My fault, accidentally put a node=node->next type call outside the while loop check, so it never ended.

With makesdna/DNA_script_types.h removed and include/BPI_script.h added, msvc projectfiles will need to be updated.  Sorry to do it now, but I promissed I'd fix this before next release.
2004-01-21 04:38:03 +00:00
57b91ddce8 Scripts in menus:
- now the file .Bpymenus is in ~/.blender/, please delete the old one
- both ~/.blender/scripts/ and (if set) user pref scripts dir are scanned for scripts
- 2 scripts of the same group with the same name, one in each dir: user pref overwrites the other's entry
- fixed the problem with trailing backslash, was my fault (used NULL instead of "/" for relbase in BLI_make_file_string
- slightly changed msgs to be less verbose and parsing to be more forgiving
- if a script registers with a wrong group, 'Misc' is used instead
- 'Blender' tag is now checked, gives a warning (notice) msg if script is newer than Blender program

Blender.NMesh module and doc:
- added vertex.sel var to get/set selection state of vertex.
2004-01-20 04:57:47 +00:00
c31de00284 Script menus:
-- trying a different approach to see if the crash on Windows goes away.

Running a script with PyRun_File -- a Python/C API function -- was probably
the cause for crashes on Windows, because it uses a pointer to a FILE
struct and on windows this struct can be "different and incompatible"
depending on which libc was used to build the program.  This is mentioned in
the Python/C API Ref Manual, chapter 2.

Now we're loading the file contents to a string buffer and using PyRun_String.
2004-01-18 15:08:02 +00:00
f3c5206b71 Scripts menus:
-- added re-eval entry to Scripts Win -> Scripts menu
-- added it also as a button at Info Win -> File Paths, Python path
-- updated bpymenus code:
    added 'Blender' tag, for version;
    made a .Bpymenus file be written only if there's actual data to save
    made file->export menu open a scriptspace only if none is available already
-- bug fixes (bugs 866 and 879, related) for linking and sharing mesh data:
http://projects.blender.org/tracker/?func=detail&atid=125&aid=866&group_id=9
http://projects.blender.org/tracker/?func=detail&atid=125&aid=879&group_id=9
2004-01-16 23:40:14 +00:00
39714fe42c BPython:
- some fixes for menu and error reporting code.
2004-01-15 03:46:47 +00:00
0d9d16e6e9 Scripts in menus:
-- this finishes the heavier part (not counting tweaks and possible bugs) of
letting scripts be accessed from Blender menus.  Will explain more in emails
to bf and bpython lists, but just check
source/blender/python/BPY_menus.[hc] and
source/blender/src/header_info.c and header_script.c for details.

Scripts need a small update (registering info, basically a header) to be used.
Scripts dir (user pref file paths: Python) must be set.
2004-01-14 21:36:10 +00:00
050dc02134 Chris reported build errors w/ traditional makefiles.
This commit moves the 2 undefined references to BPY_interface.c and
changes things a little, hopefully fixing the problem.  I had to add a new dir,
source/blender/include/ to auto*'s Makefile.am in source/blender/python/.

Thanks Chris for the report, and Jiri, for adding a missing declaration.
2003-12-15 18:18:09 +00:00
49021f7ec4 BPython - first step for better integration of Python in Blender:
- add a new space: Space Script
- add a new dna struct: Script
- add these two properly everywhere they are meant to

It's not a tiny commit, but most of it is ground work for what is still to be done.
Right now the benefits should be: freeing the Text Editor to be used in a window even while a script w/ gui in "on" and letting more than one currently running script w/ gui be accessible from each window

Some files are added, so some build systems (not autotools) will need updates
2003-12-14 01:18:09 +00:00
Stephen Swaney
c19d84f89e Fix unchecked pointer reference when adding sitedirs to sys.path.
This is a bugfix against the 2.28c release.
2003-10-19 06:26:32 +00:00
775f006bf1 Exppython:
- Window: implemented .SetCursorPos, .GetViewMatrix, .GetViewVector
- Lamp: .setDist was not in the methods table:
    Fix by new bpython developer Stephen Swaney
- Scene: .frameSettings was crashing Blender (pointed by jms)
- Added site dirs to sys.path (patch by Stephen Swaney)
- NMesh: small internal change (added pointer to parent object)
- Object: function NMesh_FromPyObject has a new arg: pointer to obj
- Docs: added docs for implemented functions, plus some more info
2003-09-18 00:54:43 +00:00
a09e5a7f2f Exppython:
- Window: added .GetCursorPos()
- Lamp: updated for NoDiffuse and NoSpecular modes
- Registry: new module to handle persistent data
- vector: made it correctly print only 3 values when vec->size==3:
    Fixes nmvert coords printed with a 4th 0.0 coordinate
- Text: fixed crash on startup (Python 2.3, linux):
    added definition of the Text pyobject earlier, in Types.c
2003-09-03 04:13:08 +00:00
2289f3abb6 Exppython:
- Adding argv to the builtin sys Python module:
    Currently only argv[0] is there.  This fixes a weird error that can make
    correct scripts fail.
2003-08-10 23:18:00 +00:00
916f527253 * Fixed problems in with script linking.
I had to update many files to get this to work.
2003-07-27 15:56:32 +00:00
65de07aeec removed a debug message 2003-07-25 09:00:01 +00:00
aa820ec420 Exppython:
- Continued getting rid of print methods and updating repr ones:
    Needed to fix crashes on Windows >= 98 systems.
- Found and fixed a few small memory leaks in EXPP_interface, related to
  execution of script links.
2003-07-05 01:18:41 +00:00
28b8e667a0 Exppython:
- Fixed a problem with control of the global Python dictionary persistence:
    Blender.ReleaseGlobalDict(bool) should now work fine.
- Trying to fix the sigsegv crashes on Windows:
    They happen when we try to "print" our objects, like Lamps or Cameras.
    Following advice from the Python Embedding doc, removed the tp_print
    method from Camera and also improved its tp_repr one, that will be used
    as print, repr() and str() for Cameras.  If this test works all other objs
    will be updated accordingly.
2003-07-04 02:56:07 +00:00
dfa7a48407 - exppython now can import modules contained in Blender Texts:
The Python import function was substituted by our own one (like done
    in the old bpython) to also check Blender Texts upon importing.
2003-07-03 01:42:00 +00:00
8155033930 - Added user defined python dir to Python's sys.path:
Had to add a function call to creator.c, explained in a note there (look
    for pythondir in the file)
2003-06-28 10:35:14 +00:00
eaf1cdd383 - More renaming all around to follow our conventions
- Implemented partially Blender.Sys
- Worked on issues related to sys, path
- Took away most "debug" printfs
2003-06-28 07:38:21 +00:00
d253eb4b75 * Fixes segfault caused in the Object.getParent function.
Found by Jonathan Thambidurai
* Fixes a scriptlink problem when a script is run using ALT-p.
  Found by Yann Vernier (LoneTech)
* Prints unhandled exceptions. Should fix some memory leaks too.
  Fixed by Yann Verniet (LoneTech)
2003-06-22 18:34:36 +00:00
23b2a1be8f * Fixed crash on file image selectors:
The global python dict can't be cleaned before the callbacks are executed.
2003-06-14 10:10:01 +00:00
6cc45538ef * Small changes in many files:
-  Trying to fix linking problems in OSX;
-  Making module .Get functions behave like the ones in Blender 2.25 - 2.27
   (Guignot pointed the incompatibility);
-  Included more types to Blender.Types;
-  Found by luck and corrected two bugs that were making Blender crash;
-  Added/updated some simple functions.
2003-06-12 04:51:50 +00:00
84bd226fa3 * Added 'extern' to PyTypeObject declarations in some headers. 2003-06-09 20:07:43 +00:00
ad61dd37ef * Improved error checking in BPY_interface.c:
Applied a fix suggested by Guignot
* Added part of Module Blender.Scene.
* Added doxygen comments to Camera.c .
2003-06-07 03:49:45 +00:00
609f5b7f9c bug fix: sigsegv when script had syntax errors 2003-05-23 04:37:33 +00:00
b9f6d66328 * Added 3 missing functions, 2 of them called by blender/src/drawtext.c:
Callbacks registered with Draw.Register in Python are called now.
    That should fix submodule Blender.Draw.
* Added a few other missing functions to BPY_interface.c
* Finished implementing Get() function for Camera, Lamp, Image and Text:
    Both the .Get(name) and .Get() cases are handled now.
* Added function Blender.ReleaseGlobalDict():
    This function should give script writers control over whether the
    global Python Interpreter Dict should be cleared after the script is
    run (default is to clear).  This is a test.
2003-05-13 01:54:28 +00:00
154a49fbba updating change in an included filename 2003-05-08 03:13:17 +00:00
ec669df6ee The following updates have been contributed by Willian P. Germano:
* Implemented BPY_end_python function.
* Implemented error handling. This results in rerunning a script after an
  error has occurred. No need to restart blender anymore.
* Camera module supports dir()
* variable assignment now calls the Python equivalent function - this has
  type checking and should be safer now.
* Implemented the Lamp module. Used the Camera module as a template.
* Implemented the Image module.
* Added EXPP_ClampFloat and EXPP_intError functions to gen_utils.[ch]
* Implemented 'constant' object.
2003-04-08 19:54:14 +00:00
e031f322a7 * Implemented the BPY_do_all_scripts interface function (BPY_interface.c)
* Created a function to return all scripts from a linked list
  (DoAllScriptsFromList).

Michel
2003-03-19 18:57:23 +00:00
3a0725d4aa * Moved the code to retrieve an object by name to a seperate function in
gen_utils.c (GetObjectByName).
* Blender.link, Blender.bylink and Blender.event should work. Somehow the
  only event coming through now is only REDRAW.
* Added include path to /intern/guardedalloc

Michel
2003-03-18 20:21:26 +00:00
f08719cfc6 Swig is unfortunately not an option anymore. This means implementing all
wrapper functionality by hand.

* Removed the swig files (*.i and *_wrap.c)
* Created initial datablock functionality. Most of it has been copied from
  the old implementation.
* Created some general functions in gen_utils.[ch]
* Blender.Get(), Blender.Set() and Blender.Redraw functions should work in a
  script now.
* Started implementation on an Event function call (BPY_do_pyscript)

Michel
2003-03-08 18:10:20 +00:00
4b825fddc7 Implemented enough functionality to actually execute Python from within
Blender.
* Moved api2_2x/interface.c to ./BPY_interface.c
  This will be the general api layer from which all variants of the Blender
  api. Currently only the 2.2x variant is initialised.
* Used swig (www.swig.org) to create Python wrappers for a couple of dummy
  functions.
* Started implementation of the Blender and Blender.Object modules.

Michel
2003-02-26 19:22:24 +00:00