Vincent Povirk : gdiplus: Implement GdipGetImagePalette.
Alexandre Julliard
julliard at winehq.org
Mon Dec 14 09:51:11 CST 2009
Module: wine
Branch: master
Commit: 9615dd8fdba958150dd7d3ea05eb8ae97c55bed4
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9615dd8fdba958150dd7d3ea05eb8ae97c55bed4
Author: Vincent Povirk <vincent at codeweavers.com>
Date: Fri Dec 11 17:00:19 2009 -0600
gdiplus: Implement GdipGetImagePalette.
---
dlls/gdiplus/image.c | 17 ++++++++++++-----
1 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c
index 74c3f11..982956c 100644
--- a/dlls/gdiplus/image.c
+++ b/dlls/gdiplus/image.c
@@ -2242,15 +2242,22 @@ GpStatus WINGDIPAPI GdipSaveImageToStream(GpImage *image, IStream* stream,
*/
GpStatus WINGDIPAPI GdipGetImagePalette(GpImage *image, ColorPalette *palette, INT size)
{
- static int calls = 0;
+ TRACE("(%p,%p,%i)\n", image, palette, size);
- if(!image)
+ if (!image || !palette)
return InvalidParameter;
- if(!(calls++))
- FIXME("not implemented\n");
+ if (size < (sizeof(UINT)*2+sizeof(ARGB)*image->palette_count))
+ {
+ TRACE("<-- InsufficientBuffer\n");
+ return InsufficientBuffer;
+ }
- return NotImplemented;
+ palette->Flags = image->palette_flags;
+ palette->Count = image->palette_count;
+ memcpy(palette->Entries, image->palette_entries, sizeof(ARGB)*image->palette_count);
+
+ return Ok;
}
/*****************************************************************************
More information about the wine-cvs
mailing list