| Index: platform_tools/nacl/src/nacl_debugger.cpp
|
| diff --git a/platform_tools/nacl/src/nacl_debugger.cpp b/platform_tools/nacl/src/nacl_debugger.cpp
|
| deleted file mode 100644
|
| index e7e26b812925a4ddd2ba8a157670f6e42868dc2b..0000000000000000000000000000000000000000
|
| --- a/platform_tools/nacl/src/nacl_debugger.cpp
|
| +++ /dev/null
|
| @@ -1,219 +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.
|
| - */
|
| -
|
| -#include "ppapi/cpp/completion_callback.h"
|
| -#include "ppapi/cpp/graphics_2d.h"
|
| -#include "ppapi/cpp/image_data.h"
|
| -#include "ppapi/cpp/instance.h"
|
| -#include "ppapi/cpp/module.h"
|
| -#include "ppapi/cpp/point.h"
|
| -#include "ppapi/cpp/rect.h"
|
| -#include "ppapi/cpp/var.h"
|
| -
|
| -#include "SkBase64.h"
|
| -#include "SkBitmap.h"
|
| -#include "SkCanvas.h"
|
| -#include "SkColor.h"
|
| -#include "SkDebugger.h"
|
| -#include "SkGraphics.h"
|
| -#include "SkStream.h"
|
| -#include "SkString.h"
|
| -
|
| -class SkiaInstance;
|
| -
|
| -// Used by SkDebugf
|
| -SkiaInstance* gPluginInstance;
|
| -
|
| -void FlushCallback(void* data, int32_t result);
|
| -
|
| -// Skia's subclass of pp::Instance, our interface with the browser.
|
| -class SkiaInstance : public pp::Instance {
|
| -public:
|
| - explicit SkiaInstance(PP_Instance instance)
|
| - : pp::Instance(instance)
|
| - , fCanvas(NULL)
|
| - , fFlushLoopRunning(false)
|
| - , fFlushPending(false)
|
| -
|
| - {
|
| - gPluginInstance = this;
|
| - SkGraphics::Init();
|
| - }
|
| -
|
| - virtual ~SkiaInstance() {
|
| - SkGraphics::Term();
|
| - gPluginInstance = NULL;
|
| - }
|
| -
|
| - virtual void HandleMessage(const pp::Var& var_message) {
|
| - // Receive a message from javascript.
|
| - if (var_message.is_string()) {
|
| - SkString msg(var_message.AsString().c_str());
|
| - if (msg.startsWith("init")) {
|
| - } else if (msg.startsWith("LoadSKP")) {
|
| - size_t startIndex = strlen("LoadSKP");
|
| - size_t dataSize = msg.size()/sizeof(char) - startIndex;
|
| - SkBase64 decodedData;
|
| - decodedData.decode(msg.c_str() + startIndex, dataSize);
|
| - size_t decodedSize = 3 * (dataSize / 4);
|
| - SkDebugf("Got size: %d\n", decodedSize);
|
| - if (!decodedData.getData()) {
|
| - SkDebugf("Failed to decode SKP\n");
|
| - return;
|
| - }
|
| - SkMemoryStream pictureStream(decodedData.getData(), decodedSize);
|
| - SkPicture* picture = SkPicture::CreateFromStream(&pictureStream);
|
| - if (NULL == picture) {
|
| - SkDebugf("Failed to create SKP.\n");
|
| - return;
|
| - }
|
| - fDebugger.loadPicture(picture);
|
| - picture->unref();
|
| -
|
| - // Set up the command list.
|
| - PostMessage("ClearCommands");
|
| - for (int i = 0; i < fDebugger.getSize(); ++i) {
|
| - SkString addCommand("AddCommand:");
|
| - addCommand.append(fDebugger.getDrawCommandAt(i)->toString());
|
| - PostMessage(addCommand.c_str());
|
| - }
|
| - PostMessage("UpdateCommands");
|
| -
|
| - // Set the overview text.
|
| - SkString overviewText;
|
| - fDebugger.getOverviewText(NULL, 0.0, &overviewText, 1);
|
| - overviewText.prepend("SetOverview:");
|
| - PostMessage(overviewText.c_str());
|
| -
|
| - // Draw the SKP.
|
| - if (!fFlushLoopRunning) {
|
| - Paint();
|
| - }
|
| - } else if (msg.startsWith("CommandSelected:")) {
|
| - size_t startIndex = strlen("CommandSelected:");
|
| - int index = atoi(msg.c_str() + startIndex);
|
| - fDebugger.setIndex(index);
|
| - if (!fFlushLoopRunning) {
|
| - Paint();
|
| - }
|
| - } else if (msg.startsWith("Rewind")) {
|
| - fCanvas->clear(SK_ColorWHITE);
|
| - fDebugger.setIndex(0);
|
| - if (!fFlushLoopRunning) {
|
| - Paint();
|
| - }
|
| - } else if (msg.startsWith("StepBack")) {
|
| - fCanvas->clear(SK_ColorWHITE);
|
| - int currentIndex = fDebugger.index();
|
| - if (currentIndex > 1) {
|
| - fDebugger.setIndex(currentIndex - 1);
|
| - if (!fFlushLoopRunning) {
|
| - Paint();
|
| - }
|
| - }
|
| - } else if (msg.startsWith("Pause")) {
|
| - // TODO(borenet)
|
| - } else if (msg.startsWith("StepForward")) {
|
| - int currentIndex = fDebugger.index();
|
| - if (currentIndex < fDebugger.getSize() -1) {
|
| - fDebugger.setIndex(currentIndex + 1);
|
| - if (!fFlushLoopRunning) {
|
| - Paint();
|
| - }
|
| - }
|
| - } else if (msg.startsWith("Play")) {
|
| - fDebugger.setIndex(fDebugger.getSize() - 1);
|
| - if (!fFlushLoopRunning) {
|
| - Paint();
|
| - }
|
| - }
|
| - }
|
| - }
|
| -
|
| - void Paint() {
|
| - if (!fImage.is_null()) {
|
| - fDebugger.draw(fCanvas);
|
| - fDeviceContext.PaintImageData(fImage, pp::Point(0, 0));
|
| - if (!fFlushPending) {
|
| - fFlushPending = true;
|
| - fDeviceContext.Flush(pp::CompletionCallback(&FlushCallback, this));
|
| - } else {
|
| - SkDebugf("A flush is pending... Skipping flush.\n");
|
| - }
|
| - } else {
|
| - SkDebugf("No pixels to write to!\n");
|
| - }
|
| - }
|
| -
|
| - virtual void DidChangeView(const pp::Rect& position, const pp::Rect& clip) {
|
| - if (position.size().width() == fWidth &&
|
| - position.size().height() == fHeight) {
|
| - return; // We don't care about the position, only the size.
|
| - }
|
| - fWidth = position.size().width();
|
| - fHeight = position.size().height();
|
| -
|
| - fDeviceContext = pp::Graphics2D(this, pp::Size(fWidth, fHeight), false);
|
| - if (!BindGraphics(fDeviceContext)) {
|
| - SkDebugf("Couldn't bind the device context\n");
|
| - return;
|
| - }
|
| - fImage = pp::ImageData(this,
|
| - PP_IMAGEDATAFORMAT_BGRA_PREMUL,
|
| - pp::Size(fWidth, fHeight), false);
|
| - const SkImageInfo info = SkImageInfo::MakeN32Premul(fWidth, fHeight);
|
| - fBitmap.installPixels(info, fImage.data(), info.minRowBytes());
|
| - if (fCanvas) {
|
| - delete fCanvas;
|
| - }
|
| - fCanvas = new SkCanvas(fBitmap);
|
| - fCanvas->clear(SK_ColorWHITE);
|
| - if (!fFlushLoopRunning) {
|
| - Paint();
|
| - }
|
| - }
|
| -
|
| - void OnFlush() {
|
| - fFlushLoopRunning = true;
|
| - fFlushPending = false;
|
| - Paint();
|
| - }
|
| -
|
| -private:
|
| - pp::Graphics2D fDeviceContext;
|
| - pp::ImageData fImage;
|
| - int fWidth;
|
| - int fHeight;
|
| -
|
| - SkBitmap fBitmap;
|
| - SkCanvas* fCanvas;
|
| - SkDebugger fDebugger;
|
| -
|
| - bool fFlushLoopRunning;
|
| - bool fFlushPending;
|
| -};
|
| -
|
| -void FlushCallback(void* data, int32_t result) {
|
| - static_cast<SkiaInstance*>(data)->OnFlush();
|
| -}
|
| -
|
| -class SkiaModule : public pp::Module {
|
| -public:
|
| - SkiaModule() : pp::Module() {}
|
| - virtual ~SkiaModule() {}
|
| -
|
| - virtual pp::Instance* CreateInstance(PP_Instance instance) {
|
| - return new SkiaInstance(instance);
|
| - }
|
| -};
|
| -
|
| -namespace pp {
|
| -Module* CreateModule() {
|
| - return new SkiaModule();
|
| -}
|
| -} // namespace pp
|
|
|