Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | List of all members
sk_fontations::BoundsPainter Class Reference

#include <SkTypeface_fontations_priv.h>

Inheritance diagram for sk_fontations::BoundsPainter:
fontations_ffi::ColorPainterWrapper

Public Member Functions

 BoundsPainter ()=delete
 
 BoundsPainter (SkFontationsScalerContext &scaler_context, SkMatrix initialTransfom, uint16_t upem)
 
SkRect getBoundingBox ()
 
virtual void push_transform (const fontations_ffi::Transform &transform) override
 
virtual void pop_transform () override
 
virtual void push_clip_glyph (uint16_t glyph_id) override
 
virtual void push_clip_rectangle (float x_min, float y_min, float x_max, float y_max) override
 
virtual void pop_clip () override
 
virtual void fill_solid (uint16_t palette_index, float alpha) override
 
virtual void fill_radial (const fontations_ffi::FillRadialParams &fill_radial_params, fontations_ffi::BridgeColorStops &stops, uint8_t) override
 
virtual void fill_linear (const fontations_ffi::FillLinearParams &fill_linear_params, fontations_ffi::BridgeColorStops &stops, uint8_t) override
 
virtual void fill_sweep (const fontations_ffi::FillSweepParams &fill_sweep_params, fontations_ffi::BridgeColorStops &stops, uint8_t extend_mode) override
 
virtual void push_layer (uint8_t) override
 
virtual void pop_layer () override
 
virtual void fill_glyph_solid (uint16_t glyph_id, uint16_t, float) override
 
virtual void fill_glyph_radial (uint16_t glyph_id, const fontations_ffi::Transform &, const fontations_ffi::FillRadialParams &, fontations_ffi::BridgeColorStops &, uint8_t) override
 
virtual void fill_glyph_linear (uint16_t glyph_id, const fontations_ffi::Transform &, const fontations_ffi::FillLinearParams &, fontations_ffi::BridgeColorStops &, uint8_t) override
 
virtual void fill_glyph_sweep (uint16_t glyph_id, const fontations_ffi::Transform &, const fontations_ffi::FillSweepParams &, fontations_ffi::BridgeColorStops &, uint8_t) override
 
- Public Member Functions inherited from fontations_ffi::ColorPainterWrapper
virtual ~ColorPainterWrapper ()=default
 
virtual void push_transform (const Transform &transform)=0
 
virtual void fill_linear (const FillLinearParams &fill_linear_params, BridgeColorStops &stops, uint8_t extend_mode)=0
 
virtual void fill_radial (const FillRadialParams &fill_radial_params, BridgeColorStops &stops, uint8_t extend_mode)=0
 
virtual void fill_sweep (const FillSweepParams &, BridgeColorStops &stops, uint8_t extend_mode)=0
 

Detailed Description

Tracks transforms and clips to compute a bounding box without drawing pixels.

Definition at line 143 of file SkTypeface_fontations_priv.h.

Constructor & Destructor Documentation

◆ BoundsPainter() [1/2]

sk_fontations::BoundsPainter::BoundsPainter ( )
delete

◆ BoundsPainter() [2/2]

sk_fontations::BoundsPainter::BoundsPainter ( SkFontationsScalerContext scaler_context,
SkMatrix  initialTransfom,
uint16_t  upem 
)

Definition at line 1440 of file SkTypeface_fontations.cpp.

1443 : fScalerContext(scaler_context)
1444 , fCurrentTransform(initialTransfom)
1445 , fUpem(upem)
1446 , fBounds(SkRect::MakeEmpty()) {}
static constexpr SkRect MakeEmpty()
Definition SkRect.h:595

Member Function Documentation

◆ fill_glyph_linear()

void sk_fontations::BoundsPainter::fill_glyph_linear ( uint16_t  glyph_id,
const fontations_ffi::Transform &  ,
const fontations_ffi::FillLinearParams &  ,
fontations_ffi::BridgeColorStops &  ,
uint8_t   
)
overridevirtual

Implements fontations_ffi::ColorPainterWrapper.

Definition at line 1497 of file SkTypeface_fontations.cpp.

1501 {
1502 push_clip_glyph(glyph_id);
1503 pop_clip();
1504}
virtual void push_clip_glyph(uint16_t glyph_id) override

◆ fill_glyph_radial()

void sk_fontations::BoundsPainter::fill_glyph_radial ( uint16_t  glyph_id,
const fontations_ffi::Transform &  ,
const fontations_ffi::FillRadialParams &  ,
fontations_ffi::BridgeColorStops &  ,
uint8_t   
)
overridevirtual

Implements fontations_ffi::ColorPainterWrapper.

Definition at line 1489 of file SkTypeface_fontations.cpp.

1493 {
1494 push_clip_glyph(glyph_id);
1495 pop_clip();
1496}

◆ fill_glyph_solid()

void sk_fontations::BoundsPainter::fill_glyph_solid ( uint16_t  glyph_id,
uint16_t  ,
float   
)
overridevirtual

Implements fontations_ffi::ColorPainterWrapper.

Definition at line 1484 of file SkTypeface_fontations.cpp.

1484 {
1485 push_clip_glyph(glyph_id);
1486 pop_clip();
1487}

◆ fill_glyph_sweep()

void sk_fontations::BoundsPainter::fill_glyph_sweep ( uint16_t  glyph_id,
const fontations_ffi::Transform &  ,
const fontations_ffi::FillSweepParams &  ,
fontations_ffi::BridgeColorStops &  ,
uint8_t   
)
overridevirtual

Implements fontations_ffi::ColorPainterWrapper.

Definition at line 1506 of file SkTypeface_fontations.cpp.

1510 {
1511 push_clip_glyph(glyph_id);
1512 pop_clip();
1513}

◆ fill_linear()

virtual void sk_fontations::BoundsPainter::fill_linear ( const fontations_ffi::FillLinearParams &  fill_linear_params,
fontations_ffi::BridgeColorStops &  stops,
uint8_t   
)
inlineoverridevirtual

Definition at line 164 of file SkTypeface_fontations_priv.h.

166 {}

◆ fill_radial()

virtual void sk_fontations::BoundsPainter::fill_radial ( const fontations_ffi::FillRadialParams &  fill_radial_params,
fontations_ffi::BridgeColorStops &  stops,
uint8_t   
)
inlineoverridevirtual

Definition at line 161 of file SkTypeface_fontations_priv.h.

163 {}

◆ fill_solid()

virtual void sk_fontations::BoundsPainter::fill_solid ( uint16_t  palette_index,
float  alpha 
)
inlineoverridevirtual

Implements fontations_ffi::ColorPainterWrapper.

Definition at line 160 of file SkTypeface_fontations_priv.h.

160{}

◆ fill_sweep()

virtual void sk_fontations::BoundsPainter::fill_sweep ( const fontations_ffi::FillSweepParams &  fill_sweep_params,
fontations_ffi::BridgeColorStops &  stops,
uint8_t  extend_mode 
)
inlineoverridevirtual

Definition at line 167 of file SkTypeface_fontations_priv.h.

169 {}

◆ getBoundingBox()

SkRect sk_fontations::BoundsPainter::getBoundingBox ( )

Definition at line 1448 of file SkTypeface_fontations.cpp.

1448{ return fBounds; }

◆ pop_clip()

virtual void sk_fontations::BoundsPainter::pop_clip ( )
inlineoverridevirtual

Implements fontations_ffi::ColorPainterWrapper.

Definition at line 157 of file SkTypeface_fontations_priv.h.

157{}

◆ pop_layer()

virtual void sk_fontations::BoundsPainter::pop_layer ( )
inlineoverridevirtual

Implements fontations_ffi::ColorPainterWrapper.

Definition at line 172 of file SkTypeface_fontations_priv.h.

172{}

◆ pop_transform()

void sk_fontations::BoundsPainter::pop_transform ( )
overridevirtual

Implements fontations_ffi::ColorPainterWrapper.

Definition at line 1465 of file SkTypeface_fontations.cpp.

1465 {
1466 fCurrentTransform.preConcat(fStackTopTransformInverse);
1467 fStackTopTransformInverse = SkMatrix();
1468}
SkMatrix & preConcat(const SkMatrix &other)
Definition SkMatrix.cpp:674

◆ push_clip_glyph()

void sk_fontations::BoundsPainter::push_clip_glyph ( uint16_t  glyph_id)
overridevirtual

Implements fontations_ffi::ColorPainterWrapper.

Definition at line 1470 of file SkTypeface_fontations.cpp.

1470 {
1471 SkPath path;
1472 fScalerContext.generateYScalePathForGlyphId(glyph_id, &path, fUpem);
1473 path.transform(fCurrentTransform);
1474 fBounds.join(path.getBounds());
1475}
bool generateYScalePathForGlyphId(uint16_t glyphId, SkPath *path, float yScale)
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir path
Definition switches.h:57
void join(const SkRect &r)
Definition SkRect.cpp:126

◆ push_clip_rectangle()

void sk_fontations::BoundsPainter::push_clip_rectangle ( float  x_min,
float  y_min,
float  x_max,
float  y_max 
)
overridevirtual

Implements fontations_ffi::ColorPainterWrapper.

Definition at line 1477 of file SkTypeface_fontations.cpp.

1477 {
1478 SkRect clipRect = SkRect::MakeLTRB(x_min, -y_min, x_max, -y_max);
1479 SkPath rectPath = SkPath::Rect(clipRect);
1480 rectPath.transform(fCurrentTransform);
1481 fBounds.join(rectPath.getBounds());
1482}
static SkPath Rect(const SkRect &, SkPathDirection=SkPathDirection::kCW, unsigned startIndex=0)
Definition SkPath.cpp:3518
const SkRect & getBounds() const
Definition SkPath.cpp:420
void transform(const SkMatrix &matrix, SkPath *dst, SkApplyPerspectiveClip pc=SkApplyPerspectiveClip::kYes) const
Definition SkPath.cpp:1647
clipRect(r.rect, r.opAA.op(), r.opAA.aa())) template<> void Draw
static constexpr SkRect MakeLTRB(float l, float t, float r, float b)
Definition SkRect.h:646

◆ push_layer()

virtual void sk_fontations::BoundsPainter::push_layer ( uint8_t  )
inlineoverridevirtual

Implements fontations_ffi::ColorPainterWrapper.

Definition at line 171 of file SkTypeface_fontations_priv.h.

171{}

◆ push_transform()

void sk_fontations::BoundsPainter::push_transform ( const fontations_ffi::Transform &  transform)
overridevirtual

Definition at line 1451 of file SkTypeface_fontations.cpp.

1451 {
1452 SkMatrix transform = SkMatrix::MakeAll(transform_arg.xx,
1453 -transform_arg.xy,
1454 transform_arg.dx,
1455 -transform_arg.yx,
1456 transform_arg.yy,
1457 -transform_arg.dy,
1458 0.f,
1459 0.f,
1460 1.0f);
1461 fCurrentTransform.preConcat(transform);
1462 bool invertResult = transform.invert(&fStackTopTransformInverse);
1463 SkASSERT(invertResult);
1464}
#define SkASSERT(cond)
Definition SkAssert.h:116
static SkMatrix MakeAll(SkScalar scaleX, SkScalar skewX, SkScalar transX, SkScalar skewY, SkScalar scaleY, SkScalar transY, SkScalar pers0, SkScalar pers1, SkScalar pers2)
Definition SkMatrix.h:179
static SkColor4f transform(SkColor4f c, SkColorSpace *src, SkColorSpace *dst)
Definition p3.cpp:47

The documentation for this class was generated from the following files: