Commit: 829cf337800f1c6865e69e66ce839507dae3a400
Author: Lukas Tönne
Date: Mon Mar 23 18:11:28 2015 +0100
Branches: alembic
https://developer.blender.org/rB829cf337800f1c6865e69e66ce839507dae3a400
Use a stub factory when Alembic is disabled to avoid invalid pointer
access.
===================================================================
M source/blender/pointcache/PTC_api.cpp
===================================================================
diff --git a/source/blender/pointcache/PTC_api.cpp
b/source/blender/pointcache/PTC_api.cpp
index cc29eb3..08f7bb9 100644
--- a/source/blender/pointcache/PTC_api.cpp
+++ b/source/blender/pointcache/PTC_api.cpp
@@ -44,9 +44,40 @@ extern "C" {
using namespace PTC;
+class StubFactory : public Factory {
+ const std::string &get_default_extension() { static std::string ext =
""; return ext; }
+ WriterArchive *open_writer_archive(Scene *scene, const std::string
&name, ErrorHandler *error_handler) { return NULL; }
+ ReaderArchive *open_reader_archive(Scene *scene, const std::string
&name, ErrorHandler *error_handler) { return NULL; }
+ Writer *create_writer_object(const std::string &name, Scene *scene,
Object *ob) { return NULL; }
+ Reader *create_reader_object(const std::string &name, Object *ob) {
return NULL; }
+ Writer *create_writer_group(const std::string &name, Group *group) {
return NULL; }
+ Reader *create_reader_group(const std::string &name, Group *group) {
return NULL; }
+ Writer *create_writer_particles(const std::string &name, Object *ob,
ParticleSystem *psys) { return NULL; }
+ Reader *create_reader_particles(const std::string &name, Object *ob,
ParticleSystem *psys) { return NULL; }
+ Writer *create_writer_hair_dynamics(const std::string &name, Object
*ob, ParticleSystem *psys) { return NULL; }
+ Reader *create_reader_hair_dynamics(const std::string &name, Object
*ob, ParticleSystem *psys) { return NULL; }
+ Writer *create_writer_particles_pathcache_parents(const std::string
&name, Object *ob, ParticleSystem *psys) { return NULL; }
+ Reader *create_reader_particles_pathcache_parents(const std::string
&name, Object *ob, ParticleSystem *psys) { return NULL; }
+ Writer *create_writer_particles_pathcache_children(const std::string
&name, Object *ob, ParticleSystem *psys) { return NULL; }
+ Reader *create_reader_particles_pathcache_children(const std::string
&name, Object *ob, ParticleSystem *psys) { return NULL; }
+ Writer *create_writer_cloth(const std::string &name, Object *ob,
ClothModifierData *clmd) { return NULL; }
+ Reader *create_reader_cloth(const std::string &name, Object *ob,
ClothModifierData *clmd) { return NULL; }
+ Writer *create_writer_derived_mesh(const std::string &name, Object *ob,
DerivedMesh **dm_ptr) { return NULL; }
+ Reader *create_reader_derived_mesh(const std::string &name, Object *ob)
{ return NULL; }
+ Writer *create_writer_derived_final_realtime(const std::string &name,
Object *ob) { return NULL; }
+ Writer *create_writer_derived_final_render(const std::string &name,
Scene *scene, Object *ob, DerivedMesh **render_dm_ptr) { return NULL; }
+ Writer *create_writer_cache_modifier_realtime(const std::string &name,
Object *ob, CacheModifierData *cmd) { return NULL; }
+ Writer *create_writer_cache_modifier_render(const std::string &name,
Scene *scene, Object *ob, CacheModifierData *cmd) { return NULL; }
+ Writer *create_writer_dupligroup(const std::string &name,
EvaluationContext *eval_ctx, Scene *scene, Group *group, CacheLibrary
*cachelib) { return NULL; }
+ Reader *create_reader_duplicache(const std::string &name, Group *group,
DupliCache *dupcache) { return NULL; }
+ Reader *create_reader_duplicache_object(const std::string &name, Object
*ob, DupliObjectData *data) { return NULL; }
+};
+
#ifndef WITH_PTC_ALEMBIC
void PTC_alembic_init()
{
+ static StubFactory stub_factory;
+ PTC::Factory::alembic = &stub_factory;
}
#endif
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs