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

Side by Side Diff: src/utils/debugger/SkDrawCommand.h

Issue 185293007: Add visualization of clips to debugger (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 6 years, 9 months 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
« no previous file with comments | « src/utils/debugger/SkDebugCanvas.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2012 Google Inc. 3 * Copyright 2012 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #ifndef SKDRAWCOMMAND_H_ 9 #ifndef SKDRAWCOMMAND_H_
10 #define SKDRAWCOMMAND_H_ 10 #define SKDRAWCOMMAND_H_
(...skipping 20 matching lines...) Expand all
31 return fVisible; 31 return fVisible;
32 } 32 }
33 33
34 void setVisible(bool toggle) { 34 void setVisible(bool toggle) {
35 fVisible = toggle; 35 fVisible = toggle;
36 } 36 }
37 37
38 SkTDArray<SkString*>* Info() {return &fInfo; }; 38 SkTDArray<SkString*>* Info() {return &fInfo; };
39 virtual void execute(SkCanvas* canvas)=0; 39 virtual void execute(SkCanvas* canvas)=0;
40 /** Does nothing by default, but used by save() and restore()-type 40 /** Does nothing by default, but used by save() and restore()-type
41 subclassse to track unresolved save() calls. */ 41 subclasses to track unresolved save() calls. */
42 virtual void trackSaveState(int* state) { }; 42 virtual void trackSaveState(int* state) { };
43
44 // The next "active" system is only used by save, saveLayer and restore.
45 // It is used to determine which saveLayers are currently active (at a
46 // given point in the rendering).
47 // save just return a kPush action but don't track active state
48 // restore just return a kPop action
49 // saveLayers return kPush but also track the active state
50 enum Action {
51 kNone_Action,
52 kPop_Action,
53 kPush_Action
54 };
55 virtual Action action() const { return kNone_Action; }
56 virtual void setActive(bool active) {}
57 virtual bool active() const { return false; }
58
43 DrawType getType() { return fDrawType; }; 59 DrawType getType() { return fDrawType; };
44 60
45 virtual bool render(SkCanvas* canvas) const { return false; } 61 virtual bool render(SkCanvas* canvas) const { return false; }
46 62
47 static const char* GetCommandString(DrawType type); 63 static const char* GetCommandString(DrawType type);
48 64
49 protected: 65 protected:
50 DrawType fDrawType; 66 DrawType fDrawType;
51 SkTDArray<SkString*> fInfo; 67 SkTDArray<SkString*> fInfo;
52 68
53 private: 69 private:
54 bool fVisible; 70 bool fVisible;
55 }; 71 };
56 72
57 class SkRestoreCommand : public SkDrawCommand { 73 class SkRestoreCommand : public SkDrawCommand {
58 public: 74 public:
59 SkRestoreCommand(); 75 SkRestoreCommand();
60 virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 76 virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
61 virtual void trackSaveState(int* state) SK_OVERRIDE; 77 virtual void trackSaveState(int* state) SK_OVERRIDE;
78 virtual Action action() const SK_OVERRIDE { return kPop_Action; }
62 79
63 private: 80 private:
64 typedef SkDrawCommand INHERITED; 81 typedef SkDrawCommand INHERITED;
65 }; 82 };
66 83
67 class SkClearCommand : public SkDrawCommand { 84 class SkClearCommand : public SkDrawCommand {
68 public: 85 public:
69 SkClearCommand(SkColor color); 86 SkClearCommand(SkColor color);
70 virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 87 virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
71 private: 88 private:
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 SkScalar fDegrees; 506 SkScalar fDegrees;
490 507
491 typedef SkDrawCommand INHERITED; 508 typedef SkDrawCommand INHERITED;
492 }; 509 };
493 510
494 class SkSaveCommand : public SkDrawCommand { 511 class SkSaveCommand : public SkDrawCommand {
495 public: 512 public:
496 SkSaveCommand(SkCanvas::SaveFlags flags); 513 SkSaveCommand(SkCanvas::SaveFlags flags);
497 virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 514 virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
498 virtual void trackSaveState(int* state) SK_OVERRIDE; 515 virtual void trackSaveState(int* state) SK_OVERRIDE;
516 virtual Action action() const SK_OVERRIDE { return kPush_Action; }
499 private: 517 private:
500 SkCanvas::SaveFlags fFlags; 518 SkCanvas::SaveFlags fFlags;
501 519
502 typedef SkDrawCommand INHERITED; 520 typedef SkDrawCommand INHERITED;
503 }; 521 };
504 522
505 class SkSaveLayerCommand : public SkDrawCommand { 523 class SkSaveLayerCommand : public SkDrawCommand {
506 public: 524 public:
507 SkSaveLayerCommand(const SkRect* bounds, const SkPaint* paint, 525 SkSaveLayerCommand(const SkRect* bounds, const SkPaint* paint,
508 SkCanvas::SaveFlags flags); 526 SkCanvas::SaveFlags flags);
509 virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 527 virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
510 virtual void trackSaveState(int* state) SK_OVERRIDE; 528 virtual void trackSaveState(int* state) SK_OVERRIDE;
529 virtual Action action() const SK_OVERRIDE{ return kPush_Action; }
530 virtual void setActive(bool active) SK_OVERRIDE { fActive = active; }
531 virtual bool active() const SK_OVERRIDE { return fActive; }
511 532
512 const SkPaint* paint() const { return fPaintPtr; } 533 const SkPaint* paint() const { return fPaintPtr; }
513 534
514 private: 535 private:
515 SkRect fBounds; 536 SkRect fBounds;
516 SkPaint fPaint; 537 SkPaint fPaint;
517 SkPaint* fPaintPtr; 538 SkPaint* fPaintPtr;
518 SkCanvas::SaveFlags fFlags; 539 SkCanvas::SaveFlags fFlags;
519 540
541 bool fActive;
542
520 typedef SkDrawCommand INHERITED; 543 typedef SkDrawCommand INHERITED;
521 }; 544 };
522 545
523 class SkScaleCommand : public SkDrawCommand { 546 class SkScaleCommand : public SkDrawCommand {
524 public: 547 public:
525 SkScaleCommand(SkScalar sx, SkScalar sy); 548 SkScaleCommand(SkScalar sx, SkScalar sy);
526 virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 549 virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
527 550
528 SkScalar x() const { return fSx; } 551 SkScalar x() const { return fSx; }
529 SkScalar y() const { return fSy; } 552 SkScalar y() const { return fSy; }
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 class SkPopCullCommand : public SkDrawCommand { 608 class SkPopCullCommand : public SkDrawCommand {
586 public: 609 public:
587 SkPopCullCommand(); 610 SkPopCullCommand();
588 virtual void execute(SkCanvas* canvas) SK_OVERRIDE; 611 virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
589 612
590 private: 613 private:
591 typedef SkDrawCommand INHERITED; 614 typedef SkDrawCommand INHERITED;
592 }; 615 };
593 616
594 #endif 617 #endif
OLDNEW
« no previous file with comments | « src/utils/debugger/SkDebugCanvas.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698