aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/CocoaDebugger/SkContentView.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'experimental/CocoaDebugger/SkContentView.cpp')
-rw-r--r--experimental/CocoaDebugger/SkContentView.cpp157
1 files changed, 0 insertions, 157 deletions
diff --git a/experimental/CocoaDebugger/SkContentView.cpp b/experimental/CocoaDebugger/SkContentView.cpp
deleted file mode 100644
index 8846826f3f..0000000000
--- a/experimental/CocoaDebugger/SkContentView.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-
-/*
- * Copyright 2011 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-#include "SkDebuggerViews.h"
-#include <stdio.h>
-
-SkContentView::SkContentView(SkEventSinkID clID, SkEventSinkID ipID) :
- fDumper(this->getSinkID(), clID, ipID) {
- fBGColor = 0xFFDDDDDD;
- fAtomsToRead = 0;
- fDisplayClip = false;
-}
-
-SkContentView::~SkContentView() {
- fAtomBounds.clear();
- fFrameBounds.clear();
-}
-
-void SkContentView::reinit(const char* filename) {
- fFilePath.set(filename);
- fAtomsToRead = 0;
- this->init();
-}
-
-bool SkContentView::onEvent(const SkEvent& evt) {
- return this->INHERITED::onEvent(evt);
-}
-
-//Read file atom by atom and record attom bounds
-void SkContentView::init() {
- fDumper.unload();
- fAtomBounds.clear();
- fFrameBounds.clear();
-
- SkDumpCanvasM* dumpCanvas = new SkDumpCanvasM(&fDumper);
- SkGPipeReader* dumpReader = new SkGPipeReader(dumpCanvas);
-
- FILE* f = fopen(fFilePath.c_str(), "rb");
- SkASSERT(f != NULL);
- fseek(f, 0, SEEK_END);
- int fileSize = ftell(f) * sizeof(char);
- fseek(f, 0, SEEK_SET);
- if (fileSize > 0) {
- char* block = (char*)sk_malloc_throw(fileSize);
- fread(block, 1, fileSize, f);
- int offset = 0;
- int frameBound = 0;
- size_t bytesRead;
- while (offset < fileSize) {
- SkGPipeReader::Status s = dumpReader->playback(block + offset,
- fileSize - offset,
- &bytesRead, true);
- SkASSERT(SkGPipeReader::kError_Status != s);
- offset += bytesRead;
- if (SkGPipeReader::kDone_Status == s) {
- fDumper.dump(dumpCanvas,SkDumpCanvasM::kNULL_Verb,
- "End of Frame", NULL);
- delete dumpReader;
- delete dumpCanvas;
- dumpCanvas = new SkDumpCanvasM(&fDumper);
- dumpReader = new SkGPipeReader(dumpCanvas);
- frameBound = offset;
- }
- fAtomBounds.push_back(offset);
- fFrameBounds.push_back(frameBound);
- }
- sk_free(block);
- }
-
- fclose(f);
-
- delete dumpReader;
- delete dumpCanvas;
-
- fDumper.load();
-}
-
-void SkContentView::goToAtom(int atom) {
- if (atom != fAtomsToRead) {
- fAtomsToRead = atom;
- this->inval(NULL);
- }
-}
-
-void SkContentView::toggleClip() {
- fDisplayClip = !fDisplayClip;
- this->inval(NULL);
-}
-
-void SkContentView::onDraw(SkCanvas* canvas) {
- canvas->drawColor(fBGColor);
-
- SkAutoCanvasRestore acr(canvas, true);
-
- int lastFrameBound = fFrameBounds[fAtomsToRead];
- int toBeRead = fAtomBounds[fAtomsToRead] - lastFrameBound;
- int firstChunk = (fAtomsToRead > 0) ? fAtomBounds[fAtomsToRead - 1] -
- lastFrameBound: 0;
- if (toBeRead > 0) {
- SkDumpCanvasM* dumpCanvas = new SkDumpCanvasM(&fDumper);
- SkGPipeReader* dumpReader = new SkGPipeReader(dumpCanvas);
- SkGPipeReader* reader = new SkGPipeReader(canvas);
- fDumper.disable();
-
- FILE* f = fopen(fFilePath.c_str(), "rb");
- SkASSERT(f != NULL);
- fseek(f, lastFrameBound, SEEK_SET);
- char* block = (char*)sk_malloc_throw(toBeRead);
- fread(block, 1, toBeRead, f);
- int offset = 0;
- size_t bytesRead;
- SkGPipeReader::Status s;
- //Read the first chunk
- if (offset < firstChunk && firstChunk < toBeRead) {
- s = dumpReader->playback(block + offset, firstChunk - offset, NULL, false);
- SkASSERT(SkGPipeReader::kError_Status != s);
- s = reader->playback(block + offset, firstChunk - offset, &bytesRead, false);
- SkASSERT(SkGPipeReader::kError_Status != s);
- if (SkGPipeReader::kDone_Status == s){
- delete dumpReader;
- delete dumpCanvas;
- dumpCanvas = new SkDumpCanvasM(&fDumper);
- dumpReader = new SkGPipeReader(dumpCanvas);
- delete reader;
- reader = new SkGPipeReader(canvas);
- }
- offset += bytesRead;
- }
- SkASSERT(offset == firstChunk);
- //Then read the current atom
- fDumper.enable();
- s = dumpReader->playback(block + offset, toBeRead - offset, NULL, true);
- SkASSERT(SkGPipeReader::kError_Status != s);
- s = reader->playback(block + offset, toBeRead - offset, &bytesRead, true);
- SkASSERT(SkGPipeReader::kError_Status != s);
-
- sk_free(block);
- fclose(f);
-
- delete reader;
- delete dumpReader;
- delete dumpCanvas;
-
- if (fDisplayClip) {
- SkPaint p;
- p.setColor(0x440000AA);
- SkPath path;
- canvas->getTotalClip().getBoundaryPath(&path);
- canvas->drawPath(path, p);
- }
- }
- this->INHERITED::onDraw(canvas);
-} \ No newline at end of file