Author: abrander
Date: 2009-07-08 01:13:47 +0200 (Wed, 08 Jul 2009)
New Revision: 2577

Modified:
   trunk/src/rs-preview-widget.c
Log:
Enabled very simple single-threaded two-phased redrawing in RSPreviewWidget.

Modified: trunk/src/rs-preview-widget.c
===================================================================
--- trunk/src/rs-preview-widget.c       2009-07-07 23:01:33 UTC (rev 2576)
+++ trunk/src/rs-preview-widget.c       2009-07-07 23:13:47 UTC (rev 2577)
@@ -570,6 +570,7 @@
 
                for(view=0;view<MAX_VIEWS;view++) 
                {
+                       rs_filter_param_set_quick(preview->param[view], TRUE);
                        g_object_set(preview->filter_render[view], "settings", 
preview->photo->settings[preview->snapshot[view]], NULL);
                        g_object_set(preview->filter_denoise[view], "settings", 
preview->photo->settings[preview->snapshot[view]], NULL);
                }
@@ -1338,6 +1339,15 @@
 
                                g_object_unref(buffer);
                        }
+
+                       /* This is a hack to redraw when we got a "quick" 
response - should
+                          be replacedby something threaded or something */
+                       if(rs_filter_response_get_quick(response))
+                       {
+                               rs_filter_param_set_quick(preview->param[i], 
FALSE);
+                               gdk_window_invalidate_rect(window, &area, 
FALSE);
+                       }
+
                        g_object_unref(response);
                }
 
@@ -2373,16 +2383,14 @@
 
        if (!preview->last_roi[view])
                return FALSE;
-       RSFilterParam *param = rs_filter_param_new();
-       rs_filter_param_set_roi(param, preview->last_roi[view]);
 
-       RSFilterResponse *response = 
rs_filter_get_image(preview->filter_cache1[view], param);
+       RSFilterResponse *response = 
rs_filter_get_image(preview->filter_cache1[view], preview->param[view]);
        RS_IMAGE16 *image = rs_filter_response_get_image(response);
        g_object_unref(response);
-       response = rs_filter_get_image8(preview->filter_end[view], param);
+
+       response = rs_filter_get_image8(preview->filter_end[view], 
preview->param[view]);
        GdkPixbuf *buffer = rs_filter_response_get_image8(response);
        g_object_unref(response);
-       g_object_unref(param);
 
        if (!image)
                return FALSE;


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to