blob: 0fe6b5e105eae707c1e90b6cd6b2912329b4bc4f [file] [log] [blame]
Matt Saretta9fd1062016-10-28 13:25:40 -04001/*
2 * Copyright 2016 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
Mike Kleinc0bd9f92019-04-23 12:05:21 -05008#include "gm/gm.h"
9#include "include/core/SkBitmap.h"
Ben Wagner7fde8e12019-05-01 17:28:53 -040010#include "include/core/SkCanvas.h"
11#include "include/core/SkColor.h"
Mike Kleinc0bd9f92019-04-23 12:05:21 -050012#include "include/core/SkColorFilter.h"
Ben Wagner7fde8e12019-05-01 17:28:53 -040013#include "include/core/SkImageInfo.h"
14#include "include/core/SkPaint.h"
15#include "include/core/SkSize.h"
16#include "include/core/SkString.h"
Matt Saretta9fd1062016-10-28 13:25:40 -040017
18class ColorFilterAlpha8 : public skiagm::GM {
19public:
20 ColorFilterAlpha8() {}
21
22protected:
23 SkString onShortName() override {
24 return SkString("colorfilteralpha8");
25 }
26
27 SkISize onISize() override {
28 return SkISize::Make(400, 400);
29 }
30
31 void onDraw(SkCanvas* canvas) override {
32 canvas->clear(SK_ColorRED);
33
34 SkBitmap bitmap;
35 SkImageInfo info = SkImageInfo::MakeA8(200, 200);
36 bitmap.allocPixels(info);
37 bitmap.eraseColor(0x88FFFFFF);
38
39 SkPaint paint;
40 float opaqueGrayMatrix[20] = {
41 0.0f, 0.0f, 0.0f, 1.0f, 0.0f,
42 0.0f, 0.0f, 0.0f, 1.0f, 0.0f,
43 0.0f, 0.0f, 0.0f, 1.0f, 0.0f,
Mike Reede869a1e2019-04-30 12:18:54 -040044 0.0f, 0.0f, 0.0f, 0.0f, 1.0f
Matt Saretta9fd1062016-10-28 13:25:40 -040045 };
Mike Reede869a1e2019-04-30 12:18:54 -040046 paint.setColorFilter(SkColorFilters::Matrix(opaqueGrayMatrix));
Matt Saretta9fd1062016-10-28 13:25:40 -040047
48 canvas->drawBitmap(bitmap, 100.0f, 100.0f, &paint);
49 }
50
51private:
52 typedef skiagm::GM INHERITED;
53};
54DEF_GM( return new ColorFilterAlpha8; )