OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 The Android Open Source Project |
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 | 8 |
9 | 9 |
10 #include "SkDisplayMath.h" | 10 #include "SkDisplayMath.h" |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 case SK_FUNCTION(asin): | 148 case SK_FUNCTION(asin): |
149 scalarResult = SkScalarASin(input); | 149 scalarResult = SkScalarASin(input); |
150 break; | 150 break; |
151 case SK_FUNCTION(atan): | 151 case SK_FUNCTION(atan): |
152 scalarResult = SkScalarATan2(input, SK_Scalar1); | 152 scalarResult = SkScalarATan2(input, SK_Scalar1); |
153 break; | 153 break; |
154 case SK_FUNCTION(atan2): | 154 case SK_FUNCTION(atan2): |
155 scalarResult = SkScalarATan2(input, parameters[1].fOperand.fScalar); | 155 scalarResult = SkScalarATan2(input, parameters[1].fOperand.fScalar); |
156 break; | 156 break; |
157 case SK_FUNCTION(ceil): | 157 case SK_FUNCTION(ceil): |
158 scalarResult = SkIntToScalar(SkScalarCeil(input)); | 158 scalarResult = SkScalarCeilToScalar(input); |
159 break; | 159 break; |
160 case SK_FUNCTION(cos): | 160 case SK_FUNCTION(cos): |
161 scalarResult = SkScalarCos(input); | 161 scalarResult = SkScalarCos(input); |
162 break; | 162 break; |
163 case SK_FUNCTION(exp): | 163 case SK_FUNCTION(exp): |
164 scalarResult = SkScalarExp(input); | 164 scalarResult = SkScalarExp(input); |
165 break; | 165 break; |
166 case SK_FUNCTION(floor): | 166 case SK_FUNCTION(floor): |
167 scalarResult = SkIntToScalar(SkScalarFloor(input)); | 167 scalarResult = SkScalarFloorToScalar(input); |
168 break; | 168 break; |
169 case SK_FUNCTION(log): | 169 case SK_FUNCTION(log): |
170 scalarResult = SkScalarLog(input); | 170 scalarResult = SkScalarLog(input); |
171 break; | 171 break; |
172 case SK_FUNCTION(max): | 172 case SK_FUNCTION(max): |
173 scalarResult = -SK_ScalarMax; | 173 scalarResult = -SK_ScalarMax; |
174 while (array < end) { | 174 while (array < end) { |
175 scalarResult = SkMaxScalar(scalarResult, array->fOperand.fScalar
); | 175 scalarResult = SkMaxScalar(scalarResult, array->fOperand.fScalar
); |
176 array++; | 176 array++; |
177 } | 177 } |
178 break; | 178 break; |
179 case SK_FUNCTION(min): | 179 case SK_FUNCTION(min): |
180 scalarResult = SK_ScalarMax; | 180 scalarResult = SK_ScalarMax; |
181 while (array < end) { | 181 while (array < end) { |
182 scalarResult = SkMinScalar(scalarResult, array->fOperand.fScalar
); | 182 scalarResult = SkMinScalar(scalarResult, array->fOperand.fScalar
); |
183 array++; | 183 array++; |
184 } | 184 } |
185 break; | 185 break; |
186 case SK_FUNCTION(pow): | 186 case SK_FUNCTION(pow): |
187 // not the greatest -- but use x^y = e^(y * ln(x)) | 187 // not the greatest -- but use x^y = e^(y * ln(x)) |
188 scalarResult = SkScalarLog(input); | 188 scalarResult = SkScalarLog(input); |
189 scalarResult = SkScalarMul(parameters[1].fOperand.fScalar, scalarRes
ult); | 189 scalarResult = SkScalarMul(parameters[1].fOperand.fScalar, scalarRes
ult); |
190 scalarResult = SkScalarExp(scalarResult); | 190 scalarResult = SkScalarExp(scalarResult); |
191 break; | 191 break; |
192 case SK_FUNCTION(random): | 192 case SK_FUNCTION(random): |
193 scalarResult = fRandom.nextUScalar1(); | 193 scalarResult = fRandom.nextUScalar1(); |
194 break; | 194 break; |
195 case SK_FUNCTION(round): | 195 case SK_FUNCTION(round): |
196 scalarResult = SkIntToScalar(SkScalarRound(input)); | 196 scalarResult = SkScalarRoundToScalar(input); |
197 break; | 197 break; |
198 case SK_FUNCTION(sin): | 198 case SK_FUNCTION(sin): |
199 scalarResult = SkScalarSin(input); | 199 scalarResult = SkScalarSin(input); |
200 break; | 200 break; |
201 case SK_FUNCTION(sqrt): { | 201 case SK_FUNCTION(sqrt): { |
202 SkASSERT(parameters.count() == 1); | 202 SkASSERT(parameters.count() == 1); |
203 SkASSERT(type == SkType_Float); | 203 SkASSERT(type == SkType_Float); |
204 scalarResult = SkScalarSqrt(input); | 204 scalarResult = SkScalarSqrt(input); |
205 } break; | 205 } break; |
206 case SK_FUNCTION(tan): | 206 case SK_FUNCTION(tan): |
(...skipping 13 matching lines...) Expand all Loading... |
220 | 220 |
221 bool SkDisplayMath::getProperty(int index, SkScriptValue* value) const { | 221 bool SkDisplayMath::getProperty(int index, SkScriptValue* value) const { |
222 if ((unsigned)index < SK_ARRAY_COUNT(gConstants)) { | 222 if ((unsigned)index < SK_ARRAY_COUNT(gConstants)) { |
223 value->fOperand.fScalar = gConstants[index]; | 223 value->fOperand.fScalar = gConstants[index]; |
224 value->fType = SkType_Float; | 224 value->fType = SkType_Float; |
225 return true; | 225 return true; |
226 } | 226 } |
227 SkASSERT(0); | 227 SkASSERT(0); |
228 return false; | 228 return false; |
229 } | 229 } |
OLD | NEW |