Module: wine Branch: master Commit: 77a5b635aa011bace81bb18fd103f0abd7860342 URL: http://source.winehq.org/git/wine.git/?a=commit;h=77a5b635aa011bace81bb18fd1...
Author: Vincent Povirk vincent@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; }