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:
authorTon Roosendaal <ton@blender.org>2013-05-12 17:15:41 +0400
committerTon Roosendaal <ton@blender.org>2013-05-12 17:15:41 +0400
commit5fcf9b1d2fe94798178beeea8e31f54faac31414 (patch)
treeb58e66f5f63ea19a99a6dc0f99211ecc588ed24e /source/blender/render
parent40535f5ef3baaef5ba4d8c1f7abbbb7f1efe3b77 (diff)
3D viewport render preview:
- Put it available as a default now (no debug value needed) - Fixed viewport size error, viewport was badly set (visible with border render, property regions) - Fixed hanging lock in conflict between drawing and initialize new renders.
Diffstat (limited to 'source/blender/render')
-rw-r--r--source/blender/render/extern/include/RE_pipeline.h3
-rw-r--r--source/blender/render/intern/include/render_types.h3
-rw-r--r--source/blender/render/intern/source/external_engine.c12
-rw-r--r--source/blender/render/intern/source/pipeline.c9
4 files changed, 13 insertions, 14 deletions
diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h
index 9e8432b3787..52d42cd20a4 100644
--- a/source/blender/render/extern/include/RE_pipeline.h
+++ b/source/blender/render/extern/include/RE_pipeline.h
@@ -179,7 +179,10 @@ void RE_AcquireResultImage(struct Render *re, struct RenderResult *rr);
void RE_ReleaseResultImage(struct Render *re);
void RE_SwapResult(struct Render *re, struct RenderResult **rr);
struct RenderStats *RE_GetStats(struct Render *re);
+
void RE_ResultGet32(struct Render *re, unsigned int *rect);
+void RE_AcquiredResultGet32(struct Render *re, struct RenderResult *result, unsigned int *rect);
+
struct RenderLayer *RE_GetRenderLayer(struct RenderResult *rr, const char *name);
float *RE_RenderLayerGetPass(struct RenderLayer *rl, int passtype);
diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h
index 4706cd02dd1..5bd0e9747d4 100644
--- a/source/blender/render/intern/include/render_types.h
+++ b/source/blender/render/intern/include/render_types.h
@@ -345,7 +345,8 @@ typedef struct ObjectInstanceRen {
Object *ob, *par;
int index, psysindex, lay;
- float mat[4][4], nmat[3][3]; /* nmat is inverse mat tranposed */
+ float mat[4][4], imat[4][4];
+ float nmat[3][3]; /* nmat is inverse mat tranposed */
short flag;
float dupliorco[3], dupliuv[2];
diff --git a/source/blender/render/intern/source/external_engine.c b/source/blender/render/intern/source/external_engine.c
index 7ce5d9f72de..b7cd40043f4 100644
--- a/source/blender/render/intern/source/external_engine.c
+++ b/source/blender/render/intern/source/external_engine.c
@@ -115,18 +115,6 @@ RenderEngineType *RE_engines_find(const char *idname)
type = BLI_findstring(&R_engines, idname, offsetof(RenderEngineType, idname));
if (!type)
type = &internal_render_type;
-
- /* XXX Hack to make this a debug-only option, remove section to make it available default */
- if (type == &internal_render_type) {
- static RenderEngineType rtype;
-
- if (type->view_update == NULL)
- rtype = internal_render_type;
- else if (G.debug_value != -1) {
- type = &rtype;
- }
- }
- /* XXX end hack */
return type;
}
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index 4f719821c10..67d3354f6d3 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -348,6 +348,13 @@ void RE_ResultGet32(Render *re, unsigned int *rect)
RE_ReleaseResultImage(re);
}
+/* caller is responsible for allocating rect in correct size! */
+/* Only for acquired results, for lock */
+void RE_AcquiredResultGet32(Render *re, RenderResult *result, unsigned int *rect)
+{
+ render_result_rect_get_pixels(result, rect, re->rectx, re->recty, &re->scene->view_settings, &re->scene->display_settings);
+}
+
RenderStats *RE_GetStats(Render *re)
{
return &re->i;
@@ -2446,7 +2453,7 @@ static int do_write_image_or_movie(Render *re, Main *bmain, Scene *scene, bMovie
if (ibuf->rect == NULL) {
ibuf->rect = MEM_mapallocN(sizeof(int) * rres.rectx * rres.recty, "temp 32 bits rect");
ibuf->mall |= IB_rect;
- RE_ResultGet32(re, ibuf->rect);
+ RE_AcquiredResultGet32(re, &rres, ibuf->rect);
do_free = TRUE;
}