| Index: experimental/PdfViewer/SkTracker.h
|
| diff --git a/experimental/PdfViewer/SkTracker.h b/experimental/PdfViewer/SkTracker.h
|
| deleted file mode 100644
|
| index 3da24c1ee00d436312606c89d551904db2aee785..0000000000000000000000000000000000000000
|
| --- a/experimental/PdfViewer/SkTracker.h
|
| +++ /dev/null
|
| @@ -1,227 +0,0 @@
|
| -/*
|
| - * Copyright 2013 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -#ifndef SkTracker_DEFINED
|
| -#define SkTracker_DEFINED
|
| -
|
| -#include <stdio.h>
|
| -
|
| -#include "SkBitmap.h"
|
| -#include "SkPoint.h"
|
| -
|
| -// TODO(edisonn): draw plan from point! - list of draw ops of a point, like a tree!
|
| -// TODO(edisonn): Minimal PDF to draw some points - remove everything that it is not needed,
|
| -// save pdf uncompressed
|
| -
|
| -#define MAX_TRACKING_POINTS 100
|
| -
|
| -/** \class SkTracker
|
| - *
|
| - * A Tracker can be attached to a SkTrackDevice and it will store the track pixels.
|
| - * It can be used with SampleApp to investigate bugs (CL not checked in yet).
|
| - *
|
| - * The Tracker tracks 2 sets of points
|
| - * A) one which is expected to issue breackpoints if the pixels are changes
|
| - * B) one which if changes will disable the breackpoint
|
| - * For point in A) there are two modes:
|
| - * A.1) a breackpoint require that any of the points is changed
|
| - * A.2) a breackpoint require that all of the points is changed
|
| - * Points in B are allways in "any mode" - chaning the value of any pixel, will disable
|
| - * the breackpoint
|
| - *
|
| - * Point in A) are used to show what are the areas of interest, while poit in B are used to
|
| - * disable breackpoints which would be issued in background change.
|
| - *
|
| - */
|
| -class SkTracker {
|
| -public:
|
| - SkTracker() : fEnabled(false)
|
| - , fBreakOnAny(false)
|
| - , fCntExpectedTouched(0)
|
| - , fCntExpectedUntouched(0)
|
| - , fHits(0) {}
|
| -
|
| - virtual ~SkTracker() {}
|
| -
|
| - // Clears all the points, but preserves the break mode.
|
| - void clearPoints() {
|
| - fCntExpectedTouched = 0;
|
| - fCntExpectedUntouched = 0;
|
| - }
|
| -
|
| - // Enable the breackpoints.
|
| - void enableTracking(bool b) {
|
| - fEnabled = b;
|
| - }
|
| -
|
| - // Returns true if breackpoints are enabled.
|
| - bool trackingEnabled() {
|
| - return fEnabled;
|
| - }
|
| -
|
| - // Puts the tracker in Any mode.
|
| - void any() {
|
| - fBreakOnAny = true;
|
| - }
|
| -
|
| - // Puts the tracker in Any mode.
|
| - void all() {
|
| - fBreakOnAny = false;
|
| - }
|
| -
|
| - // returns true in in All mode. False for Any mode.
|
| - bool requireAllExpectedTouched() {
|
| - return !fBreakOnAny;
|
| - }
|
| -
|
| - // Returns the numbers of points in which if touched, would trigger a breackpoint.
|
| - int cntExpectedTouched() {
|
| - return fCntExpectedTouched;
|
| - }
|
| -
|
| - // Returns the points which if touched, would trigger a breackpoint.
|
| - // the Tracker owns the array
|
| - const SkIPoint* expectedTouched() {
|
| - return fExpectedTouched;
|
| - }
|
| -
|
| - // Returns the numbers of points in which if touched, would disable a breackpoint.
|
| - int cntExpectedUntouched() {
|
| - return fCntExpectedUntouched;
|
| - }
|
| -
|
| - // Returns the points which if touched, would disable a breackpoint.
|
| - // the Tracker owns the array
|
| - const SkIPoint* expectedUntouched() {
|
| - return fExpectedUntouched;
|
| - }
|
| -
|
| - // Adds a point which if changes in a drawFoo operation, would trigger a breakpoint.
|
| - bool addExpectTouch(int x, int y) {
|
| - if (fCntExpectedTouched >= MAX_TRACKING_POINTS) {
|
| - return false;
|
| - }
|
| - if (found(x, y)) {
|
| - return false;
|
| - }
|
| - fExpectedTouched[fCntExpectedTouched] = SkIPoint::Make(x, y);
|
| - fCntExpectedTouched++;
|
| - return true;
|
| - }
|
| -
|
| - // Adds a point which if changes in a drawFoo operation, would disable a breakpoint.
|
| - bool addExpectUntouch(int x, int y) {
|
| - if (fCntExpectedUntouched >= MAX_TRACKING_POINTS) {
|
| - return false;
|
| - }
|
| - if (found(x, y)) {
|
| - return false;
|
| - }
|
| - fExpectedUntouched[fCntExpectedUntouched] = SkIPoint::Make(x, y);
|
| - fCntExpectedUntouched++;
|
| - return true;
|
| - }
|
| -
|
| - // Starts a new rendering session - reset the number of hits.
|
| - void newFrame() {
|
| - fHits = 0;
|
| - }
|
| -
|
| - // returns the number of breackpoints issues in this rendering session.
|
| - int hits() {
|
| - return fHits;
|
| - }
|
| -
|
| - // Called before drawFoo to store the state of the pixels
|
| - void before(const SkBitmap& bitmap) {
|
| - if (fCntExpectedTouched == 0) {
|
| - return;
|
| - }
|
| -
|
| - for (int i = 0 ; i < fCntExpectedTouched; i++) {
|
| - fBeforeTouched[i] = pickColor(bitmap, fExpectedTouched[i].x(), fExpectedTouched[i].y());
|
| - }
|
| - for (int i = 0 ; i < fCntExpectedUntouched; i++) {
|
| - fBeforeUntouched[i] = pickColor(bitmap, fExpectedUntouched[i].x(),
|
| - fExpectedUntouched[i].y());
|
| - }
|
| - }
|
| -
|
| - // Called after drawFoo to evaluate what pixels have changed, it could issue a breakpoint.
|
| - // any/all of the expected touched has to be changed, and all expected untouched must be intact
|
| - void after(const SkBitmap& bitmap) {
|
| - if (fCntExpectedTouched == 0) {
|
| - return;
|
| - }
|
| -
|
| - bool doBreak;
|
| - if (fBreakOnAny) {
|
| - doBreak = false;
|
| - for (int i = 0 ; i < fCntExpectedTouched; i++) {
|
| - doBreak = doBreak || fBeforeTouched[i] != pickColor(bitmap, fExpectedTouched[i].x(),
|
| - fExpectedTouched[i].y());
|
| - }
|
| - } else {
|
| - doBreak = true;
|
| - for (int i = 0 ; i < fCntExpectedTouched; i++) {
|
| - doBreak = doBreak && fBeforeTouched[i] != pickColor(bitmap, fExpectedTouched[i].x(),
|
| - fExpectedTouched[i].y());
|
| - }
|
| - }
|
| -
|
| - for (int i = 0 ; i < fCntExpectedUntouched; i++) {
|
| - doBreak = doBreak && fBeforeUntouched[i] == pickColor(bitmap, fExpectedUntouched[i].x(),
|
| - fExpectedUntouched[i].y());
|
| - }
|
| -
|
| - if (doBreak) {
|
| - fHits++;
|
| - if (fEnabled) {
|
| - breakExecution();
|
| - }
|
| - }
|
| - }
|
| -
|
| -private:
|
| - inline SkColor pickColor(const SkBitmap& bitmap, int x, int y) {
|
| - return bitmap.getColor(x, y);
|
| - }
|
| -
|
| - void breakExecution() {
|
| - printf("break;\n");
|
| - }
|
| -
|
| - inline bool found(int x, int y) {
|
| - for (int i = 0 ; i < fCntExpectedTouched; i++) {
|
| - if (x == fExpectedTouched[i].x() && y == fExpectedTouched[i].y()) {
|
| - return true;
|
| - }
|
| - }
|
| - for (int i = 0 ; i < fCntExpectedUntouched; i++) {
|
| - if (x == fExpectedUntouched[i].x() && y == fExpectedUntouched[i].y()) {
|
| - return true;
|
| - }
|
| - }
|
| - return false;
|
| - }
|
| -
|
| -
|
| - bool fEnabled;
|
| - // break on any change on expected touched or all.
|
| - bool fBreakOnAny;
|
| - SkIPoint fExpectedTouched[MAX_TRACKING_POINTS];
|
| - SkColor fBeforeTouched[MAX_TRACKING_POINTS];
|
| - int fCntExpectedTouched;
|
| -
|
| - SkIPoint fExpectedUntouched[MAX_TRACKING_POINTS];
|
| - SkColor fBeforeUntouched[MAX_TRACKING_POINTS];
|
| - int fCntExpectedUntouched;
|
| -
|
| - int fHits;
|
| -};
|
| -
|
| -#endif // SkTracker_DEFINED
|
|
|