diff options
author | Sybren A. Stüvel <sybren@stuvel.eu> | 2017-11-02 16:37:10 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@stuvel.eu> | 2017-11-02 16:37:10 +0300 |
commit | f7d59fbc460cd2e544c855d8088c98aacf90cfdd (patch) | |
tree | 81ed5a9b6996845aee4ee48b3febf0c696f2f2be | |
parent | 7eb4ef6cacbb4cf0fbc2ff01d2e1a5fa133072cf (diff) | |
parent | 8a3728800cac83a0a9e524790ff46b7eca82cfbd (diff) |
Merge branch 'master' into blender2.8
# Conflicts:
# tests/gtests/alembic/abc_export_test.cc
-rw-r--r-- | intern/cycles/blender/blender_session.cpp | 2 | ||||
-rw-r--r-- | source/blender/render/intern/include/render_types.h | 3 | ||||
-rw-r--r-- | source/blender/render/intern/source/external_engine.c | 4 | ||||
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 4 | ||||
-rw-r--r-- | source/blender/render/intern/source/render_result.c | 2 | ||||
-rw-r--r-- | tests/gtests/alembic/abc_export_test.cc | 8 |
6 files changed, 14 insertions, 9 deletions
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index 1c1ca43b56a..567afca6707 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -346,7 +346,7 @@ void BlenderSession::do_write_update_render_tile(RenderTile& rtile, bool do_upda update_render_result(b_rr, b_rlay, rtile); } - end_render_result(b_engine, b_rr, true, highlight, true); + end_render_result(b_engine, b_rr, true, highlight, false); } else { /* write result */ diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h index c97832f32c5..ec5bb2c9376 100644 --- a/source/blender/render/intern/include/render_types.h +++ b/source/blender/render/intern/include/render_types.h @@ -118,7 +118,8 @@ typedef struct RenderPart { enum { PART_STATUS_NONE = 0, PART_STATUS_IN_PROGRESS = 1, - PART_STATUS_READY = 2 + PART_STATUS_RENDERED = 2, + PART_STATUS_MERGED = 3 }; /* controls state of render, everything that's read-only during render stage */ diff --git a/source/blender/render/intern/source/external_engine.c b/source/blender/render/intern/source/external_engine.c index f445ccbb494..960bdf57b09 100644 --- a/source/blender/render/intern/source/external_engine.c +++ b/source/blender/render/intern/source/external_engine.c @@ -300,7 +300,7 @@ void RE_engine_end_result(RenderEngine *engine, RenderResult *result, int cancel RenderPart *pa = get_part_from_result(re, result); if (pa) { - pa->status = PART_STATUS_READY; + pa->status = (merge_results)? PART_STATUS_MERGED: PART_STATUS_RENDERED; } else if (re->result->do_exr_tile) { /* if written result does not match any tile and we are using save @@ -311,7 +311,7 @@ void RE_engine_end_result(RenderEngine *engine, RenderResult *result, int cancel if (!cancel || merge_results) { if (re->result->do_exr_tile) { - if (!cancel) { + if (!cancel && merge_results) { render_result_exr_file_merge(re->result, result, re->viewname); } } diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 019773a91db..4bd0b78f8e3 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -1152,7 +1152,7 @@ static void *do_part_thread(void *pa_v) BLI_rw_mutex_unlock(&R.resultmutex); } - pa->status = PART_STATUS_READY; + pa->status = PART_STATUS_MERGED; return NULL; } @@ -1258,7 +1258,7 @@ static int sort_and_queue_parts(Render *re, int minx, ThreadQueue *workqueue) /* find center of rendered parts, image center counts for 1 too */ for (pa = re->parts.first; pa; pa = pa->next) { - if (pa->status == PART_STATUS_READY) { + if (pa->status >= PART_STATUS_RENDERED) { centx += BLI_rcti_cent_x(&pa->disprect); centy += BLI_rcti_cent_y(&pa->disprect); tot++; diff --git a/source/blender/render/intern/source/render_result.c b/source/blender/render/intern/source/render_result.c index df51cd3c2e6..aa0c7357302 100644 --- a/source/blender/render/intern/source/render_result.c +++ b/source/blender/render/intern/source/render_result.c @@ -1063,7 +1063,7 @@ void render_result_save_empty_result_tiles(Render *re) IMB_exr_clear_channels(rl->exrhandle); for (pa = re->parts.first; pa; pa = pa->next) { - if (pa->status != PART_STATUS_READY) { + if (pa->status != PART_STATUS_MERGED) { int party = pa->disprect.ymin - re->disprect.ymin + pa->crop; int partx = pa->disprect.xmin - re->disprect.xmin + pa->crop; IMB_exrtile_write_channels(rl->exrhandle, partx, party, 0, re->viewname); diff --git a/tests/gtests/alembic/abc_export_test.cc b/tests/gtests/alembic/abc_export_test.cc index 78622dcf8a0..6fc976b8a55 100644 --- a/tests/gtests/alembic/abc_export_test.cc +++ b/tests/gtests/alembic/abc_export_test.cc @@ -5,8 +5,8 @@ #include "intern/abc_exporter.h" extern "C" { -#include "BKE_global.h" #include "BLI_utildefines.h" +#include "BKE_library.h" #include "BLI_math.h" #include "DNA_scene_types.h" } @@ -44,6 +44,7 @@ protected: Scene scene; TestableAbcExporter *exporter; EvaluationContext eval_ctx; + Main *bmain; virtual void SetUp() { @@ -54,18 +55,21 @@ protected: scene.r.frs_sec = 50; scene.r.frs_sec_base = 2; + bmain = BKE_main_new(); + exporter = NULL; } virtual void TearDown() { + BKE_main_free(bmain); delete exporter; } // Call after setting up the settings. void createExporter() { - exporter = new TestableAbcExporter(G.main, &scene, "somefile.abc", settings); + exporter = new TestableAbcExporter(bmain, &scene, "somefile.abc", settings); } }; |