mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-27 19:07:31 +09:00
Backport some upstream Skia patches.
Backport of: https://skia.googlesource.com/skia/+/c3d8a48f1b27370049aa512019cd726c59354743 https://skia.googlesource.com/skia/+/8051d38358293df1e5b8a1a513f8114147ec9fa3
This commit is contained in:
parent
64a8472788
commit
b52b4b9f63
1 changed files with 24 additions and 9 deletions
|
|
@ -14,6 +14,7 @@
|
|||
#include "SkPathPriv.h"
|
||||
#include "SkPathRef.h"
|
||||
#include "SkRRect.h"
|
||||
#include "SkTLazy.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
|
@ -1491,10 +1492,17 @@ void SkPath::addPath(const SkPath& path, SkScalar dx, SkScalar dy, AddPathMode m
|
|||
this->addPath(path, matrix, mode);
|
||||
}
|
||||
|
||||
void SkPath::addPath(const SkPath& path, const SkMatrix& matrix, AddPathMode mode) {
|
||||
SkPathRef::Editor(&fPathRef, path.countVerbs(), path.countPoints());
|
||||
void SkPath::addPath(const SkPath& srcPath, const SkMatrix& matrix, AddPathMode mode) {
|
||||
// Detect if we're trying to add ourself
|
||||
const SkPath* src = &srcPath;
|
||||
SkTLazy<SkPath> tmp;
|
||||
if (this == src) {
|
||||
src = tmp.set(srcPath);
|
||||
}
|
||||
|
||||
RawIter iter(path);
|
||||
SkPathRef::Editor(&fPathRef, src->countVerbs(), src->countPoints());
|
||||
|
||||
RawIter iter(*src);
|
||||
SkPoint pts[4];
|
||||
Verb verb;
|
||||
|
||||
|
|
@ -1602,14 +1610,21 @@ void SkPath::reversePathTo(const SkPath& path) {
|
|||
}
|
||||
}
|
||||
|
||||
void SkPath::reverseAddPath(const SkPath& src) {
|
||||
SkPathRef::Editor ed(&fPathRef, src.fPathRef->countPoints(), src.fPathRef->countVerbs());
|
||||
void SkPath::reverseAddPath(const SkPath& srcPath) {
|
||||
// Detect if we're trying to add ourself
|
||||
const SkPath* src = &srcPath;
|
||||
SkTLazy<SkPath> tmp;
|
||||
if (this == src) {
|
||||
src = tmp.set(srcPath);
|
||||
}
|
||||
|
||||
const SkPoint* pts = src.fPathRef->pointsEnd();
|
||||
SkPathRef::Editor ed(&fPathRef, src->fPathRef->countPoints(), src->fPathRef->countVerbs());
|
||||
|
||||
const SkPoint* pts = src->fPathRef->pointsEnd();
|
||||
// we will iterator through src's verbs backwards
|
||||
const uint8_t* verbs = src.fPathRef->verbsMemBegin(); // points at the last verb
|
||||
const uint8_t* verbsEnd = src.fPathRef->verbs(); // points just past the first verb
|
||||
const SkScalar* conicWeights = src.fPathRef->conicWeightsEnd();
|
||||
const uint8_t* verbs = src->fPathRef->verbsMemBegin(); // points at the last verb
|
||||
const uint8_t* verbsEnd = src->fPathRef->verbs(); // points just past the first verb
|
||||
const SkScalar* conicWeights = src->fPathRef->conicWeightsEnd();
|
||||
|
||||
bool needMove = true;
|
||||
bool needClose = false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue