/*
* Copyright 2023 Google LLC
*
* Use of this source code is governed by a BSD - style license that can be
* found in the LICENSE file .
*/
#include "include/core/SkRSXform.h"
void SkRSXform::toQuad(SkScalar width, SkScalar height, SkPoint quad[4 ]) const {
#if 0
// This is the slow way, but it documents what we're doing
quad[0 ].set(0 , 0 );
quad[1 ].set(width, 0 );
quad[2 ].set(width, height);
quad[3 ].set(0 , height);
SkMatrix m;
m.setRSXform(*this).mapPoints({quad, 4 });
#else
const SkScalar m00 = fSCos;
const SkScalar m01 = -fSSin;
const SkScalar m02 = fTx;
const SkScalar m10 = -m01;
const SkScalar m11 = m00;
const SkScalar m12 = fTy;
quad[0 ].set(m02, m12);
quad[1 ].set(m00 * width + m02, m10 * width + m12);
quad[2 ].set(m00 * width + m01 * height + m02, m10 * width + m11 * height + m12);
quad[3 ].set(m01 * height + m02, m11 * height + m12);
#endif
}
void SkRSXform::toTriStrip(SkScalar width, SkScalar height, SkPoint strip[4 ]) const {
const SkScalar m00 = fSCos;
const SkScalar m01 = -fSSin;
const SkScalar m02 = fTx;
const SkScalar m10 = -m01;
const SkScalar m11 = m00;
const SkScalar m12 = fTy;
strip[0 ].set(m02, m12);
strip[1 ].set(m01 * height + m02, m11 * height + m12);
strip[2 ].set(m00 * width + m02, m10 * width + m12);
strip[3 ].set(m00 * width + m01 * height + m02, m10 * width + m11 * height + m12);
}
Messung V0.5 in Prozent C=93 H=92 G=92
¤ Dauer der Verarbeitung: 0.15 Sekunden
(vorverarbeitet am 2026-08-26)
¤
*© Formatika GbR, Deutschland