Beispiel #1
0
sk_sp<SkImageFilter> FEFlood::createImageFilter() {
  Color color = floodColor().combineWithAlpha(floodOpacity());
  SkImageFilter::CropRect rect = getCropRect();
  return SkColorFilterImageFilter::Make(
      SkColorFilter::MakeModeFilter(color.rgb(), SkXfermode::kSrc_Mode), 0,
      &rect);
}
Beispiel #2
0
PassRefPtr<SkImageFilter> FEFlood::createImageFilter(SkiaImageFilterBuilder* builder)
{
    Color color = floodColor().combineWithAlpha(floodOpacity());

    SkImageFilter::CropRect rect = getCropRect(builder->cropOffset());
    SkAutoTUnref<SkColorFilter> cf(SkColorFilter::CreateModeFilter(color.rgb(), SkXfermode::kSrc_Mode));
    return adoptRef(SkColorFilterImageFilter::Create(cf, 0, &rect));
}
Beispiel #3
0
TextStream& FEFlood::externalRepresentation(TextStream& ts) const
{
    ts << "[type=FLOOD] ";
    FilterEffect::externalRepresentation(ts);
    ts << " [color=" << floodColor() << "]"
        << " [opacity=" << floodOpacity() << "]";
    return ts;
}
Beispiel #4
0
TextStream& FEFlood::externalRepresentation(TextStream& ts, int indent) const {
  writeIndent(ts, indent);
  ts << "[feFlood";
  FilterEffect::externalRepresentation(ts);
  ts << " flood-color=\"" << floodColor().nameForLayoutTreeAsText() << "\" "
     << "flood-opacity=\"" << floodOpacity() << "\"]\n";
  return ts;
}
PassRefPtr<SkImageFilter> FEFlood::createImageFilter(SkiaImageFilterBuilder& builder)
{
    Color color = floodColor().combineWithAlpha(floodOpacity());

    SkImageFilter::CropRect rect = getCropRect();
    sk_sp<SkColorFilter> colorFilter = SkColorFilter::MakeModeFilter(color.rgb(), SkXfermode::kSrc_Mode);
    return adoptRef(SkColorFilterImageFilter::Create(colorFilter.get(), 0, &rect));
}
Beispiel #6
0
void FEFlood::apply(Filter* filter)
{
    GraphicsContext* filterContext = effectContext(filter);
    if (!filterContext)
        return;

    Color color = colorWithOverrideAlpha(floodColor().rgb(), floodOpacity());
    filterContext->fillRect(FloatRect(FloatPoint(), absolutePaintRect().size()), color, DeviceColorSpace);
}
Beispiel #7
0
void FEFlood::platformApplySoftware()
{
    ImageBuffer* resultImage = createImageBufferResult();
    if (!resultImage)
        return;

    Color color = colorWithOverrideAlpha(floodColor().rgb(), floodOpacity());
    resultImage->context()->fillRect(FloatRect(FloatPoint(), absolutePaintRect().size()), color, ColorSpaceDeviceRGB);
}
Beispiel #8
0
void FEFlood::applySoftware()
{
    ImageBuffer* resultImage = createImageBufferResult();
    if (!resultImage)
        return;

    Color color = floodColor().combineWithAlpha(floodOpacity());
    resultImage->context()->fillRect(FloatRect(FloatPoint(), absolutePaintRect().size()), color);
    FilterEffect::setResultColorSpace(ColorSpaceDeviceRGB);
}