OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006 Eric Seidel <eric@webkit.org> | 2 * Copyright (C) 2006 Eric Seidel <eric@webkit.org> |
3 * Copyright (C) 2008, 2009 Apple Inc. All rights reserved. | 3 * Copyright (C) 2008, 2009 Apple Inc. All rights reserved. |
4 * Copyright (C) Research In Motion Limited 2011. All rights reserved. | 4 * Copyright (C) Research In Motion Limited 2011. All rights reserved. |
5 * | 5 * |
6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
8 * are met: | 8 * are met: |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 | 279 |
280 SkPictureBuilder patternPicture(spacedTile, nullptr, &context); | 280 SkPictureBuilder patternPicture(spacedTile, nullptr, &context); |
281 if (!DrawingRecorder::useCachedDrawingIfPossible(patternPicture.context(), *
this, DisplayItem::Type::SVGImage)) { | 281 if (!DrawingRecorder::useCachedDrawingIfPossible(patternPicture.context(), *
this, DisplayItem::Type::SVGImage)) { |
282 DrawingRecorder patternPictureRecorder(patternPicture.context(), *this,
DisplayItem::Type::SVGImage, spacedTile); | 282 DrawingRecorder patternPictureRecorder(patternPicture.context(), *this,
DisplayItem::Type::SVGImage, spacedTile); |
283 // When generating an expanded tile, make sure we don't draw into the sp
acing area. | 283 // When generating an expanded tile, make sure we don't draw into the sp
acing area. |
284 if (tile != spacedTile) | 284 if (tile != spacedTile) |
285 patternPicture.context().clip(tile); | 285 patternPicture.context().clip(tile); |
286 SkPaint paint; | 286 SkPaint paint; |
287 drawForContainer(patternPicture.context().canvas(), paint, containerSize
, zoom, tile, srcRect, url); | 287 drawForContainer(patternPicture.context().canvas(), paint, containerSize
, zoom, tile, srcRect, url); |
288 } | 288 } |
289 // TODO(fmalita): convert SkPictureBuilder to return sk_sp<SkPicture> | 289 RefPtr<const SkPicture> tilePicture = patternPicture.endRecording(); |
290 sk_sp<SkPicture> tilePicture(const_cast<SkPicture*>(patternPicture.endRecord
ing().leakRef())); | |
291 | 290 |
292 SkMatrix patternTransform; | 291 SkMatrix patternTransform; |
293 patternTransform.setTranslate(phase.x() + spacedTile.x(), phase.y() + spaced
Tile.y()); | 292 patternTransform.setTranslate(phase.x() + spacedTile.x(), phase.y() + spaced
Tile.y()); |
| 293 RefPtr<SkShader> patternShader = adoptRef(SkShader::CreatePictureShader( |
| 294 tilePicture.get(), SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMod
e, |
| 295 &patternTransform, nullptr)); |
294 | 296 |
295 SkPaint paint; | 297 SkPaint paint; |
296 paint.setShader(SkShader::MakePictureShader(std::move(tilePicture), | 298 paint.setShader(patternShader.get()); |
297 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode, &patternTransfor
m, nullptr)); | |
298 paint.setXfermodeMode(compositeOp); | 299 paint.setXfermodeMode(compositeOp); |
299 paint.setColorFilter(context.colorFilter()); | 300 paint.setColorFilter(context.colorFilter()); |
300 context.drawRect(dstRect, paint); | 301 context.drawRect(dstRect, paint); |
301 } | 302 } |
302 | 303 |
303 PassRefPtr<SkImage> SVGImage::imageForCurrentFrameForContainer(const KURL& url,
const FloatSize& containerSize) | 304 PassRefPtr<SkImage> SVGImage::imageForCurrentFrameForContainer(const KURL& url,
const FloatSize& containerSize) |
304 { | 305 { |
305 if (!m_page) | 306 if (!m_page) |
306 return nullptr; | 307 return nullptr; |
307 | 308 |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
538 | 539 |
539 return m_page; | 540 return m_page; |
540 } | 541 } |
541 | 542 |
542 String SVGImage::filenameExtension() const | 543 String SVGImage::filenameExtension() const |
543 { | 544 { |
544 return "svg"; | 545 return "svg"; |
545 } | 546 } |
546 | 547 |
547 } // namespace blink | 548 } // namespace blink |
OLD | NEW |