diff options
Diffstat (limited to 'intern/cycles/render/geometry.cpp')
-rw-r--r-- | intern/cycles/render/geometry.cpp | 39 |
1 files changed, 30 insertions, 9 deletions
diff --git a/intern/cycles/render/geometry.cpp b/intern/cycles/render/geometry.cpp index a63fc620c69..12f4eaf0b79 100644 --- a/intern/cycles/render/geometry.cpp +++ b/intern/cycles/render/geometry.cpp @@ -1410,12 +1410,17 @@ void GeometryManager::device_update(Device *device, true_displacement_used = true; } - if (progress.get_cancel()) + if (progress.get_cancel()) { return; + } } } } + if (progress.get_cancel()) { + return; + } + /* Tessellate meshes that are using subdivision */ if (total_tess_needed) { scoped_callback_timer timer([scene](double time) { @@ -1453,10 +1458,15 @@ void GeometryManager::device_update(Device *device, i++; - if (progress.get_cancel()) + if (progress.get_cancel()) { return; + } } } + + if (progress.get_cancel()) { + return; + } } /* Update images needed for true displacement. */ @@ -1486,8 +1496,9 @@ void GeometryManager::device_update(Device *device, }); device_update_mesh(device, dscene, scene, true, progress); } - if (progress.get_cancel()) + if (progress.get_cancel()) { return; + } { scoped_callback_timer timer([scene](double time) { @@ -1496,8 +1507,9 @@ void GeometryManager::device_update(Device *device, } }); device_update_attributes(device, dscene, scene, progress); - if (progress.get_cancel()) + if (progress.get_cancel()) { return; + } } /* Update displacement. */ @@ -1527,11 +1539,16 @@ void GeometryManager::device_update(Device *device, } } - if (progress.get_cancel()) + if (progress.get_cancel()) { return; + } } } + if (progress.get_cancel()) { + return; + } + /* Device re-update after displacement. */ if (displacement_done) { scoped_callback_timer timer([scene](double time) { @@ -1543,8 +1560,9 @@ void GeometryManager::device_update(Device *device, device_free(device, dscene); device_update_attributes(device, dscene, scene, progress); - if (progress.get_cancel()) + if (progress.get_cancel()) { return; + } } { @@ -1591,8 +1609,9 @@ void GeometryManager::device_update(Device *device, } } - if (progress.get_cancel()) + if (progress.get_cancel()) { return; + } { scoped_callback_timer timer([scene](double time) { @@ -1601,8 +1620,9 @@ void GeometryManager::device_update(Device *device, } }); device_update_bvh(device, dscene, scene, progress); - if (progress.get_cancel()) + if (progress.get_cancel()) { return; + } } { @@ -1613,8 +1633,9 @@ void GeometryManager::device_update(Device *device, } }); device_update_mesh(device, dscene, scene, false, progress); - if (progress.get_cancel()) + if (progress.get_cancel()) { return; + } } need_update = false; |