[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23111] branches/bb_dev_25: merge 23072 - HEAD (23110)

Dalai Felinto dfelinto at gmail.com
Thu Sep 10 19:21:37 CEST 2009


Revision: 23111
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23111
Author:   dfelinto
Date:     2009-09-10 19:21:36 +0200 (Thu, 10 Sep 2009)

Log Message:
-----------
merge 23072 - HEAD (23110)
Just a note (so people stop asking it in IRC :):

This branch is intended to initially port bb_dev to 2.5. Then to bring other functionalities that may not be ready for 2.5 first official release (eg glsl skinning).

The commits I'm going to port first are:
20409 - Patch:[#17523] BGE VBO patch by Samuel Anjam (toonist) 
20411 - Missing files from last commit (Patch:[ #17523] BGE VBO patch by Samuel Anjam (toonist))
20549 - Don' t create VBO at the same time as Display list.
20662 - Fix for: Normals are not being updated in VBO.  
20663 - BGE VBO updates

The other commits are from Benoit, I'm not sure he wants to do it now. Those are the commits:
20550 - BGE: rasterizer performance improvements: eliminate matrix calculation when activating the mesh slots in GLSL. 
20557 - Added a little helper button in the material panel so visualize the GLSL blender shader . 
20560 - Fix NULL pointer crash.
20565 - BGE: forgot to add files to go with rasterizer optimizations.
20570 - Further overhead reduction in the rasterizer.
20612 - GLSL material export: unvoid unnecessary undo buffer, export library as lib_shader.glsl.
20685 - LOD system part 1 : UI+backend for multiple mesh selection per object. 
20567 - Fix Makefiles, missing include paths.

Modified Paths:
--------------
    branches/bb_dev_25/intern/smoke/extern/smoke_API.h
    branches/bb_dev_25/intern/smoke/intern/FLUID_3D.cpp
    branches/bb_dev_25/intern/smoke/intern/FLUID_3D_STATIC.cpp
    branches/bb_dev_25/intern/smoke/intern/WTURBULENCE.cpp
    branches/bb_dev_25/intern/smoke/intern/WTURBULENCE.h
    branches/bb_dev_25/intern/smoke/intern/smoke_API.cpp
    branches/bb_dev_25/projectfiles_vc9/blender/editors/ED_editors.vcproj
    branches/bb_dev_25/release/io/netrender/client.py
    branches/bb_dev_25/release/io/netrender/master.py
    branches/bb_dev_25/release/io/netrender/slave.py
    branches/bb_dev_25/release/ui/buttons_data_armature.py
    branches/bb_dev_25/release/ui/buttons_data_bone.py
    branches/bb_dev_25/release/ui/buttons_data_empty.py
    branches/bb_dev_25/release/ui/buttons_physics_smoke.py
    branches/bb_dev_25/release/ui/space_image.py
    branches/bb_dev_25/release/ui/space_info.py
    branches/bb_dev_25/release/ui/space_view3d.py
    branches/bb_dev_25/source/Makefile
    branches/bb_dev_25/source/blender/blenkernel/BKE_animsys.h
    branches/bb_dev_25/source/blender/blenkernel/BKE_node.h
    branches/bb_dev_25/source/blender/blenkernel/BKE_pointcache.h
    branches/bb_dev_25/source/blender/blenkernel/BKE_smoke.h
    branches/bb_dev_25/source/blender/blenkernel/intern/anim_sys.c
    branches/bb_dev_25/source/blender/blenkernel/intern/library.c
    branches/bb_dev_25/source/blender/blenkernel/intern/material.c
    branches/bb_dev_25/source/blender/blenkernel/intern/node.c
    branches/bb_dev_25/source/blender/blenkernel/intern/pointcache.c
    branches/bb_dev_25/source/blender/blenkernel/intern/smoke.c
    branches/bb_dev_25/source/blender/blenlib/BLI_fileops.h
    branches/bb_dev_25/source/blender/blenlib/intern/fileops.c
    branches/bb_dev_25/source/blender/blenlib/intern/util.c
    branches/bb_dev_25/source/blender/blenloader/intern/readfile.c
    branches/bb_dev_25/source/blender/editors/armature/editarmature.c
    branches/bb_dev_25/source/blender/editors/armature/editarmature_retarget.c
    branches/bb_dev_25/source/blender/editors/armature/meshlaplacian.c
    branches/bb_dev_25/source/blender/editors/armature/poseobject.c
    branches/bb_dev_25/source/blender/editors/gpencil/gpencil_buttons.c
    branches/bb_dev_25/source/blender/editors/include/ED_armature.h
    branches/bb_dev_25/source/blender/editors/include/ED_mball.h
    branches/bb_dev_25/source/blender/editors/include/ED_mesh.h
    branches/bb_dev_25/source/blender/editors/include/ED_object.h
    branches/bb_dev_25/source/blender/editors/include/UI_interface.h
    branches/bb_dev_25/source/blender/editors/interface/interface_layout.c
    branches/bb_dev_25/source/blender/editors/interface/interface_utils.c
    branches/bb_dev_25/source/blender/editors/object/object_edit.c
    branches/bb_dev_25/source/blender/editors/object/object_intern.h
    branches/bb_dev_25/source/blender/editors/object/object_modifier.c
    branches/bb_dev_25/source/blender/editors/object/object_ops.c
    branches/bb_dev_25/source/blender/editors/object/object_vgroup.c
    branches/bb_dev_25/source/blender/editors/physics/ed_fluidsim.c
    branches/bb_dev_25/source/blender/editors/screen/screen_context.c
    branches/bb_dev_25/source/blender/editors/screen/screen_ops.c
    branches/bb_dev_25/source/blender/editors/sculpt_paint/paint_vertex.c
    branches/bb_dev_25/source/blender/editors/space_buttons/buttons_ops.c
    branches/bb_dev_25/source/blender/editors/space_console/console_ops.c
    branches/bb_dev_25/source/blender/editors/space_console/space_console.c
    branches/bb_dev_25/source/blender/editors/space_node/drawnode.c
    branches/bb_dev_25/source/blender/editors/space_text/space_text.c
    branches/bb_dev_25/source/blender/editors/space_view3d/drawobject.c
    branches/bb_dev_25/source/blender/editors/space_view3d/drawvolume.c
    branches/bb_dev_25/source/blender/editors/space_view3d/view3d_buttons.c
    branches/bb_dev_25/source/blender/editors/space_view3d/view3d_intern.h
    branches/bb_dev_25/source/blender/editors/transform/transform.c
    branches/bb_dev_25/source/blender/editors/transform/transform_ops.c
    branches/bb_dev_25/source/blender/editors/util/undo.c
    branches/bb_dev_25/source/blender/editors/uvedit/uvedit_ops.c
    branches/bb_dev_25/source/blender/editors/uvedit/uvedit_unwrap_ops.c
    branches/bb_dev_25/source/blender/gpu/CMakeLists.txt
    branches/bb_dev_25/source/blender/gpu/GPU_draw.h
    branches/bb_dev_25/source/blender/gpu/SConscript
    branches/bb_dev_25/source/blender/gpu/intern/Makefile
    branches/bb_dev_25/source/blender/gpu/intern/gpu_draw.c
    branches/bb_dev_25/source/blender/gpu/intern/gpu_extensions.c
    branches/bb_dev_25/source/blender/makesdna/DNA_material_types.h
    branches/bb_dev_25/source/blender/makesdna/DNA_smoke_types.h
    branches/bb_dev_25/source/blender/makesdna/DNA_texture_types.h
    branches/bb_dev_25/source/blender/makesrna/RNA_access.h
    branches/bb_dev_25/source/blender/makesrna/RNA_define.h
    branches/bb_dev_25/source/blender/makesrna/RNA_enum_types.h
    branches/bb_dev_25/source/blender/makesrna/RNA_types.h
    branches/bb_dev_25/source/blender/makesrna/intern/makesrna.c
    branches/bb_dev_25/source/blender/makesrna/intern/rna_access.c
    branches/bb_dev_25/source/blender/makesrna/intern/rna_armature.c
    branches/bb_dev_25/source/blender/makesrna/intern/rna_define.c
    branches/bb_dev_25/source/blender/makesrna/intern/rna_group.c
    branches/bb_dev_25/source/blender/makesrna/intern/rna_internal_types.h
    branches/bb_dev_25/source/blender/makesrna/intern/rna_material.c
    branches/bb_dev_25/source/blender/makesrna/intern/rna_mesh.c
    branches/bb_dev_25/source/blender/makesrna/intern/rna_nodetree.c
    branches/bb_dev_25/source/blender/makesrna/intern/rna_nodetree_types.h
    branches/bb_dev_25/source/blender/makesrna/intern/rna_object.c
    branches/bb_dev_25/source/blender/makesrna/intern/rna_pose.c
    branches/bb_dev_25/source/blender/makesrna/intern/rna_render.c
    branches/bb_dev_25/source/blender/makesrna/intern/rna_rna.c
    branches/bb_dev_25/source/blender/makesrna/intern/rna_scene.c
    branches/bb_dev_25/source/blender/makesrna/intern/rna_smoke.c
    branches/bb_dev_25/source/blender/makesrna/intern/rna_texture.c
    branches/bb_dev_25/source/blender/makesrna/intern/rna_wm.c
    branches/bb_dev_25/source/blender/nodes/CMP_node.h
    branches/bb_dev_25/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c
    branches/bb_dev_25/source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c
    branches/bb_dev_25/source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c
    branches/bb_dev_25/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c
    branches/bb_dev_25/source/blender/nodes/intern/CMP_util.c
    branches/bb_dev_25/source/blender/nodes/intern/CMP_util.h
    branches/bb_dev_25/source/blender/python/intern/bpy_array.c
    branches/bb_dev_25/source/blender/python/intern/bpy_rna.c
    branches/bb_dev_25/source/blender/render/intern/source/texture.c
    branches/bb_dev_25/source/blender/windowmanager/intern/wm_event_system.c
    branches/bb_dev_25/source/blender/windowmanager/intern/wm_keymap.c
    branches/bb_dev_25/source/blender/windowmanager/intern/wm_operators.c

Added Paths:
-----------
    branches/bb_dev_25/release/windows/inno/
    branches/bb_dev_25/release/windows/inno/blender.iss
    branches/bb_dev_25/release/windows/inno/copyright.txt
    branches/bb_dev_25/release/windows/inno/header.bmp
    branches/bb_dev_25/release/windows/inno/installer.bmp
    branches/bb_dev_25/release/windows/inno/installer.ico
    branches/bb_dev_25/source/blender/editors/metaball/mball_edit.c
    branches/bb_dev_25/source/blender/editors/object/object_add.c
    branches/bb_dev_25/source/blender/editors/object/object_constraint.c
    branches/bb_dev_25/source/blender/editors/object/object_group.c
    branches/bb_dev_25/source/blender/editors/object/object_hook.c
    branches/bb_dev_25/source/blender/editors/object/object_lattice.c
    branches/bb_dev_25/source/blender/editors/object/object_relations.c
    branches/bb_dev_25/source/blender/editors/object/object_select.c
    branches/bb_dev_25/source/blender/editors/object/object_shapekey.c
    branches/bb_dev_25/source/blender/editors/object/object_transform.c
    branches/bb_dev_25/source/blender/nodes/intern/CMP_nodes/CMP_colorMatte.c
    branches/bb_dev_25/source/blender/nodes/intern/CMP_nodes/CMP_distanceMatte.c
    branches/bb_dev_25/source/blender/nodes/intern/CMP_nodes/CMP_levels.c

Removed Paths:
-------------
    branches/bb_dev_25/release/windows/inno/blender.iss
    branches/bb_dev_25/release/windows/inno/copyright.txt
    branches/bb_dev_25/release/windows/inno/header.bmp
    branches/bb_dev_25/release/windows/inno/installer.bmp
    branches/bb_dev_25/release/windows/inno/installer.ico
    branches/bb_dev_25/source/blender/editors/metaball/editmball.c
    branches/bb_dev_25/source/blender/editors/object/editconstraint.c
    branches/bb_dev_25/source/blender/editors/object/editgroup.c
    branches/bb_dev_25/source/blender/editors/object/editkey.c
    branches/bb_dev_25/source/blender/editors/object/editlattice.c

Modified: branches/bb_dev_25/intern/smoke/extern/smoke_API.h
===================================================================
--- branches/bb_dev_25/intern/smoke/extern/smoke_API.h	2009-09-10 14:20:21 UTC (rev 23110)
+++ branches/bb_dev_25/intern/smoke/extern/smoke_API.h	2009-09-10 17:21:36 UTC (rev 23111)
@@ -63,11 +63,11 @@
 void smoke_turbulence_step(struct WTURBULENCE *wt, struct FLUID_3D *fluid);
 
 float *smoke_turbulence_get_density(struct WTURBULENCE *wt);
-void smoke_turbulence_get_res(struct WTURBULENCE *wt, unsigned int *res);
+void smoke_turbulence_get_res(struct WTURBULENCE *wt, int *res);
 void smoke_turbulence_set_noise(struct WTURBULENCE *wt, int type);
-void smoke_turbulence_initBlenderRNA(struct WTURBULENCE *wt, float *strength);
+void smoke_initWaveletBlenderRNA(struct WTURBULENCE *wt, float *strength);
 
-void smoke_turbulence_dissolve(struct WTURBULENCE *wt, int speed, int log);
+void smoke_dissolve_wavelet(struct WTURBULENCE *wt, int speed, int log);
 
 // export
 void smoke_turbulence_export(struct WTURBULENCE *wt, float **dens, float **densold, float **tcu, float **tcv, float **tcw);

Modified: branches/bb_dev_25/intern/smoke/intern/FLUID_3D.cpp
===================================================================
--- branches/bb_dev_25/intern/smoke/intern/FLUID_3D.cpp	2009-09-10 14:20:21 UTC (rev 23110)
+++ branches/bb_dev_25/intern/smoke/intern/FLUID_3D.cpp	2009-09-10 17:21:36 UTC (rev 23111)
@@ -27,9 +27,9 @@
 #include <zlib.h>
 
 // boundary conditions of the fluid domain
-#define DOMAIN_BC_FRONT  1
-#define DOMAIN_BC_TOP    0
-#define DOMAIN_BC_LEFT   1
+#define DOMAIN_BC_FRONT  0 // z
+#define DOMAIN_BC_TOP    1 // y
+#define DOMAIN_BC_LEFT   1 // x
 #define DOMAIN_BC_BACK   DOMAIN_BC_FRONT
 #define DOMAIN_BC_BOTTOM DOMAIN_BC_TOP
 #define DOMAIN_BC_RIGHT  DOMAIN_BC_LEFT
@@ -111,30 +111,32 @@
 	}
 
 	// set side obstacles
-  size_t index;
-  for (int y = 0; y < _yRes; y++) // z
+	int index;
+	for (int y = 0; y < _yRes; y++)
     for (int x = 0; x < _xRes; x++)
     {
       // front slab
       index = x + y * _xRes;
-      if(DOMAIN_BC_BOTTOM==1) _obstacles[index] = 1;
+		if(DOMAIN_BC_FRONT==1) _obstacles[index] = 1;
 
       // back slab
       index += _totalCells - _slabSize;
-      if(DOMAIN_BC_TOP==1) _obstacles[index] = 1;
+		if(DOMAIN_BC_BACK==1) _obstacles[index] = 1;
     }
-  for (int z = 0; z < _zRes; z++) // y
+
+	for (int z = 0; z < _zRes; z++)
     for (int x = 0; x < _xRes; x++)
     {
       // bottom slab
       index = x + z * _slabSize;
-      if(DOMAIN_BC_FRONT==1) _obstacles[index] = 1;
+		if(DOMAIN_BC_BOTTOM==1) _obstacles[index] = 1;
 
       // top slab
       index += _slabSize - _xRes;
-      if(DOMAIN_BC_BACK==1) _obstacles[index] = 1;
+		if(DOMAIN_BC_TOP==1) _obstacles[index] = 1;
     }
-  for (int z = 0; z < _zRes; z++) // x
+
+	for (int z = 0; z < _zRes; z++)
     for (int y = 0; y < _yRes; y++)
     {
       // left slab
@@ -145,13 +147,6 @@
       index += _xRes - 1;
       if(DOMAIN_BC_RIGHT==1) _obstacles[index] = 1;
     }
-
-	/*
-	SPHERE *obsSphere = NULL;
-	obsSphere = new SPHERE(0.375,0.5,0.375, 0.1); // for 4 to 3 domain
-	addObstacle(obsSphere);
-	delete obsSphere;
-	*/
 }
 
 FLUID_3D::~FLUID_3D()
@@ -191,7 +186,7 @@
 	for (int i = 0; i < _totalCells; i++)
 	{
 		_xForce[i] = _yForce[i] = _zForce[i] = 0.0f;
-		_obstacles[i] &= ~2;
+		// _obstacles[i] &= ~2;
 	}
 
 	wipeBoundaries();
@@ -232,7 +227,8 @@
 	_totalTime += _dt;
 	_totalSteps++;	
 
-	memset(_obstacles, 0, sizeof(unsigned char)*_xRes*_yRes*_zRes);
+	// todo xxx dg: only clear obstacles, not boundaries
+	// memset(_obstacles, 0, sizeof(unsigned char)*_xRes*_yRes*_zRes);
 }
 
 //////////////////////////////////////////////////////////////////////
@@ -270,7 +266,7 @@
 //////////////////////////////////////////////////////////////////////
 void FLUID_3D::copyBorderAll(float* field)
 {
-	size_t index;
+	int index;
 	for (int y = 0; y < _yRes; y++)
 		for (int x = 0; x < _xRes; x++)
 		{
@@ -352,12 +348,12 @@
 	if(DOMAIN_BC_LEFT == 0)  setNeumannX(_xVelocity, _res);
 	else setZeroX(_xVelocity, _res);
 
-	if(DOMAIN_BC_TOP == 0)   setNeumannZ(_zVelocity, _res);
+	if(DOMAIN_BC_TOP == 0)   setNeumannY(_yVelocity, _res);
+	else setZeroY(_yVelocity, _res); 
+
+	if(DOMAIN_BC_FRONT == 0) setNeumannZ(_zVelocity, _res);
 	else setZeroZ(_zVelocity, _res);
 
-	if(DOMAIN_BC_FRONT == 0) setNeumannY(_yVelocity, _res);
-	else setZeroY(_yVelocity, _res);
-
 	// calculate divergence
 	index = _slabSize + _xRes + 1;
 	for (z = 1; z < _zRes - 1; z++, index += 2 * _xRes)
@@ -400,13 +396,17 @@
 		for (y = 1; y < _yRes - 1; y++, index += 2)
 			for (x = 1; x < _xRes - 1; x++, index++)
 			{
-				if(!_obstacles[index])
+				// if(!_obstacles[index])
 				{
 					_xVelocity[index] -= 0.5f * (_pressure[index + 1]     - _pressure[index - 1]) * invDx;
 					_yVelocity[index] -= 0.5f * (_pressure[index + _xRes]  - _pressure[index - _xRes]) * invDx;
 					_zVelocity[index] -= 0.5f * (_pressure[index + _slabSize] - _pressure[index - _slabSize]) * invDx;
+				}/*
+				else
+				{
+					_xVelocity[index] = _yVelocity[index] = _zVelocity[index] = 0.0f;
+				}*/
 				}
-			}
 
 	if (_pressure) delete[] _pressure;
 	if (_divergence) delete[] _divergence;
@@ -671,12 +671,12 @@
 	if(DOMAIN_BC_LEFT == 0) copyBorderX(_xVelocity, res);
 	else setZeroX(_xVelocity, res);
 
-	if(DOMAIN_BC_TOP == 0) copyBorderZ(_zVelocity, res);
+	if(DOMAIN_BC_TOP == 0) copyBorderY(_yVelocity, res);
+	else setZeroY(_yVelocity, res); 
+
+	if(DOMAIN_BC_FRONT == 0) copyBorderZ(_zVelocity, res);
 	else setZeroZ(_zVelocity, res);
 
-	if(DOMAIN_BC_FRONT == 0) copyBorderY(_yVelocity, res);
-	else setZeroY(_yVelocity, res);
-
 	SWAP_POINTERS(_xVelocity, _xVelocityOld);
 	SWAP_POINTERS(_yVelocity, _yVelocityOld);
 	SWAP_POINTERS(_zVelocity, _zVelocityOld);
@@ -700,12 +700,12 @@
 	if(DOMAIN_BC_LEFT == 0) copyBorderX(_xVelocity, res);
 	else setZeroX(_xVelocity, res);
 
-	if(DOMAIN_BC_TOP == 0) copyBorderZ(_zVelocity, res);
+	if(DOMAIN_BC_TOP == 0) copyBorderY(_yVelocity, res);
+	else setZeroY(_yVelocity, res); 
+
+	if(DOMAIN_BC_FRONT == 0) copyBorderZ(_zVelocity, res);
 	else setZeroZ(_zVelocity, res);
 
-	if(DOMAIN_BC_FRONT == 0) copyBorderY(_yVelocity, res);
-	else setZeroY(_yVelocity, res);
-
 	setZeroBorder(_density, res);
 	setZeroBorder(_heat, res);
 

Modified: branches/bb_dev_25/intern/smoke/intern/FLUID_3D_STATIC.cpp
===================================================================
--- branches/bb_dev_25/intern/smoke/intern/FLUID_3D_STATIC.cpp	2009-09-10 14:20:21 UTC (rev 23110)
+++ branches/bb_dev_25/intern/smoke/intern/FLUID_3D_STATIC.cpp	2009-09-10 17:21:36 UTC (rev 23111)
@@ -80,7 +80,7 @@
 void FLUID_3D::setNeumannX(float* field, Vec3Int res)
 {
 	const int slabSize = res[0] * res[1];
-	size_t index;
+	int index;
 	for (int z = 0; z < res[2]; z++)
 		for (int y = 0; y < res[1]; y++)
 		{
@@ -92,7 +92,19 @@
 			index += res[0] - 1;
 			field[index] = field[index - 2];
 		}
+
+	// fix, force top slab to only allow outwards flux
+	for (int y = 0; y < res[1]; y++)
+		for (int z = 0; z < res[2]; z++)
+		{
+			// top slab
+			int index = y * res[0] + z * slabSize;
+			index += res[0] - 1;
+			if(field[index]<0.) field[index] = 0.;
+			index -= 1;
+			if(field[index]<0.) field[index] = 0.;
  }
+ }
 
 //////////////////////////////////////////////////////////////////////
 // set y direction to Neumann boundary conditions
@@ -100,20 +112,33 @@
 void FLUID_3D::setNeumannY(float* field, Vec3Int res)
 {
 	const int slabSize = res[0] * res[1];
-	size_t index;
+	int index;
 	for (int z = 0; z < res[2]; z++)
 		for (int x = 0; x < res[0]; x++)
 		{
-			// front slab
+			// bottom slab
 			index = x + z * slabSize;
 			field[index] = field[index + 2 * res[0]];
 
-			// back slab
+			// top slab
 			index += slabSize - res[0];
 			field[index] = field[index - 2 * res[0]];
 		}
+
+	// fix, force top slab to only allow outwards flux
+	for (int z = 0; z < res[2]; z++)
+		for (int x = 0; x < res[0]; x++)
+		{
+			// top slab
+			int index = x + z * slabSize;
+			index += slabSize - res[0];
+			if(field[index]<0.) field[index] = 0.;
+			index -= res[0];
+			if(field[index]<0.) field[index] = 0.;
 }
 
+}
+
 //////////////////////////////////////////////////////////////////////
 // set z direction to Neumann boundary conditions
 //////////////////////////////////////////////////////////////////////
@@ -121,15 +146,15 @@
 {
 	const int slabSize = res[0] * res[1];
 	const int totalCells = res[0] * res[1] * res[2];
-	size_t index;
+	int index;
 	for (int y = 0; y < res[1]; y++)
 		for (int x = 0; x < res[0]; x++)
 		{
-			// bottom slab
+			// front slab
 			index = x + y * res[0];
 			field[index] = field[index + 2 * slabSize];
 
-			// top slab
+			// back slab
 			index += totalCells - slabSize;
 			field[index] = field[index - 2 * slabSize];
 		}
@@ -139,11 +164,11 @@
 		for (int x = 0; x < res[0]; x++)
 		{
 			// top slab
-			index = x + y * res[0];
+			int index = x + y * res[0];
 			index += totalCells - slabSize;
-			if(field[index]<0.) field[index] = 0.0f;
+			if(field[index]<0.) field[index] = 0.;
 			index -= slabSize;
-			if(field[index]<0.) field[index] = 0.0f;
+			if(field[index]<0.) field[index] = 0.;
 		}
 		
 }
@@ -231,6 +256,7 @@
 void FLUID_3D::copyBorderY(float* field, Vec3Int res)
 {
 	const int slabSize = res[0] * res[1];
+	const int totalCells = res[0] * res[1] * res[2];
 	int index;
 	for (int z = 0; z < res[2]; z++)
 		for (int x = 0; x < res[0]; x++)
@@ -269,11 +295,14 @@
 	const int xres = res[0];
 	const int yres = res[1];
 	const int zres = res[2];
+	static int hits = 0;
+	static int total = 0;
 	const int slabSize = res[0] * res[1];
 
 	// scale dt up to grid resolution
-#if PARALLEL==1
-#pragma omp parallel for schedule(static)
+#if PARALLEL==1 && !_WIN32
+#pragma omp parallel
+#pragma omp for  schedule(static)
 #endif
 	for (int z = 0; z < zres; z++)
 		for (int y = 0; y < yres; y++)
@@ -465,6 +494,7 @@
 	const int sy= res[1];
 	const int sz= res[2];
 	const int slabSize = res[0] * res[1];
+
 	for (int z = 1; z < sz-1; z++)
 		for (int y = 1; y < sy-1; y++)
 			for (int x = 1; x < sx-1; x++)
@@ -582,79 +612,3 @@
 			} // xyz
 }
 
-//////////////////////////////////////////////////////////////////////
-// image output
-//////////////////////////////////////////////////////////////////////
-/*
-void FLUID_3D::writeImageSliceXY(const float *field, Vec3Int res, int slice, string prefix, int picCnt, float scale) {
-  writeProjectedIntern(field, res, 0,1, prefix, picCnt, scale);
-}

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list