Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSybren A. Stüvel <sybren@stuvel.eu>2017-11-02 16:37:10 +0300
committerSybren A. Stüvel <sybren@stuvel.eu>2017-11-02 16:37:10 +0300
commitf7d59fbc460cd2e544c855d8088c98aacf90cfdd (patch)
tree81ed5a9b6996845aee4ee48b3febf0c696f2f2be
parent7eb4ef6cacbb4cf0fbc2ff01d2e1a5fa133072cf (diff)
parent8a3728800cac83a0a9e524790ff46b7eca82cfbd (diff)
Merge branch 'master' into blender2.8
# Conflicts: # tests/gtests/alembic/abc_export_test.cc
-rw-r--r--intern/cycles/blender/blender_session.cpp2
-rw-r--r--source/blender/render/intern/include/render_types.h3
-rw-r--r--source/blender/render/intern/source/external_engine.c4
-rw-r--r--source/blender/render/intern/source/pipeline.c4
-rw-r--r--source/blender/render/intern/source/render_result.c2
-rw-r--r--tests/gtests/alembic/abc_export_test.cc8
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);
}
};