| 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 #include "ui/gfx/skia_util.h" | 5 #include "ui/gfx/skia_util.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include "base/numerics/safe_conversions.h" | 10 #include "base/numerics/safe_conversions.h" |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 flattened->set(1, SkMScalarToScalar(transform.matrix().get(0, 1))); | 84 flattened->set(1, SkMScalarToScalar(transform.matrix().get(0, 1))); |
| 85 flattened->set(2, SkMScalarToScalar(transform.matrix().get(0, 3))); | 85 flattened->set(2, SkMScalarToScalar(transform.matrix().get(0, 3))); |
| 86 flattened->set(3, SkMScalarToScalar(transform.matrix().get(1, 0))); | 86 flattened->set(3, SkMScalarToScalar(transform.matrix().get(1, 0))); |
| 87 flattened->set(4, SkMScalarToScalar(transform.matrix().get(1, 1))); | 87 flattened->set(4, SkMScalarToScalar(transform.matrix().get(1, 1))); |
| 88 flattened->set(5, SkMScalarToScalar(transform.matrix().get(1, 3))); | 88 flattened->set(5, SkMScalarToScalar(transform.matrix().get(1, 3))); |
| 89 flattened->set(6, SkMScalarToScalar(transform.matrix().get(3, 0))); | 89 flattened->set(6, SkMScalarToScalar(transform.matrix().get(3, 0))); |
| 90 flattened->set(7, SkMScalarToScalar(transform.matrix().get(3, 1))); | 90 flattened->set(7, SkMScalarToScalar(transform.matrix().get(3, 1))); |
| 91 flattened->set(8, SkMScalarToScalar(transform.matrix().get(3, 3))); | 91 flattened->set(8, SkMScalarToScalar(transform.matrix().get(3, 3))); |
| 92 } | 92 } |
| 93 | 93 |
| 94 skia::RefPtr<SkShader> CreateImageRepShader(const gfx::ImageSkiaRep& image_rep, | 94 sk_sp<SkShader> CreateImageRepShader(const gfx::ImageSkiaRep& image_rep, |
| 95 SkShader::TileMode tile_mode, | 95 SkShader::TileMode tile_mode, |
| 96 const SkMatrix& local_matrix) { | 96 const SkMatrix& local_matrix) { |
| 97 return CreateImageRepShaderForScale(image_rep, tile_mode, local_matrix, | 97 return CreateImageRepShaderForScale(image_rep, tile_mode, local_matrix, |
| 98 image_rep.scale()); | 98 image_rep.scale()); |
| 99 } | 99 } |
| 100 | 100 |
| 101 skia::RefPtr<SkShader> CreateImageRepShaderForScale( | 101 sk_sp<SkShader> CreateImageRepShaderForScale( |
| 102 const gfx::ImageSkiaRep& image_rep, | 102 const gfx::ImageSkiaRep& image_rep, |
| 103 SkShader::TileMode tile_mode, | 103 SkShader::TileMode tile_mode, |
| 104 const SkMatrix& local_matrix, | 104 const SkMatrix& local_matrix, |
| 105 SkScalar scale) { | 105 SkScalar scale) { |
| 106 // Unscale matrix by |scale| such that the bitmap is drawn at the | 106 // Unscale matrix by |scale| such that the bitmap is drawn at the |
| 107 // correct density. | 107 // correct density. |
| 108 // Convert skew and translation to pixel coordinates. | 108 // Convert skew and translation to pixel coordinates. |
| 109 // Thus, for |bitmap_scale| = 2: | 109 // Thus, for |bitmap_scale| = 2: |
| 110 // x scale = 2, x translation = 1 DIP, | 110 // x scale = 2, x translation = 1 DIP, |
| 111 // should be converted to | 111 // should be converted to |
| 112 // x scale = 1, x translation = 2 pixels. | 112 // x scale = 1, x translation = 2 pixels. |
| 113 SkMatrix shader_scale = local_matrix; | 113 SkMatrix shader_scale = local_matrix; |
| 114 shader_scale.preScale(scale, scale); | 114 shader_scale.preScale(scale, scale); |
| 115 shader_scale.setScaleX(local_matrix.getScaleX() / scale); | 115 shader_scale.setScaleX(local_matrix.getScaleX() / scale); |
| 116 shader_scale.setScaleY(local_matrix.getScaleY() / scale); | 116 shader_scale.setScaleY(local_matrix.getScaleY() / scale); |
| 117 | 117 |
| 118 skia::RefPtr<SkShader> shader = skia::AdoptRef(SkShader::CreateBitmapShader( | 118 return SkShader::MakeBitmapShader( |
| 119 image_rep.sk_bitmap(), tile_mode, tile_mode, &shader_scale)); | 119 image_rep.sk_bitmap(), tile_mode, tile_mode, &shader_scale); |
| 120 return shader; | |
| 121 } | 120 } |
| 122 | 121 |
| 123 skia::RefPtr<SkShader> CreateGradientShader(int start_point, | 122 sk_sp<SkShader> CreateGradientShader(int start_point, |
| 124 int end_point, | 123 int end_point, |
| 125 SkColor start_color, | 124 SkColor start_color, |
| 126 SkColor end_color) { | 125 SkColor end_color) { |
| 127 SkColor grad_colors[2] = { start_color, end_color}; | 126 SkColor grad_colors[2] = { start_color, end_color}; |
| 128 SkPoint grad_points[2]; | 127 SkPoint grad_points[2]; |
| 129 grad_points[0].iset(0, start_point); | 128 grad_points[0].iset(0, start_point); |
| 130 grad_points[1].iset(0, end_point); | 129 grad_points[1].iset(0, end_point); |
| 131 | 130 |
| 132 return skia::AdoptRef(SkGradientShader::CreateLinear( | 131 return SkGradientShader::MakeLinear( |
| 133 grad_points, grad_colors, NULL, 2, SkShader::kClamp_TileMode)); | 132 grad_points, grad_colors, NULL, 2, SkShader::kClamp_TileMode); |
| 134 } | 133 } |
| 135 | 134 |
| 136 static SkScalar RadiusToSigma(double radius) { | 135 static SkScalar RadiusToSigma(double radius) { |
| 137 // This captures historically what skia did under the hood. Now skia accepts | 136 // This captures historically what skia did under the hood. Now skia accepts |
| 138 // sigma, not radius, so we perform the conversion. | 137 // sigma, not radius, so we perform the conversion. |
| 139 return radius > 0 ? SkDoubleToScalar(0.57735f * radius + 0.5) : 0; | 138 return radius > 0 ? SkDoubleToScalar(0.57735f * radius + 0.5) : 0; |
| 140 } | 139 } |
| 141 | 140 |
| 142 skia::RefPtr<SkDrawLooper> CreateShadowDrawLooper( | 141 skia::RefPtr<SkDrawLooper> CreateShadowDrawLooper( |
| 143 const std::vector<ShadowValue>& shadows) { | 142 const std::vector<ShadowValue>& shadows) { |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 static const SkScalar kSkToHbRatio = SK_Scalar1 / kHbUnit1; | 237 static const SkScalar kSkToHbRatio = SK_Scalar1 / kHbUnit1; |
| 239 return kSkToHbRatio * value; | 238 return kSkToHbRatio * value; |
| 240 } | 239 } |
| 241 | 240 |
| 242 float HarfBuzzUnitsToFloat(int value) { | 241 float HarfBuzzUnitsToFloat(int value) { |
| 243 static const float kFloatToHbRatio = 1.0f / kHbUnit1; | 242 static const float kFloatToHbRatio = 1.0f / kHbUnit1; |
| 244 return kFloatToHbRatio * value; | 243 return kFloatToHbRatio * value; |
| 245 } | 244 } |
| 246 | 245 |
| 247 } // namespace gfx | 246 } // namespace gfx |
| OLD | NEW |