[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56705] trunk/blender/source/blender: 3D viewport render preview:
Ton Roosendaal
ton at blender.org
Sun May 12 15:15:42 CEST 2013
Revision: 56705
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56705
Author: ton
Date: 2013-05-12 13:15:41 +0000 (Sun, 12 May 2013)
Log Message:
-----------
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.
Modified Paths:
--------------
trunk/blender/source/blender/editors/render/render_internal.c
trunk/blender/source/blender/editors/render/render_preview.c
trunk/blender/source/blender/render/extern/include/RE_pipeline.h
trunk/blender/source/blender/render/intern/include/render_types.h
trunk/blender/source/blender/render/intern/source/external_engine.c
trunk/blender/source/blender/render/intern/source/pipeline.c
Modified: trunk/blender/source/blender/editors/render/render_internal.c
===================================================================
--- trunk/blender/source/blender/editors/render/render_internal.c 2013-05-12 12:23:44 UTC (rev 56704)
+++ trunk/blender/source/blender/editors/render/render_internal.c 2013-05-12 13:15:41 UTC (rev 56705)
@@ -854,10 +854,10 @@
/* initalize always */
if (render_view3d_disprect(rp->scene, rp->ar, rp->v3d, rp->rv3d, &cliprct)) {
rdata.mode |= R_BORDER;
- RE_InitState(re, NULL, &rdata, NULL, rp->sa->winx, rp->sa->winy, &cliprct);
+ RE_InitState(re, NULL, &rdata, NULL, rp->ar->winx, rp->ar->winy, &cliprct);
}
else
- RE_InitState(re, NULL, &rdata, NULL, rp->sa->winx, rp->sa->winy, NULL);
+ RE_InitState(re, NULL, &rdata, NULL, rp->ar->winx, rp->ar->winy, NULL);
}
if (orth)
@@ -1030,7 +1030,7 @@
if (rres.rectf) {
unsigned char *rect_byte = MEM_mallocN(rres.rectx * rres.recty * sizeof(int), "ed_preview_draw_rect");
- RE_ResultGet32(re, (unsigned int *)rect_byte);
+ RE_AcquiredResultGet32(re, &rres, (unsigned int *)rect_byte);
glEnable(GL_BLEND);
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
Modified: trunk/blender/source/blender/editors/render/render_preview.c
===================================================================
--- trunk/blender/source/blender/editors/render/render_preview.c 2013-05-12 12:23:44 UTC (rev 56704)
+++ trunk/blender/source/blender/editors/render/render_preview.c 2013-05-12 13:15:41 UTC (rev 56705)
@@ -563,7 +563,7 @@
float fx = rect->xmin + offx;
float fy = rect->ymin;
- RE_ResultGet32(re, (unsigned int *)rect_byte);
+ RE_AcquiredResultGet32(re, &rres, (unsigned int *)rect_byte);
glaDrawPixelsSafe(fx, fy, rres.rectx, rres.recty, rres.rectx, GL_RGBA, GL_UNSIGNED_BYTE, rect_byte);
MEM_freeN(rect_byte);
Modified: trunk/blender/source/blender/render/extern/include/RE_pipeline.h
===================================================================
--- trunk/blender/source/blender/render/extern/include/RE_pipeline.h 2013-05-12 12:23:44 UTC (rev 56704)
+++ trunk/blender/source/blender/render/extern/include/RE_pipeline.h 2013-05-12 13:15:41 UTC (rev 56705)
@@ -179,7 +179,10 @@
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);
Modified: trunk/blender/source/blender/render/intern/include/render_types.h
===================================================================
--- trunk/blender/source/blender/render/intern/include/render_types.h 2013-05-12 12:23:44 UTC (rev 56704)
+++ trunk/blender/source/blender/render/intern/include/render_types.h 2013-05-12 13:15:41 UTC (rev 56705)
@@ -345,7 +345,8 @@
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];
Modified: trunk/blender/source/blender/render/intern/source/external_engine.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/external_engine.c 2013-05-12 12:23:44 UTC (rev 56704)
+++ trunk/blender/source/blender/render/intern/source/external_engine.c 2013-05-12 13:15:41 UTC (rev 56705)
@@ -115,18 +115,6 @@
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;
}
Modified: trunk/blender/source/blender/render/intern/source/pipeline.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/pipeline.c 2013-05-12 12:23:44 UTC (rev 56704)
+++ trunk/blender/source/blender/render/intern/source/pipeline.c 2013-05-12 13:15:41 UTC (rev 56705)
@@ -348,6 +348,13 @@
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 @@
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;
}
More information about the Bf-blender-cvs
mailing list