2 * Copyright 2017 Google Inc.
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
9 #include "include/core/SkCanvas.h"
10 #include "include/core/SkColorFilter.h"
11 #include "include/core/SkPaint.h"
12 #include "include/core/SkRefCnt.h"
13 #include "tools/Resources.h"
15 DEF_SIMPLE_GM(srgb_colorfilter, canvas, 512, 256*3) {
16 auto img = GetResourceAsImage("images/mandrill_256.png");
18 const float array[] = {
24 auto cf0 = SkColorFilters::Matrix(array);
25 auto cf1 = SkColorFilters::LinearToSRGBGamma();
26 auto cf2 = SkColorFilters::SRGBToLinearGamma();
28 SkSamplingOptions sampling;
30 p.setColorFilter(cf0);
31 canvas->drawImage(img, 0, 0);
32 canvas->drawImage(img, 256, 0, sampling, &p);
34 p.setColorFilter(cf1);
35 canvas->drawImage(img, 0, 256, sampling, &p);
36 p.setColorFilter(cf1->makeComposed(cf0));
37 canvas->drawImage(img, 256, 256, sampling, &p);
39 p.setColorFilter(cf2);
40 canvas->drawImage(img, 0, 512, sampling, &p);
41 p.setColorFilter(cf2->makeComposed(cf0));
42 canvas->drawImage(img, 256, 512, sampling, &p);