Vincent Povirk : windowscodecs: Implement Commit for the PNG encoder.
Alexandre Julliard
julliard at winehq.org
Fri Oct 9 09:24:17 CDT 2009
Module: wine
Branch: master
Commit: 3db6ef498097676644c87ad2130552ac98a73a5f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3db6ef498097676644c87ad2130552ac98a73a5f
Author: Vincent Povirk <vincent at codeweavers.com>
Date: Wed Sep 23 17:21:46 2009 -0500
windowscodecs: Implement Commit for the PNG encoder.
---
dlls/windowscodecs/pngformat.c | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/windowscodecs/pngformat.c b/dlls/windowscodecs/pngformat.c
index 404fa25..6aaca6b 100644
--- a/dlls/windowscodecs/pngformat.c
+++ b/dlls/windowscodecs/pngformat.c
@@ -715,6 +715,7 @@ typedef struct PngEncoder {
double xres, yres;
UINT lines_written;
BOOL frame_committed;
+ BOOL committed;
} PngEncoder;
static inline PngEncoder *encoder_from_frame(IWICBitmapFrameEncode *iface)
@@ -1195,8 +1196,15 @@ static HRESULT WINAPI PngEncoder_CreateNewFrame(IWICBitmapEncoder *iface,
static HRESULT WINAPI PngEncoder_Commit(IWICBitmapEncoder *iface)
{
- TRACE("(%p): stub\n", iface);
- return E_NOTIMPL;
+ PngEncoder *This = (PngEncoder*)iface;
+ TRACE("(%p)\n", iface);
+
+ if (!This->frame_committed || This->committed)
+ return WINCODEC_ERR_WRONGSTATE;
+
+ This->committed = TRUE;
+
+ return S_OK;
}
static HRESULT WINAPI PngEncoder_GetMetadataQueryWriter(IWICBitmapEncoder *iface,
@@ -1258,6 +1266,7 @@ HRESULT PngEncoder_CreateInstance(IUnknown *pUnkOuter, REFIID iid, void** ppv)
This->yres = 0.0;
This->lines_written = 0;
This->frame_committed = FALSE;
+ This->committed = FALSE;
ret = IUnknown_QueryInterface((IUnknown*)This, iid, ppv);
IUnknown_Release((IUnknown*)This);
More information about the wine-cvs
mailing list