[Rawstudio-commit] r3007 - branches/rawstudio-ng-color/src

Klaus Post klauspost at gmail.com
Sat Jan 16 14:15:44 CET 2010


Author: post
Date: 2010-01-16 14:15:43 +0100 (Sat, 16 Jan 2010)
New Revision: 3007

Modified:
   branches/rawstudio-ng-color/src/rs-preview-widget.c
Log:
Move cache filter above "input_transform", since "input_transform" wrongly assumes that it receives Prophoto RGB. 

This corrupts the cache, since "make_cbdata" requests sRGB data, and "input_transform" then does a wrong Prophoto->sRGB conversion, which not only is used by make_cbdata, but also cached for display-rendering.

Backside of this temporary "fix" is that any ICC profile will have to be applied every time any color adjustment is made.

Modified: branches/rawstudio-ng-color/src/rs-preview-widget.c
===================================================================
--- branches/rawstudio-ng-color/src/rs-preview-widget.c	2010-01-16 12:03:51 UTC (rev 3006)
+++ branches/rawstudio-ng-color/src/rs-preview-widget.c	2010-01-16 13:15:43 UTC (rev 3007)
@@ -346,9 +346,10 @@
 	for(i=0;i<MAX_VIEWS;i++)
 	{
 		preview->filter_resample[i] = rs_filter_new("RSResample", NULL);
-		preview->filter_transform_input[i] = rs_filter_new("RSColorspaceTransform", preview->filter_resample[i]);
-		preview->filter_cache1[i] = rs_filter_new("RSCache", preview->filter_transform_input[i]);
-		preview->filter_dcp[i] = rs_filter_new("RSDcp", preview->filter_cache1[i]);
+		/* Careful - "make_cbdata" grabs data from "filter_cache1" */
+		preview->filter_cache1[i] = rs_filter_new("RSCache", preview->filter_resample[i]);
+		preview->filter_transform_input[i] = rs_filter_new("RSColorspaceTransform", preview->filter_cache1[i]);
+		preview->filter_dcp[i] = rs_filter_new("RSDcp", preview->filter_transform_input[i]);
 		preview->filter_cache2[i] = rs_filter_new("RSCache", preview->filter_dcp[i]);
 		preview->filter_denoise[i] = rs_filter_new("RSDenoise", preview->filter_cache2[i]);
 		preview->filter_transform_display[i] = rs_filter_new("RSColorspaceTransform", preview->filter_denoise[i]);




More information about the Rawstudio-commit mailing list