[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