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:
-rw-r--r--release/scripts/ui/properties_render.py6
-rw-r--r--source/blender/makesrna/intern/rna_scene.c14
-rw-r--r--source/blender/render/intern/source/pipeline.c11
3 files changed, 23 insertions, 8 deletions
diff --git a/release/scripts/ui/properties_render.py b/release/scripts/ui/properties_render.py
index ea12e4d42c4..c7f8ddd052c 100644
--- a/release/scripts/ui/properties_render.py
+++ b/release/scripts/ui/properties_render.py
@@ -222,8 +222,8 @@ class RENDER_PT_performance(RenderButtonsPanel):
col = split.column()
col.label(text="Memory:")
sub = col.column()
+ sub.enabled = not (rd.use_border or rd.full_sample)
sub.prop(rd, "save_buffers")
- sub.enabled = not rd.full_sample
sub = col.column()
sub.active = rd.use_compositing
sub.prop(rd, "free_image_textures")
@@ -454,7 +454,9 @@ class RENDER_PT_antialiasing(RenderButtonsPanel):
col = split.column()
col.row().prop(rd, "antialiasing_samples", expand=True)
- col.prop(rd, "full_sample")
+ sub = col.row()
+ sub.enabled = not rd.use_border
+ sub.prop(rd, "full_sample")
if wide_ui:
col = split.column()
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index f99946b63a6..11aff7922c7 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -354,8 +354,17 @@ static int rna_SceneRenderData_threads_get(PointerRNA *ptr)
static int rna_SceneRenderData_save_buffers_get(PointerRNA *ptr)
{
RenderData *rd= (RenderData*)ptr->data;
+ if(rd->mode & R_BORDER)
+ return 0;
+ else
+ return (rd->scemode & (R_EXR_TILE_FILE|R_FULL_SAMPLE)) != 0;
+}
+
+static int rna_SceneRenderData_full_sample_get(PointerRNA *ptr)
+{
+ RenderData *rd= (RenderData*)ptr->data;
- return (rd->scemode & (R_EXR_TILE_FILE|R_FULL_SAMPLE)) != 0;
+ return (rd->scemode & R_FULL_SAMPLE) && !(rd->mode & R_BORDER);
}
static void rna_SceneRenderData_file_format_set(PointerRNA *ptr, int value)
@@ -2175,7 +2184,7 @@ static void rna_def_scene_render_data(BlenderRNA *brna)
prop= RNA_def_property(srna, "use_border", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", R_BORDER);
- RNA_def_property_ui_text(prop, "Border", "Render a user-defined border region, within the frame size.");
+ RNA_def_property_ui_text(prop, "Border", "Render a user-defined border region, within the frame size. Note, this disables save_buffers and full_sample.");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
prop= RNA_def_property(srna, "border_min_x", PROP_FLOAT, PROP_NONE);
@@ -2268,6 +2277,7 @@ static void rna_def_scene_render_data(BlenderRNA *brna)
prop= RNA_def_property(srna, "full_sample", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "scemode", R_FULL_SAMPLE);
+ RNA_def_property_boolean_funcs(prop, "rna_SceneRenderData_full_sample_get", NULL);
RNA_def_property_ui_text(prop, "Full Sample","Save for every anti-aliasing sample the entire RenderLayer results. This solves anti-aliasing issues with compositing.");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index db8d7e317a0..f679b35c627 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -1227,6 +1227,13 @@ void RE_InitState(Render *re, Render *source, RenderData *rd, SceneRenderLayer *
#ifdef WITH_OPENEXR
if(re->r.scemode & R_FULL_SAMPLE)
re->r.scemode |= R_EXR_TILE_FILE; /* enable automatic */
+
+ /* Until use_border is made compatible with save_buffers/full_sample, render without the later instead of not rendering at all.*/
+ if(re->r.mode & R_BORDER)
+ {
+ re->r.scemode &= ~(R_EXR_TILE_FILE|R_FULL_SAMPLE);
+ }
+
#else
/* can't do this without openexr support */
re->r.scemode &= ~(R_EXR_TILE_FILE|R_FULL_SAMPLE);
@@ -2608,10 +2615,6 @@ static int is_rendering_allowed(Render *re)
re->error(re->erh, "No border area selected.");
return 0;
}
- if(re->r.scemode & (R_EXR_TILE_FILE|R_FULL_SAMPLE)) {
- re->error(re->erh, "Border render and Buffer-save not supported yet");
- return 0;
- }
}
if(re->r.scemode & (R_EXR_TILE_FILE|R_FULL_SAMPLE)) {