[v2 PATCH 1/3] gdiplus/metafile: Support linear gradient brushes in playback

Dmitry Timoshkov dmitry at baikal.ru
Tue Nov 7 05:01:18 CST 2017


Nikolay Sivov <nsivov at codeweavers.com> wrote:

> +        status = GdipCreateLineBrush(&startpoint, &endpoint, data->BrushData.lineargradient.StartColor,
> +            data->BrushData.lineargradient.EndColor, data->BrushData.lineargradient.WrapMode, &gradient);
> +        if (status == Ok && transform)
> +            status = GdipSetLineTransform(gradient, (const GpMatrix *)transform);

Result of the above calls is ignored.

> +        if (brushflags & BrushDataPresetColors)
> +            status = GdipSetLinePresetBlend(gradient, (ARGB *)(record_data + offset + position_count * sizeof(REAL)),
> +                (REAL *)(record_data + offset), position_count);
> +        else if (brushflags & BrushDataBlendFactorsH)
> +            status = GdipSetLineBlend(gradient, (REAL *)(record_data + offset + position_count * sizeof(REAL)),
> +                (REAL *)(record_data + offset), position_count);
> +
> +        if (brushflags & BrushDataIsGammaCorrected)
> +            FIXME("BrushDataIsGammaCorrected is not handled.\n");
> +
> +        if (status == Ok)
> +            *brush = (GpBrush *)gradient;
> +        else
> +            GdipDeleteBrush((GpBrush *)gradient);
> +
> +        break;
> +    }

-- 
Dmitry.



More information about the wine-devel mailing list