Vincent Povirk : gdiplus: Set flags and dpi when images are loaded.
Alexandre Julliard
julliard at winehq.org
Thu Sep 2 12:01:24 CDT 2010
Module: wine
Branch: master
Commit: 77a5b635aa011bace81bb18fd103f0abd7860342
URL: http://source.winehq.org/git/wine.git/?a=commit;h=77a5b635aa011bace81bb18fd103f0abd7860342
Author: Vincent Povirk <vincent at codeweavers.com>
Date: Fri Jul 2 17:39:17 2010 -0400
gdiplus: Set flags and dpi when images are loaded.
---
dlls/gdiplus/image.c | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c
index bcee1aa..4ed226d 100644
--- a/dlls/gdiplus/image.c
+++ b/dlls/gdiplus/image.c
@@ -2606,6 +2606,18 @@ static GpStatus decode_image_wic(IStream* stream, REFCLSID clsid, GpImage **imag
*image = NULL;
GdipDisposeImage((GpImage*)bitmap);
}
+
+ if (SUCCEEDED(hr) && status == Ok)
+ {
+ double dpix, dpiy;
+ hr = IWICBitmapSource_GetResolution(source, &dpix, &dpiy);
+ if (SUCCEEDED(hr))
+ {
+ bitmap->image.xres = dpix;
+ bitmap->image.yres = dpiy;
+ }
+ hr = S_OK;
+ }
}
IWICBitmapSource_Release(source);
@@ -2621,6 +2633,12 @@ end:
if (FAILED(hr) && status == Ok) status = hresult_to_status(hr);
+ if (status == Ok)
+ {
+ /* Native GDI+ used to be smarter, but since Win7 it just sets these flags. */
+ bitmap->image.flags |= ImageFlagsReadOnly|ImageFlagsHasRealPixelSize|ImageFlagsHasRealDPI|ImageFlagsColorSpaceRGB;
+ }
+
return status;
}
More information about the wine-cvs
mailing list