Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/canvas_skia.h" | 5 #include "ui/gfx/canvas_skia.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "base/i18n/rtl.h" | 9 #include "base/i18n/rtl.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 174 void CanvasSkia::DrawLineInt(const SkColor& color, | 174 void CanvasSkia::DrawLineInt(const SkColor& color, |
| 175 int x1, int y1, | 175 int x1, int y1, |
| 176 int x2, int y2) { | 176 int x2, int y2) { |
| 177 SkPaint paint; | 177 SkPaint paint; |
| 178 paint.setColor(color); | 178 paint.setColor(color); |
| 179 paint.setStrokeWidth(SkIntToScalar(1)); | 179 paint.setStrokeWidth(SkIntToScalar(1)); |
| 180 canvas_->drawLine(SkIntToScalar(x1), SkIntToScalar(y1), SkIntToScalar(x2), | 180 canvas_->drawLine(SkIntToScalar(x1), SkIntToScalar(y1), SkIntToScalar(x2), |
| 181 SkIntToScalar(y2), paint); | 181 SkIntToScalar(y2), paint); |
| 182 } | 182 } |
| 183 | 183 |
| 184 void CanvasSkia::DrawFocusRect(int x, int y, int width, int height) { | 184 void CanvasSkia::DrawFocusRect(const gfx::Rect& rect) { |
| 185 // Create a 2D bitmap containing alternating on/off pixels - we do this | 185 // Create a 2D bitmap containing alternating on/off pixels - we do this |
| 186 // so that you never get two pixels of the same color around the edges | 186 // so that you never get two pixels of the same color around the edges |
| 187 // of the focus rect (this may mean that opposing edges of the rect may | 187 // of the focus rect (this may mean that opposing edges of the rect may |
| 188 // have a dot pattern out of phase to each other). | 188 // have a dot pattern out of phase to each other). |
| 189 static SkBitmap* dots = NULL; | 189 static SkBitmap* dots = NULL; |
| 190 if (!dots) { | 190 if (!dots) { |
| 191 int col_pixels = 32; | 191 int col_pixels = 32; |
| 192 int row_pixels = 32; | 192 int row_pixels = 32; |
| 193 | 193 |
| 194 dots = new SkBitmap; | 194 dots = new SkBitmap; |
| 195 dots->setConfig(SkBitmap::kARGB_8888_Config, col_pixels, row_pixels); | 195 dots->setConfig(SkBitmap::kARGB_8888_Config, col_pixels, row_pixels); |
| 196 dots->allocPixels(); | 196 dots->allocPixels(); |
| 197 dots->eraseARGB(0, 0, 0, 0); | 197 dots->eraseARGB(0, 0, 0, 0); |
| 198 | 198 |
| 199 uint32_t* dot = dots->getAddr32(0, 0); | 199 uint32_t* dot = dots->getAddr32(0, 0); |
| 200 for (int i = 0; i < row_pixels; i++) { | 200 for (int i = 0; i < row_pixels; i++) { |
| 201 for (int u = 0; u < col_pixels; u++) { | 201 for (int u = 0; u < col_pixels; u++) { |
| 202 if ((u % 2 + i % 2) % 2 != 0) { | 202 if ((u % 2 + i % 2) % 2 != 0) { |
| 203 dot[i * row_pixels + u] = SK_ColorGRAY; | 203 dot[i * row_pixels + u] = SK_ColorGRAY; |
| 204 } | 204 } |
| 205 } | 205 } |
| 206 } | 206 } |
| 207 } | 207 } |
| 208 | 208 |
| 209 // First the horizontal lines. | 209 // First the horizontal lines. |
|
Peter Kasting
2011/10/24 22:15:13
Nit: While you're here, remove this comment.
tfarina
2011/10/25 02:04:53
Done.
| |
| 210 | 210 |
| 211 // Make a shader for the bitmap with an origin of the box we'll draw. This | 211 // Make a shader for the bitmap with an origin of the box we'll draw. This |
| 212 // shader is refcounted and will have an initial refcount of 1. | 212 // shader is refcounted and will have an initial refcount of 1. |
| 213 SkShader* shader = SkShader::CreateBitmapShader( | 213 SkShader* shader = SkShader::CreateBitmapShader( |
| 214 *dots, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode); | 214 *dots, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode); |
| 215 // Assign the shader to the paint & release our reference. The paint will | 215 // Assign the shader to the paint & release our reference. The paint will |
| 216 // now own the shader and the shader will be destroyed when the paint goes | 216 // now own the shader and the shader will be destroyed when the paint goes |
| 217 // out of scope. | 217 // out of scope. |
| 218 SkPaint paint; | 218 SkPaint paint; |
| 219 paint.setShader(shader); | 219 paint.setShader(shader); |
| 220 shader->unref(); | 220 shader->unref(); |
| 221 | 221 |
| 222 DrawRectInt(x, y, width, 1, paint); | 222 DrawRectInt(rect.x(), rect.y(), rect.width(), 1, paint); |
| 223 DrawRectInt(x, y + height - 1, width, 1, paint); | 223 DrawRectInt(rect.x(), rect.y() + rect.height() - 1, rect.width(), 1, paint); |
| 224 DrawRectInt(x, y, 1, height, paint); | 224 DrawRectInt(rect.x(), rect.y(), 1, rect.height(), paint); |
| 225 DrawRectInt(x + width - 1, y, 1, height, paint); | 225 DrawRectInt(rect.x() + rect.width() - 1, rect.y(), 1, rect.height(), paint); |
| 226 } | 226 } |
| 227 | 227 |
| 228 void CanvasSkia::DrawBitmapInt(const SkBitmap& bitmap, int x, int y) { | 228 void CanvasSkia::DrawBitmapInt(const SkBitmap& bitmap, int x, int y) { |
| 229 canvas_->drawBitmap(bitmap, SkIntToScalar(x), SkIntToScalar(y)); | 229 canvas_->drawBitmap(bitmap, SkIntToScalar(x), SkIntToScalar(y)); |
| 230 } | 230 } |
| 231 | 231 |
| 232 void CanvasSkia::DrawBitmapInt(const SkBitmap& bitmap, | 232 void CanvasSkia::DrawBitmapInt(const SkBitmap& bitmap, |
| 233 int x, int y, | 233 int x, int y, |
| 234 const SkPaint& paint) { | 234 const SkPaint& paint) { |
| 235 canvas_->drawBitmap(bitmap, SkIntToScalar(x), SkIntToScalar(y), &paint); | 235 canvas_->drawBitmap(bitmap, SkIntToScalar(x), SkIntToScalar(y), &paint); |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 417 | 417 |
| 418 CanvasPaint* CanvasPaint::CreateCanvasPaint(gfx::NativeView view) { | 418 CanvasPaint* CanvasPaint::CreateCanvasPaint(gfx::NativeView view) { |
| 419 #if defined(OS_WIN) && !defined(USE_AURA) | 419 #if defined(OS_WIN) && !defined(USE_AURA) |
| 420 return new CanvasPaintWin(view); | 420 return new CanvasPaintWin(view); |
| 421 #else | 421 #else |
| 422 return NULL; | 422 return NULL; |
| 423 #endif | 423 #endif |
| 424 } | 424 } |
| 425 | 425 |
| 426 } // namespace gfx | 426 } // namespace gfx |
| OLD | NEW |