Merged changes in the trunk up to revision 35203.
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>
Sat, 26 Feb 2011 20:21:09 +0000 (20:21 +0000)
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>
Sat, 26 Feb 2011 20:21:09 +0000 (20:21 +0000)
Conflicts resolved:
source/creator/creator.c
source/blender/python/intern/bpy.c

47 files changed:
1  2 
doc/python_api/sphinx_doc_gen.py
release/scripts/ui/space_dopesheet.py
release/scripts/ui/space_userpref.py
source/blender/CMakeLists.txt
source/blender/blenkernel/intern/anim_sys.c
source/blender/blenkernel/intern/idcode.c
source/blender/blenkernel/intern/library.c
source/blender/blenkernel/intern/material.c
source/blender/blenlib/CMakeLists.txt
source/blender/blenlib/intern/bpath.c
source/blender/blenloader/intern/readfile.c
source/blender/blenloader/intern/writefile.c
source/blender/editors/animation/anim_channels_defines.c
source/blender/editors/animation/anim_channels_edit.c
source/blender/editors/animation/anim_filter.c
source/blender/editors/animation/keyframes_draw.c
source/blender/editors/animation/keyframes_edit.c
source/blender/editors/include/ED_anim_api.h
source/blender/editors/interface/interface_templates.c
source/blender/editors/render/render_intern.h
source/blender/editors/render/render_ops.c
source/blender/editors/render/render_shading.c
source/blender/editors/space_nla/nla_buttons.c
source/blender/editors/space_nla/nla_channels.c
source/blender/editors/space_outliner/outliner.c
source/blender/editors/transform/transform.c
source/blender/editors/transform/transform_orientations.c
source/blender/freestyle/intern/system/PythonInterpreter.h
source/blender/makesrna/RNA_enum_types.h
source/blender/makesrna/RNA_types.h
source/blender/makesrna/SConscript
source/blender/makesrna/intern/CMakeLists.txt
source/blender/makesrna/intern/rna_ID.c
source/blender/makesrna/intern/rna_action.c
source/blender/makesrna/intern/rna_color.c
source/blender/makesrna/intern/rna_main.c
source/blender/makesrna/intern/rna_main_api.c
source/blender/makesrna/intern/rna_scene.c
source/blender/python/intern/CMakeLists.txt
source/blender/python/intern/bpy.c
source/blender/render/extern/include/RE_pipeline.h
source/blender/render/intern/include/render_types.h
source/blender/render/intern/source/pipeline.c
source/blender/render/intern/source/shadeinput.c
source/blender/render/intern/source/shadeoutput.c
source/creator/CMakeLists.txt
source/creator/creator.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 379e9a0,0000000..24b03bd
mode 100755,000000..100755
--- /dev/null
@@@ -1,180 -1,0 +1,180 @@@
-               status = BPY_text_exec(_context, text, reports);
 +//
 +//  Filename         : PythonInterpreter.h
 +//  Author(s)        : Emmanuel Turquin
 +//  Purpose          : Python Interpreter
 +//  Date of creation : 17/04/2003
 +//
 +///////////////////////////////////////////////////////////////////////////////
 +
 +
 +//
 +//  Copyright (C) : Please refer to the COPYRIGHT file distributed 
 +//   with this source distribution. 
 +//
 +//  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.
 +//
 +//  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.
 +//
 +///////////////////////////////////////////////////////////////////////////////
 +
 +#ifndef  PYTHON_INTERPRETER_H
 +# define PYTHON_INTERPRETER_H
 +
 +# include <Python.h>
 +# include <iostream>
 +# include "StringUtils.h"
 +# include "Interpreter.h"
 +
 +//soc
 +extern "C" {
 +#include "MEM_guardedalloc.h"
 +#include "DNA_text_types.h"
 +#include "BKE_main.h"
 +#include "BKE_context.h"
 +#include "BKE_global.h"
 +#include "BKE_report.h"
 +#include "BKE_text.h"
 +#include "BKE_library.h"
 +#include "BPY_extern.h"
 +}
 +
 +class LIB_SYSTEM_EXPORT PythonInterpreter : public Interpreter
 +{
 + public:
 +
 +  PythonInterpreter() {
 +    _language = "Python";
 +      _context = 0;
 +    //Py_Initialize();
 +  }
 +
 +  virtual ~PythonInterpreter() {
 +    //Py_Finalize();
 +  }
 +
 +  void setContext(bContext *C) {
 +      _context = C;
 +  }
 +
 +  int interpretFile(const string& filename) {
 +
 +      initPath();
 +      
 +      ReportList* reports = CTX_wm_reports(_context);
 +      BKE_reports_clear(reports);
 +      char *fn = const_cast<char*>(filename.c_str());
 +#if 0
 +      int status = BPY_filepath_exec(_context, fn, reports);
 +#else
 +      int status;
 +      Text *text = add_text(fn, G.main->name);
 +      if (text) {
-       if (!BPY_text_exec(_context, text, reports)) {
++              status = BPY_text_exec(_context, text, reports, false);
 +              unlink_text(G.main, text);
 +              free_libblock(&G.main->text, text);
 +      } else {
 +              BKE_reportf(reports, RPT_ERROR, "Cannot open file: %s", fn);
 +              status = 0;
 +      }
 +#endif
 +
 +      if (status != 1) {
 +              cout << "\nError executing Python script from PythonInterpreter::interpretFile" << endl;
 +              cout << "File: " << fn << endl;
 +              cout << "Errors: " << endl;
 +              BKE_reports_print(reports, RPT_ERROR);
 +              return 1;
 +      }
 +
 +      // cleaning up
 +      BKE_reports_clear(reports);
 +      
 +      return 0;
 +  }
 +
 +  int interpretText(struct Text *text, const string& name) {
 +
 +      initPath();
 +
 +      ReportList* reports = CTX_wm_reports(_context);
 +
 +      BKE_reports_clear(reports);
 +
-       BPY_text_exec(_context, text, NULL);
++      if (!BPY_text_exec(_context, text, reports, false)) {
 +              cout << "\nError executing Python script from PythonInterpreter::interpretText" << endl;
 +              cout << "Name: " << name << endl;
 +              cout << "Errors: " << endl;
 +              BKE_reports_print(reports, RPT_ERROR);
 +              return 1;
 +      }
 +
 +      BKE_reports_clear(reports);
 +
 +      return 0;
 +  }
 +
 +  struct Options
 +  {
 +    static void setPythonPath(const string& path) {
 +      _path = path;
 +    }
 +
 +    static string getPythonPath() {
 +      return _path;
 +    }
 +  };
 +
 +  void reset() {
 +    Py_Finalize();
 +    Py_Initialize();
 +    _initialized = false;
 +  }
 +
 +private:
 +
 +  bContext* _context;
 +
 +  void initPath() {
 +      if (_initialized)
 +              return;
 +
 +      vector<string> pathnames;
 +      StringUtils::getPathName(_path, "", pathnames);
 +      
 +      struct Text *text = add_empty_text("tmp_freestyle_initpath.txt");
 +      string cmd = "import sys\n";
 +      txt_insert_buf(text, const_cast<char*>(cmd.c_str()));
 +      
 +      for (vector<string>::const_iterator it = pathnames.begin(); it != pathnames.end();++it) {
 +              if ( !it->empty() ) {
 +                      cout << "Adding Python path: " << *it << endl;
 +                      cmd = "sys.path.append(r\"" + *it + "\")\n";
 +                      txt_insert_buf(text, const_cast<char*>(cmd.c_str()));
 +              }
 +      }
 +      
++      BPY_text_exec(_context, text, NULL, false);
 +      
 +      // cleaning up
 +      unlink_text(G.main, text);
 +      free_libblock(&G.main->text, text);
 +      
 +      //PyRun_SimpleString("from Freestyle import *");
 +    _initialized = true;
 +  }
 +
 +  static bool _initialized;
 +  static string _path;
 +};
 +
 +#endif // PYTHON_INTERPRETER_H
Simple merge
@@@ -7,9 -7,8 +7,9 @@@ o = SConscript('intern/SConscript'
  objs += o
  
  incs = '#/intern/guardedalloc #/intern/memutil #/intern/audaspace/intern ../blenkernel ../blenlib ../makesdna intern .'
- incs += ' ../windowmanager ../editors/include ../gpu ../imbuf ../ikplugin ../blenfont'
+ incs += ' ../windowmanager ../editors/include ../gpu ../imbuf ../ikplugin ../blenfont ../blenloader'
  incs += ' ../render/extern/include'
 +incs += ' ../freestyle'
  
  defs = []
  
@@@ -29,9 -29,9 +29,10 @@@ set(IN
        ../../makesdna
        ../../makesrna
        ../../blenkernel
+       ../../blenloader
        ../../windowmanager
        ../../editors/include
 +      ../../freestyle/intern/python
        ../../../../intern/guardedalloc
        ../../../../intern/audaspace/intern
        ${PYTHON_INCLUDE_DIRS}
  
  #include "AUD_PyInit.h"
  
 +#include "BPy_Freestyle.h"
 +
+ PyObject *bpy_package_py= NULL;
  static char bpy_script_paths_doc[] =
  ".. function:: script_paths()\n"
  "\n"
@@@ -172,7 -172,9 +174,9 @@@ static PyObject *bpy_import_test(const 
        else {
                PyErr_Print();
                PyErr_Clear();
 -      }
 +      }       
+       return mod;
  }
  
  /*****************************************************************************
Simple merge
  #include "GPU_draw.h"
  #include "GPU_extensions.h"
  
 +#include "FRS_freestyle.h"
 +
+ #ifdef WITH_BUILDINFO_HEADER
+ #define BUILD_DATE
+ #endif
  /* for passing information between creator and gameengine */
  #ifdef WITH_GAMEENGINE
  #include "GEN_messaging.h"
@@@ -1194,10 -1211,13 +1213,13 @@@ int main(int argc, const char **argv
        setuid(getuid()); /* end superuser */
  #endif
  
+ #ifdef WITH_PYTHON_MODULE
+       G.background= 1; /* python module mode ALWAYS runs in background mode (for now) */
+ #else
        /* for all platforms, even windos has it! */
        if(G.background) signal(SIGINT, blender_esc);   /* ctrl c out bg render */
 -
+ #endif
 +      
        /* background render uses this font too */
        BKE_font_register_builtin(datatoc_Bfont, datatoc_Bfont_size);