[8/9] windowscodecs: implement GetResolution for BMP decoder
Vincent Povirk
madewokherd+8cd9 at gmail.com
Sat Jun 27 20:51:24 CDT 2009
Vincent Povirk
-------------- next part --------------
From 18c86a0ca23661ca1a317960859af580655a1142 Mon Sep 17 00:00:00 2001
From: Vincent Povirk <vincent at codeweavers.com>
Date: Wed, 24 Jun 2009 16:32:19 -0500
Subject: [PATCH 8/9] windowscodecs: implement GetResolution for BMP decoder
---
dlls/windowscodecs/bmpdecode.c | 26 ++++++++++++++++++++++++--
1 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/dlls/windowscodecs/bmpdecode.c b/dlls/windowscodecs/bmpdecode.c
index f30e316..c9c8bbe 100644
--- a/dlls/windowscodecs/bmpdecode.c
+++ b/dlls/windowscodecs/bmpdecode.c
@@ -155,11 +155,33 @@ static HRESULT WINAPI BmpFrameDecode_GetPixelFormat(IWICBitmapFrameDecode *iface
return E_NOTIMPL;
}
+static HRESULT BmpHeader_GetResolution(BITMAPV5HEADER *bih, double *pDpiX, double *pDpiY)
+{
+ switch (bih->bV5Size)
+ {
+ case sizeof(BITMAPCOREHEADER):
+ *pDpiX = 96.0;
+ *pDpiY = 96.0;
+ return S_OK;
+ case sizeof(BITMAPCOREHEADER2):
+ case sizeof(BITMAPINFOHEADER):
+ case sizeof(BITMAPV4HEADER):
+ case sizeof(BITMAPV5HEADER):
+ *pDpiX = bih->bV5XPelsPerMeter * 0.0254;
+ *pDpiY = bih->bV5YPelsPerMeter * 0.0254;
+ return S_OK;
+ default:
+ return E_FAIL;
+ }
+}
+
static HRESULT WINAPI BmpFrameDecode_GetResolution(IWICBitmapFrameDecode *iface,
double *pDpiX, double *pDpiY)
{
- FIXME("(%p,%p,%p): stub\n", iface, pDpiX, pDpiY);
- return E_NOTIMPL;
+ BmpFrameDecode *This = (BmpFrameDecode*)iface;
+ TRACE("(%p,%p,%p)\n", iface, pDpiX, pDpiY);
+
+ return BmpHeader_GetResolution(&This->bih, pDpiX, pDpiY);
}
static HRESULT WINAPI BmpFrameDecode_CopyPalette(IWICBitmapFrameDecode *iface,
--
1.6.3.1
More information about the wine-patches
mailing list