This patch repairs problems with displaying images with enabled co=

Tomasz Michno tomek_m9 at interia.pl
Fri Oct 15 08:56:47 CDT 2010


lor management created by gdi and mscms (vertical stripes, sometimes incorr=
ect colors), for example in Pentax Photo Laboratory or SilkyPix Developer S=
tudio (both tested with different images).
 My information about this problem and previous solution could be read on P=
entax Photo Laboratory forum in CrossOver App Db:
 http://www.codeweavers.com/compatibility/browse/name/?app_id=3D5666;forum=
=3D1;msg=3D58159
 For applications which uses EnumICMProfiles to detect monitor icc profile,=
 there should be a copy of monitor profile in windows\system32\spool\driver=
s\color\monitor.icc. If there is no monitor.icc in this directory, applicat=
ion works the same as if there were no color management enabled (but image =
is displayed ok).

---
 dlls/gdi32/icm.c       |    8 ++++++--
 dlls/mscms/transform.c |    2 ++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/dlls/gdi32/icm.c b/dlls/gdi32/icm.c
index 0e346ee..d75c528 100644
--- a/dlls/gdi32/icm.c
+++ b/dlls/gdi32/icm.c
@@ -44,7 +44,9 @@ WINE_DEFAULT_DEBUG_CHANNEL(icm);
 INT WINAPI EnumICMProfilesA(HDC hdc, ICMENUMPROCA func, LPARAM lparam)
 {
 	FIXME("%p, %p, 0x%08lx stub\n", hdc, func, lparam);
-	return -1;
+	(*func)("C:\\windows\\system32\\spool\\drivers\\color\\monitor.icc",lpara=
m);
+	FIXME("partially fixed: force C:\\windows\\system32\\spool\\drivers\\colo=
r\\monitor.icc\n");
+	return 1;
 }
=20
 /***********************************************************************
@@ -53,7 +55,9 @@ INT WINAPI EnumICMProfilesA(HDC hdc, ICMENUMPROCA func, L=
PARAM lparam)
 INT WINAPI EnumICMProfilesW(HDC hdc, ICMENUMPROCW func, LPARAM lparam)
 {
 	FIXME("%p, %p, 0x%08lx stub\n", hdc, func, lparam);
-	return -1;
+	(*func)("C:\\windows\\system32\\spool\\drivers\\color\\monitor.icc",lpara=
m);
+	FIXME("partially fixed: force C:\\windows\\system32\\spool\\drivers\\colo=
r\\monitor.icc\n");=09
+	return 1;
 }
=20
 /**********************************************************************
diff --git a/dlls/mscms/transform.c b/dlls/mscms/transform.c
index a795386..e7a3faa 100644
--- a/dlls/mscms/transform.c
+++ b/dlls/mscms/transform.c
@@ -65,6 +65,8 @@ static DWORD from_bmformat( BMFORMAT format )
     {
     case BM_RGBTRIPLETS: return TYPE_RGB_8;
     case BM_BGRTRIPLETS: return TYPE_BGR_8;
+    case BM_xRGBQUADS:   return TYPE_RGBA_8;
+    case BM_xBGRQUADS:   return TYPE_ABGR_8;    =20
     case BM_GRAY:        return TYPE_GRAY_8;
     default:
         if (quietfixme =3D=3D 0)
--=20
1.7.1



--=-72lW1VF+g44vmcKqXgyD--



More information about the wine-patches mailing list