Author: post
Date: 2010-08-29 13:15:16 +0200 (Sun, 29 Aug 2010)
New Revision: 3518

Modified:
   trunk/plugins/cache/cache.c
Log:
Add console debug printing to cache, enabled in sourcecode.

Modified: trunk/plugins/cache/cache.c
===================================================================
--- trunk/plugins/cache/cache.c 2010-08-29 09:54:13 UTC (rev 3517)
+++ trunk/plugins/cache/cache.c 2010-08-29 11:15:16 UTC (rev 3518)
@@ -21,6 +21,12 @@
 
 #include <rawstudio.h>
 
+#if 0 /* Change to 1 to enable debugging info */
+#define filter_debug g_debug
+#else
+#define filter_debug(...)
+#endif
+
 #define RS_TYPE_CACHE (rs_cache_type)
 #define RS_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RS_TYPE_CACHE, 
RSCache))
 #define RS_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), 
RS_TYPE_CACHE, RSCacheClass))
@@ -185,16 +191,22 @@
        RSFilterRequest *request = rs_filter_request_clone(_request);
        GdkRectangle *roi = rs_filter_request_get_roi(request);
 
+       filter_debug("Cache[%p]: getimage() called", filter);
+
        if (roi && cache->ignore_roi)
        {
                roi = NULL;
                rs_filter_request_set_roi(request, NULL);
+               filter_debug("Cache[%p]: Disabling ROI for upward calls", 
filter);
        }
 
        if (rs_filter_response_has_image(cache->cached_image)) {
 
                if (rs_filter_response_get_quick(cache->cached_image) && 
!rs_filter_request_get_quick(request))
+               {
+                       filter_debug("Cache[%p]: Cached image is quick and 
requested image is not!", filter);
                        flush(cache);
+               }
 
                if (!rs_filter_response_get_roi(cache->cached_image) && roi)
                        set_roi_to_full(cache);
@@ -202,7 +214,10 @@
                if (!cache->ignore_roi && roi)
                        if (rs_filter_response_get_roi(cache->cached_image)) 
                                if 
(!rectangle_is_inside(rs_filter_response_get_roi(cache->cached_image), roi))
+                               {
+                                       filter_debug("Cache[%p]: Cached image 
ROI does not cover requested ROI!", filter);
                                        flush(cache);
+                               }
 
                if (!roi && rs_filter_response_get_roi(cache->cached_image))
                        flush(cache);
@@ -211,6 +226,7 @@
 
        if (!rs_filter_response_has_image(cache->cached_image))
        {
+               filter_debug("Cache[%p]: Cached image NOT found", filter);
                g_object_unref(cache->cached_image);
                cache->cached_image = rs_filter_get_image(filter->previous, 
request);
                rs_filter_response_set_roi(cache->cached_image, roi);
@@ -237,28 +253,41 @@
        RSCache *cache = RS_CACHE(filter);
        RSFilterRequest *request = rs_filter_request_clone(_request);
        GdkRectangle *roi = rs_filter_request_get_roi(request);
+       filter_debug("Cache[%p]: getimage8() called", filter);
 
        if (roi && cache->ignore_roi)
        {
                roi = NULL;
                rs_filter_request_set_roi(request, NULL);
+               filter_debug("Cache[%p]: Disabling ROI for upward calls", 
filter);
        }
 
        if (rs_filter_response_has_image8(cache->cached_image)) {
 
                if (rs_filter_response_get_quick(cache->cached_image) && 
!rs_filter_request_get_quick(request))
+               {
+                       filter_debug("Cache[%p]: Cached image is quick and 
requested image is not!", filter);
                        flush(cache);
+               }
 
                if (!rs_filter_response_get_roi(cache->cached_image) && roi)
+               {
                        set_roi_to_full(cache);
+               }
 
                if (!cache->ignore_roi && roi) 
                        if (rs_filter_response_get_roi(cache->cached_image)) 
                                if 
(!rectangle_is_inside(rs_filter_response_get_roi(cache->cached_image), roi))
+                               {
+                                       filter_debug("Cache[%p]: Cached image 
ROI does not cover requested ROI!", filter);
                                        flush(cache);
+                               }
 
                if (!roi && rs_filter_response_get_roi(cache->cached_image))
+               {
+                       filter_debug("Cache[%p]: Cached image has ROI, but 
request does not.", filter);
                        flush(cache);
+               }
 
                RSColorSpace *cached_space = NULL;
                if (cache->cached_image)
@@ -268,11 +297,16 @@
 
                if (cached_space && requested_space)
                        if (cached_space != requested_space)
+                       {
+                               filter_debug("Cache[%p]: Colorspace does not 
match Cached:%s vs Requested:%s.", filter, 
+                                                                               
 rs_color_space_get_name(cached_space), 
rs_color_space_get_name(requested_space));
                                flush(cache);
+                       }
        }
 
        if (!rs_filter_response_has_image8(cache->cached_image))
        {
+               filter_debug("Cache[%p]: Cached image8 NOT found", filter);
                g_object_unref(cache->cached_image);
                cache->cached_image = rs_filter_get_image8(filter->previous, 
request);
                rs_filter_response_set_roi(cache->cached_image, roi);
@@ -305,6 +339,7 @@
 static void
 flush(RSCache *cache)
 {
+       filter_debug("Cache[%p]: Cache flushed", cache);
        g_object_unref(cache->cached_image);
        cache->cached_image = rs_filter_response_new();
 }
@@ -314,6 +349,7 @@
 {
        RSCache *cache = RS_CACHE(filter);
 
+       filter_debug("Cache[%p]: Previous Changed (%x)", filter, mask);
        if (mask & RS_FILTER_CHANGED_PIXELDATA)
                flush(cache);
 
@@ -324,6 +360,7 @@
                {
                        cache->ignore_changed = TRUE;
                        g_timeout_add(cache->latency, 
previous_changed_timeout_func, cache);
+                       filter_debug("Cache[%p]: Delaying change.", filter);
                }
        }
        else


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

Reply via email to