diff options
author | Antonioya <blendergit@gmail.com> | 2018-11-06 13:09:52 +0300 |
---|---|---|
committer | Antonioya <blendergit@gmail.com> | 2018-11-06 13:10:14 +0300 |
commit | 5ccd60e0e7ceb2e4c8028de54400c3c5b3692f87 (patch) | |
tree | 5bdf54f50ec5bd702fa9b687a9ff956d583a6ba5 /source/blender/gpencil_modifiers | |
parent | 0f1390c99e17e8d21af49ed2fc78d8c7b293b06a (diff) |
GP: Fix Time Offset for frames before range
Diffstat (limited to 'source/blender/gpencil_modifiers')
-rw-r--r-- | source/blender/gpencil_modifiers/intern/MOD_gpenciltime.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpenciltime.c b/source/blender/gpencil_modifiers/intern/MOD_gpenciltime.c index 65f75b5eca6..e220d5a5e85 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpenciltime.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpenciltime.c @@ -80,6 +80,7 @@ static int remapTime( CLAMP_MIN(efra, 1); const int time_range = efra - sfra + 1; int offset = mmd->offset; + int segments = 0; /* omit if filter by layer */ if (mmd->layername[0] != '\0') { @@ -136,8 +137,16 @@ static int remapTime( } } - if (cfra >= efra) { - cfra = sfra + (cfra - ((cfra / time_range) * time_range)) - 1; + /* check frames before start */ + if (cfra < sfra) { + segments = ((cfra + sfra) / time_range); + cfra = cfra + (segments * time_range); + } + + /* check frames after end */ + if (cfra > efra) { + segments = ((cfra - sfra) / time_range); + cfra = cfra - (segments * time_range); } if (mmd->flag & GP_TIME_KEEP_LOOP) { |