Revision: 28202
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28202
Author:   blendix
Date:     2010-04-15 12:28:32 +0200 (Thu, 15 Apr 2010)

Log Message:
-----------
Merge various small changes from render branch:

* Division by zero fix for TNT SVD code.
* Sound fix, in case ffmpeg decode fails, don't use the samples.
* Fix for incorrect bounds of transformed objects in new raytracing code.
* Gave memory arena's a name used for allocations for easier memory
  usage debugging.
* Dupligroup no_draw option was using layers but not restrict view/render
  setting. (not a bugfix exactly but would do display list context switching
  while drawing for no reason).
* Fix objects instanced on hair particles not giving consistent results
  when the object is transformed.
* New math functions: madd_v4_v4fl, len_squared_v3v3, interp_v4_v4v4v4,
  mul_v4_m4v4, SH and form factor functions, box_minmax_bounds_m4.
* mul_m4_m4m4 and mul_m3_m3m3 now accept the same pointers for multiple
  arguments.
* endjob callback for WM jobs system.
* Geometry node uv/color layer now has search list/autocomplete.
* Various small buildsystem tweaks, not strictly needed yet in trunk.

Modified Paths:
--------------
    trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
    trunk/blender/intern/iksolver/intern/TNT/svd.h
    trunk/blender/source/blender/blenkernel/BKE_group.h
    trunk/blender/source/blender/blenkernel/intern/BME_tools.c
    trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
    trunk/blender/source/blender/blenkernel/intern/anim.c
    trunk/blender/source/blender/blenkernel/intern/depsgraph.c
    trunk/blender/source/blender/blenkernel/intern/image.c
    trunk/blender/source/blender/blenkernel/intern/particle.c
    trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
    trunk/blender/source/blender/blenlib/BLI_kdopbvh.h
    trunk/blender/source/blender/blenlib/BLI_math.h
    trunk/blender/source/blender/blenlib/BLI_math_geom.h
    trunk/blender/source/blender/blenlib/BLI_math_matrix.h
    trunk/blender/source/blender/blenlib/BLI_math_vector.h
    trunk/blender/source/blender/blenlib/BLI_memarena.h
    trunk/blender/source/blender/blenlib/BLI_rand.h
    trunk/blender/source/blender/blenlib/BLI_threads.h
    trunk/blender/source/blender/blenlib/intern/BLI_heap.c
    trunk/blender/source/blender/blenlib/intern/BLI_memarena.c
    trunk/blender/source/blender/blenlib/intern/math_geom.c
    trunk/blender/source/blender/blenlib/intern/math_matrix.c
    trunk/blender/source/blender/blenlib/intern/math_vector.c
    trunk/blender/source/blender/blenlib/intern/math_vector_inline.c
    trunk/blender/source/blender/blenlib/intern/threads.c
    trunk/blender/source/blender/editors/armature/meshlaplacian.c
    trunk/blender/source/blender/editors/interface/interface_icons.c
    trunk/blender/source/blender/editors/mesh/editmesh_tools.c
    trunk/blender/source/blender/editors/object/object_bake.c
    trunk/blender/source/blender/editors/physics/physics_fluid.c
    trunk/blender/source/blender/editors/render/render_internal.c
    trunk/blender/source/blender/editors/render/render_preview.c
    trunk/blender/source/blender/editors/screen/screendump.c
    trunk/blender/source/blender/editors/sculpt_paint/paint_image.c
    trunk/blender/source/blender/editors/space_buttons/space_buttons.c
    trunk/blender/source/blender/editors/space_file/filelist.c
    trunk/blender/source/blender/editors/space_node/drawnode.c
    trunk/blender/source/blender/editors/space_node/node_edit.c
    trunk/blender/source/blender/editors/space_outliner/outliner.c
    trunk/blender/source/blender/editors/space_view3d/SConscript
    trunk/blender/source/blender/editors/uvedit/uvedit_draw.c
    trunk/blender/source/blender/editors/uvedit/uvedit_parametrizer.c
    trunk/blender/source/blender/gpu/CMakeLists.txt
    trunk/blender/source/blender/imbuf/intern/allocimbuf.c
    trunk/blender/source/blender/makesrna/RNA_types.h
    trunk/blender/source/blender/makesrna/intern/makesrna.c
    trunk/blender/source/blender/makesrna/intern/rna_object.c
    trunk/blender/source/blender/makesrna/intern/rna_object_force.c
    trunk/blender/source/blender/makesrna/intern/rna_scene.c
    trunk/blender/source/blender/modifiers/SConscript
    trunk/blender/source/blender/modifiers/intern/MOD_edgesplit.c
    trunk/blender/source/blender/render/intern/raytrace/Makefile
    trunk/blender/source/blender/render/intern/raytrace/rayobject.cpp
    trunk/blender/source/blender/render/intern/raytrace/rayobject_qbvh.cpp
    trunk/blender/source/blender/render/intern/raytrace/rayobject_svbvh.cpp
    trunk/blender/source/blender/render/intern/raytrace/rayobject_vbvh.cpp
    trunk/blender/source/blender/render/intern/source/Makefile
    trunk/blender/source/blender/render/intern/source/convertblender.c
    trunk/blender/source/blender/render/intern/source/occlusion.c
    trunk/blender/source/blender/render/intern/source/shadbuf.c
    trunk/blender/source/blender/render/intern/source/sss.c
    trunk/blender/source/blender/render/intern/source/strand.c
    trunk/blender/source/blender/windowmanager/WM_api.h
    trunk/blender/source/blender/windowmanager/intern/wm_jobs.c
    trunk/blender/source/creator/CMakeLists.txt
    trunk/blender/source/creator/SConscript

Added Paths:
-----------
    trunk/blender/source/blender/blenlib/intern/math_geom_inline.c

Modified: trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
===================================================================
--- trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp  2010-04-15 
04:56:44 UTC (rev 28201)
+++ trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp  2010-04-15 
10:28:32 UTC (rev 28202)
@@ -67,12 +67,12 @@
                        audio_pkg_data,
                        audio_pkg_size);
 
-               buf_pos += data_size;
-
                // read error, next packet!
                if(read_length < 0)
                        break;
 
+               buf_pos += data_size;
+
                // move packet parameters
                audio_pkg_data += read_length;
                audio_pkg_size -= read_length;

Modified: trunk/blender/intern/iksolver/intern/TNT/svd.h
===================================================================
--- trunk/blender/intern/iksolver/intern/TNT/svd.h      2010-04-15 04:56:44 UTC 
(rev 28201)
+++ trunk/blender/intern/iksolver/intern/TNT/svd.h      2010-04-15 10:28:32 UTC 
(rev 28202)
@@ -349,8 +349,9 @@
 
                                for (j = k; j < p-1; j++) {
                                        typename MaTRiX::value_type t = 
hypot(f,g);
-                                       typename MaTRiX::value_type cs = f/t;
-                                       typename MaTRiX::value_type sn = g/t;
+                                       /* division by zero checks added to 
avoid NaN (brecht) */
+                                       typename MaTRiX::value_type cs = (t == 
0.0f)? 0.0f: f/t;
+                                       typename MaTRiX::value_type sn = (t == 
0.0f)? 0.0f: g/t;
                                        if (j != k) {
                                                e[j-1] = t;
                                        }
@@ -366,8 +367,9 @@
                                        }
 
                                        t = hypot(f,g);
-                                       cs = f/t;
-                                       sn = g/t;
+                                       /* division by zero checks added to 
avoid NaN (brecht) */
+                                       cs = (t == 0.0f)? 0.0f: f/t;
+                                       sn = (t == 0.0f)? 0.0f: g/t;
                                        s[j] = t;
                                        f = cs*e[j] + sn*s[j+1];
                                        s[j+1] = -sn*e[j] + cs*s[j+1];

Modified: trunk/blender/source/blender/blenkernel/BKE_group.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_group.h 2010-04-15 04:56:44 UTC 
(rev 28201)
+++ trunk/blender/source/blender/blenkernel/BKE_group.h 2010-04-15 10:28:32 UTC 
(rev 28202)
@@ -31,6 +31,7 @@
 #ifndef BKE_GROUP_H
 #define BKE_GROUP_H
 
+struct Base;
 struct Group;
 struct GroupObject;
 struct Object;

Modified: trunk/blender/source/blender/blenkernel/intern/BME_tools.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/BME_tools.c  2010-04-15 
04:56:44 UTC (rev 28201)
+++ trunk/blender/source/blender/blenkernel/intern/BME_tools.c  2010-04-15 
10:28:32 UTC (rev 28202)
@@ -50,7 +50,7 @@
 
        td = MEM_callocN(sizeof(BME_TransData_Head), "BMesh transdata header");
        td->gh = BLI_ghash_new(BLI_ghashutil_ptrhash,BLI_ghashutil_ptrcmp);
-       td->ma = BLI_memarena_new(bufsize);
+       td->ma = BLI_memarena_new(bufsize, "BME_TransData arena");
        BLI_memarena_use_calloc(td->ma);
 
        return td;

Modified: trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c        
2010-04-15 04:56:44 UTC (rev 28201)
+++ trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c        
2010-04-15 10:28:32 UTC (rev 28202)
@@ -2489,7 +2489,7 @@
        tangent= DM_get_face_data_layer(dm, CD_TANGENT);
        
        /* allocate some space */
-       arena= BLI_memarena_new(BLI_MEMARENA_STD_BUFSIZE);
+       arena= BLI_memarena_new(BLI_MEMARENA_STD_BUFSIZE, "tangent layer 
arena");
        BLI_memarena_use_calloc(arena);
        vtangents= MEM_callocN(sizeof(VertexTangent*)*totvert, "VertexTangent");
        

Modified: trunk/blender/source/blender/blenkernel/intern/anim.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/anim.c       2010-04-15 
04:56:44 UTC (rev 28201)
+++ trunk/blender/source/blender/blenkernel/intern/anim.c       2010-04-15 
10:28:32 UTC (rev 28202)
@@ -646,8 +646,18 @@
                        }
                        
                        dob= new_dupli_object(lb, go->ob, mat, ob->lay, 0, 
OB_DUPLIGROUP, animated);
-                       dob->no_draw= (dob->origlay & group->layer)==0;
-                       
+
+                       /* check the group instance and object layers match, 
also that the object visible flags are ok. */
+                       if(     (dob->origlay & group->layer)==0 ||
+                               (G.rendering==0 && dob->ob->restrictflag & 
OB_RESTRICT_VIEW) ||
+                               (G.rendering && dob->ob->restrictflag & 
OB_RESTRICT_RENDER)
+                       ) {
+                               dob->no_draw= 1;
+                       }
+                       else {
+                               dob->no_draw= 0;
+                       }
+
                        if(go->ob->transflag & OB_DUPLI) {
                                copy_m4_m4(dob->ob->obmat, dob->mat);
                                object_duplilist_recursive((ID *)group, scene, 
go->ob, lb, ob->obmat, level+1, animated);
@@ -1003,7 +1013,7 @@
                                                copy_m4_m4(tmat, obmat);
                                                mul_m4_m4m3(obmat, tmat, mat);
                                                
-                                               dob= new_dupli_object(lb, ob, 
obmat, lay, a, OB_DUPLIFACES, animated);
+                                               dob= new_dupli_object(lb, ob, 
obmat, par->lay, a, OB_DUPLIFACES, animated);
                                                if(G.rendering) {
                                                        w= (mv4)? 0.25f: 
1.0f/3.0f;
 

Modified: trunk/blender/source/blender/blenkernel/intern/depsgraph.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/depsgraph.c  2010-04-15 
04:56:44 UTC (rev 28201)
+++ trunk/blender/source/blender/blenkernel/intern/depsgraph.c  2010-04-15 
10:28:32 UTC (rev 28202)
@@ -2237,6 +2237,8 @@
                                for(go= group->gobject.first; go; go= go->next) 
{
                                        if(ELEM5(go->ob->type, OB_MESH, 
OB_CURVE, OB_SURF, OB_FONT, OB_MBALL))
                                                go->ob->recalc |= 
OB_RECALC_DATA;
+                                       if(go->ob->proxy_from)
+                                               go->ob->recalc |= OB_RECALC_OB;
                                }
                                
                                group->id.flag &= ~LIB_DOIT;

Modified: trunk/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/image.c      2010-04-15 
04:56:44 UTC (rev 28201)
+++ trunk/blender/source/blender/blenkernel/intern/image.c      2010-04-15 
10:28:32 UTC (rev 28202)
@@ -1,4 +1,4 @@
-/*  image.c        
+/*  image.c
  * 
  * $Id$
  *

Modified: trunk/blender/source/blender/blenkernel/intern/particle.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle.c   2010-04-15 
04:56:44 UTC (rev 28201)
+++ trunk/blender/source/blender/blenkernel/intern/particle.c   2010-04-15 
10:28:32 UTC (rev 28202)
@@ -4215,18 +4215,11 @@
        ParticleSystem *psys = sim->psys;
        ParticleSystemModifierData *psmd = sim->psmd;
        float loc[3], nor[3], vec[3], side[3], len, obrotmat[4][4], qmat[4][4];
-       float xvec[3] = {-1.0, 0.0, 0.0}, q[4];
+       float xvec[3] = {-1.0, 0.0, 0.0}, q[4], nmat[3][3];
 
        sub_v3_v3v3(vec, (cache+cache->steps-1)->co, cache->co);
        len= normalize_v3(vec);
 
-       if(pa)
-               
psys_particle_on_emitter(psmd,sim->psys->part->from,pa->num,pa->num_dmcache,pa->fuv,pa->foffset,loc,nor,0,0,0,0);
-       else
-               psys_particle_on_emitter(psmd,
-                       (psys->part->childtype == PART_CHILD_FACES)? 
PART_FROM_FACE: PART_FROM_PARTICLE,
-                       
cpa->num,DMCACHE_ISCHILD,cpa->fuv,cpa->foffset,loc,nor,0,0,0,0);
-       
        if(psys->part->rotmode) {
                if(!pa)
                        pa= psys->particles+cpa->pa[0];
@@ -4239,6 +4232,17 @@
                mul_m4_m4m4(mat, obrotmat, qmat);
        }
        else {
+               if(pa)
+                       
psys_particle_on_emitter(psmd,sim->psys->part->from,pa->num,pa->num_dmcache,pa->fuv,pa->foffset,loc,nor,0,0,0,0);
+               else
+                       psys_particle_on_emitter(psmd,
+                               (psys->part->childtype == PART_CHILD_FACES)? 
PART_FROM_FACE: PART_FROM_PARTICLE,
+                               
cpa->num,DMCACHE_ISCHILD,cpa->fuv,cpa->foffset,loc,nor,0,0,0,0);
+               
+               copy_m3_m4(nmat, ob->imat);
+               transpose_m3(nmat);
+               mul_m3_v3(nmat, nor);
+
                /* make sure that we get a proper side vector */
                if(fabs(dot_v3v3(nor,vec))>0.999999) {
                        if(fabs(dot_v3v3(nor,xvec))>0.999999) {

Modified: trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c        
2010-04-15 04:56:44 UTC (rev 28201)
+++ trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c        
2010-04-15 10:28:32 UTC (rev 28202)
@@ -117,7 +117,7 @@
 
        if (useArena) {
                CCGAllocatorIFC allocatorIFC;
-               CCGAllocatorHDL allocator = BLI_memarena_new((1<<16));
+               CCGAllocatorHDL allocator = BLI_memarena_new((1<<16), "subsurf 
arena");
 
                allocatorIFC.alloc = arena_alloc;
                allocatorIFC.realloc = arena_realloc;

Modified: trunk/blender/source/blender/blenlib/BLI_kdopbvh.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_kdopbvh.h  2010-04-15 04:56:44 UTC 
(rev 28201)
+++ trunk/blender/source/blender/blenlib/BLI_kdopbvh.h  2010-04-15 10:28:32 UTC 
(rev 28202)
@@ -32,6 +32,10 @@
 #ifndef BLI_KDOPBVH_H
 #define BLI_KDOPBVH_H
 
+#ifdef __cplusplus
+extern "C" { 
+#endif
+
 #include <float.h>
 
 struct BVHTree;
@@ -100,6 +104,9 @@
 /* range query */
 int BLI_bvhtree_range_query(BVHTree *tree, const float *co, float radius, 
BVHTree_RangeQuery callback, void *userdata);
 
+#ifdef __cplusplus
+}
+#endif
 
 #endif // BLI_KDOPBVH_H
 

Modified: trunk/blender/source/blender/blenlib/BLI_math.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_math.h     2010-04-15 04:56:44 UTC 
(rev 28201)
+++ trunk/blender/source/blender/blenlib/BLI_math.h     2010-04-15 10:28:32 UTC 
(rev 28202)
@@ -55,10 +55,10 @@
 
 #include "BLI_math_base.h"
 #include "BLI_math_color.h"
-#include "BLI_math_geom.h"
 #include "BLI_math_matrix.h"
 #include "BLI_math_rotation.h"
 #include "BLI_math_vector.h"
+#include "BLI_math_geom.h"
 
 #endif /* BLI_MATH */
 

Modified: trunk/blender/source/blender/blenlib/BLI_math_geom.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_math_geom.h        2010-04-15 
04:56:44 UTC (rev 28201)
+++ trunk/blender/source/blender/blenlib/BLI_math_geom.h        2010-04-15 
10:28:32 UTC (rev 28202)
@@ -32,6 +32,12 @@
 extern "C" {
 #endif
 
+#include "BLI_math_inline.h"
+
+#ifdef BLI_MATH_INLINE
+#include "intern/math_geom_inline.c"
+#endif
+
 /********************************** Polygons *********************************/
 
 void cent_tri_v3(float r[3], float a[3], float b[3], float c[3]);
@@ -146,6 +152,8 @@
 
 int box_clip_bounds_m4(float boundbox[2][3],
        float bounds[4], float winmat[4][4]);
+void box_minmax_bounds_m4(float min[3], float max[3],
+       float boundbox[2][3], float mat[4][4]);
 
 /********************************** Mapping **********************************/
 
@@ -165,12 +173,34 @@
 void tangent_from_uv(float *uv1, float *uv2, float *uv3,
        float *co1, float *co2, float *co3, float *n, float *tang);
 

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to