[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33909] trunk/blender/source/blender/ editors/render/render_opengl.c: Usability fix:

Ton Roosendaal ton at blender.org
Mon Dec 27 19:00:35 CET 2010


Revision: 33909
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33909
Author:   ton
Date:     2010-12-27 19:00:35 +0100 (Mon, 27 Dec 2010)

Log Message:
-----------
Usability fix:

OpenGL render now first opens render window.
It used to render first, save file, and then open window to show result.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/render/render_opengl.c

Modified: trunk/blender/source/blender/editors/render/render_opengl.c
===================================================================
--- trunk/blender/source/blender/editors/render/render_opengl.c	2010-12-27 12:42:51 UTC (rev 33908)
+++ trunk/blender/source/blender/editors/render/render_opengl.c	2010-12-27 18:00:35 UTC (rev 33909)
@@ -449,7 +449,7 @@
 static int screen_opengl_render_modal(bContext *C, wmOperator *op, wmEvent *event)
 {
 	OGLRender *oglrender= op->customdata;
-
+	int anim= RNA_boolean_get(op->ptr, "animation");
 	int ret;
 
 	switch(event->type) {
@@ -469,7 +469,13 @@
 	/* run first because screen_opengl_render_anim_step can free oglrender */
 	WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, oglrender->scene);
 	
-	ret= screen_opengl_render_anim_step(C, op);
+	if(anim == 0) {
+		screen_opengl_render_apply(op->customdata);
+		screen_opengl_render_end(C, op->customdata);
+		return OPERATOR_FINISHED;
+	}
+	else
+		ret= screen_opengl_render_anim_step(C, op);
 
 	/* stop at the end or on error */
 	if(ret == 0) {
@@ -481,32 +487,24 @@
 
 static int screen_opengl_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
 {
+	OGLRender *oglrender;
 	int anim= RNA_boolean_get(op->ptr, "animation");
 
 	if(!screen_opengl_render_init(C, op))
 		return OPERATOR_CANCELLED;
 
-	if(!anim) {
-		/* render image */
-		screen_opengl_render_apply(op->customdata);
-		screen_opengl_render_end(C, op->customdata);
-		screen_set_image_output(C, event->x, event->y);
-
-		return OPERATOR_FINISHED;
-	}
-	else {
-		OGLRender *oglrender= op->customdata;
-
+	if(anim) {
 		if(!screen_opengl_render_anim_initialize(C, op))
 			return OPERATOR_CANCELLED;
-
-		screen_set_image_output(C, event->x, event->y);
-
-		WM_event_add_modal_handler(C, op);
-		oglrender->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f);
-
-		return OPERATOR_RUNNING_MODAL;
 	}
+	
+	oglrender= op->customdata;
+	screen_set_image_output(C, event->x, event->y);
+	
+	WM_event_add_modal_handler(C, op);
+	oglrender->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f);
+	
+	return OPERATOR_RUNNING_MODAL;
 }
 
 /* executes blocking render */





More information about the Bf-blender-cvs mailing list