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 */


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to