Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
third_party
skia
src
effects
SkEmbossMaskFilter.h
Go to the documentation of this file.
1
/*
2
* Copyright 2006 The Android Open Source Project
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
#ifndef SkEmbossMaskFilter_DEFINED
9
#define SkEmbossMaskFilter_DEFINED
10
11
#include "
include/core/SkFlattenable.h
"
12
#include "
include/core/SkMaskFilter.h
"
13
#include "
include/core/SkRect.h
"
14
#include "
include/core/SkRefCnt.h
"
15
#include "
include/core/SkScalar.h
"
16
#include "
src/core/SkMask.h
"
17
#include "
src/core/SkMaskFilterBase.h
"
18
19
#include <cstdint>
20
21
class
SkMatrix
;
22
class
SkReadBuffer
;
23
class
SkWriteBuffer
;
24
struct
SkIPoint
;
25
26
/** \class SkEmbossMaskFilter
27
28
This mask filter creates a 3D emboss look, by specifying a light and blur amount.
29
*/
30
class
SkEmbossMaskFilter
:
public
SkMaskFilterBase
{
31
public
:
32
struct
Light
{
33
SkScalar
fDirection
[3];
// x,y,z
34
uint16_t
fPad
;
35
uint8_t
fAmbient
;
36
uint8_t
fSpecular
;
// exponent, 4.4 right now
37
};
38
39
static
sk_sp<SkMaskFilter>
Make
(
SkScalar
blurSigma,
const
Light
& light);
40
41
// overrides from SkMaskFilter
42
// This method is not exported to java.
43
SkMask::Format
getFormat
()
const override
;
44
// This method is not exported to java.
45
bool
filterMask
(
SkMaskBuilder
* dst,
const
SkMask
& src,
const
SkMatrix
&,
46
SkIPoint
* margin)
const override
;
47
SkMaskFilterBase::Type
type
()
const override
{
return
SkMaskFilterBase::Type::kEmboss
; }
48
49
protected
:
50
SkEmbossMaskFilter
(
SkScalar
blurSigma,
const
Light& light);
51
void
flatten
(
SkWriteBuffer
&)
const override
;
52
53
private
:
54
SK_FLATTENABLE_HOOKS
(
SkEmbossMaskFilter
)
55
56
Light fLight;
57
SkScalar
fBlurSigma;
58
59
using
INHERITED =
SkMaskFilter
;
60
};
61
62
#endif
SkFlattenable.h
SK_FLATTENABLE_HOOKS
#define SK_FLATTENABLE_HOOKS(type)
Definition
SkFlattenable.h:108
SkMaskFilterBase.h
SkMaskFilter.h
SkMask.h
SkRect.h
SkRefCnt.h
SkScalar.h
SkEmbossMaskFilter
Definition
SkEmbossMaskFilter.h:30
SkEmbossMaskFilter::getFormat
SkMask::Format getFormat() const override
Definition
SkEmbossMaskFilter.cpp:73
SkEmbossMaskFilter::Make
static sk_sp< SkMaskFilter > Make(SkScalar blurSigma, const Light &light)
Definition
SkEmbossMaskFilter.cpp:27
SkEmbossMaskFilter::filterMask
bool filterMask(SkMaskBuilder *dst, const SkMask &src, const SkMatrix &, SkIPoint *margin) const override
Definition
SkEmbossMaskFilter.cpp:77
SkEmbossMaskFilter::flatten
void flatten(SkWriteBuffer &) const override
Definition
SkEmbossMaskFilter.cpp:141
SkEmbossMaskFilter::type
SkMaskFilterBase::Type type() const override
Definition
SkEmbossMaskFilter.h:47
SkMaskFilterBase
Definition
SkMaskFilterBase.h:45
SkMaskFilterBase::Type
Type
Definition
SkMaskFilterBase.h:68
SkMaskFilterBase::Type::kEmboss
@ kEmboss
SkMaskFilter
Definition
SkMaskFilter.h:27
SkMatrix
Definition
SkMatrix.h:54
SkReadBuffer
Definition
SkReadBuffer.h:52
SkWriteBuffer
Definition
SkWriteBuffer.h:41
sk_sp
Definition
SkRefCnt.h:220
SkScalar
float SkScalar
Definition
extension.cpp:12
SkEmbossMaskFilter::Light
Definition
SkEmbossMaskFilter.h:32
SkEmbossMaskFilter::Light::fDirection
SkScalar fDirection[3]
Definition
SkEmbossMaskFilter.h:33
SkEmbossMaskFilter::Light::fAmbient
uint8_t fAmbient
Definition
SkEmbossMaskFilter.h:35
SkEmbossMaskFilter::Light::fSpecular
uint8_t fSpecular
Definition
SkEmbossMaskFilter.h:36
SkEmbossMaskFilter::Light::fPad
uint16_t fPad
Definition
SkEmbossMaskFilter.h:34
SkIPoint
Definition
SkPoint_impl.h:28
SkMaskBuilder
Definition
SkMask.h:219
SkMask
Definition
SkMask.h:25
SkMask::Format
Format
Definition
SkMask.h:26
Generated on Fri Apr 26 2024 06:16:54 for Flutter Engine by
1.9.8