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

Side by Side Diff: webkit/port/platform/graphics/ImageSkia.cpp

Issue 12842: Move convolver, image_operations, and skia_utils from base/gfx to skia/ext.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 12 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2008, Google Inc. 1 // Copyright (c) 2008, Google Inc.
2 // All rights reserved. 2 // All rights reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // * Redistributions of source code must retain the above copyright 8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer. 9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above 10 // * Redistributions in binary form must reproduce the above
(...skipping 25 matching lines...) Expand all
36 #include "FloatRect.h" 36 #include "FloatRect.h"
37 #include "GraphicsContext.h" 37 #include "GraphicsContext.h"
38 #include "Logging.h" 38 #include "Logging.h"
39 #include "NativeImageSkia.h" 39 #include "NativeImageSkia.h"
40 #include "NotImplemented.h" 40 #include "NotImplemented.h"
41 #include "PlatformContextSkia.h" 41 #include "PlatformContextSkia.h"
42 #include "PlatformString.h" 42 #include "PlatformString.h"
43 #include "SkiaUtils.h" 43 #include "SkiaUtils.h"
44 #include "SkShader.h" 44 #include "SkShader.h"
45 45
46 #include "base/gfx/image_operations.h" // TODO(brettw) remove this dependency. 46 #include "skia/ext/image_operations.h"
47 #include "skia/ext/platform_canvas.h" 47 #include "skia/ext/platform_canvas.h"
48 48
49 namespace WebCore { 49 namespace WebCore {
50 50
51 namespace { 51 namespace {
52 52
53 // Used by computeResamplingMode to tell how bitmaps should be resampled. 53 // Used by computeResamplingMode to tell how bitmaps should be resampled.
54 enum ResamplingMode { 54 enum ResamplingMode {
55 // Nearest neighbor resampling. Used when we detect that the page is 55 // Nearest neighbor resampling. Used when we detect that the page is
56 // trying to make a pattern by stretching a small bitmap very large. 56 // trying to make a pattern by stretching a small bitmap very large.
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 canvas.drawBitmapRect(resampled, 0, destRect, &paint); 210 canvas.drawBitmapRect(resampled, 0, destRect, &paint);
211 } else { 211 } else {
212 // We should only resize the exposed part of the bitmap to do the 212 // We should only resize the exposed part of the bitmap to do the
213 // minimal possible work. 213 // minimal possible work.
214 gfx::Rect destBitmapSubset(destBitmapSubsetSkI.fLeft, 214 gfx::Rect destBitmapSubset(destBitmapSubsetSkI.fLeft,
215 destBitmapSubsetSkI.fTop, 215 destBitmapSubsetSkI.fTop,
216 destBitmapSubsetSkI.width(), 216 destBitmapSubsetSkI.width(),
217 destBitmapSubsetSkI.height()); 217 destBitmapSubsetSkI.height());
218 218
219 // Resample the needed part of the image. 219 // Resample the needed part of the image.
220 SkBitmap resampled = gfx::ImageOperations::Resize(subset, 220 SkBitmap resampled = skia::ImageOperations::Resize(subset,
221 gfx::ImageOperations::RESIZE_LANCZOS3, 221 skia::ImageOperations::RESIZE_LANCZOS3,
222 gfx::Size(destRectRounded.width(), destRectRounded.height()), 222 gfx::Size(destRectRounded.width(), destRectRounded.height()),
223 destBitmapSubset); 223 destBitmapSubset);
224 224
225 // Compute where the new bitmap should be drawn. Since our new bitmap 225 // Compute where the new bitmap should be drawn. Since our new bitmap
226 // may be smaller than the original, we have to shift it over by the 226 // may be smaller than the original, we have to shift it over by the
227 // same amount that we cut off the top and left. 227 // same amount that we cut off the top and left.
228 SkRect offsetDestRect = { 228 SkRect offsetDestRect = {
229 destBitmapSubset.x() + destRect.fLeft, 229 destBitmapSubset.x() + destRect.fLeft,
230 destBitmapSubset.y() + destRect.fTop, 230 destBitmapSubset.y() + destRect.fTop,
231 destBitmapSubset.right() + destRect.fLeft, 231 destBitmapSubset.right() + destRect.fLeft,
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 resampling = computeResamplingMode(*bitmap, 343 resampling = computeResamplingMode(*bitmap,
344 srcRect.width(), srcRect.height(), 344 srcRect.width(), srcRect.height(),
345 dest_bitmap_width, dest_bitmap_height); 345 dest_bitmap_width, dest_bitmap_height);
346 } 346 }
347 347
348 // Load the transform WebKit requested. 348 // Load the transform WebKit requested.
349 SkMatrix matrix(patternTransform); 349 SkMatrix matrix(patternTransform);
350 350
351 if (resampling == RESAMPLE_AWESOME) { 351 if (resampling == RESAMPLE_AWESOME) {
352 // Do nice resampling. 352 // Do nice resampling.
353 SkBitmap resampled = gfx::ImageOperations::Resize(src_subset, 353 SkBitmap resampled = skia::ImageOperations::Resize(src_subset,
354 gfx::ImageOperations::RESIZE_LANCZOS3, 354 skia::ImageOperations::RESIZE_LANCZOS3,
355 gfx::Size(static_cast<int>(dest_bitmap_width), 355 gfx::Size(static_cast<int>(dest_bitmap_width),
356 static_cast<int>(dest_bitmap_height))); 356 static_cast<int>(dest_bitmap_height)));
357 shader = SkShader::CreateBitmapShader( 357 shader = SkShader::CreateBitmapShader(
358 resampled, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode); 358 resampled, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);
359 359
360 // Since we just resized the bitmap, we need to undo the scale set in 360 // Since we just resized the bitmap, we need to undo the scale set in
361 // the image transform. 361 // the image transform.
362 matrix.setScaleX(SkIntToScalar(1)); 362 matrix.setScaleX(SkIntToScalar(1));
363 matrix.setScaleY(SkIntToScalar(1)); 363 matrix.setScaleY(SkIntToScalar(1));
364 } else { 364 } else {
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 PassRefPtr<BitmapImageSingleFrameSkia> BitmapImageSingleFrameSkia::create( 447 PassRefPtr<BitmapImageSingleFrameSkia> BitmapImageSingleFrameSkia::create(
448 const SkBitmap& bitmap) 448 const SkBitmap& bitmap)
449 { 449 {
450 RefPtr<BitmapImageSingleFrameSkia> image(new BitmapImageSingleFrameSkia()); 450 RefPtr<BitmapImageSingleFrameSkia> image(new BitmapImageSingleFrameSkia());
451 if (!bitmap.copyTo(&image->m_nativeImage, bitmap.config())) 451 if (!bitmap.copyTo(&image->m_nativeImage, bitmap.config()))
452 return 0; 452 return 0;
453 return image.release(); 453 return image.release();
454 } 454 }
455 455
456 } // namespace WebCore 456 } // namespace WebCore
OLDNEW
« no previous file with comments | « webkit/port/platform/graphics/FontWin.cpp ('k') | webkit/port/platform/graphics/NativeImageSkia.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698