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

Unified Diff: skia/ext/pixel_ref_utils.cc

Issue 1519243002: Remove many unused files from //skia/ext (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « skia/ext/pixel_ref_utils.h ('k') | skia/ext/pixel_ref_utils_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: skia/ext/pixel_ref_utils.cc
diff --git a/skia/ext/pixel_ref_utils.cc b/skia/ext/pixel_ref_utils.cc
deleted file mode 100644
index 0aea6fef323d3b6d16688dda739b44f480742654..0000000000000000000000000000000000000000
--- a/skia/ext/pixel_ref_utils.cc
+++ /dev/null
@@ -1,369 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "skia/ext/pixel_ref_utils.h"
-
-#include <algorithm>
-
-#include "third_party/skia/include/core/SkBitmapDevice.h"
-#include "third_party/skia/include/core/SkCanvas.h"
-#include "third_party/skia/include/core/SkData.h"
-#include "third_party/skia/include/core/SkDraw.h"
-#include "third_party/skia/include/core/SkPath.h"
-#include "third_party/skia/include/core/SkPixelRef.h"
-#include "third_party/skia/include/core/SkRect.h"
-#include "third_party/skia/include/core/SkRRect.h"
-#include "third_party/skia/include/core/SkShader.h"
-#include "third_party/skia/include/utils/SkNoSaveLayerCanvas.h"
-#include "third_party/skia/src/core/SkRasterClip.h"
-
-namespace skia {
-
-namespace {
-
-// URI label for a discardable SkPixelRef.
-const char kLabelDiscardable[] = "discardable";
-
-class DiscardablePixelRefSet {
- public:
- DiscardablePixelRefSet(
- std::vector<PixelRefUtils::PositionPixelRef>* pixel_refs)
- : pixel_refs_(pixel_refs) {}
-
- void Add(SkPixelRef* pixel_ref, const SkRect& rect) {
- // Only save discardable pixel refs.
- if (pixel_ref->getURI() &&
- !strcmp(pixel_ref->getURI(), kLabelDiscardable)) {
- PixelRefUtils::PositionPixelRef position_pixel_ref;
- position_pixel_ref.pixel_ref = pixel_ref;
- position_pixel_ref.pixel_ref_rect = rect;
- pixel_refs_->push_back(position_pixel_ref);
- }
- }
-
- private:
- std::vector<PixelRefUtils::PositionPixelRef>* pixel_refs_;
-};
-
-class GatherPixelRefDevice : public SkBitmapDevice {
- public:
- GatherPixelRefDevice(const SkBitmap& bm,
- DiscardablePixelRefSet* pixel_ref_set)
- : SkBitmapDevice(bm), pixel_ref_set_(pixel_ref_set) {}
-
- void drawPaint(const SkDraw& draw, const SkPaint& paint) override {
- SkBitmap bitmap;
- if (GetBitmapFromPaint(paint, &bitmap)) {
- SkRect clip_rect = SkRect::Make(draw.fRC->getBounds());
- AddBitmap(bitmap, clip_rect);
- }
- }
-
- void drawPoints(const SkDraw& draw,
- SkCanvas::PointMode mode,
- size_t count,
- const SkPoint points[],
- const SkPaint& paint) override {
- SkBitmap bitmap;
- if (!GetBitmapFromPaint(paint, &bitmap))
- return;
-
- if (count == 0)
- return;
-
- SkPoint min_point = points[0];
- SkPoint max_point = points[0];
- for (size_t i = 1; i < count; ++i) {
- const SkPoint& point = points[i];
- min_point.set(std::min(min_point.x(), point.x()),
- std::min(min_point.y(), point.y()));
- max_point.set(std::max(max_point.x(), point.x()),
- std::max(max_point.y(), point.y()));
- }
-
- SkRect bounds = SkRect::MakeLTRB(
- min_point.x(), min_point.y(), max_point.x(), max_point.y());
-
- GatherPixelRefDevice::drawRect(draw, bounds, paint);
- }
- void drawRect(const SkDraw& draw,
- const SkRect& rect,
- const SkPaint& paint) override {
- SkBitmap bitmap;
- if (GetBitmapFromPaint(paint, &bitmap)) {
- SkRect mapped_rect;
- draw.fMatrix->mapRect(&mapped_rect, rect);
- if (mapped_rect.intersect(SkRect::Make(draw.fRC->getBounds())))
- AddBitmap(bitmap, mapped_rect);
- }
- }
- void drawOval(const SkDraw& draw,
- const SkRect& rect,
- const SkPaint& paint) override {
- GatherPixelRefDevice::drawRect(draw, rect, paint);
- }
- void drawRRect(const SkDraw& draw,
- const SkRRect& rect,
- const SkPaint& paint) override {
- GatherPixelRefDevice::drawRect(draw, rect.rect(), paint);
- }
- void drawPath(const SkDraw& draw,
- const SkPath& path,
- const SkPaint& paint,
- const SkMatrix* pre_path_matrix,
- bool path_is_mutable) override {
- SkBitmap bitmap;
- if (!GetBitmapFromPaint(paint, &bitmap))
- return;
-
- SkRect path_bounds = path.getBounds();
- SkRect final_rect;
- if (pre_path_matrix != NULL)
- pre_path_matrix->mapRect(&final_rect, path_bounds);
- else
- final_rect = path_bounds;
-
- GatherPixelRefDevice::drawRect(draw, final_rect, paint);
- }
- void drawBitmap(const SkDraw& draw,
- const SkBitmap& bitmap,
- const SkMatrix& matrix,
- const SkPaint& paint) override {
- SkMatrix total_matrix;
- total_matrix.setConcat(*draw.fMatrix, matrix);
-
- SkRect bitmap_rect = SkRect::MakeWH(bitmap.width(), bitmap.height());
- SkRect mapped_rect;
- total_matrix.mapRect(&mapped_rect, bitmap_rect);
- AddBitmap(bitmap, mapped_rect);
-
- SkBitmap paint_bitmap;
- if (GetBitmapFromPaint(paint, &paint_bitmap))
- AddBitmap(paint_bitmap, mapped_rect);
- }
- void drawBitmapRect(const SkDraw& draw,
- const SkBitmap& bitmap,
- const SkRect* src_or_null,
- const SkRect& dst,
- const SkPaint& paint,
- SkCanvas::SrcRectConstraint flags) override {
- SkRect bitmap_rect = SkRect::MakeWH(bitmap.width(), bitmap.height());
- SkMatrix matrix;
- matrix.setRectToRect(bitmap_rect, dst, SkMatrix::kFill_ScaleToFit);
- GatherPixelRefDevice::drawBitmap(draw, bitmap, matrix, paint);
- }
- void drawSprite(const SkDraw& draw,
- const SkBitmap& bitmap,
- int x,
- int y,
- const SkPaint& paint) override {
- // Sprites aren't affected by current matrix, so we can't reuse drawRect.
- SkMatrix matrix;
- matrix.setTranslate(x, y);
-
- SkRect bitmap_rect = SkRect::MakeWH(bitmap.width(), bitmap.height());
- SkRect mapped_rect;
- matrix.mapRect(&mapped_rect, bitmap_rect);
-
- AddBitmap(bitmap, mapped_rect);
- SkBitmap paint_bitmap;
- if (GetBitmapFromPaint(paint, &paint_bitmap))
- AddBitmap(paint_bitmap, mapped_rect);
- }
- void drawText(const SkDraw& draw,
- const void* text,
- size_t len,
- SkScalar x,
- SkScalar y,
- const SkPaint& paint) override {
- SkBitmap bitmap;
- if (!GetBitmapFromPaint(paint, &bitmap))
- return;
-
- // Math is borrowed from SkBBoxRecord
- SkRect bounds;
- paint.measureText(text, len, &bounds);
- SkPaint::FontMetrics metrics;
- paint.getFontMetrics(&metrics);
-
- if (paint.isVerticalText()) {
- SkScalar h = bounds.fBottom - bounds.fTop;
- if (paint.getTextAlign() == SkPaint::kCenter_Align) {
- bounds.fTop -= h / 2;
- bounds.fBottom -= h / 2;
- }
- bounds.fBottom += metrics.fBottom;
- bounds.fTop += metrics.fTop;
- } else {
- SkScalar w = bounds.fRight - bounds.fLeft;
- if (paint.getTextAlign() == SkPaint::kCenter_Align) {
- bounds.fLeft -= w / 2;
- bounds.fRight -= w / 2;
- } else if (paint.getTextAlign() == SkPaint::kRight_Align) {
- bounds.fLeft -= w;
- bounds.fRight -= w;
- }
- bounds.fTop = metrics.fTop;
- bounds.fBottom = metrics.fBottom;
- }
-
- SkScalar pad = (metrics.fBottom - metrics.fTop) / 2;
- bounds.fLeft -= pad;
- bounds.fRight += pad;
- bounds.fLeft += x;
- bounds.fRight += x;
- bounds.fTop += y;
- bounds.fBottom += y;
-
- GatherPixelRefDevice::drawRect(draw, bounds, paint);
- }
- void drawPosText(const SkDraw& draw,
- const void* text,
- size_t len,
- const SkScalar pos[],
- int scalars_per_pos,
- const SkPoint& offset,
- const SkPaint& paint) override {
- SkBitmap bitmap;
- if (!GetBitmapFromPaint(paint, &bitmap))
- return;
-
- if (len == 0)
- return;
-
- // Similar to SkDraw asserts.
- SkASSERT(scalars_per_pos == 1 || scalars_per_pos == 2);
-
- SkPoint min_point = SkPoint::Make(offset.x() + pos[0],
- offset.y() + (2 == scalars_per_pos ? pos[1] : 0));
- SkPoint max_point = min_point;
-
- for (size_t i = 0; i < len; ++i) {
- SkScalar x = offset.x() + pos[i * scalars_per_pos];
- SkScalar y = offset.y() + (2 == scalars_per_pos ? pos[i * scalars_per_pos + 1] : 0);
-
- min_point.set(std::min(x, min_point.x()), std::min(y, min_point.y()));
- max_point.set(std::max(x, max_point.x()), std::max(y, max_point.y()));
- }
-
- SkRect bounds = SkRect::MakeLTRB(
- min_point.x(), min_point.y(), max_point.x(), max_point.y());
-
- // Math is borrowed from SkBBoxRecord
- SkPaint::FontMetrics metrics;
- paint.getFontMetrics(&metrics);
-
- bounds.fTop += metrics.fTop;
- bounds.fBottom += metrics.fBottom;
-
- SkScalar pad = (metrics.fTop - metrics.fBottom) / 2;
- bounds.fLeft += pad;
- bounds.fRight -= pad;
-
- GatherPixelRefDevice::drawRect(draw, bounds, paint);
- }
- void drawTextOnPath(const SkDraw& draw,
- const void* text,
- size_t len,
- const SkPath& path,
- const SkMatrix* matrix,
- const SkPaint& paint) override {
- SkBitmap bitmap;
- if (!GetBitmapFromPaint(paint, &bitmap))
- return;
-
- // Math is borrowed from SkBBoxRecord
- SkRect bounds = path.getBounds();
- SkPaint::FontMetrics metrics;
- paint.getFontMetrics(&metrics);
-
- SkScalar pad = metrics.fTop;
- bounds.fLeft += pad;
- bounds.fRight -= pad;
- bounds.fTop += pad;
- bounds.fBottom -= pad;
-
- GatherPixelRefDevice::drawRect(draw, bounds, paint);
- }
- void drawVertices(const SkDraw& draw,
- SkCanvas::VertexMode,
- int vertex_count,
- const SkPoint verts[],
- const SkPoint texs[],
- const SkColor colors[],
- SkXfermode* xmode,
- const uint16_t indices[],
- int index_count,
- const SkPaint& paint) override {
- GatherPixelRefDevice::drawPoints(
- draw, SkCanvas::kPolygon_PointMode, vertex_count, verts, paint);
- }
- void drawDevice(const SkDraw&,
- SkBaseDevice*,
- int x,
- int y,
- const SkPaint&) override {}
-
- protected:
- bool onReadPixels(const SkImageInfo& info,
- void* pixels,
- size_t rowBytes,
- int x,
- int y) override {
- return false;
- }
-
- bool onWritePixels(const SkImageInfo& info,
- const void* pixels,
- size_t rowBytes,
- int x,
- int y) override {
- return false;
- }
-
- private:
- DiscardablePixelRefSet* pixel_ref_set_;
-
- void AddBitmap(const SkBitmap& bm, const SkRect& rect) {
- SkRect canvas_rect = SkRect::MakeWH(width(), height());
- SkRect paint_rect = SkRect::MakeEmpty();
- if (paint_rect.intersect(rect, canvas_rect))
- pixel_ref_set_->Add(bm.pixelRef(), paint_rect);
- }
-
- bool GetBitmapFromPaint(const SkPaint& paint, SkBitmap* bm) {
- SkShader* shader = paint.getShader();
- if (shader) {
- // Check whether the shader is a gradient in order to prevent generation
- // of bitmaps from gradient shaders, which implement asABitmap.
- if (SkShader::kNone_GradientType == shader->asAGradient(NULL))
- return shader->isABitmap(bm, NULL, NULL);
- }
- return false;
- }
-};
-
-} // namespace
-
-void PixelRefUtils::GatherDiscardablePixelRefs(
- SkPicture* picture,
- std::vector<PositionPixelRef>* pixel_refs) {
- pixel_refs->clear();
- DiscardablePixelRefSet pixel_ref_set(pixel_refs);
-
- SkRect picture_bounds = picture->cullRect();
- SkIRect picture_ibounds = picture_bounds.roundOut();
- SkBitmap empty_bitmap;
- empty_bitmap.setInfo(SkImageInfo::MakeUnknown(picture_ibounds.width(),
- picture_ibounds.height()));
-
- GatherPixelRefDevice device(empty_bitmap, &pixel_ref_set);
- SkNoSaveLayerCanvas canvas(&device);
-
- // Draw the picture pinned against our top/left corner.
- canvas.translate(-picture_bounds.left(), -picture_bounds.top());
- canvas.drawPicture(picture);
-}
-
-} // namespace skia
« no previous file with comments | « skia/ext/pixel_ref_utils.h ('k') | skia/ext/pixel_ref_utils_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698