From 497170ea1849de45b3c2c8e5db62244cba3513a1 Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Tue, 5 Apr 2011 14:37:05 -0500 Subject: [PATCH 03/10] windowscodecs: Implement TiffFrameEncode_SetResolution. --- dlls/windowscodecs/tiffformat.c | 22 ++++++++++++++++++++-- 1 files changed, 20 insertions(+), 2 deletions(-) diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c index 22e9912..a44e80e 100644 --- a/dlls/windowscodecs/tiffformat.c +++ b/dlls/windowscodecs/tiffformat.c @@ -1165,6 +1165,7 @@ typedef struct TiffFrameEncode { BOOL info_written; const struct tiff_encode_format *format; UINT width, height; + double xres, yres; } TiffFrameEncode; static inline TiffFrameEncode *impl_from_IWICBitmapFrameEncode(IWICBitmapFrameEncode *iface) @@ -1267,8 +1268,23 @@ static HRESULT WINAPI TiffFrameEncode_SetSize(IWICBitmapFrameEncode *iface, static HRESULT WINAPI TiffFrameEncode_SetResolution(IWICBitmapFrameEncode *iface, double dpiX, double dpiY) { - FIXME("(%p,%0.2f,%0.2f): stub\n", iface, dpiX, dpiY); - return E_NOTIMPL; + TiffFrameEncode *This = impl_from_IWICBitmapFrameEncode(iface); + TRACE("(%p,%0.2f,%0.2f)\n", iface, dpiX, dpiY); + + EnterCriticalSection(&This->parent->lock); + + if (!This->initialized || This->info_written) + { + LeaveCriticalSection(&This->parent->lock); + return WINCODEC_ERR_WRONGSTATE; + } + + This->xres = dpiX; + This->yres = dpiY; + + LeaveCriticalSection(&This->parent->lock); + + return S_OK; } static HRESULT WINAPI TiffFrameEncode_SetPixelFormat(IWICBitmapFrameEncode *iface, @@ -1531,6 +1547,8 @@ static HRESULT WINAPI TiffEncoder_CreateNewFrame(IWICBitmapEncoder *iface, result->format = NULL; result->width = 0; result->height = 0; + result->xres = 0.0; + result->yres = 0.0; IWICBitmapEncoder_AddRef(iface); *ppIFrameEncode = &result->IWICBitmapFrameEncode_iface; -- 1.7.2.5