24 {-3.0f, 2.0f, 2.0f, 1/0.17883277f, 0.28466892f, 0.55991073f, 3.0f },
35static const int W = 128,
66 enum Strategy { SkImage_makeColorSpace, SkCanvas_makeSurface };
72 canvas->
drawString(
"This GM only makes sense with color-managed drawing.",
79 canvas->
drawString(
"Could not load our test image!",
94 case SkImage_makeColorSpace: {
95 canvas->
drawImage(img->makeColorSpace(
nullptr, midCS), 0,0);
98 case SkCanvas_makeSurface: {
102 canvas->
drawString(
"Could not allocate offscreen surface!",
106 offscreen->getCanvas()->drawImage(img, 0,0);
107 canvas->
drawImage(offscreen->makeImageSnapshot(), 0,0);
void translate(SkScalar dx, SkScalar dy)
sk_sp< SkSurface > makeSurface(const SkImageInfo &info, const SkSurfaceProps *props=nullptr)
void drawString(const char str[], SkScalar x, SkScalar y, const SkFont &font, const SkPaint &paint)
SkImageInfo imageInfo() const
void drawImage(const SkImage *image, SkScalar left, SkScalar top)
static sk_sp< SkColorSpace > MakeRGB(const skcms_TransferFunction &transferFn, const skcms_Matrix3x3 &toXYZ)
static const skcms_Matrix3x3 gGamuts[]
static const skcms_TransferFunction gTFs[]
static void draw_colorspace_gm(Strategy strategy, SkCanvas *canvas)
#define DEF_SIMPLE_GM(NAME, CANVAS, W, H)
static constexpr skcms_Matrix3x3 kSRGB
static constexpr skcms_Matrix3x3 kAdobeRGB
static constexpr skcms_Matrix3x3 kXYZ
static constexpr skcms_Matrix3x3 kRec2020
static constexpr skcms_Matrix3x3 kDisplayP3
static constexpr skcms_TransferFunction kRec2020
static constexpr skcms_TransferFunction k2Dot2
static constexpr skcms_TransferFunction kSRGB
static constexpr skcms_TransferFunction kHLG
static constexpr skcms_TransferFunction kPQ
static constexpr skcms_TransferFunction kLinear
SkColorSpace * colorSpace() const
SkImageInfo makeColorSpace(sk_sp< SkColorSpace > cs) const