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

Side by Side Diff: src/core/SkScan.h

Issue 1824733002: For *ToFixed, in debug mode, assert that the value is in range. (Closed) Base URL: https://skia.googlesource.com/skia@scalar-pin-to-fixed
Patch Set: Rebase. Created 4 years, 8 months 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
« no previous file with comments | « include/private/SkFixed.h ('k') | src/effects/gradients/SkTwoPointConicalGradient.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 The Android Open Source Project 2 * Copyright 2011 The Android Open Source Project
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 8
9 #ifndef SkScan_DEFINED 9 #ifndef SkScan_DEFINED
10 #define SkScan_DEFINED 10 #define SkScan_DEFINED
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 exceed 32K 86 exceed 32K
87 */ 87 */
88 static inline void XRect_set(SkXRect* xr, const SkIRect& src) { 88 static inline void XRect_set(SkXRect* xr, const SkIRect& src) {
89 xr->fLeft = SkIntToFixed(src.fLeft); 89 xr->fLeft = SkIntToFixed(src.fLeft);
90 xr->fTop = SkIntToFixed(src.fTop); 90 xr->fTop = SkIntToFixed(src.fTop);
91 xr->fRight = SkIntToFixed(src.fRight); 91 xr->fRight = SkIntToFixed(src.fRight);
92 xr->fBottom = SkIntToFixed(src.fBottom); 92 xr->fBottom = SkIntToFixed(src.fBottom);
93 } 93 }
94 94
95 /** Assign an SkXRect from a SkRect, by promoting the src rect's coordinates 95 /** Assign an SkXRect from a SkRect, by promoting the src rect's coordinates
96 from SkScalar to SkFixed. Does not check for overflow if the src coordinates 96 from SkScalar to SkFixed. Behavior is undefined if the src coordinates
97 exceed 32K 97 exceed 32K
98 */ 98 */
99 static inline void XRect_set(SkXRect* xr, const SkRect& src) { 99 static inline void XRect_set(SkXRect* xr, const SkRect& src) {
100 xr->fLeft = SkScalarToFixed(src.fLeft); 100 xr->fLeft = SkScalarToFixed(src.fLeft);
101 xr->fTop = SkScalarToFixed(src.fTop); 101 xr->fTop = SkScalarToFixed(src.fTop);
102 xr->fRight = SkScalarToFixed(src.fRight); 102 xr->fRight = SkScalarToFixed(src.fRight);
103 xr->fBottom = SkScalarToFixed(src.fBottom); 103 xr->fBottom = SkScalarToFixed(src.fBottom);
104 } 104 }
105 105
106 /** Round the SkXRect coordinates, and store the result in the SkIRect. 106 /** Round the SkXRect coordinates, and store the result in the SkIRect.
107 */ 107 */
108 static inline void XRect_round(const SkXRect& xr, SkIRect* dst) { 108 static inline void XRect_round(const SkXRect& xr, SkIRect* dst) {
109 dst->fLeft = SkFixedRoundToInt(xr.fLeft); 109 dst->fLeft = SkFixedRoundToInt(xr.fLeft);
110 dst->fTop = SkFixedRoundToInt(xr.fTop); 110 dst->fTop = SkFixedRoundToInt(xr.fTop);
111 dst->fRight = SkFixedRoundToInt(xr.fRight); 111 dst->fRight = SkFixedRoundToInt(xr.fRight);
112 dst->fBottom = SkFixedRoundToInt(xr.fBottom); 112 dst->fBottom = SkFixedRoundToInt(xr.fBottom);
113 } 113 }
114 114
115 /** Round the SkXRect coordinates out (i.e. use floor for left/top, and ceiling 115 /** Round the SkXRect coordinates out (i.e. use floor for left/top, and ceiling
116 for right/bottom), and store the result in the SkIRect. 116 for right/bottom), and store the result in the SkIRect.
117 */ 117 */
118 static inline void XRect_roundOut(const SkXRect& xr, SkIRect* dst) { 118 static inline void XRect_roundOut(const SkXRect& xr, SkIRect* dst) {
119 dst->fLeft = SkFixedFloorToInt(xr.fLeft); 119 dst->fLeft = SkFixedFloorToInt(xr.fLeft);
120 dst->fTop = SkFixedFloorToInt(xr.fTop); 120 dst->fTop = SkFixedFloorToInt(xr.fTop);
121 dst->fRight = SkFixedCeilToInt(xr.fRight); 121 dst->fRight = SkFixedCeilToInt(xr.fRight);
122 dst->fBottom = SkFixedCeilToInt(xr.fBottom); 122 dst->fBottom = SkFixedCeilToInt(xr.fBottom);
123 } 123 }
124 124
125 #endif 125 #endif
OLDNEW
« no previous file with comments | « include/private/SkFixed.h ('k') | src/effects/gradients/SkTwoPointConicalGradient.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698