Merged changes in the trunk up to revision 34996.
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>
Sat, 19 Feb 2011 23:51:18 +0000 (23:51 +0000)
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>
Sat, 19 Feb 2011 23:51:18 +0000 (23:51 +0000)
Conflicts resolved:
C:\bf-blender\soc-2008-mxcurioni\doc\python_api\sphinx_doc_gen.py
C:\bf-blender\soc-2008-mxcurioni\source\blender\makesrna\RNA_types.h
C:\bf-blender\soc-2008-mxcurioni\source\blender\render\SConscript

37 files changed:
1  2 
doc/python_api/sphinx_doc_gen.py
release/scripts/ui/properties_render.py
release/scripts/ui/space_dopesheet.py
release/scripts/ui/space_userpref.py
source/blender/blenkernel/BKE_main.h
source/blender/blenkernel/CMakeLists.txt
source/blender/blenkernel/SConscript
source/blender/blenkernel/intern/object.c
source/blender/blenlib/intern/bpath.c
source/blender/blenloader/intern/readfile.c
source/blender/editors/interface/interface_templates.c
source/blender/editors/render/render_ops.c
source/blender/editors/render/render_shading.c
source/blender/editors/space_outliner/outliner.c
source/blender/editors/transform/transform.c
source/blender/makesdna/DNA_ID.h
source/blender/makesdna/DNA_action_types.h
source/blender/makesdna/DNA_material_types.h
source/blender/makesdna/DNA_scene_types.h
source/blender/makesdna/intern/makesdna.c
source/blender/makesrna/RNA_access.h
source/blender/makesrna/RNA_enum_types.h
source/blender/makesrna/RNA_types.h
source/blender/makesrna/intern/makesrna.c
source/blender/makesrna/intern/rna_ID.c
source/blender/makesrna/intern/rna_action.c
source/blender/makesrna/intern/rna_internal.h
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/CMakeLists.txt
source/blender/render/SConscript
source/blender/render/intern/source/pipeline.c
source/blender/render/intern/source/shadeinput.c
source/creator/CMakeLists.txt
source/creator/creator.c

@@@ -47,6 -47,45 +47,46 @@@ For PDF generatio
      make
  '''
  
+ # Switch for quick testing
+ if 1:
+     # full build
+     EXCLUDE_MODULES = ()
+     FILTER_BPY_TYPES = None
+     FILTER_BPY_OPS = None
+ else:
+     # for testing so doc-builds dont take so long.
+     EXCLUDE_MODULES = (
+         # "bpy.context",
+         "bpy.app",
+         "bpy.path",
+         "bpy.data",
+         #"bpy.props",
+         "bpy.utils",
+         "bpy.context",
+         # "bpy.types",  # supports filtering
+         "bpy.ops",  # supports filtering
+         "bge",
+         "aud",
+         "bgl",
+         "blf",
+         "mathutils",
+         "mathutils.geometry",
++        "Freestyle",
+     )
+     FILTER_BPY_TYPES = ("PropertyGroup", "Panel", "Menu", "Operator", "RenderEngine")  # allow
+     FILTER_BPY_OPS = ("import.scene", )  # allow
+     # for quick rebuilds
+     """
+ rm -rf /b/doc/python_api/sphinx-* && \
+ ./blender.bin --background --factory-startup --python  doc/python_api/sphinx_doc_gen.py && \
+ sphinx-build doc/python_api/sphinx-in doc/python_api/sphinx-out
+     """
  # import rpdb2; rpdb2.start_embedded_debugger('test')
  
  import os
@@@ -821,7 -810,255 +818,257 @@@ def pyrna2sphinx(BASEPATH)
              if location != (None, None):
                  fw("   :file: `%s <%s/%s>`_:%d\n\n" % (location[0], API_BASEURL, location[0], location[1]))
  
-     write_ops()
+     if "bpy.ops" not in EXCLUDE_MODULES:
+         write_ops()
+ def rna2sphinx(BASEPATH):
+     try:
+         os.mkdir(BASEPATH)
+     except:
+         pass
+     # conf.py - empty for now
+     filepath = os.path.join(BASEPATH, "conf.py")
+     file = open(filepath, "w")
+     fw = file.write
+     version_string = ".".join(str(v) for v in bpy.app.version)
+     if bpy.app.build_revision != "Unknown":
+         version_string = version_string + " r" + bpy.app.build_revision
+     # for use with files
+     version_string_fp = "_".join(str(v) for v in bpy.app.version)
+     fw("project = 'Blender'\n")
+     # fw("master_doc = 'index'\n")
+     fw("copyright = u'Blender Foundation'\n")
+     fw("version = '%s - UNSTABLE API'\n" % version_string)
+     fw("release = '%s - UNSTABLE API'\n" % version_string)
+     fw("html_theme = 'blender-org'\n")
+     fw("html_theme_path = ['../']\n")
+     fw("html_favicon = 'favicon.ico'\n")
+     # not helpful since the source us generated, adds to upload size.
+     fw("html_copy_source = False\n")
+     fw("\n")
+     # needed for latex, pdf gen
+     fw("latex_documents = [ ('contents', 'contents.tex', 'Blender Index', 'Blender Foundation', 'manual'), ]\n")
+     fw("latex_paper_size = 'a4paper'\n")
+     file.close()
+     # main page needed for sphinx (index.html)
+     filepath = os.path.join(BASEPATH, "contents.rst")
+     file = open(filepath, "w")
+     fw = file.write
+     fw("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n")
+     fw(" Blender Documentation contents\n")
+     fw("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n")
+     fw("\n")
+     fw("This document is an API reference for Blender %s. built %s.\n" % (version_string, bpy.app.build_date))
+     fw("\n")
+     fw("| An introduction to Blender and Python can be found at `Quickstart Intro <http://wiki.blender.org/index.php/Dev:2.5/Py/API/Intro>`_,\n")
+     fw("| For a more general explanation of blender/python see the `API Overview <http://wiki.blender.org/index.php/Dev:2.5/Py/API/Overview>`_\n")
+     fw("\n")
+     fw("`A PDF version of this document is also available <blender_python_reference_%s.pdf>`_\n" % version_string_fp)
+     fw("\n")
+     fw(".. warning:: The Python API in Blender is **UNSTABLE**, It should only be used for testing, any script written now may break in future releases.\n")
+     fw("   \n")
+     fw("   The following areas are subject to change.\n")
+     fw("      * operator names and arguments\n")
+     fw("      * render api\n")
+     fw("      * function calls with the data api (any function calls with values accessed from bpy.data), including functions for importing and exporting meshes\n")
+     fw("      * class registration (Operator, Panels, Menus, Headers)\n")
+     fw("      * modules: bpy.props, blf)\n")
+     fw("      * members in the bpy.context have to be reviewed\n")
+     fw("      * python defined modal operators, especially drawing callbacks are highly experemental\n")
+     fw("   \n")
+     fw("   These parts of the API are relatively stable and are unlikely to change significantly\n")
+     fw("      * data API, access to attributes of blender data such as mesh verts, material color, timeline frames and scene objects\n")
+     fw("      * user interface functions for defining buttons, creation of menus, headers, panels\n")
+     fw("      * modules: bgl and mathutils\n")
+     fw("      * game engine modules\n")
+     fw("\n")
+     fw("===================\n")
+     fw("Application Modules\n")
+     fw("===================\n")
+     fw("\n")
+     fw(".. toctree::\n")
+     fw("   :maxdepth: 1\n\n")
+     if "bpy.context" not in EXCLUDE_MODULES:
+         fw("   bpy.context.rst\n\n")  # note: not actually a module
+     if "bpy.data" not in EXCLUDE_MODULES:
+         fw("   bpy.data.rst\n\n")  # note: not actually a module
+     if "bpy.ops" not in EXCLUDE_MODULES:
+         fw("   bpy.ops.rst\n\n")
+     if "bpy.types" not in EXCLUDE_MODULES:
+         fw("   bpy.types.rst\n\n")
+     # py modules
+     if "bpy.utils" not in EXCLUDE_MODULES:
+         fw("   bpy.utils.rst\n\n")
+     if "bpy.path" not in EXCLUDE_MODULES:
+         fw("   bpy.path.rst\n\n")
+     if "bpy.app" not in EXCLUDE_MODULES:
+         fw("   bpy.app.rst\n\n")
+     # C modules
+     if "bpy.props" not in EXCLUDE_MODULES:
+         fw("   bpy.props.rst\n\n")
+     fw("==================\n")
+     fw("Standalone Modules\n")
+     fw("==================\n")
+     fw("\n")
+     fw(".. toctree::\n")
+     fw("   :maxdepth: 1\n\n")
+     if "mathutils" not in EXCLUDE_MODULES:
+         fw("   mathutils.rst\n\n")
+     if "mathutils.geometry" not in EXCLUDE_MODULES:
+         fw("   mathutils.geometry.rst\n\n")
++    if "Freestyle" not in EXCLUDE_MODULES:
++        fw("   Freestyle.rst\n\n")
+     # XXX TODO
+     #fw("   bgl.rst\n\n")
+     if "blf" not in EXCLUDE_MODULES:
+         fw("   blf.rst\n\n")
+     if "aud" not in EXCLUDE_MODULES:
+         fw("   aud.rst\n\n")
+     # game engine
+     if "bge" not in EXCLUDE_MODULES:
+         fw("===================\n")
+         fw("Game Engine Modules\n")
+         fw("===================\n")
+         fw("\n")
+         fw(".. toctree::\n")
+         fw("   :maxdepth: 1\n\n")
+         fw("   bge.types.rst\n\n")
+         fw("   bge.logic.rst\n\n")
+         fw("   bge.render.rst\n\n")
+         fw("   bge.events.rst\n\n")
+     file.close()
+     # internal modules
+     if "bpy.ops" not in EXCLUDE_MODULES:
+         filepath = os.path.join(BASEPATH, "bpy.ops.rst")
+         file = open(filepath, "w")
+         fw = file.write
+         fw("Operators (bpy.ops)\n")
+         fw("===================\n\n")
+         write_example_ref("", fw, "bpy.ops")
+         fw(".. toctree::\n")
+         fw("   :glob:\n\n")
+         fw("   bpy.ops.*\n\n")
+         file.close()
+     if "bpy.types" not in EXCLUDE_MODULES:
+         filepath = os.path.join(BASEPATH, "bpy.types.rst")
+         file = open(filepath, "w")
+         fw = file.write
+         fw("Types (bpy.types)\n")
+         fw("=================\n\n")
+         fw(".. toctree::\n")
+         fw("   :glob:\n\n")
+         fw("   bpy.types.*\n\n")
+         file.close()
+     if "bpy.data" not in EXCLUDE_MODULES:
+         # not actually a module, only write this file so we
+         # can reference in the TOC
+         filepath = os.path.join(BASEPATH, "bpy.data.rst")
+         file = open(filepath, "w")
+         fw = file.write
+         fw("Data Access (bpy.data)\n")
+         fw("======================\n\n")
+         fw(".. module:: bpy\n")
+         fw("\n")
+         fw("This module is used for all blender/python access.\n")
+         fw("\n")
+         fw(".. data:: data\n")
+         fw("\n")
+         fw("   Access to blenders internal data\n")
+         fw("\n")
+         fw("   :type: :class:`bpy.types.BlendData`\n")
+         fw("\n")
+         fw(".. literalinclude:: ../examples/bpy.data.py\n")
+         file.close()
+     EXAMPLE_SET_USED.add("bpy.data")
+     module = None
+     if "bpy.context" not in EXCLUDE_MODULES:
+         # one of a kind, context doc (uses ctypes to extract info!)
+         pycontext2sphinx(BASEPATH)
+     # python modules
+     if "bpy.utils" not in EXCLUDE_MODULES:
+         from bpy import utils as module
+         pymodule2sphinx(BASEPATH, "bpy.utils", module, "Utilities (bpy.utils)")
+     if "bpy.path" not in EXCLUDE_MODULES:
+         from bpy import path as module
+         pymodule2sphinx(BASEPATH, "bpy.path", module, "Path Utilities (bpy.path)")
+     # C modules
+     if "bpy.app" not in EXCLUDE_MODULES:
+         from bpy import app as module
+         pymodule2sphinx(BASEPATH, "bpy.app", module, "Application Data (bpy.app)")
+     if "bpy.props" not in EXCLUDE_MODULES:
+         from bpy import props as module
+         pymodule2sphinx(BASEPATH, "bpy.props", module, "Property Definitions (bpy.props)")
+     if "mathutils" not in EXCLUDE_MODULES:
+         import mathutils as module
+         pymodule2sphinx(BASEPATH, "mathutils", module, "Math Types & Utilities (mathutils)")
+     if "mathutils.geometry" not in EXCLUDE_MODULES:
+         import mathutils.geometry as module
+         pymodule2sphinx(BASEPATH, "mathutils.geometry", module, "Geometry Utilities (mathutils.geometry)")
+     if "mathutils.geometry" not in EXCLUDE_MODULES:
+         import blf as module
+         pymodule2sphinx(BASEPATH, "blf", module, "Font Drawing (blf)")
+     # XXX TODO
+     #import bgl as module
+     #pymodule2sphinx(BASEPATH, "bgl", module, "Blender OpenGl wrapper (bgl)")
+     #del module
+     if "aud" not in EXCLUDE_MODULES:
+         import aud as module
+         pymodule2sphinx(BASEPATH, "aud", module, "Audio System (aud)")
+     del module
+     ## game engine
+     import shutil
+     # copy2 keeps time/date stamps
+     if "bge" not in EXCLUDE_MODULES:
+         shutil.copy2(os.path.join(BASEPATH, "..", "rst", "bge.types.rst"), BASEPATH)
+         shutil.copy2(os.path.join(BASEPATH, "..", "rst", "bge.logic.rst"), BASEPATH)
+         shutil.copy2(os.path.join(BASEPATH, "..", "rst", "bge.render.rst"), BASEPATH)
+         shutil.copy2(os.path.join(BASEPATH, "..", "rst", "bge.events.rst"), BASEPATH)
+     if 0:
+         filepath = os.path.join(BASEPATH, "bpy.rst")
+         file = open(filepath, "w")
+         fw = file.write
+         fw("\n")
+         title = ":mod:`bpy` --- Blender Python Module"
+         fw("%s\n%s\n\n" % (title, "=" * len(title)))
+         fw(".. module:: bpy.types\n\n")
+         file.close()
+     # bpy.types and bpy.ops
+     pyrna2sphinx(BASEPATH)
  
      file.close()
  
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -159,8 -145,9 +160,9 @@@ void BLI_bpathIterator_init(struct BPat
  static void BLI_bpathIterator_alloc(struct BPathIterator **bpi) {
        *bpi= MEM_mallocN(sizeof(BPathIterator), "BLI_bpathIterator_alloc");
  }
+ #endif
  
 -void BLI_bpathIterator_free(struct BPathIterator *bpi) {
 +void BLI_bpathIterator_free( struct BPathIterator *bpi ) {
        if (bpi->seqdata.seqar)
                MEM_freeN((void *)bpi->seqdata.seqar);
        bpi->seqdata.seqar= NULL;
Simple merge
@@@ -219,12 -216,19 +216,23 @@@ extern StructRNA RNA_FModifierLimits
  extern StructRNA RNA_FModifierNoise;
  extern StructRNA RNA_FModifierPython;
  extern StructRNA RNA_FModifierStepped;
+ extern StructRNA RNA_FieldSettings;
+ extern StructRNA RNA_FileSelectParams;
+ extern StructRNA RNA_FloatProperty;
+ extern StructRNA RNA_FloorConstraint;
+ extern StructRNA RNA_FluidFluidSettings;
+ extern StructRNA RNA_FluidSettings;
+ extern StructRNA RNA_FluidSimulationModifier;
  extern StructRNA RNA_FollowPathConstraint;
 +extern StructRNA RNA_FreestyleLineStyle;
 +extern StructRNA RNA_FreestyleLineSet;
 +extern StructRNA RNA_FreestyleModuleSettings;
 +extern StructRNA RNA_FreestyleSettings;
  extern StructRNA RNA_Function;
+ extern StructRNA RNA_GPencilFrame;
+ extern StructRNA RNA_GPencilLayer;
+ extern StructRNA RNA_GPencilStroke;
+ extern StructRNA RNA_GPencilStrokePoint;
  extern StructRNA RNA_GameBooleanProperty;
  extern StructRNA RNA_GameFloatProperty;
  extern StructRNA RNA_GameIntProperty;
@@@ -350,32 -350,31 +350,32 @@@ typedef struct ExtensionRNA 
  
  /* fake struct definitions, needed otherwise collections end up owning the C
   * structs like 'Object' when defined first */
- #define MainActions           Main
- #define MainArmatures         Main
- #define MainBrushes           Main
- #define MainCameras           Main
- #define MainCurves            Main
- #define MainFonts             Main
- #define MainGreasePencils     Main
- #define MainGroups            Main
- #define MainImages            Main
- #define MainLamps             Main
- #define MainLattices          Main
- #define MainLibraries         Main
- #define MainLineStyles                Main
- #define MainMaterials         Main
- #define MainMeshes            Main
- #define MainMetaBalls         Main
- #define MainNodeTrees         Main
- #define MainObjects           Main
- #define MainParticles         Main
- #define MainScenes            Main
- #define MainScreens           Main
- #define MainSounds            Main
- #define MainTexts             Main
- #define MainTextures          Main
- #define MainWindowManagers    Main
- #define MainWorlds            Main
+ #define BlendDataActions              Main
+ #define BlendDataArmatures            Main
+ #define BlendDataBrushes              Main
+ #define BlendDataCameras              Main
+ #define BlendDataCurves               Main
+ #define BlendDataFonts                Main
+ #define BlendDataGreasePencils        Main
+ #define BlendDataGroups               Main
+ #define BlendDataImages               Main
+ #define BlendDataLamps                Main
+ #define BlendDataLattices             Main
+ #define BlendDataLibraries            Main
++#define BlendDataLineStyles           Main
+ #define BlendDataMaterials            Main
+ #define BlendDataMeshes               Main
+ #define BlendDataMetaBalls            Main
+ #define BlendDataNodeTrees            Main
+ #define BlendDataObjects              Main
+ #define BlendDataParticles            Main
+ #define BlendDataScenes               Main
+ #define BlendDataScreens              Main
+ #define BlendDataSounds               Main
+ #define BlendDataTexts                Main
+ #define BlendDataTextures             Main
+ #define BlendDataWindowManagers       Main
+ #define BlendDataWorlds               Main
  
  #ifdef __cplusplus
  }
@@@ -787,9 -769,9 +787,9 @@@ void RNA_def_main_window_managers(Blend
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
 -
 +    
-       RNA_def_property_srna(cprop, "MainWindowManagers");
-       srna= RNA_def_struct(brna, "MainWindowManagers", NULL);
+       RNA_def_property_srna(cprop, "BlendDataWindowManagers");
+       srna= RNA_def_struct(brna, "BlendDataWindowManagers", NULL);
        RNA_def_struct_ui_text(srna, "Main Window Managers", "Collection of window managers");
  
        func= RNA_def_function(srna, "tag", "rna_Main_window_managers_tag");
Simple merge
@@@ -38,8 -38,8 +38,9 @@@ set(IN
        ../imbuf
        ../../kernel/gen_messaging
        ../../../intern/smoke/extern
+       ../../../intern/mikktspace
        ../../../intern/guardedalloc
 +      ../freestyle
  )
  
  set(SRC
@@@ -6,7 -6,7 +6,8 @@@ raysources = env.Glob('intern/raytrace/
  
  incs = 'intern/include #/intern/guardedalloc ../blenlib ../makesdna ../makesrna'
  incs += ' extern/include ../blenkernel ../radiosity/extern/include ../imbuf'
- incs += ' ../include ../blenloader ../freestyle ../../../intern/smoke/extern'
+ incs += ' ../include ../blenloader ../../../intern/smoke/extern ../../../intern/mikktspace'
++incs += ' ../freestyle'
  
  cflags_raytrace = env['CCFLAGS']
  cxxflags_raytrace = env['CXXFLAGS']
Simple merge
Simple merge