2003-04-21 20:33:06 +00:00
|
|
|
/*
|
|
|
|
|
*
|
|
|
|
|
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
|
|
|
|
|
*
|
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
|
* of the License, or (at your option) any later version. The Blender
|
|
|
|
|
* Foundation also sells licenses for use in proprietary software under
|
|
|
|
|
* the Blender License. See http://www.blender.org/BL/ for information
|
|
|
|
|
* about this.
|
|
|
|
|
*
|
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
|
*
|
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
|
|
|
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
|
*
|
|
|
|
|
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
|
|
|
|
* All rights reserved.
|
|
|
|
|
*
|
|
|
|
|
* This is a new part of Blender.
|
|
|
|
|
*
|
2003-05-13 01:54:28 +00:00
|
|
|
* Contributor(s): Michel Selten, Willian P. Germano
|
2003-04-21 20:33:06 +00:00
|
|
|
*
|
|
|
|
|
* ***** END GPL/BL DUAL LICENSE BLOCK *****
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#ifndef EXPP_BLENDER_H
|
|
|
|
|
#define EXPP_BLENDER_H
|
|
|
|
|
|
|
|
|
|
#include <Python.h>
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
|
|
#include <BKE_global.h>
|
|
|
|
|
#include <BSE_headerbuttons.h>
|
|
|
|
|
#include <DNA_ID.h>
|
|
|
|
|
#include <DNA_object_types.h>
|
|
|
|
|
#include <DNA_scene_types.h>
|
2003-05-09 04:34:40 +00:00
|
|
|
#include <DNA_screen_types.h> /* for SPACE_VIEW3D */
|
2003-04-21 20:33:06 +00:00
|
|
|
#include <DNA_userdef_types.h>
|
|
|
|
|
#include <BKE_ipo.h>
|
|
|
|
|
|
|
|
|
|
#include "gen_utils.h"
|
|
|
|
|
#include "modules.h"
|
|
|
|
|
|
2003-05-09 04:34:40 +00:00
|
|
|
/* From Window.h, used here by Blender_Redraw */
|
|
|
|
|
PyObject *M_Window_Redraw(PyObject *self, PyObject *args);
|
|
|
|
|
|
2003-04-21 20:33:06 +00:00
|
|
|
/*****************************************************************************/
|
|
|
|
|
/* Python API function prototypes for the Blender module. */
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
PyObject *Blender_Set (PyObject *self, PyObject *args);
|
|
|
|
|
PyObject *Blender_Get (PyObject *self, PyObject *args);
|
|
|
|
|
PyObject *Blender_Redraw(PyObject *self, PyObject *args);
|
2003-05-13 01:54:28 +00:00
|
|
|
PyObject *Blender_ReleaseGlobalDict(PyObject *self, PyObject *args);
|
BPython:
- tentative fix for scripts with CR/LF endings and split lines:
in 2.32, the ac3d and vrml2 exporters, for example, had lines
split with '\\\\' and so gave syntax errors when executed on Win
platforms, because the scripts bundled with Win binaries had dos
line endings.
- Chris Keith has written code to execute Python scripts from the
command-line, with '-P ' switch: "blender -P filename":
a Blender.Quit function was also added, so Blender can quit after
running the script (end the script with Blender.Quit()), but there's
still work to be done in this part, including adding more functions,
to load / save .blend files and to run scripts. More testing and
discussions are necessary.
Thanks Chris, for both your contributions and your patience, since I
wasn't available to check / commit this for a while.
2004-03-31 04:18:39 +00:00
|
|
|
PyObject *Blender_Quit(PyObject *self);
|
2003-04-21 20:33:06 +00:00
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/* The following string definitions are used for documentation strings. */
|
|
|
|
|
/* In Python these will be written to the console when doing a */
|
|
|
|
|
/* Blender.__doc__ */
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
char Blender_Set_doc[] =
|
|
|
|
|
"(request, data) - Update settings in Blender\n\
|
|
|
|
|
\n\
|
2003-06-24 07:21:17 +00:00
|
|
|
(request) A string identifying the setting to change\n\
|
2003-04-21 20:33:06 +00:00
|
|
|
'curframe' - Sets the current frame using the number in data";
|
|
|
|
|
|
|
|
|
|
char Blender_Get_doc[] =
|
|
|
|
|
"(request) - Retrieve settings from Blender\n\
|
|
|
|
|
\n\
|
|
|
|
|
(request) A string indentifying the data to be returned\n\
|
|
|
|
|
'curframe' - Returns the current animation frame\n\
|
|
|
|
|
'curtime' - Returns the current animation time\n\
|
|
|
|
|
'staframe' - Returns the start frame of the animation\n\
|
|
|
|
|
'endframe' - Returns the end frame of the animation\n\
|
|
|
|
|
'filename' - Returns the name of the last file read or written\n\
|
|
|
|
|
'version' - Returns the Blender version number";
|
|
|
|
|
|
|
|
|
|
char Blender_Redraw_doc[] = "() - Redraw all 3D windows";
|
|
|
|
|
|
2003-05-13 01:54:28 +00:00
|
|
|
char Blender_ReleaseGlobalDict_doc[] =
|
BPython:
- tentative fix for scripts with CR/LF endings and split lines:
in 2.32, the ac3d and vrml2 exporters, for example, had lines
split with '\\\\' and so gave syntax errors when executed on Win
platforms, because the scripts bundled with Win binaries had dos
line endings.
- Chris Keith has written code to execute Python scripts from the
command-line, with '-P ' switch: "blender -P filename":
a Blender.Quit function was also added, so Blender can quit after
running the script (end the script with Blender.Quit()), but there's
still work to be done in this part, including adding more functions,
to load / save .blend files and to run scripts. More testing and
discussions are necessary.
Thanks Chris, for both your contributions and your patience, since I
wasn't available to check / commit this for a while.
2004-03-31 04:18:39 +00:00
|
|
|
"Deprecated, please use the Blender.Registry module solution instead.";
|
|
|
|
|
|
|
|
|
|
char Blender_Quit_doc[] =
|
|
|
|
|
"() - Quit Blender. Experimental, please use with caution.";
|
2003-05-13 01:54:28 +00:00
|
|
|
|
2003-04-21 20:33:06 +00:00
|
|
|
/*****************************************************************************/
|
|
|
|
|
/* Python method structure definition. */
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
struct PyMethodDef Blender_methods[] = {
|
BPython: cleaning some bug tracker entries:
(excuse me for doing all in a single commit, but they are tiny
fixes and it's bpython, that dark corner ...)
#1025 - FileSelector SEGV on dynamic callback Category:
Can't reproduce with current cvs, I'd say recent changes to fix
another crash related to FileSelector in gui-less scripts solved this
one, too.
#1028 - Reserved button event number:
Menu choices generate two events, one extra related to the menu
itself, with value=4. Made bpython ignore this extra event.
#1068 - FileSelector No file extension support:
As Ton wrote there, Blender itself doesn't support this yet. But the
requester also wanted Window.File/ImageSelector to accept a pathname. Done. Also updated doc.
#959 - Segfault on background rendering:
This happened in bg mode (blender -b filename -a, for example) when
a script with the line "Blender.Redraw()" was linked to FRAMECHANGED events. As reported in the bug page, it was because curarea is NULL in bg mode. Made Redraw() check for this and not call functions that expected curarea in Redraw, like one to swap buffers.
#1072 - Blender.Redraw() Segfault:
Good catch : ). Scripts called from the scripts win that called
Blender.Redraw() or Blender.Window.Redraw() would crash Blender because of a dirty pointer in Spacescript->script. Fixed.
2004-04-11 04:41:33 +00:00
|
|
|
{"Set", Blender_Set, METH_VARARGS, Blender_Set_doc},
|
|
|
|
|
{"Get", Blender_Get, METH_VARARGS, Blender_Get_doc},
|
|
|
|
|
{"Redraw", Blender_Redraw, METH_VARARGS, Blender_Redraw_doc},
|
|
|
|
|
{"Quit", (PyCFunction)Blender_Quit, METH_NOARGS, Blender_Quit_doc},
|
2003-05-13 01:54:28 +00:00
|
|
|
{"ReleaseGlobalDict", &Blender_ReleaseGlobalDict,
|
|
|
|
|
METH_VARARGS, Blender_ReleaseGlobalDict_doc},
|
2003-04-21 20:33:06 +00:00
|
|
|
{NULL, NULL}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif /* EXPP_BLENDER_H */
|