Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | List of all members
DM::ViaRuntimeBlend Class Reference

#include <DMSrcSink.h>

Inheritance diagram for DM::ViaRuntimeBlend:
DM::Via DM::Sink

Public Member Functions

 ViaRuntimeBlend (Sink *sink)
 
Result draw (const Src &, SkBitmap *, SkWStream *, SkString *) const override
 
- Public Member Functions inherited from DM::Via
 Via (Sink *sink)
 
const char * fileExtension () const override
 
bool serial () const override
 
SinkFlags flags () const override
 
void setColorSpace (sk_sp< SkColorSpace > colorSpace) override
 
- Public Member Functions inherited from DM::Sink
virtual ~Sink ()
 
virtual SkColorInfo colorInfo () const
 

Additional Inherited Members

- Protected Attributes inherited from DM::Via
std::unique_ptr< SinkfSink
 

Detailed Description

Definition at line 676 of file DMSrcSink.h.

Constructor & Destructor Documentation

◆ ViaRuntimeBlend()

DM::ViaRuntimeBlend::ViaRuntimeBlend ( Sink sink)
inlineexplicit

Definition at line 678 of file DMSrcSink.h.

678: Via(sink) {}
Via(Sink *sink)
Definition DMSrcSink.h:631

Member Function Documentation

◆ draw()

Result DM::ViaRuntimeBlend::draw ( const Src src,
SkBitmap bitmap,
SkWStream stream,
SkString log 
) const
overridevirtual

Implements DM::Sink.

Definition at line 2580 of file DMSrcSink.cpp.

2583 {
2584 class RuntimeBlendFilterCanvas : public SkPaintFilterCanvas {
2585 public:
2586 RuntimeBlendFilterCanvas(SkCanvas* canvas) : INHERITED(canvas) { }
2587
2588 protected:
2589 bool onFilter(SkPaint& paint) const override {
2590 if (std::optional<SkBlendMode> mode = paint.asBlendMode()) {
2591 paint.setBlender(GetRuntimeBlendForBlendMode(*mode));
2592 }
2593 return true;
2594 }
2595
2596 private:
2598 };
2599
2600 return draw_to_canvas(fSink.get(), bitmap, stream, log, src.size(),
2601 [&](SkCanvas* canvas, Src::GraphiteTestContext* testContext) {
2602 RuntimeBlendFilterCanvas runtimeBlendCanvas{canvas};
2603 return src.draw(&runtimeBlendCanvas, testContext);
2604 });
2605}
sk_sp< SkBlender > GetRuntimeBlendForBlendMode(SkBlendMode mode)
#define INHERITED(method,...)
std::unique_ptr< Sink > fSink
Definition DMSrcSink.h:643
const Paint & paint
static void draw_to_canvas(SkCanvas *canvas, const SkImageInfo &info, void *pixels, size_t rowBytes, CodecSrc::DstColorType dstColorType, SkScalar left=0, SkScalar top=0)
skiatest::graphite::GraphiteTestContext GraphiteTestContext
Definition DMSrcSink.h:93

The documentation for this class was generated from the following files: