[Bf-blender-cvs] [91fd0a487d9] strand_editmode: Store pointer into the hair follicle array in hair groups directly.
Lukas Tönne
noreply at git.blender.org
Mon Aug 14 09:23:24 CEST 2017
Commit: 91fd0a487d95e604c1c245905895123eeaf2ca0e
Author: Lukas Tönne
Date: Fri Aug 11 08:57:04 2017 +0100
Branches: strand_editmode
https://developer.blender.org/rB91fd0a487d95e604c1c245905895123eeaf2ca0e
Store pointer into the hair follicle array in hair groups directly.
This creates a dependency of the hair groups on the validity of the pattern,
so care has to be taken to always update the groups when the pattern changes.
===================================================================
M source/blender/blenkernel/BKE_hair.h
M source/blender/blenkernel/intern/hair.c
M source/blender/makesdna/DNA_hair_types.h
===================================================================
diff --git a/source/blender/blenkernel/BKE_hair.h b/source/blender/blenkernel/BKE_hair.h
index c399c78a735..1c079168500 100644
--- a/source/blender/blenkernel/BKE_hair.h
+++ b/source/blender/blenkernel/BKE_hair.h
@@ -105,8 +105,8 @@ void BKE_hair_batch_cache_dirty(struct HairGroup *group, int mode);
void BKE_hair_batch_cache_free(struct HairGroup *group);
int* BKE_hair_get_fiber_lengths(struct HairGroup *group, int subdiv);
-void BKE_hair_group_get_texture_buffer_size(struct HairPattern *hair, struct HairGroup *group, int subdiv, int *r_size,
+void BKE_hair_group_get_texture_buffer_size(struct HairGroup *group, int subdiv, int *r_size,
int *r_strand_map_start, int *r_strand_vertex_start, int *r_fiber_start);
-void BKE_hair_group_get_texture_buffer(struct HairPattern *hair, struct HairGroup *group, struct DerivedMesh *scalp, int subdiv, void *texbuffer);
+void BKE_hair_group_get_texture_buffer(struct HairGroup *group, struct DerivedMesh *scalp, int subdiv, void *texbuffer);
#endif
diff --git a/source/blender/blenkernel/intern/hair.c b/source/blender/blenkernel/intern/hair.c
index c559d994c90..9c01fcbf788 100644
--- a/source/blender/blenkernel/intern/hair.c
+++ b/source/blender/blenkernel/intern/hair.c
@@ -234,7 +234,7 @@ static void get_strand_vertices(const HairDrawDataInterface* hairdata_, float (*
}
}
-static HairGroupStrandsView hair_strands_get_view(HairPattern *hair, HairGroup *group)
+static HairGroupStrandsView hair_strands_get_view(HairGroup *group)
{
HairGroupStrandsView hairdata;
hairdata.base.get_num_strands = get_num_strands;
@@ -251,7 +251,6 @@ static HairGroupStrandsView hair_strands_get_view(HairPattern *hair, HairGroup *
}
case HAIR_GROUP_TYPE_STRANDS: {
// TODO
- UNUSED_VARS(hair);
hairdata.numstrands = 0;
hairdata.numverts_orig = 0;
break;
@@ -261,18 +260,17 @@ static HairGroupStrandsView hair_strands_get_view(HairPattern *hair, HairGroup *
return hairdata;
}
-void BKE_hair_group_get_texture_buffer_size(HairPattern *hair, HairGroup *group, int subdiv,
+void BKE_hair_group_get_texture_buffer_size(HairGroup *group, int subdiv,
int *r_size, int *r_strand_map_start,
int *r_strand_vertex_start, int *r_fiber_start)
{
- HairGroupStrandsView hairdata = hair_strands_get_view(hair, group);
+ HairGroupStrandsView hairdata = hair_strands_get_view(group);
BKE_hair_strands_get_texture_buffer_size(&hairdata.base, group->num_follicles, subdiv,
r_size, r_strand_map_start, r_strand_vertex_start, r_fiber_start);
}
-void BKE_hair_group_get_texture_buffer(HairPattern *hair, HairGroup *group,
- DerivedMesh *scalp, int subdiv, void *buffer)
+void BKE_hair_group_get_texture_buffer(HairGroup *group, DerivedMesh *scalp, int subdiv, void *buffer)
{
- HairGroupStrandsView hairdata = hair_strands_get_view(hair, group);
+ HairGroupStrandsView hairdata = hair_strands_get_view(group);
BKE_hair_strands_get_texture_buffer(&hairdata.base, scalp, NULL, 0, subdiv, buffer);
}
diff --git a/source/blender/makesdna/DNA_hair_types.h b/source/blender/makesdna/DNA_hair_types.h
index a902858eb23..3095ecc91fb 100644
--- a/source/blender/makesdna/DNA_hair_types.h
+++ b/source/blender/makesdna/DNA_hair_types.h
@@ -57,8 +57,9 @@ typedef struct HairGroup {
char name[64]; /* MAX_NAME */
int type;
+ int pad;
- int follicle_start;
+ struct HairFollicle *follicles;
int num_follicles;
/* NORMALS */
More information about the Bf-blender-cvs
mailing list