diff options
author | 2011-08-12 14:27:47 +0000 | |
---|---|---|
committer | 2011-08-12 14:27:47 +0000 | |
commit | ef7bdfac618f60e9edc9f42cd4661d563937e6d8 (patch) | |
tree | 3acb17216c4ede79d0c349182dfaca38e96803a1 /experimental/CocoaDebugger/SkContentView.cpp | |
parent | 16edff2b1cbd80e36456138f8631711a585205ba (diff) |
Added Debugger to Sample App, off by default
Removed CocoaDebugger from experimental
Slight changes to SkOSMenu
Bug fixes for NetPipeReader and DrawingBoard
git-svn-id: http://skia.googlecode.com/svn/trunk@2102 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'experimental/CocoaDebugger/SkContentView.cpp')
-rw-r--r-- | experimental/CocoaDebugger/SkContentView.cpp | 157 |
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 |