[7/7] gdiplus: added GdipCreateBitmapFromGraphics stub

Evan Stade estade at gmail.com
Wed Aug 8 21:42:28 CDT 2007


Hi,

This function kind of works, but is mostly a stub.

 dlls/gdiplus/gdiplus.spec |    2 +-
 dlls/gdiplus/image.c      |   20 ++++++++++++++++++++
 include/gdiplusflat.h     |    1 +
 3 files changed, 22 insertions(+), 1 deletions(-)

-- 
Evan Stade
-------------- next part --------------
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
index 834d0e2..50d2f6b 100644
--- a/dlls/gdiplus/gdiplus.spec
+++ b/dlls/gdiplus/gdiplus.spec
@@ -74,7 +74,7 @@
 @ stdcall GdipCreateBitmapFromFile(wstr ptr)
 @ stub GdipCreateBitmapFromFileICM
 @ stub GdipCreateBitmapFromGdiDib
-@ stub GdipCreateBitmapFromGraphics
+@ stdcall GdipCreateBitmapFromGraphics(long long ptr ptr)
 @ stub GdipCreateBitmapFromHBITMAP
 @ stub GdipCreateBitmapFromHICON
 @ stub GdipCreateBitmapFromResource
diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c
index d34e76d..d813678 100644
--- a/dlls/gdiplus/image.c
+++ b/dlls/gdiplus/image.c
@@ -251,6 +251,26 @@ GpStatus WINGDIPAPI GdipCreateBitmapFrom
     return stat;
 }
 
+/* FIXME: this should create a bitmap in the given size with the attributes
+ * (resolution etc.) of the graphics object */
+GpStatus WINGDIPAPI GdipCreateBitmapFromGraphics(INT width, INT height,
+    GpGraphics* target, GpBitmap** bitmap)
+{
+    static int calls;
+    GpStatus ret;
+
+    if(!target || !bitmap)
+        return InvalidParameter;
+
+    if(!(calls++))
+        FIXME("hacked stub\n");
+
+    ret = GdipCreateBitmapFromScan0(width, height, 0, PixelFormat24bppRGB,
+                                    NULL, bitmap);
+
+    return ret;
+}
+
 GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT width, INT height, INT stride,
     PixelFormat format, BYTE* scan0, GpBitmap** bitmap)
 {
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index 57b14ab..33d0e33 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -185,6 +185,7 @@ GpStatus WINGDIPAPI GdipBitmapGetPixel(G
 GpStatus WINGDIPAPI GdipBitmapLockBits(GpBitmap*,GDIPCONST GpRect*,UINT,
     PixelFormat,BitmapData*);
 GpStatus WINGDIPAPI GdipCreateBitmapFromFile(GDIPCONST WCHAR*,GpBitmap**);
+GpStatus WINGDIPAPI GdipCreateBitmapFromGraphics(INT,INT,GpGraphics*,GpBitmap**);
 GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT,INT,INT,PixelFormat,BYTE*,
     GpBitmap**);
 GpStatus WINGDIPAPI GdipCreateBitmapFromStream(IStream*,GpBitmap**);
-- 
1.4.1


More information about the wine-patches mailing list