Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
skiagm::EncodeColorTypesGM Class Reference
Inheritance diagram for skiagm::EncodeColorTypesGM:
skiagm::GM

Public Member Functions

 EncodeColorTypesGM (SkEncodedImageFormat format, int quality, Variant variant, const char *name)
 
- Public Member Functions inherited from skiagm::GM
 GM (SkColor backgroundColor=SK_ColorWHITE)
 
virtual ~GM ()
 
void setMode (Mode mode)
 
Mode getMode () const
 
DrawResult gpuSetup (SkCanvas *, SkString *errorMsg, GraphiteTestContext *=nullptr)
 
void gpuTeardown ()
 
void onceBeforeDraw ()
 
DrawResult draw (SkCanvas *canvas)
 
DrawResult draw (SkCanvas *, SkString *errorMsg)
 
void drawBackground (SkCanvas *)
 
DrawResult drawContent (SkCanvas *canvas)
 
DrawResult drawContent (SkCanvas *, SkString *errorMsg)
 
virtual bool runAsBench () const
 
SkScalar width ()
 
SkScalar height ()
 
SkColor getBGColor () const
 
void setBGColor (SkColor)
 
void drawSizeBounds (SkCanvas *, SkColor)
 
bool animate (double)
 
virtual bool onChar (SkUnichar)
 
bool getControls (SkMetaData *controls)
 
void setControls (const SkMetaData &controls)
 
virtual void modifyGrContextOptions (GrContextOptions *)
 
virtual void modifyGraphiteContextOptions (skgpu::graphite::ContextOptions *) const
 
virtual bool isBazelOnly () const
 
virtual std::map< std::string, std::string > getGoldKeys () const
 

Protected Member Functions

SkString getName () const override
 
SkISize getISize () override
 
DrawResult onDraw (SkCanvas *canvas, SkString *errorMsg) override
 
- Protected Member Functions inherited from skiagm::GM
virtual DrawResult onGpuSetup (SkCanvas *, SkString *, GraphiteTestContext *)
 
virtual void onGpuTeardown ()
 
virtual void onOnceBeforeDraw ()
 
virtual void onDraw (SkCanvas *)
 
virtual bool onAnimate (double)
 
virtual bool onGetControls (SkMetaData *)
 
virtual void onSetControls (const SkMetaData &)
 
GraphiteTestContextgraphiteTestContext () const
 

Additional Inherited Members

- Public Types inherited from skiagm::GM
enum  Mode { kGM_Mode , kSample_Mode , kBench_Mode }
 
using DrawResult = skiagm::DrawResult
 
using GraphiteTestContext = skiatest::graphite::GraphiteTestContext
 
- Static Public Attributes inherited from skiagm::GM
static constexpr char kErrorMsg_DrawSkippedGpuOnly []
 

Detailed Description

Definition at line 76 of file encode_color_types.cpp.

Constructor & Destructor Documentation

◆ EncodeColorTypesGM()

skiagm::EncodeColorTypesGM::EncodeColorTypesGM ( SkEncodedImageFormat  format,
int  quality,
Variant  variant,
const char *  name 
)
inline

Definition at line 78 of file encode_color_types.cpp.

79 : fFormat(format)
80 , fQuality(quality)
81 , fVariant(variant)
82 , fName(name)
83 {}
uint32_t uint32_t * format
const char * name
Definition fuchsia.cc:50

Member Function Documentation

◆ getISize()

SkISize skiagm::EncodeColorTypesGM::getISize ( )
inlineoverrideprotectedvirtual

Implements skiagm::GM.

Definition at line 93 of file encode_color_types.cpp.

93 {
94 const int width = fVariant == Variant::kNormal ? imageWidth * 7 : imageWidth * 2;
96 }
SkScalar width()
Definition gm.h:159
static const int imageHeight
static const int imageWidth
static constexpr SkISize Make(int32_t w, int32_t h)
Definition SkSize.h:20

◆ getName()

SkString skiagm::EncodeColorTypesGM::getName ( ) const
inlineoverrideprotectedvirtual

Implements skiagm::GM.

Definition at line 86 of file encode_color_types.cpp.

86 {
87 const char* variant = fVariant == Variant::kOpaque ? "opaque-":
88 fVariant == Variant::kGray ? "gray-" :
89 "" ;
90 return SkStringPrintf("encode-%scolor-types-%s", variant, fName);
91 }
SK_API SkString static SkString SkStringPrintf()
Definition SkString.h:287

◆ onDraw()

DrawResult skiagm::EncodeColorTypesGM::onDraw ( SkCanvas canvas,
SkString errorMsg 
)
inlineoverrideprotectedvirtual

Reimplemented from skiagm::GM.

Definition at line 98 of file encode_color_types.cpp.

98 {
99 const auto colorType = canvas->imageInfo().colorType();
100 switch (fVariant) {
101 case Variant::kGray:
103 return DrawResult::kSkip;
104 }
105 break;
106 case Variant::kOpaque:
111 {
112 return DrawResult::kSkip;
113 }
114 break;
115 case Variant::kNormal:
124 {
125 return DrawResult::kSkip;
126 }
127 break;
128 }
129 const SkAlphaType alphaTypes[] = {
131 };
132
133 for (SkAlphaType alphaType : alphaTypes) {
134 auto src = make_image(colorType, alphaType);
135 if (!src) {
136 break;
137 }
140 if (fQuality < 100) {
142 options.fQuality = fQuality;
143 } else {
145 // in lossless mode, this is effort. 70 is the default effort in SkImageEncoder,
146 // which follows Blink and WebPConfigInit.
147 options.fQuality = 70;
148 }
149 auto data = SkWebpEncoder::Encode(nullptr, src.get(), options);
150 SkASSERT(data);
151 auto decoded = SkImages::DeferredFromEncodedData(data);
152 if (!decoded) {
153 break;
154 }
155
156 canvas->drawImage(src, 0.0f, 0.0f);
157 canvas->translate((float) imageWidth, 0.0f);
158
159 canvas->drawImage(decoded, 0.0f, 0.0f);
160 canvas->translate((float) imageWidth * 1.5, 0.0f);
161 }
162 return DrawResult::kOk;
163 }
const char * options
kUnpremul_SkAlphaType
SkAlphaType
Definition SkAlphaType.h:26
@ kOpaque_SkAlphaType
pixel is opaque
Definition SkAlphaType.h:28
@ kPremul_SkAlphaType
pixel components are premultiplied by alpha
Definition SkAlphaType.h:29
#define SkASSERT_RELEASE(cond)
Definition SkAssert.h:100
#define SkASSERT(cond)
Definition SkAssert.h:116
@ kBGR_101010x_SkColorType
pixel with 10 bits each for blue, green, red; in 32-bit word
Definition SkColorType.h:30
@ kARGB_4444_SkColorType
pixel with 4 bits for alpha, red, green, blue; in 16-bit word
Definition SkColorType.h:23
@ kBGRA_8888_SkColorType
pixel with 8 bits for blue, green, red, alpha; in 32-bit word
Definition SkColorType.h:26
@ kRGBA_F16_SkColorType
pixel with half floats for red, green, blue, alpha;
Definition SkColorType.h:38
@ kRGB_101010x_SkColorType
pixel with 10 bits each for red, green, blue; in 32-bit word
Definition SkColorType.h:29
@ kGray_8_SkColorType
pixel with grayscale level in 8-bit byte
Definition SkColorType.h:35
@ kRGB_565_SkColorType
pixel with 5 bits red, 6 bits green, 5 bits blue, in 16-bit word
Definition SkColorType.h:22
@ kRGBA_8888_SkColorType
pixel with 8 bits for red, green, blue, alpha; in 32-bit word
Definition SkColorType.h:24
@ kRGB_888x_SkColorType
pixel with 8 bits each for red, green, blue; in 32-bit word
Definition SkColorType.h:25
@ kBGRA_1010102_SkColorType
10 bits for blue, green, red; 2 bits for alpha; in 32-bit word
Definition SkColorType.h:28
@ kRGBA_F32_SkColorType
pixel using C float for red, green, blue, alpha; in 128-bit word
Definition SkColorType.h:40
@ kRGBA_1010102_SkColorType
10 bits for red, green, blue; 2 bits for alpha; in 32-bit word
Definition SkColorType.h:27
@ kRGBA_F16Norm_SkColorType
pixel with half floats in [0,1] for red, green, blue, alpha;
Definition SkColorType.h:36
static SkColorType colorType(AImageDecoder *decoder, const AImageDecoderHeaderInfo *headerInfo)
void translate(SkScalar dx, SkScalar dy)
SkImageInfo imageInfo() const
void drawImage(const SkImage *image, SkScalar left, SkScalar top)
Definition SkCanvas.h:1528
static sk_sp< SkImage > make_image()
Definition mipmap.cpp:21
SK_API sk_sp< SkImage > DeferredFromEncodedData(sk_sp< SkData > encoded, std::optional< SkAlphaType > alphaType=std::nullopt)
SK_API bool Encode(SkWStream *dst, const SkPixmap &src, const Options &options)
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot data
Definition switches.h:41
SkColorType colorType() const

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