[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38372] trunk/blender: cmake option to build without smoke sim: WITH_MOD_SMOKE

Campbell Barton ideasman42 at gmail.com
Wed Jul 13 20:40:22 CEST 2011


Revision: 38372
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38372
Author:   campbellbarton
Date:     2011-07-13 18:40:21 +0000 (Wed, 13 Jul 2011)
Log Message:
-----------
cmake option to build without smoke sim: WITH_MOD_SMOKE

Modified Paths:
--------------
    trunk/blender/CMakeLists.txt
    trunk/blender/intern/CMakeLists.txt
    trunk/blender/intern/smoke/CMakeLists.txt
    trunk/blender/source/blender/blenkernel/CMakeLists.txt
    trunk/blender/source/blender/blenkernel/SConscript
    trunk/blender/source/blender/blenkernel/intern/pointcache.c
    trunk/blender/source/blender/blenkernel/intern/smoke.c
    trunk/blender/source/blender/gpu/CMakeLists.txt
    trunk/blender/source/blender/gpu/SConscript
    trunk/blender/source/blender/gpu/intern/gpu_draw.c
    trunk/blender/source/blender/render/CMakeLists.txt
    trunk/blender/source/blender/render/SConscript
    trunk/blender/source/blender/render/intern/source/voxeldata.c

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2011-07-13 18:07:30 UTC (rev 38371)
+++ trunk/blender/CMakeLists.txt	2011-07-13 18:40:21 UTC (rev 38372)
@@ -141,6 +141,7 @@
 
 # Modifiers
 option(WITH_MOD_FLUID        	"Enable Elbeem Modifier (Fluid Simulation)" ON)
+option(WITH_MOD_SMOKE        	"Enable Smoke Modifier (Smoke Simulation)" ON)
 option(WITH_MOD_DECIMATE       	"Enable Decimate Modifier" ON)
 option(WITH_MOD_BOOLEAN        	"Enable Boolean Modifier" ON)
 option(WITH_MOD_CLOTH_ELTOPO   	"Enable Experemental cloth solver" OFF)

Modified: trunk/blender/intern/CMakeLists.txt
===================================================================
--- trunk/blender/intern/CMakeLists.txt	2011-07-13 18:07:30 UTC (rev 38371)
+++ trunk/blender/intern/CMakeLists.txt	2011-07-13 18:40:21 UTC (rev 38372)
@@ -31,7 +31,6 @@
 add_subdirectory(memutil)
 add_subdirectory(iksolver)
 add_subdirectory(opennl)
-add_subdirectory(smoke)
 add_subdirectory(mikktspace)
 
 if(WITH_AUDASPACE)
@@ -42,6 +41,10 @@
 	add_subdirectory(elbeem)
 endif()
 
+if(WITH_MOD_SMOKE)
+	add_subdirectory(smoke)
+endif()
+
 if(WITH_MOD_DECIMATE)
 	add_subdirectory(container)
 	add_subdirectory(decimation)

Modified: trunk/blender/intern/smoke/CMakeLists.txt
===================================================================
--- trunk/blender/intern/smoke/CMakeLists.txt	2011-07-13 18:07:30 UTC (rev 38371)
+++ trunk/blender/intern/smoke/CMakeLists.txt	2011-07-13 18:40:21 UTC (rev 38372)
@@ -84,7 +84,7 @@
 )
 
 if(WITH_OPENMP)
-		add_definitions(-DPARALLEL=1)
+	add_definitions(-DPARALLEL=1)
 endif()
 
 if(WITH_FFTW3)

Modified: trunk/blender/source/blender/blenkernel/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/blenkernel/CMakeLists.txt	2011-07-13 18:07:30 UTC (rev 38371)
+++ trunk/blender/source/blender/blenkernel/CMakeLists.txt	2011-07-13 18:40:21 UTC (rev 38372)
@@ -306,6 +306,10 @@
 	add_definitions(-DDISABLE_ELBEEM)
 endif()
 
+if(WITH_MOD_SMOKE)
+	add_definitions(-DWITH_SMOKE)
+endif()
+
 if(WITH_JACK)
 	add_definitions(-DWITH_JACK)
 endif()

Modified: trunk/blender/source/blender/blenkernel/SConscript
===================================================================
--- trunk/blender/source/blender/blenkernel/SConscript	2011-07-13 18:07:30 UTC (rev 38371)
+++ trunk/blender/source/blender/blenkernel/SConscript	2011-07-13 18:40:21 UTC (rev 38372)
@@ -21,6 +21,8 @@
 
 defs = [ 'GLEW_STATIC' ]
 
+defs.append('WITH_SMOKE')  # TODO, make optional
+
 if env['WITH_BF_PYTHON']:
     incs += ' ../python'
     incs += ' ' + env['BF_PYTHON_INC']

Modified: trunk/blender/source/blender/blenkernel/intern/pointcache.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/pointcache.c	2011-07-13 18:07:30 UTC (rev 38371)
+++ trunk/blender/source/blender/blenkernel/intern/pointcache.c	2011-07-13 18:40:21 UTC (rev 38372)
@@ -516,6 +516,7 @@
 	return clmd->clothObject ? clmd->clothObject->numverts : 0;
 }
 
+#ifdef WITH_SMOKE
 /* Smoke functions */
 static int  ptcache_smoke_totpoint(void *smoke_v, int UNUSED(cfra))
 {
@@ -652,6 +653,11 @@
 		}
 	}
 }
+#else // WITH_SMOKE
+static int  ptcache_smoke_totpoint(void *UNUSED(smoke_v), int UNUSED(cfra)) { return 0; };
+static void ptcache_smoke_read(PTCacheFile *UNUSED(pf), void *UNUSED(smoke_v)) {}
+static int  ptcache_smoke_write(PTCacheFile *UNUSED(pf), void *UNUSED(smoke_v)) { return 0; }
+#endif // WITH_SMOKE
 
 /* Creating ID's */
 void BKE_ptcache_id_from_softbody(PTCacheID *pid, Object *ob, SoftBody *sb)

Modified: trunk/blender/source/blender/blenkernel/intern/smoke.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/smoke.c	2011-07-13 18:07:30 UTC (rev 38371)
+++ trunk/blender/source/blender/blenkernel/intern/smoke.c	2011-07-13 18:40:21 UTC (rev 38372)
@@ -140,6 +140,19 @@
 
 #define TRI_UVOFFSET (1./4.)
 
+/* Stubs to use when smoke is disabled */
+#ifndef WITH_SMOKE
+struct WTURBULENCE *smoke_turbulence_init(int *UNUSED(res), int UNUSED(amplify), int UNUSED(noisetype)) { return NULL; }
+struct FLUID_3D *smoke_init(int *UNUSED(res), float *UNUSED(p0)) { return NULL; }
+void smoke_free(struct FLUID_3D *UNUSED(fluid)) {}
+void smoke_turbulence_free(struct WTURBULENCE *UNUSED(wt)) {}
+void smoke_initWaveletBlenderRNA(struct WTURBULENCE *UNUSED(wt), float *UNUSED(strength)) {}
+void smoke_initBlenderRNA(struct FLUID_3D *UNUSED(fluid), float *UNUSED(alpha), float *UNUSED(beta), float *UNUSED(dt_factor), float *UNUSED(vorticity), int *UNUSED(border_colli)) {}
+long long smoke_get_mem_req(int UNUSED(xres), int UNUSED(yres), int UNUSED(zres), int UNUSED(amplify)) { return 0; }
+void smokeModifier_do(SmokeModifierData *UNUSED(smd), Scene *UNUSED(scene), Object *UNUSED(ob), DerivedMesh *UNUSED(dm)) {}
+#endif // WITH_SMOKE
+
+
 static int smokeModifier_init (SmokeModifierData *smd, Object *ob, Scene *scene, DerivedMesh *dm)
 {
 	if((smd->type & MOD_SMOKE_TYPE_DOMAIN) && smd->domain && !smd->domain->fluid)
@@ -805,6 +818,9 @@
 // forward decleration
 static void smoke_calc_transparency(float *result, float *input, float *p0, float *p1, int res[3], float dx, float *light, bresenham_callback cb, float correct);
 static float calc_voxel_transp(float *result, float *input, int res[3], int *pixel, float *tRay, float correct);
+
+#ifdef WITH_SMOKE
+
 static int get_lamp(Scene *scene, float *light)
 {	
 	Base *base_tmp = NULL;	
@@ -1646,3 +1662,4 @@
 	}
 }
 
+#endif // WITH_SMOKE

Modified: trunk/blender/source/blender/gpu/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/gpu/CMakeLists.txt	2011-07-13 18:07:30 UTC (rev 38371)
+++ trunk/blender/source/blender/gpu/CMakeLists.txt	2011-07-13 18:40:21 UTC (rev 38372)
@@ -56,6 +56,10 @@
 	intern/gpu_codegen.h
 )
 
+if(WITH_MOD_SMOKE)
+	add_definitions(-DWITH_SMOKE)
+endif()
+
 add_definitions(-DGLEW_STATIC)
 
 blender_add_lib(bf_gpu "${SRC}" "${INC}" "${INC_SYS}")

Modified: trunk/blender/source/blender/gpu/SConscript
===================================================================
--- trunk/blender/source/blender/gpu/SConscript	2011-07-13 18:07:30 UTC (rev 38371)
+++ trunk/blender/source/blender/gpu/SConscript	2011-07-13 18:40:21 UTC (rev 38372)
@@ -13,4 +13,6 @@
 
 incs += ' ' + env['BF_OPENGL_INC']
 
+defs.append('WITH_SMOKE')  # TODO, make optional
+
 env.BlenderLib ( 'bf_gpu', sources, Split(incs), defines = defs, libtype=['core','player'], priority=[160,110] )

Modified: trunk/blender/source/blender/gpu/intern/gpu_draw.c
===================================================================
--- trunk/blender/source/blender/gpu/intern/gpu_draw.c	2011-07-13 18:07:30 UTC (rev 38371)
+++ trunk/blender/source/blender/gpu/intern/gpu_draw.c	2011-07-13 18:40:21 UTC (rev 38372)
@@ -822,12 +822,18 @@
 
 void GPU_create_smoke(SmokeModifierData *smd, int highres)
 {
+#ifdef WITH_SMOKE
 	if(smd->type & MOD_SMOKE_TYPE_DOMAIN && !smd->domain->tex && !highres)
 		smd->domain->tex = GPU_texture_create_3D(smd->domain->res[0], smd->domain->res[1], smd->domain->res[2], smoke_get_density(smd->domain->fluid));
 	else if(smd->type & MOD_SMOKE_TYPE_DOMAIN && !smd->domain->tex && highres)
 		smd->domain->tex = GPU_texture_create_3D(smd->domain->res_wt[0], smd->domain->res_wt[1], smd->domain->res_wt[2], smoke_turbulence_get_density(smd->domain->wt));
 
 	smd->domain->tex_shadow = GPU_texture_create_3D(smd->domain->res[0], smd->domain->res[1], smd->domain->res[2], smd->domain->shadow);
+#else // WITH_SMOKE
+	(void)highres;
+	smd->domain->tex= NULL;
+	smd->domain->tex_shadow= NULL;
+#endif // WITH_SMOKE
 }
 
 static ListBase image_free_queue = {NULL, NULL};

Modified: trunk/blender/source/blender/render/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/render/CMakeLists.txt	2011-07-13 18:07:30 UTC (rev 38371)
+++ trunk/blender/source/blender/render/CMakeLists.txt	2011-07-13 18:40:21 UTC (rev 38372)
@@ -120,6 +120,10 @@
 	add_definitions(-DWITH_OPENEXR)
 endif()
 
+if(WITH_MOD_SMOKE)
+	add_definitions(-DWITH_SMOKE)
+endif()
+
 if(WITH_CODEC_QUICKTIME)
 	list(APPEND INC ../quicktime)
 	list(APPEND INC_SYS ${QUICKTIME_INCLUDE_DIRS})

Modified: trunk/blender/source/blender/render/SConscript
===================================================================
--- trunk/blender/source/blender/render/SConscript	2011-07-13 18:07:30 UTC (rev 38371)
+++ trunk/blender/source/blender/render/SConscript	2011-07-13 18:40:21 UTC (rev 38372)
@@ -14,6 +14,8 @@
 defs = []
 defs_raytrace = []
 
+defs.append('WITH_SMOKE')  # TODO, make optional
+
 if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
     if env['WITH_BF_RAYOPTIMIZATION']:
         cflags_raytrace = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']

Modified: trunk/blender/source/blender/render/intern/source/voxeldata.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/voxeldata.c	2011-07-13 18:07:30 UTC (rev 38371)
+++ trunk/blender/source/blender/render/intern/source/voxeldata.c	2011-07-13 18:40:21 UTC (rev 38372)
@@ -220,6 +220,7 @@
 
 static void init_frame_smoke(VoxelData *vd, float cfra)
 {
+#ifdef WITH_SMOKE
 	Object *ob;
 	ModifierData *md;
 	
@@ -300,7 +301,13 @@
 	}
 	
 	vd->ok = 1;
-	return;
+
+#else // WITH_SMOKE
+	(void)vd;
+	(void)cfra;
+
+	vd->dataset= NULL;
+#endif
 }
 
 static void cache_voxeldata(struct Render *re, Tex *tex)




More information about the Bf-blender-cvs mailing list