diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-02-15 19:55:24 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-02-15 19:55:24 +0300 |
commit | 6e40e3489f6d43e07da04a034ee564c9134149bb (patch) | |
tree | 8b82f45050f7e8bfecece9aec561e6759fe34edc /source/blender/blenkernel | |
parent | 14c00cda39dcae945611a3de34d9030b000f2649 (diff) |
Add global control over disabling high-resolution smoke draw
Can be found in the viewport's simplify panel, allows to easily
disable high-res display for all the smokes in the scene.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_smoke.h | 8 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/smoke.c | 11 |
2 files changed, 18 insertions, 1 deletions
diff --git a/source/blender/blenkernel/BKE_smoke.h b/source/blender/blenkernel/BKE_smoke.h index cac207b3922..243420c82bf 100644 --- a/source/blender/blenkernel/BKE_smoke.h +++ b/source/blender/blenkernel/BKE_smoke.h @@ -23,6 +23,10 @@ /** \file \ingroup bke */ +struct Scene; +struct SmokeDomainSettings; +struct SmokeModifierData; + typedef float (*bresenham_callback)(float *result, float *input, int res[3], int *pixel, float *tRay, float correct); struct Mesh *smokeModifier_do( @@ -34,7 +38,7 @@ void smokeModifier_free(struct SmokeModifierData *smd); void smokeModifier_reset(struct SmokeModifierData *smd); void smokeModifier_reset_turbulence(struct SmokeModifierData *smd); void smokeModifier_createType(struct SmokeModifierData *smd); -void smokeModifier_copy(const SmokeModifierData *smd, struct SmokeModifierData *tsmd, const int flag); +void smokeModifier_copy(const struct SmokeModifierData *smd, struct SmokeModifierData *tsmd, const int flag); void BKE_smoke_reallocate_fluid(struct SmokeDomainSettings *sds, float dx, int res[3], int free_old); void BKE_smoke_reallocate_highres_fluid(struct SmokeDomainSettings *sds, float dx, int res[3], int free_old); @@ -42,4 +46,6 @@ void BKE_smoke_reallocate_highres_fluid(struct SmokeDomainSettings *sds, float d float BKE_smoke_get_velocity_at(struct Object *ob, float position[3], float velocity[3]); int BKE_smoke_get_data_flags(struct SmokeDomainSettings *sds); +bool BKE_smoke_show_highres(struct Scene *scene, struct SmokeDomainSettings *sds); + #endif /* __BKE_SMOKE_H__ */ diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c index abe9aacf878..94b626d38e0 100644 --- a/source/blender/blenkernel/intern/smoke.c +++ b/source/blender/blenkernel/intern/smoke.c @@ -3148,3 +3148,14 @@ int BKE_smoke_get_data_flags(SmokeDomainSettings *sds) } #endif /* WITH_SMOKE */ + +bool BKE_smoke_show_highres(Scene *scene, SmokeDomainSettings *sds) +{ + if ((sds->viewsettings & MOD_SMOKE_VIEW_SHOW_HIGHRES) == 0) { + return false; + } + if (scene->r.mode & R_SIMPLIFY) { + return !scene->r.simplify_smoke_ignore_highres; + } + return true; +} |