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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2012-11-29 23:04:33 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-11-29 23:04:33 +0400
commit5321669ef6935cb4863637d8068c2d265eef0a31 (patch)
tree0d209e1b3a5dd1041dcbefcca0981abb4b530669 /source/blender/editors/render
parentce3ea8942cc9d01deab18e1517ecd7629887ba44 (diff)
Fix render from local view 3d viewport not using lamps in render.
Fix missing GLSL updates for objects without materials.
Diffstat (limited to 'source/blender/editors/render')
-rw-r--r--source/blender/editors/render/render_internal.c17
-rw-r--r--source/blender/editors/render/render_update.c11
2 files changed, 25 insertions, 3 deletions
diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c
index 7b67f63c646..9a49a1970a0 100644
--- a/source/blender/editors/render/render_internal.c
+++ b/source/blender/editors/render/render_internal.c
@@ -553,13 +553,20 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
rj->win = CTX_wm_window(C);
rj->srl = srl;
rj->camera_override = camera_override;
- rj->lay = (v3d) ? v3d->lay : scene->lay;
+ rj->lay = scene->lay;
rj->anim = is_animation;
rj->write_still = is_write_still && !is_animation;
rj->iuser.scene = scene;
rj->iuser.ok = 1;
rj->reports = op->reports;
+ if(v3d) {
+ rj->lay = v3d->lay;
+
+ if(v3d->localvd)
+ rj->lay |= v3d->localvd->lay;
+ }
+
/* setup job */
if (RE_seq_render_active(scene, &scene->r)) name = "Sequence Render";
else name = "Render";
@@ -611,6 +618,8 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
/* contextual render, using current scene, view3d? */
void RENDER_OT_render(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name = "Render";
ot->description = "Render active scene";
@@ -625,7 +634,9 @@ void RENDER_OT_render(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "animation", 0, "Animation", "Render files from the animation range of this scene");
RNA_def_boolean(ot->srna, "write_still", 0, "Write Image", "Save rendered the image to the output path (used only when animation is disabled)");
- RNA_def_string(ot->srna, "layer", "", RE_MAXNAME, "Render Layer", "Single render layer to re-render (used only when animation is disabled)");
- RNA_def_string(ot->srna, "scene", "", MAX_ID_NAME - 2, "Scene", "Scene to render, current scene if not specified");
+ prop = RNA_def_string(ot->srna, "layer", "", RE_MAXNAME, "Render Layer", "Single render layer to re-render (used only when animation is disabled)");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ prop = RNA_def_string(ot->srna, "scene", "", MAX_ID_NAME - 2, "Scene", "Scene to render, current scene if not specified");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
}
diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c
index 3f438c5948e..e9fbb3a0885 100644
--- a/source/blender/editors/render/render_update.c
+++ b/source/blender/editors/render/render_update.c
@@ -65,6 +65,8 @@
#include "render_intern.h" // own include
+extern Material defmaterial;
+
/***************************** Render Engines ********************************/
void ED_render_scene_update(Main *bmain, Scene *scene, int updated)
@@ -266,6 +268,9 @@ static void lamp_changed(Main *bmain, Lamp *la)
for (ma = bmain->mat.first; ma; ma = ma->id.next)
if (ma->gpumaterial.first)
GPU_material_free(ma);
+
+ if (defmaterial.gpumaterial.first)
+ GPU_material_free(&defmaterial);
}
static void texture_changed(Main *bmain, Tex *tex)
@@ -347,6 +352,9 @@ static void world_changed(Main *bmain, World *wo)
for (ma = bmain->mat.first; ma; ma = ma->id.next)
if (ma->gpumaterial.first)
GPU_material_free(ma);
+
+ if (defmaterial.gpumaterial.first)
+ GPU_material_free(&defmaterial);
}
static void image_changed(Main *bmain, Image *ima)
@@ -375,6 +383,9 @@ static void scene_changed(Main *bmain, Scene *UNUSED(scene))
for (ma = bmain->mat.first; ma; ma = ma->id.next)
if (ma->gpumaterial.first)
GPU_material_free(ma);
+
+ if (defmaterial.gpumaterial.first)
+ GPU_material_free(&defmaterial);
}
void ED_render_id_flush_update(Main *bmain, ID *id)