Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
third_party
skia
include
private
chromium
Slug.h
Go to the documentation of this file.
1
/*
2
* Copyright 2021 Google LLC
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 sktext_gpu_Slug_DEFINED
9
#define sktext_gpu_Slug_DEFINED
10
11
#include "
include/core/SkRect.h
"
12
#include "
include/core/SkRefCnt.h
"
13
#include "
include/private/base/SkAPI.h
"
14
15
#include <cstddef>
16
#include <cstdint>
17
18
class
SkCanvas
;
19
class
SkData
;
20
class
SkPaint
;
21
class
SkReadBuffer
;
22
class
SkStrikeClient
;
23
class
SkTextBlob
;
24
class
SkWriteBuffer
;
25
struct
SkDeserialProcs
;
26
struct
SkPoint
;
27
28
namespace
sktext::gpu
{
29
// Slug encapsulates an SkTextBlob at a specific origin, using a specific paint. It can be
30
// manipulated using matrix and clip changes to the canvas. If the canvas is transformed, then
31
// the Slug will also transform with smaller glyphs using bi-linear interpolation to render. You
32
// can think of a Slug as making a rubber stamp out of a SkTextBlob.
33
class
SK_API
Slug
:
public
SkRefCnt
{
34
public
:
35
// Return nullptr if the blob would not draw. This is not because of clipping, but because of
36
// some paint optimization. The Slug is captured as if drawn using drawTextBlob.
37
static
sk_sp<Slug>
ConvertBlob(
38
SkCanvas
* canvas,
const
SkTextBlob
& blob,
SkPoint
origin,
const
SkPaint
&
paint
);
39
40
// Serialize the slug.
41
sk_sp<SkData>
serialize()
const
;
42
size_t
serialize(
void
*
buffer
,
size_t
size)
const
;
43
44
// Set the client parameter to the appropriate SkStrikeClient when typeface ID translation
45
// is needed.
46
static
sk_sp<Slug>
Deserialize(
const
void
* data,
47
size_t
size,
48
const
SkStrikeClient
* client =
nullptr
);
49
static
sk_sp<Slug>
MakeFromBuffer(
SkReadBuffer
&
buffer
);
50
51
// Allows clients to deserialize SkPictures that contain slug data
52
static
void
AddDeserialProcs(
SkDeserialProcs
* procs,
const
SkStrikeClient
* client =
nullptr
);
53
54
// Draw the Slug obeying the canvas's mapping and clipping.
55
void
draw
(
SkCanvas
* canvas,
const
SkPaint
&
paint
)
const
;
56
57
virtual
SkRect
sourceBounds
()
const
= 0;
58
virtual
SkRect
sourceBoundsWithOrigin
()
const
= 0;
59
60
virtual
void
doFlatten
(
SkWriteBuffer
&)
const
= 0;
61
62
uint32_t
uniqueID
()
const
{
return
fUniqueID; }
63
64
private
:
65
static
uint32_t NextUniqueID();
66
const
uint32_t fUniqueID{NextUniqueID()};
67
};
68
69
70
}
// namespace sktext::gpu
71
72
#endif
// sktext_gpu_Slug_DEFINED
SkAPI.h
SK_API
#define SK_API
Definition
SkAPI.h:35
SkRect.h
SkRefCnt.h
draw
static void draw(SkCanvas *canvas, SkRect &target, int x, int y)
Definition
aaclip.cpp:27
SkCanvas
Definition
SkCanvas.h:106
SkData
Definition
SkData.h:25
SkPaint
Definition
SkPaint.h:44
SkReadBuffer
Definition
SkReadBuffer.h:52
SkRefCnt
Definition
SkRefCnt.h:119
SkStrikeClient
Definition
SkChromeRemoteGlyphCache.h:82
SkTextBlob
Definition
SkTextBlob.h:41
SkWriteBuffer
Definition
SkWriteBuffer.h:41
sk_sp
Definition
SkRefCnt.h:220
sktext::gpu::Slug
Definition
Slug.h:33
sktext::gpu::Slug::doFlatten
virtual void doFlatten(SkWriteBuffer &) const =0
sktext::gpu::Slug::sourceBounds
virtual SkRect sourceBounds() const =0
sktext::gpu::Slug::uniqueID
uint32_t uniqueID() const
Definition
Slug.h:62
sktext::gpu::Slug::sourceBoundsWithOrigin
virtual SkRect sourceBoundsWithOrigin() const =0
paint
const Paint & paint
Definition
color_source.cc:38
buffer
static const uint8_t buffer[]
Definition
fl_pixel_buffer_texture_test.cc:44
sktext::gpu
Definition
SkCanvas.h:81
SkDeserialProcs
Definition
SkSerialProcs.h:97
SkPoint
Definition
SkPoint_impl.h:163
SkRect
Definition
extension.cpp:13
Generated on Fri Apr 26 2024 06:16:14 for Flutter Engine by
1.9.8