diff options
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r-- | source/blender/blenkernel/intern/blender.c | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/brush.c | 16 |
2 files changed, 17 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c index fa6aafabe05..b3c94beba93 100644 --- a/source/blender/blenkernel/intern/blender.c +++ b/source/blender/blenkernel/intern/blender.c @@ -66,6 +66,7 @@ #include "BKE_blender.h" #include "BKE_bpath.h" +#include "BKE_brush.h" #include "BKE_context.h" #include "BKE_depsgraph.h" #include "BKE_displist.h" @@ -120,6 +121,8 @@ void free_blender(void) IMB_exit(); BKE_images_exit(); + BKE_brush_system_exit(); + BLI_callback_global_finalize(); BKE_sequencer_cache_destruct(); diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c index c594e19b960..819d20d4770 100644 --- a/source/blender/blenkernel/intern/brush.c +++ b/source/blender/blenkernel/intern/brush.c @@ -55,6 +55,18 @@ #include "RE_render_ext.h" /* externtex */ #include "RE_shader_ext.h" +static RNG *brush_rng; + +void BKE_brush_system_init(void) { + brush_rng = BLI_rng_new(0); + BLI_rng_srandom(brush_rng, 31415682); +} + +void BKE_brush_system_exit(void) { + BLI_rng_free(brush_rng); +} + + static void brush_defaults(Brush *brush) { brush->blend = 0; @@ -877,8 +889,8 @@ void BKE_brush_jitter_pos(const Scene *scene, Brush *brush, const float pos[2], int diameter; do { - rand_pos[0] = BLI_frand() - 0.5f; - rand_pos[1] = BLI_frand() - 0.5f; + rand_pos[0] = BLI_rng_get_float(brush_rng) - 0.5f; + rand_pos[1] = BLI_rng_get_float(brush_rng) - 0.5f; } while (len_v2(rand_pos) > 0.5f); |