diff options
author | Nathan Letwory <nathan@letworyinteractive.com> | 2010-08-26 10:58:32 +0400 |
---|---|---|
committer | Nathan Letwory <nathan@letworyinteractive.com> | 2010-08-26 10:58:32 +0400 |
commit | 92422ba4525dedfc1687dfff14e11ee805a30c23 (patch) | |
tree | 305c95a3af396ebd0bbef23e68ac9c2408cc76d7 /source/blender/collada | |
parent | e7c4a0d53b950e5be77528efad907def59d18a8f (diff) |
Patch [#23389] Add authorship information to exported COLLADA files
Contributed by Imran Syed (freakabcd).
This adds basic authoring tool and author info ("Blender User" for now).
NOTE: Linux and OSX users need now to update their OpenCOLLADA libs - Blender should now compile fine with their latest revision.
Made some changes to the original patch to ensure linking is done correctly.
Some small cleanups for scons too.
Diffstat (limited to 'source/blender/collada')
-rw-r--r-- | source/blender/collada/CMakeLists.txt | 6 | ||||
-rw-r--r-- | source/blender/collada/DocumentExporter.cpp | 20 | ||||
-rw-r--r-- | source/blender/collada/SConscript | 5 |
3 files changed, 23 insertions, 8 deletions
diff --git a/source/blender/collada/CMakeLists.txt b/source/blender/collada/CMakeLists.txt index 420650a6ff7..fa582673746 100644 --- a/source/blender/collada/CMakeLists.txt +++ b/source/blender/collada/CMakeLists.txt @@ -61,4 +61,8 @@ SET(INC ENDIF(APPLE) -BLENDERLIB(bf_collada "${SRC}" "${INC}") +IF(WITH_BUILDINFO) + ADD_DEFINITIONS(-DNAN_BUILDINFO) +ENDIF(WITH_BUILDINFO) + +BLENDERLIB(bf_collada "${SRC}" "${INC}")
\ No newline at end of file diff --git a/source/blender/collada/DocumentExporter.cpp b/source/blender/collada/DocumentExporter.cpp index ca3aada80c0..72f280d7ce2 100644 --- a/source/blender/collada/DocumentExporter.cpp +++ b/source/blender/collada/DocumentExporter.cpp @@ -48,10 +48,14 @@ extern "C" #include "BLI_path_util.h" #include "BLI_fileops.h" #include "ED_keyframing.h" +#ifdef NAN_BUILDINFO +extern char build_rev[]; +#endif } #include "MEM_guardedalloc.h" +#include "BKE_blender.h" // version info #include "BKE_scene.h" #include "BKE_global.h" #include "BKE_main.h" @@ -1296,7 +1300,7 @@ private: int offset = 0; input.push_back(COLLADASW::Input(COLLADASW::JOINT, // constant declared in COLLADASWInputList.h COLLADASW::URI(COLLADABU::Utils::EMPTY_STRING, joints_source_id), offset++)); - input.push_back(COLLADASW::Input(COLLADASW::WEIGHT, + input.push_back(COLLADASW::Input(COLLADASW::WEIGHT, COLLADASW::URI(COLLADABU::Utils::EMPTY_STRING, weights_source_id), offset++)); weights.setCount(me->totvert); @@ -1719,11 +1723,7 @@ public: // most widespread de-facto standard. texture.setProfileName("FCOLLADA"); texture.setChildElementName("bump"); -#ifdef WIN32 // currently, Windows builds are using revision 746 of OpenCollada while Linux and Mac are using an older revision 721 ep.addExtraTechniqueColorOrTexture(COLLADASW::ColorOrTexture(texture)); -#else - ep.setExtraTechniqueColorOrTexture(COLLADASW::ColorOrTexture(texture)); -#endif } } // performs the actual writing @@ -2536,6 +2536,15 @@ void DocumentExporter::exportCurrentScene(Scene *sce, const char* filename) // XXX ask blender devs about this? asset.setUnit("decimetre", 0.1); asset.setUpAxisType(COLLADASW::Asset::Z_UP); + // TODO: need an Author field in userpref + asset.getContributor().mAuthor = "Blender User"; +#ifdef NAN_BUILDINFO + char version_buf[128]; + sprintf(version_buf, "Blender %d.%02d.%d r%s", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION, build_rev); + asset.getContributor().mAuthoringTool = version_buf; +#else + asset.getContributor().mAuthoringTool = "Blender 2.5x"; +#endif asset.add(); // <library_cameras> @@ -2596,4 +2605,3 @@ NOTES: * AnimationExporter::sample_animation enables all curves on armature, this is undesirable for a user */ - diff --git a/source/blender/collada/SConscript b/source/blender/collada/SConscript index 91c3a381272..09402dcda64 100644 --- a/source/blender/collada/SConscript +++ b/source/blender/collada/SConscript @@ -28,6 +28,7 @@ Import ('env') sources = env.Glob('*.cpp') +defs = [] # relative paths to include dirs, space-separated, string if env['OURPLATFORM']=='darwin': @@ -35,5 +36,7 @@ if env['OURPLATFORM']=='darwin': else: incs = '../blenlib ../blenkernel ../windowmanager ../makesdna ../makesrna ../editors/include ../../../intern/guardedalloc [OPENCOLLADA]/COLLADAStreamWriter/include [OPENCOLLADA]/COLLADABaseUtils/include [OPENCOLLADA]/COLLADAFramework/include [OPENCOLLADA]/COLLADASaxFrameworkLoader/include '.replace('[OPENCOLLADA]', env['BF_OPENCOLLADA_INC']) -env.BlenderLib ('bf_collada', sources, Split(incs), [], libtype='core', priority=200 ) +if env['BF_BUILDINFO']: + defs.append('NAN_BUILDINFO') +env.BlenderLib ('bf_collada', sources, Split(incs), defs, libtype='core', priority=200 ) |