From 7b3e6d018adaa813c4c205291698ccd7c6d1f741 Mon Sep 17 00:00:00 2001 From: Adam Petaccia Date: Sun, 31 Aug 2008 01:06:58 -0400 Subject: [PATCH] gdiplus: Implement GdipCreateTexture. --- dlls/gdiplus/brush.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/dlls/gdiplus/brush.c b/dlls/gdiplus/brush.c index ae7266e9f2c..3a991d230ec 100644 --- a/dlls/gdiplus/brush.c +++ b/dlls/gdiplus/brush.c @@ -373,12 +373,38 @@ GpStatus WINGDIPAPI GdipCreateSolidFill(ARGB color, GpSolidFill **sf) return Ok; } +/******************************************************************************* + * GdipCreateTexture [GDIPLUS.@] + * + * PARAMS + * image [I] image to use + * wrapmode [I] optional + * texture [O] pointer to the resulting texturebrush + * + * RETURNS + * SUCCESS: Ok + * FAILURE: element of GpStatus + */ GpStatus WINGDIPAPI GdipCreateTexture(GpImage *image, GpWrapMode wrapmode, GpTexture **texture) { - FIXME("stub: %p, %d %p\n", image, wrapmode, texture); + UINT width, height; + GpImageAttributes attributes; + GpStatus stat; - return NotImplemented; + TRACE("%p, %d %p\n", image, wrapmode, texture); + + if (!(image && texture)) + return InvalidParameter; + + stat = GdipGetImageWidth(image, &width); + if (stat != Ok) return stat; + stat = GdipGetImageHeight(image, &height); + if (stat != Ok) return stat; + attributes.wrap = wrapmode; + + return GdipCreateTextureIA(image, &attributes, 0, 0, width, height, + texture); } GpStatus WINGDIPAPI GdipCreateTexture2(GpImage *image, GpWrapMode wrapmode,