Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(215)

Side by Side Diff: experimental/SkSetPoly3To3_A.cpp

Issue 117053002: remove SK_SCALAR_IS_[FLOAT,FIXED] and assume floats (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2011 Google Inc. 3 * Copyright 2011 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 #include "SkMatrix.h" 8 #include "SkMatrix.h"
9 9
10 // FIXME: needs to be in a header 10 // FIXME: needs to be in a header
11 bool SkSetPoly3To3_A(SkMatrix* matrix, const SkPoint src[3], const SkPoint dst[3 ]); 11 bool SkSetPoly3To3_A(SkMatrix* matrix, const SkPoint src[3], const SkPoint dst[3 ]);
12 12
13 #ifdef SK_SCALAR_IS_FIXED 13 typedef double SkDScalar;
14 typedef int64_t SkDScalar;
15 14
16 static SkScalar SkDScalar_toScalar(SkDScalar value) { 15 static SkScalar SkDScalar_toScalar(SkDScalar value) {
17 SkDScalar result = (value + (1 << 15)) >> 16; 16 return static_cast<float>(value);
18 int top = result >> 31; 17 }
19 SkASSERT(top == 0 || top == -1); 18 static SkScalar divide(SkDScalar numer, SkDScalar denom) {
20 return (SkScalar)result; 19 return static_cast<float>(numer / denom);
21 } 20 }
22 static SkScalar divide(SkDScalar numer, SkDScalar denom) {
23 denom >>= 16;
24 return numer / denom;
25 }
26 #else
27 typedef double SkDScalar;
28
29 static SkScalar SkDScalar_toScalar(SkDScalar value) {
30 return static_cast<float>(value);
31 }
32 static SkScalar divide(SkDScalar numer, SkDScalar denom) {
33 return static_cast<float>(numer / denom);
34 }
35 #endif
36 21
37 static SkDScalar SkDScalar_setMul(SkScalar a, SkScalar b) { 22 static SkDScalar SkDScalar_setMul(SkScalar a, SkScalar b) {
38 return (SkDScalar) ((SkDScalar) a * b); 23 return (SkDScalar) ((SkDScalar) a * b);
39 } 24 }
40 25
41 static void computeOuterProduct(SkScalar op[4], 26 static void computeOuterProduct(SkScalar op[4],
42 const SkPoint pts0[3], const SkPoint& ave0, 27 const SkPoint pts0[3], const SkPoint& ave0,
43 const SkPoint pts1[3], const SkPoint& ave1) { 28 const SkPoint pts1[3], const SkPoint& ave1) {
44 sk_bzero(op, 4 * sizeof(op[0])); 29 sk_bzero(op, 4 * sizeof(op[0]));
45 for (int i = 0; i < 3; i++) { 30 for (int i = 0; i < 3; i++) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 matrix->setScaleX(divide(M[0], det)); 75 matrix->setScaleX(divide(M[0], det));
91 matrix->setSkewX( divide(M[1], det)); 76 matrix->setSkewX( divide(M[1], det));
92 matrix->setSkewY (divide(M[2], det)); 77 matrix->setSkewY (divide(M[2], det));
93 matrix->setScaleY(divide(M[3], det)); 78 matrix->setScaleY(divide(M[3], det));
94 matrix->setTranslateX(dstAve.fX - dot(srcAve.fX, srcAve.fY, 79 matrix->setTranslateX(dstAve.fX - dot(srcAve.fX, srcAve.fY,
95 matrix->getScaleX(), matrix->getSkewX())); 80 matrix->getScaleX(), matrix->getSkewX()));
96 matrix->setTranslateY(dstAve.fY - dot(srcAve.fX, srcAve.fY, 81 matrix->setTranslateY(dstAve.fY - dot(srcAve.fX, srcAve.fY,
97 matrix->getSkewY(), matrix->getScaleY())); 82 matrix->getSkewY(), matrix->getScaleY()));
98 return true; 83 return true;
99 } 84 }
OLDNEW
« no previous file with comments | « bench/benchmain.cpp ('k') | gm/blurs.cpp » ('j') | src/core/SkCanvas.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698