Author: post
Date: 2010-01-24 12:10:26 +0100 (Sun, 24 Jan 2010)
New Revision: 3070
Modified:
branches/rawstudio-ng-color/plugins/cache/cache.c
Log:
If cache is receiving an ROI call, and ignore roi is set, remove roi from
request.
Modified: branches/rawstudio-ng-color/plugins/cache/cache.c
===================================================================
--- branches/rawstudio-ng-color/plugins/cache/cache.c 2010-01-24 10:22:01 UTC
(rev 3069)
+++ branches/rawstudio-ng-color/plugins/cache/cache.c 2010-01-24 11:10:26 UTC
(rev 3070)
@@ -179,11 +179,18 @@
}
static RSFilterResponse *
-get_image(RSFilter *filter, const RSFilterRequest *request)
+get_image(RSFilter *filter, const RSFilterRequest *_request)
{
RSCache *cache = RS_CACHE(filter);
+ RSFilterRequest *request = rs_filter_request_clone(_request);
GdkRectangle *roi = rs_filter_request_get_roi(request);
+ if (roi && cache->ignore_roi)
+ {
+ roi = NULL;
+ rs_filter_request_set_roi(request, NULL);
+ }
+
if (rs_filter_response_has_image(cache->cached_image)) {
if (rs_filter_response_get_quick(cache->cached_image) &&
!rs_filter_request_get_quick(request))
@@ -217,16 +224,25 @@
if (img)
g_object_unref(img);
+ g_object_unref(request);
+
return fr;
}
static RSFilterResponse *
-get_image8(RSFilter *filter, const RSFilterRequest *request)
+get_image8(RSFilter *filter, const RSFilterRequest *_request)
{
RSCache *cache = RS_CACHE(filter);
+ RSFilterRequest *request = rs_filter_request_clone(_request);
GdkRectangle *roi = rs_filter_request_get_roi(request);
+ if (roi && cache->ignore_roi)
+ {
+ roi = NULL;
+ rs_filter_request_set_roi(request, NULL);
+ }
+
if (rs_filter_response_has_image8(cache->cached_image)) {
if (rs_filter_response_get_quick(cache->cached_image) &&
!rs_filter_request_get_quick(request))
@@ -256,9 +272,12 @@
RSFilterResponse *fr = rs_filter_response_clone(cache->cached_image);
GdkPixbuf* img = rs_filter_response_get_image8(cache->cached_image);
rs_filter_response_set_image8(fr, img);
+
if (img)
g_object_unref(img);
+ g_object_unref(request);
+
return fr;
}
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit