Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
third_party
skia
gm
overdrawcolorfilter.cpp
Go to the documentation of this file.
1
/*
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
8
#include "
gm/gm.h
"
9
#include "
include/core/SkBitmap.h
"
10
#include "
include/core/SkCanvas.h
"
11
#include "
include/core/SkColor.h
"
12
#include "
include/core/SkColorFilter.h
"
13
#include "
include/core/SkImage.h
"
14
#include "
include/core/SkImageInfo.h
"
15
#include "
include/core/SkPaint.h
"
16
#include "
include/core/SkRefCnt.h
"
17
#include "
include/core/SkSize.h
"
18
#include "
include/core/SkString.h
"
19
#include "
include/core/SkTypes.h
"
20
#include "
include/effects/SkOverdrawColorFilter.h
"
21
22
static
inline
void
set_bitmap
(
SkBitmap
*
bitmap
, uint8_t alpha) {
23
for
(
int
y
= 0;
y
<
bitmap
->height();
y
++) {
24
for
(
int
x
= 0;
x
<
bitmap
->width();
x
++) {
25
uint8_t* addr =
bitmap
->getAddr8(
x
,
y
);
26
*addr = alpha;
27
}
28
}
29
30
bitmap
->notifyPixelsChanged();
31
}
32
33
struct
OverdrawColorFilter
:
public
skiagm::GM
{
34
SkString
getName
()
const override
{
return
SkString
{
"overdrawcolorfilter"
}; }
35
36
SkISize
getISize
()
override
{
return
{200, 400}; }
37
38
void
onDraw
(
SkCanvas
* canvas)
override
{
39
static
const
SkColor
colors[
SkOverdrawColorFilter::kNumColors
] = {
40
0x80FF0000, 0x8000FF00, 0x800000FF, 0x80FFFF00, 0x8000FFFF, 0x80FF00FF,
41
};
42
43
SkPaint
paint
;
44
paint
.setColorFilter(
SkOverdrawColorFilter::MakeWithSkColors
(colors));
45
SkSamplingOptions
sampling;
46
47
SkImageInfo
info
=
SkImageInfo::MakeA8
(100, 100);
48
SkBitmap
bitmap
;
49
bitmap
.allocPixels(
info
);
50
set_bitmap
(&
bitmap
, 0);
51
canvas->
drawImage
(
bitmap
.asImage(), 0, 0, sampling, &
paint
);
52
set_bitmap
(&
bitmap
, 1);
53
canvas->
drawImage
(
bitmap
.asImage(), 0, 100, sampling, &
paint
);
54
set_bitmap
(&
bitmap
, 2);
55
canvas->
drawImage
(
bitmap
.asImage(), 0, 200, sampling, &
paint
);
56
set_bitmap
(&
bitmap
, 3);
57
canvas->
drawImage
(
bitmap
.asImage(), 0, 300, sampling, &
paint
);
58
set_bitmap
(&
bitmap
, 4);
59
canvas->
drawImage
(
bitmap
.asImage(), 100, 0, sampling, &
paint
);
60
set_bitmap
(&
bitmap
, 5);
61
canvas->
drawImage
(
bitmap
.asImage(), 100, 100, sampling, &
paint
);
62
set_bitmap
(&
bitmap
, 6);
63
canvas->
drawImage
(
bitmap
.asImage(), 100, 200, sampling, &
paint
);
64
}
65
};
66
67
DEF_GM
(
return
new
OverdrawColorFilter
;)
info
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
Definition
DM.cpp:213
SkBitmap.h
SkCanvas.h
SkColorFilter.h
SkColor.h
SkColor
uint32_t SkColor
Definition
SkColor.h:37
SkImageInfo.h
SkImage.h
SkOverdrawColorFilter.h
SkPaint.h
SkRefCnt.h
SkSize.h
SkString.h
SkTypes.h
SkBitmap
Definition
SkBitmap.h:59
SkCanvas
Definition
SkCanvas.h:106
SkCanvas::drawImage
void drawImage(const SkImage *image, SkScalar left, SkScalar top)
Definition
SkCanvas.h:1528
SkOverdrawColorFilter::MakeWithSkColors
static sk_sp< SkColorFilter > MakeWithSkColors(const SkColor[kNumColors])
Definition
SkRuntimeColorFilter.cpp:153
SkOverdrawColorFilter::kNumColors
static constexpr int kNumColors
Definition
SkOverdrawColorFilter.h:27
SkPaint
Definition
SkPaint.h:44
SkString
Definition
SkString.h:118
skiagm::GM
Definition
gm.h:110
paint
const Paint & paint
Definition
color_source.cc:38
gm.h
DEF_GM
#define DEF_GM(CODE)
Definition
gm.h:40
y
double y
Definition
mouse-input-test.cc:83
x
double x
Definition
mouse-input-test.cc:82
bitmap
Definition
bitmap.py:1
set_bitmap
static void set_bitmap(SkBitmap *bitmap, uint8_t alpha)
Definition
overdrawcolorfilter.cpp:22
OverdrawColorFilter
Definition
overdrawcolorfilter.cpp:33
OverdrawColorFilter::onDraw
void onDraw(SkCanvas *canvas) override
Definition
overdrawcolorfilter.cpp:38
OverdrawColorFilter::getISize
SkISize getISize() override
Definition
overdrawcolorfilter.cpp:36
OverdrawColorFilter::getName
SkString getName() const override
Definition
overdrawcolorfilter.cpp:34
SkISize
Definition
SkSize.h:16
SkImageInfo
Definition
SkImageInfo.h:208
SkImageInfo::MakeA8
static SkImageInfo MakeA8(int width, int height)
Definition
SkImageInfo.cpp:173
SkSamplingOptions
Definition
SkSamplingOptions.h:58
Generated on Fri Apr 26 2024 06:16:07 for Flutter Engine by
1.9.8