[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24182] trunk/blender: Merge of the COLLADA GSoC branch into trunk.
Arystanbek Dyussenov
arystan.d at gmail.com
Fri Oct 30 16:35:50 CET 2009
Revision: 24182
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24182
Author: kazanbas
Date: 2009-10-30 16:35:50 +0100 (Fri, 30 Oct 2009)
Log Message:
-----------
Merge of the COLLADA GSoC branch into trunk.
COLLADA code is disabled by default (it has dependencies requiring manual install).
SCons and CMake builds are supported on Windows and Linux, no Mac building yet. More on building COLLADA code: http://wiki.blender.org/index.php/User:Kazanbas/Building_Collada_Branch.
The detailed command log of the merge (can be useful for educational purposes):
branch=https://svn.blender.org/svnroot/bf-blender/branches/soc-2009-chingachgook
# collada code
svn copy $branch/source/blender/collada source/blender/collada
# operator
svn merge -c 20401,20955,21077,24077,24079 $branch/source/blender/windowmanager/intern/wm_operators.c source/blender/windowmanager/intern/wm_operators.c
# menu
svn merge -c 24079 $branch/release/scripts/ui/space_info.py release/scripts/ui/space_info.py
# scons
svn merge -c 20398 $branch/source/blender/SConscript source/blender/SConscript
svn merge -c 20398,20691,20955,22726 $branch/tools/btools.py tools/btools.py
svn merge -c 20691,20955,22726 $branch/tools/Blender.py tools/Blender.py
svn merge -c 20398,20692,20955 $branch/config/linux2-config.py config/linux2-config.py
svn merge -c 22726 $branch/config/win64-vc-config.py config/win64-vc-config.py
svn merge -c 22726 $branch/config/win32-vc-config.py config/win32-vc-config.py
svn merge -c 24077 $branch/source/blender/windowmanager/SConscript source/blender/windowmanager/SConscript
# cmake
svn merge -c 23319,23905,24077,24158 $branch/CMakeLists.txt CMakeLists.txt
svn merge -c 23319 $branch/source/blender/CMakeLists.txt source/blender/CMakeLists.txt
svn merge -c 23319 $branch/source/creator/CMakeLists.txt source/creator/CMakeLists.txt
svn merge -c 23319 $branch/CMake/macros.cmake CMake/macros.cmake
svn merge -c 24077 $branch/source/blender/windowmanager/CMakeLists.txt source/blender/windowmanager/CMakeLists.txt
Modified Paths:
--------------
trunk/blender/CMake/macros.cmake
trunk/blender/CMakeLists.txt
trunk/blender/config/linux2-config.py
trunk/blender/config/win32-vc-config.py
trunk/blender/config/win64-vc-config.py
trunk/blender/release/scripts/ui/space_info.py
trunk/blender/source/blender/CMakeLists.txt
trunk/blender/source/blender/SConscript
trunk/blender/source/blender/windowmanager/CMakeLists.txt
trunk/blender/source/blender/windowmanager/SConscript
trunk/blender/source/blender/windowmanager/intern/wm_operators.c
trunk/blender/source/creator/CMakeLists.txt
trunk/blender/tools/Blender.py
trunk/blender/tools/btools.py
Added Paths:
-----------
trunk/blender/source/blender/collada/
Modified: trunk/blender/CMake/macros.cmake
===================================================================
--- trunk/blender/CMake/macros.cmake 2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/CMake/macros.cmake 2009-10-30 15:35:50 UTC (rev 24182)
@@ -76,6 +76,11 @@
IF(WITH_FFTW3)
LINK_DIRECTORIES(${FFTW3_LIBPATH})
ENDIF(WITH_FFTW3)
+ IF(WITH_OPENCOLLADA)
+ LINK_DIRECTORIES(${OPENCOLLADA_LIBPATH})
+ LINK_DIRECTORIES(${PCRE_LIBPATH})
+ LINK_DIRECTORIES(${EXPAT_LIBPATH})
+ ENDIF(WITH_OPENCOLLADA)
IF(WIN32)
LINK_DIRECTORIES(${PTHREADS_LIBPATH})
@@ -135,6 +140,11 @@
IF(WITH_FFMPEG)
TARGET_LINK_LIBRARIES(${target} ${FFMPEG_LIB})
ENDIF(WITH_FFMPEG)
+ IF(WITH_OPENCOLLADA)
+ TARGET_LINK_LIBRARIES(${target} ${OPENCOLLADA_LIB})
+ TARGET_LINK_LIBRARIES(${target} ${PCRE_LIB})
+ TARGET_LINK_LIBRARIES(${target} ${EXPAT_LIB})
+ ENDIF(WITH_OPENCOLLADA)
IF(WIN32)
TARGET_LINK_LIBRARIES(${target} ${PTHREADS_LIB})
ENDIF(WIN32)
Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt 2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/CMakeLists.txt 2009-10-30 15:35:50 UTC (rev 24182)
@@ -80,6 +80,7 @@
OPTION(WITH_CXX_GUARDEDALLOC "Enable GuardedAlloc for C++ memory allocation" OFF)
OPTION(WITH_BUILDINFO "Include extra build details" ON)
OPTION(WITH_INSTALL "Install accompanying scripts and language files needed to run blender" ON)
+OPTION(WITH_OPENCOLLADA "Enable OpenCollada Support (http://www.opencollada.org/)" OFF)
IF (APPLE)
OPTION(WITH_COCOA "Use Cocoa framework instead of deprecated Carbon" ON)
@@ -90,6 +91,19 @@
MESSAGE("WARNING: WITH_PLAYER needs WITH_GAMEENGINE")
ENDIF(NOT WITH_GAMEENGINE AND WITH_PLAYER)
+IF (WITH_OPENCOLLADA)
+SET(OPENCOLLADA /usr/local/opencollada CACHE FILEPATH "OpenCollada Directory")
+SET(OPENCOLLADA_LIBPATH ${OPENCOLLADA})
+SET(OPENCOLLADA_LIB OpenCollada)
+SET(PCRE /usr CACHE FILEPATH "PCRE Directory")
+SET(PCRE_LIBPATH ${PCRE}/lib)
+SET(PCRE_LIB pcre)
+SET(EXPAT /usr CACHE FILEPATH "Expat Directory")
+SET(EXPAT_LIBPATH ${EXPAT}/lib)
+SET(EXPAT_LIB expat)
+
+ENDIF (WITH_OPENCOLLADA)
+
# For alternate Python locations the commandline can be used to override detected/default cache settings, e.g:
# On Unix:
# cmake -D PYTHON_LIB=/usr/local/lib/python2.3/config/libpython2.3.so -D PYTHON_INC=/usr/local/include/python2.3 -D PYTHON_BINARY=/usr/local/bin/python2.3 -G "Unix Makefiles" ../blender
Modified: trunk/blender/config/linux2-config.py
===================================================================
--- trunk/blender/config/linux2-config.py 2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/config/linux2-config.py 2009-10-30 15:35:50 UTC (rev 24182)
@@ -151,6 +151,20 @@
BF_OPENGL_LIBPATH = '/usr/X11R6/lib'
BF_OPENGL_LIB_STATIC = '${BF_OPENGL_LIBPATH}/libGL.a ${BF_OPENGL_LIBPATH}/libGLU.a ${BF_OPENGL_LIBPATH}/libXxf86vm.a ${BF_OPENGL_LIBPATH}/libX11.a ${BF_OPENGL_LIBPATH}/libXi.a ${BF_OPENGL_LIBPATH}/libXext.a ${BF_OPENGL_LIBPATH}/libXxf86vm.a'
+WITH_BF_COLLADA = False
+BF_COLLADA = '#source/blender/collada'
+BF_COLLADA_INC = '${BF_COLLADA}'
+BF_COLLADA_LIB = 'bf_collada'
+BF_OPENCOLLADA = ''
+BF_OPENCOLLADA_LIB = 'OpenCollada'
+BF_OPENCOLLADA_LIBPATH = '/usr/lib'
+BF_PCRE = ''
+BF_PCRE_LIB = 'pcre'
+BF_PCRE_LIBPATH = '/usr/lib'
+BF_EXPAT = '/usr'
+BF_EXPAT_LIB = 'expat'
+BF_EXPAT_LIBPATH = '/usr/lib'
+
##
CC = 'gcc'
CXX = 'g++'
Modified: trunk/blender/config/win32-vc-config.py
===================================================================
--- trunk/blender/config/win32-vc-config.py 2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/config/win32-vc-config.py 2009-10-30 15:35:50 UTC (rev 24182)
@@ -138,6 +138,16 @@
WITH_BF_REDCODE = False
BF_REDCODE_INC = '#extern'
+WITH_BF_COLLADA = False
+BF_COLLADA = '#source/blender/collada'
+BF_COLLADA_INC = '${BF_COLLADA}'
+BF_COLLADA_LIB = 'bf_collada'
+
+BF_OPENCOLLADA = LIBDIR + '/opencollada'
+BF_OPENCOLLADA_INC = '${BF_OPENCOLLADA}/include'
+BF_OPENCOLLADA_LIB = 'opencollada'
+BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib'
+
WITH_BF_STATICOPENGL = False
BF_OPENGL_INC = '${BF_OPENGL}/include'
BF_OPENGL_LIBINC = '${BF_OPENGL}/lib'
Modified: trunk/blender/config/win64-vc-config.py
===================================================================
--- trunk/blender/config/win64-vc-config.py 2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/config/win64-vc-config.py 2009-10-30 15:35:50 UTC (rev 24182)
@@ -151,6 +151,16 @@
WITH_BF_REDCODE = False
BF_REDCODE_INC = '#extern'
+WITH_BF_COLLADA = False
+BF_COLLADA = '#source/blender/collada'
+BF_COLLADA_INC = '${BF_COLLADA}'
+BF_COLLADA_LIB = 'bf_collada'
+
+BF_OPENCOLLADA = LIBDIR + '/opencollada'
+BF_OPENCOLLADA_INC = '${BF_OPENCOLLADA}/include'
+BF_OPENCOLLADA_LIB = 'opencollada'
+BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib'
+
WITH_BF_STATICOPENGL = False
BF_OPENGL_INC = '${BF_OPENGL}/include'
BF_OPENGL_LIBINC = '${BF_OPENGL}/lib'
Modified: trunk/blender/release/scripts/ui/space_info.py
===================================================================
--- trunk/blender/release/scripts/ui/space_info.py 2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/release/scripts/ui/space_info.py 2009-10-30 15:35:50 UTC (rev 24182)
@@ -99,13 +99,13 @@
__label__ = "Import"
def draw(self, context):
- pass # dynamic menu
+ self.layout.itemO("WM_OT_collada_import", text="COLLADA (.dae)...")
class INFO_MT_file_export(dynamic_menu.DynMenu):
__label__ = "Export"
def draw(self, context):
- pass # dynamic menu
+ self.layout.itemO("WM_OT_collada_export", text="COLLADA (.dae)...")
class INFO_MT_file_external_data(bpy.types.Menu):
__label__ = "External Data"
Modified: trunk/blender/source/blender/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/CMakeLists.txt 2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/source/blender/CMakeLists.txt 2009-10-30 15:35:50 UTC (rev 24182)
@@ -58,3 +58,7 @@
ADD_SUBDIRECTORY(python)
ENDIF(WITH_PYTHON)
+IF(WITH_OPENCOLLADA)
+ ADD_SUBDIRECTORY(collada)
+ENDIF(WITH_OPENCOLLADA)
+
Modified: trunk/blender/source/blender/SConscript
===================================================================
--- trunk/blender/source/blender/SConscript 2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/source/blender/SConscript 2009-10-30 15:35:50 UTC (rev 24182)
@@ -33,3 +33,6 @@
if env['WITH_BF_QUICKTIME']:
SConscript (['quicktime/SConscript'])
+
+if env['WITH_BF_COLLADA']:
+ SConscript (['collada/SConscript'])
Copied: trunk/blender/source/blender/collada (from rev 24159, branches/soc-2009-chingachgook/source/blender/collada)
Modified: trunk/blender/source/blender/windowmanager/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/windowmanager/CMakeLists.txt 2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/source/blender/windowmanager/CMakeLists.txt 2009-10-30 15:35:50 UTC (rev 24182)
@@ -50,6 +50,10 @@
ADD_DEFINITIONS(-DWITH_OPENEXR)
ENDIF(WITH_OPENEXR)
+IF(WITH_OPENCOLLADA)
+ ADD_DEFINITIONS(-DWITH_COLLADA)
+ENDIF(WITH_OPENCOLLADA)
+
IF(WITH_QUICKTIME)
SET(INC ${INC} ../quicktime ${QUICKTIME_INC})
ADD_DEFINITIONS(-DWITH_QUICKTIME)
Modified: trunk/blender/source/blender/windowmanager/SConscript
===================================================================
--- trunk/blender/source/blender/windowmanager/SConscript 2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/source/blender/windowmanager/SConscript 2009-10-30 15:35:50 UTC (rev 24182)
@@ -19,6 +19,9 @@
if not env['WITH_BF_PYTHON']:
defs.append('DISABLE_PYTHON')
+if env['WITH_BF_COLLADA']:
+ defs.append('WITH_COLLADA')
+
if env['OURPLATFORM'] == 'linux2':
cflags='-pthread'
incs += ' ../../../extern/binreloc/include'
Modified: trunk/blender/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_operators.c 2009-10-30 13:58:43 UTC (rev 24181)
+++ trunk/blender/source/blender/windowmanager/intern/wm_operators.c 2009-10-30 15:35:50 UTC (rev 24182)
@@ -1345,6 +1345,105 @@
}
+/* XXX: move these collada operators to a more appropriate place */
+#ifdef WITH_COLLADA
+
+#include "../../collada/collada.h"
+
+static int wm_collada_export_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ //char name[FILE_MAX];
+ //BLI_strncpy(name, G.sce, FILE_MAX);
+ //untitled(name);
+
+ /* RNA_string_set(op->ptr, "path", "/tmp/test.dae"); */
+
+ WM_event_add_fileselect(C, op);
+
+ return OPERATOR_RUNNING_MODAL;
+}
+
+/* function used for WM_OT_save_mainfile too */
+static int wm_collada_export_exec(bContext *C, wmOperator *op)
+{
+ char filename[FILE_MAX];
+
+ if(RNA_property_is_set(op->ptr, "path"))
+ RNA_string_get(op->ptr, "path", filename);
+ else {
+ BLI_strncpy(filename, G.sce, FILE_MAX);
+ untitled(filename);
+ }
+
+ //WM_write_file(C, filename, op->reports);
+ collada_export(CTX_data_scene(C), filename);
+
+ /* WM_event_add_notifier(C, NC_WM|ND_FILESAVE, NULL); */
+
+ return OPERATOR_FINISHED;
+}
+
+static void WM_OT_collada_export(wmOperatorType *ot)
+{
+ ot->name= "Export COLLADA";
+ ot->idname= "WM_OT_collada_export";
+
+ ot->invoke= wm_collada_export_invoke;
+ ot->exec= wm_collada_export_exec;
+ ot->poll= WM_operator_winactive;
+
+ ot->flag= 0;
+
+ RNA_def_property(ot->srna, "path", PROP_STRING, PROP_FILEPATH);
+}
+
+static int wm_collada_import_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ /* RNA_string_set(op->ptr, "path", "/tmp/test.dae"); */
+
+ WM_event_add_fileselect(C, op);
+
+ return OPERATOR_RUNNING_MODAL;
+}
+
+/* function used for WM_OT_save_mainfile too */
+static int wm_collada_import_exec(bContext *C, wmOperator *op)
+{
+ char filename[FILE_MAX];
+
+ if(RNA_property_is_set(op->ptr, "path"))
+ RNA_string_get(op->ptr, "path", filename);
+ else {
+ BLI_strncpy(filename, G.sce, FILE_MAX);
+ untitled(filename);
+ }
+
+ //WM_write_file(C, filename, op->reports);
+ collada_import(C, filename);
+
+ /* WM_event_add_notifier(C, NC_WM|ND_FILESAVE, NULL); */
+
+ return OPERATOR_FINISHED;
+}
+
+static void WM_OT_collada_import(wmOperatorType *ot)
+{
+ ot->name= "Import COLLADA";
+ ot->idname= "WM_OT_collada_import";
+
+ ot->invoke= wm_collada_import_invoke;
+ ot->exec= wm_collada_import_exec;
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list