| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef SK_CONVOLVER_H | 5 #ifndef SK_CONVOLVER_H |
| 6 #define SK_CONVOLVER_H | 6 #define SK_CONVOLVER_H |
| 7 | 7 |
| 8 #include "SkSize.h" | 8 #include "SkSize.h" |
| 9 #include "SkTypes.h" | 9 #include "SkTypes.h" |
| 10 #include "SkTArray.h" | 10 #include "SkTArray.h" |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 static ConvolutionFixed FloatToFixed(float f) { | 39 static ConvolutionFixed FloatToFixed(float f) { |
| 40 return static_cast<ConvolutionFixed>(f * (1 << kShiftBits)); | 40 return static_cast<ConvolutionFixed>(f * (1 << kShiftBits)); |
| 41 } | 41 } |
| 42 static unsigned char FixedToChar(ConvolutionFixed x) { | 42 static unsigned char FixedToChar(ConvolutionFixed x) { |
| 43 return static_cast<unsigned char>(x >> kShiftBits); | 43 return static_cast<unsigned char>(x >> kShiftBits); |
| 44 } | 44 } |
| 45 static float FixedToFloat(ConvolutionFixed x) { | 45 static float FixedToFloat(ConvolutionFixed x) { |
| 46 // The cast relies on ConvolutionFixed being a short, implying that on | 46 // The cast relies on ConvolutionFixed being a short, implying that on |
| 47 // the platforms we care about all (16) bits will fit into | 47 // the platforms we care about all (16) bits will fit into |
| 48 // the mantissa of a (32-bit) float. | 48 // the mantissa of a (32-bit) float. |
| 49 SK_COMPILE_ASSERT(sizeof(ConvolutionFixed) == 2, ConvolutionFixed_type_s
hould_fit_in_float_mantissa); | 49 static_assert(sizeof(ConvolutionFixed) == 2, "ConvolutionFixed_type_shou
ld_fit_in_float_mantissa"); |
| 50 float raw = static_cast<float>(x); | 50 float raw = static_cast<float>(x); |
| 51 return ldexpf(raw, -kShiftBits); | 51 return ldexpf(raw, -kShiftBits); |
| 52 } | 52 } |
| 53 | 53 |
| 54 // Returns the maximum pixel span of a filter. | 54 // Returns the maximum pixel span of a filter. |
| 55 int maxFilter() const { return fMaxFilter; } | 55 int maxFilter() const { return fMaxFilter; } |
| 56 | 56 |
| 57 // Returns the number of filters in this filter. This is the dimension of th
e | 57 // Returns the number of filters in this filter. This is the dimension of th
e |
| 58 // output image. | 58 // output image. |
| 59 int numValues() const { return static_cast<int>(fFilters.count()); } | 59 int numValues() const { return static_cast<int>(fFilters.count()); } |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 int sourceByteRowStride, | 197 int sourceByteRowStride, |
| 198 bool sourceHasAlpha, | 198 bool sourceHasAlpha, |
| 199 const SkConvolutionFilter1D& xfilter, | 199 const SkConvolutionFilter1D& xfilter, |
| 200 const SkConvolutionFilter1D& yfilter, | 200 const SkConvolutionFilter1D& yfilter, |
| 201 int outputByteRowStride, | 201 int outputByteRowStride, |
| 202 unsigned char* output, | 202 unsigned char* output, |
| 203 const SkConvolutionProcs&, | 203 const SkConvolutionProcs&, |
| 204 bool useSimdIfPossible); | 204 bool useSimdIfPossible); |
| 205 | 205 |
| 206 #endif // SK_CONVOLVER_H | 206 #endif // SK_CONVOLVER_H |
| OLD | NEW |