Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2007-12-13 00:49:48 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2007-12-13 00:49:48 +0300
commite2e8ea9ed17dbe353e4aa8cac73b47cde9f8a24d (patch)
treec313391ab0cfe1a243ad262c412de7cf101c5d1e /source/blender/blenkernel
parentde17fd9ee5431788e7e55daeb8e5ad6fb07894dc (diff)
Fix for bug #7872: setting particles disp to 100 has no effect.
Fix for bug #7878: particle panels do not update properly when chaning particle types.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/BKE_bad_level_calls.h5
-rw-r--r--source/blender/blenkernel/intern/particle.c2
-rw-r--r--source/blender/blenkernel/intern/particle_system.c6
3 files changed, 9 insertions, 4 deletions
diff --git a/source/blender/blenkernel/BKE_bad_level_calls.h b/source/blender/blenkernel/BKE_bad_level_calls.h
index 7a838ff7614..8b9454f1a9d 100644
--- a/source/blender/blenkernel/BKE_bad_level_calls.h
+++ b/source/blender/blenkernel/BKE_bad_level_calls.h
@@ -91,8 +91,9 @@ extern struct ListBase editNurb;
void mainqenter (unsigned short event, short val);
void waitcursor(int);
void allqueue(unsigned short event, short val);
-#define REDRAWVIEW3D 0x4010
-#define REDRAWBUTSEDIT 0x4019
+#define REDRAWVIEW3D 0x4010
+#define REDRAWBUTSOBJECT 0x4018
+#define REDRAWBUTSEDIT 0x4019
struct Material;
extern struct Material defmaterial;
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c
index 154ca9a5716..b7ee3d96ef0 100644
--- a/source/blender/blenkernel/intern/particle.c
+++ b/source/blender/blenkernel/intern/particle.c
@@ -2290,7 +2290,7 @@ void psys_mat_hair_to_orco(Object *ob, DerivedMesh *dm, short from, ParticleData
psys_particle_on_dm(ob, dm, from, pa->num, pa->num_dmcache, pa->fuv, pa->foffset, vec, 0, 0, 0, orco, 0);
/* see psys_face_mat for why this function is called */
- transform_mesh_orco_verts(ob->data, orco, 1, 1);
+ transform_mesh_orco_verts(ob->data, &orco, 1, 1);
VECCOPY(hairmat[3],orco);
}
diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c
index 414b64cae6a..4d9256a4931 100644
--- a/source/blender/blenkernel/intern/particle_system.c
+++ b/source/blender/blenkernel/intern/particle_system.c
@@ -4377,6 +4377,10 @@ static void system_step(Object *ob, ParticleSystem *psys, ParticleSystemModifier
psys->recalc &= ~PSYS_TYPE;
alloc = 1;
+
+ /* this is a bad level call, but currently type change
+ * can happen after redraw, so force redraw from here */
+ allqueue(REDRAWBUTSOBJECT, 0);
}
else
oldtotpart = psys->totpart;
@@ -4428,7 +4432,7 @@ static void system_step(Object *ob, ParticleSystem *psys, ParticleSystemModifier
/* set particles to be not calculated */
disp= (float)get_current_display_percentage(psys)/50.0f-1.0f;
- if(disp<1.0f) for(p=0, pa=psys->particles; p<totpart; p++,pa++){
+ for(p=0, pa=psys->particles; p<totpart; p++,pa++){
if(pa->r_rot[0] > disp)
pa->flag |= PARS_NO_DISP;
else