gdiplus: Implement GdipSetImageAttributesWrapMode.
This commit is contained in:
parent
15ebd84daf
commit
0ae0c0c09e
|
@ -296,6 +296,8 @@ struct color_remap_table{
|
||||||
|
|
||||||
struct GpImageAttributes{
|
struct GpImageAttributes{
|
||||||
WrapMode wrap;
|
WrapMode wrap;
|
||||||
|
ARGB outside_color;
|
||||||
|
BOOL clamp;
|
||||||
struct color_key colorkeys[ColorAdjustTypeCount];
|
struct color_key colorkeys[ColorAdjustTypeCount];
|
||||||
struct color_matrix colormatrices[ColorAdjustTypeCount];
|
struct color_matrix colormatrices[ColorAdjustTypeCount];
|
||||||
struct color_remap_table colorremaptables[ColorAdjustTypeCount];
|
struct color_remap_table colorremaptables[ColorAdjustTypeCount];
|
||||||
|
|
|
@ -2049,6 +2049,16 @@ GpStatus WINGDIPAPI GdipDrawImagePointsRect(GpGraphics *graphics, GpImage *image
|
||||||
|
|
||||||
stride = sizeof(ARGB) * (dst_area.right - dst_area.left);
|
stride = sizeof(ARGB) * (dst_area.right - dst_area.left);
|
||||||
|
|
||||||
|
if (imageAttributes &&
|
||||||
|
(imageAttributes->wrap != WrapModeClamp ||
|
||||||
|
imageAttributes->outside_color != 0x00000000 ||
|
||||||
|
imageAttributes->clamp))
|
||||||
|
{
|
||||||
|
static int fixme;
|
||||||
|
if (!fixme++)
|
||||||
|
FIXME("Image wrap mode not implemented\n");
|
||||||
|
}
|
||||||
|
|
||||||
for (x=dst_area.left; x<dst_area.right; x++)
|
for (x=dst_area.left; x<dst_area.right; x++)
|
||||||
{
|
{
|
||||||
for (y=dst_area.top; y<dst_area.bottom; y++)
|
for (y=dst_area.top; y<dst_area.bottom; y++)
|
||||||
|
@ -2069,7 +2079,6 @@ GpStatus WINGDIPAPI GdipDrawImagePointsRect(GpGraphics *graphics, GpImage *image
|
||||||
|
|
||||||
if (src_x < src_area.left || src_x >= src_area.right ||
|
if (src_x < src_area.left || src_x >= src_area.right ||
|
||||||
src_y < src_area.top || src_y >= src_area.bottom)
|
src_y < src_area.top || src_y >= src_area.bottom)
|
||||||
/* FIXME: Use wrapmode */
|
|
||||||
*src_color = 0;
|
*src_color = 0;
|
||||||
else
|
else
|
||||||
GdipBitmapGetPixel(bitmap, src_x, src_y, src_color);
|
GdipBitmapGetPixel(bitmap, src_x, src_y, src_color);
|
||||||
|
|
|
@ -53,6 +53,8 @@ GpStatus WINGDIPAPI GdipCreateImageAttributes(GpImageAttributes **imageattr)
|
||||||
*imageattr = GdipAlloc(sizeof(GpImageAttributes));
|
*imageattr = GdipAlloc(sizeof(GpImageAttributes));
|
||||||
if(!*imageattr) return OutOfMemory;
|
if(!*imageattr) return OutOfMemory;
|
||||||
|
|
||||||
|
(*imageattr)->wrap = WrapModeClamp;
|
||||||
|
|
||||||
TRACE("<-- %p\n", *imageattr);
|
TRACE("<-- %p\n", *imageattr);
|
||||||
|
|
||||||
return Ok;
|
return Ok;
|
||||||
|
@ -120,17 +122,16 @@ GpStatus WINGDIPAPI GdipSetImageAttributesColorMatrix(GpImageAttributes *imageat
|
||||||
GpStatus WINGDIPAPI GdipSetImageAttributesWrapMode(GpImageAttributes *imageAttr,
|
GpStatus WINGDIPAPI GdipSetImageAttributesWrapMode(GpImageAttributes *imageAttr,
|
||||||
WrapMode wrap, ARGB argb, BOOL clamp)
|
WrapMode wrap, ARGB argb, BOOL clamp)
|
||||||
{
|
{
|
||||||
static int calls;
|
|
||||||
|
|
||||||
TRACE("(%p,%u,%08x,%i)\n", imageAttr, wrap, argb, clamp);
|
TRACE("(%p,%u,%08x,%i)\n", imageAttr, wrap, argb, clamp);
|
||||||
|
|
||||||
if(!imageAttr)
|
if(!imageAttr || wrap > WrapModeClamp)
|
||||||
return InvalidParameter;
|
return InvalidParameter;
|
||||||
|
|
||||||
if(!(calls++))
|
imageAttr->wrap = wrap;
|
||||||
FIXME("not implemented\n");
|
imageAttr->outside_color = argb;
|
||||||
|
imageAttr->clamp = clamp;
|
||||||
|
|
||||||
return NotImplemented;
|
return Ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
GpStatus WINGDIPAPI GdipSetImageAttributesCachedBackground(GpImageAttributes *imageAttr,
|
GpStatus WINGDIPAPI GdipSetImageAttributesCachedBackground(GpImageAttributes *imageAttr,
|
||||||
|
|
Loading…
Reference in New Issue