Lines Matching defs:src

17 #include "src/core/SkMathPriv.h"
18 #include "src/core/SkMatrixPriv.h"
19 #include "src/core/SkPathPriv.h"
547 bool SkMatrix::setRectToRect(const SkRect& src, const SkRect& dst, ScaleToFit align) {
548 if (src.isEmpty()) {
558 SkScalar tx, sx = dst.width() / src.width();
559 SkScalar ty, sy = dst.height() / src.height();
571 tx = dst.fLeft - src.fLeft * sx;
572 ty = dst.fTop - src.fTop * sy;
577 diff = dst.width() - src.width() * sy;
579 diff = dst.height() - src.height() * sy;
779 void SkMatrix::mapPoints(SkPoint dst[], const SkPoint src[], int count) const {
780 SkASSERT((dst && src && count > 0) || 0 == count);
782 SkASSERT(src == dst || &dst[count] <= &src[0] || &src[count] <= &dst[0]);
783 this->getMapPtsProc()(*this, dst, src, count);
791 void SkMatrix::ComputeInv(SkScalar dst[9], const SkScalar src[9], double invDet, bool isPersp) {
792 SkASSERT(src != dst);
793 SkASSERT(src && dst);
796 dst[kMScaleX] = scross_dscale(src[kMScaleY], src[kMPersp2], src[kMTransY], src[kMPersp1], invDet);
797 dst[kMSkewX] = scross_dscale(src[kMTransX], src[kMPersp1], src[kMSkewX], src[kMPersp2], invDet);
798 dst[kMTransX] = scross_dscale(src[kMSkewX], src[kMTransY], src[kMTransX], src[kMScaleY], invDet);
800 dst[kMSkewY] = scross_dscale(src[kMTransY], src[kMPersp0], src[kMSkewY], src[kMPersp2], invDet);
801 dst[kMScaleY] = scross_dscale(src[kMScaleX], src[kMPersp2], src[kMTransX], src[kMPersp0], invDet);
802 dst[kMTransY] = scross_dscale(src[kMTransX], src[kMSkewY], src[kMScaleX], src[kMTransY], invDet);
804 dst[kMPersp0] = scross_dscale(src[kMSkewY], src[kMPersp1], src[kMScaleY], src[kMPersp0], invDet);
805 dst[kMPersp1] = scross_dscale(src[kMSkewX], src[kMPersp0], src[kMScaleX], src[kMPersp1], invDet);
806 dst[kMPersp2] = scross_dscale(src[kMScaleX], src[kMScaleY], src[kMSkewX], src[kMSkewY], invDet);
808 dst[kMScaleX] = SkDoubleToScalar(src[kMScaleY] * invDet);
809 dst[kMSkewX] = SkDoubleToScalar(-src[kMSkewX] * invDet);
810 dst[kMTransX] = dcross_dscale(src[kMSkewX], src[kMTransY], src[kMScaleY], src[kMTransX], invDet);
812 dst[kMSkewY] = SkDoubleToScalar(-src[kMSkewY] * invDet);
813 dst[kMScaleY] = SkDoubleToScalar(src[kMScaleX] * invDet);
814 dst[kMTransY] = dcross_dscale(src[kMSkewY], src[kMTransX], src[kMScaleX], src[kMTransY], invDet);
896 void SkMatrix::Identity_pts(const SkMatrix& m, SkPoint dst[], const SkPoint src[], int count) {
899 if (dst != src && count > 0) {
900 memcpy(dst, src, count * sizeof(SkPoint));
904 void SkMatrix::Trans_pts(const SkMatrix& m, SkPoint dst[], const SkPoint src[], int count) {
910 dst->fX = src->fX + tx;
911 dst->fY = src->fY + ty;
912 src += 1;
918 (Sk4s::Load(src) + trans4).store(dst);
919 src += 2;
924 (Sk4s::Load(src+0) + trans4).store(dst+0);
925 (Sk4s::Load(src+2) + trans4).store(dst+2);
926 src += 4;
932 void SkMatrix::Scale_pts(const SkMatrix& m, SkPoint dst[], const SkPoint src[], int count) {
940 dst->fX = src->fX * sx + tx;
941 dst->fY = src->fY * sy + ty;
942 src += 1;
949 (Sk4s::Load(src) * scale4 + trans4).store(dst);
950 src += 2;
955 (Sk4s::Load(src+0) * scale4 + trans4).store(dst+0);
956 (Sk4s::Load(src+2) * scale4 + trans4).store(dst+2);
957 src += 4;
964 const SkPoint src[], int count) {
969 SkScalar sy = src->fY;
970 SkScalar sx = src->fX;
971 src += 1;
991 void SkMatrix::Affine_vpts(const SkMatrix& m, SkPoint dst[], const SkPoint src[], int count) {
1001 dst->set(src->fX * sx + src->fY * kx + tx,
1002 src->fX * ky + src->fY * sy + ty);
1003 src += 1;
1011 Sk4s src4 = Sk4s::Load(src);
1014 src += 2;
1035 size_t dstStride, const SkPoint3 src[],
1037 SkASSERT((dst && src && count > 0) || 0 == count);
1039 SkASSERT(src == dst || &dst[count] <= &src[0] || &src[count] <= &dst[0]);
1043 if (src != dst) {
1045 memcpy(dst, src, count * sizeof(SkPoint3));
1048 *dst = *src;
1050 src = reinterpret_cast<const SkPoint3*>(reinterpret_cast<const char*>(src) +
1058 SkScalar sx = src->fX;
1059 SkScalar sy = src->fY;
1060 SkScalar sw = src->fZ;
1061 src = reinterpret_cast<const SkPoint3*>(reinterpret_cast<const char*>(src) + srcStride);
1074 void SkMatrix::mapHomogeneousPoints(SkPoint3 dst[], const SkPoint3 src[], int count) const {
1075 SkMatrixPriv::MapHomogeneousPointsWithStride(*this, dst, sizeof(SkPoint3), src,
1079 void SkMatrix::mapHomogeneousPoints(SkPoint3 dst[], const SkPoint src[], int count) const {
1082 dst[i] = { src[i].fX, src[i].fY, 1 };
1087 fMat[0] * src[i].fX + fMat[1] * src[i].fY + fMat[2],
1088 fMat[3] * src[i].fX + fMat[4] * src[i].fY + fMat[5],
1089 fMat[6] * src[i].fX + fMat[7] * src[i].fY + fMat[8],
1095 fMat[0] * src[i].fX + fMat[1] * src[i].fY + fMat[2],
1096 fMat[3] * src[i].fX + fMat[4] * src[i].fY + fMat[5],
1105 void SkMatrix::mapVectors(SkPoint dst[], const SkPoint src[], int count) const {
1115 proc(*this, src[i].fX, src[i].fY, &tmp);
1123 tmp.mapPoints(dst, src, count);
1136 void SkMatrix::mapRectScaleTranslate(SkRect* dst, const SkRect& src) const {
1146 sort_as_rect(Sk4f::Load(&src.fLeft) * scale + trans).store(&dst->fLeft);
1149 bool SkMatrix::mapRect(SkRect* dst, const SkRect& src, SkApplyPerspectiveClip pc) const {
1156 sort_as_rect(Sk4f::Load(&src.fLeft) + trans).store(&dst->fLeft);
1160 this->mapRectScaleTranslate(dst, src);
1164 path.addRect(src);
1171 src.toQuad(quad);
1403 bool SkMatrix::setPolyToPoly(const SkPoint src[], const SkPoint dst[], int count) {
1414 this->setTranslate(dst[0].fX - src[0].fX, dst[0].fY - src[0].fY);
1425 if (!proc(src, &tempMap)) {
1644 #include "src/core/SkMatrixUtils.h"
1645 #include "src/core/SkSamplingPriv.h"
1679 SkRect src;
1680 src.set(isrc);
1681 mat.mapRect(&dst, src);