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

Unified Diff: platform_tools/nacl/src/nacl_hello.cpp

Issue 16904003: SkHello for NaCl (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « platform_tools/nacl/skhello/skhello.nmf ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: platform_tools/nacl/src/nacl_hello.cpp
===================================================================
--- platform_tools/nacl/src/nacl_hello.cpp (revision 9611)
+++ platform_tools/nacl/src/nacl_hello.cpp (working copy)
@@ -15,11 +15,9 @@
#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"
@@ -31,16 +29,26 @@
void FlushCallback(void* data, int32_t result);
+static void doDraw(SkCanvas* canvas, const SkPaint& paint, const char text[]) {
+ canvas->drawColor(SK_ColorWHITE);
+ SkPaint red;
+ red.setColor(SK_ColorRED);
+ canvas->drawCircle(150.0, 150.0, 100.0, red);
+ SkRect bounds;
+ canvas->getClipBounds(&bounds);
+ canvas->drawText(text, strlen(text),
+ bounds.centerX(), bounds.centerY(),
+ paint);
+}
+
// 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)
- , fPicture(NULL)
, fFlushLoopRunning(false)
, fFlushPending(false)
-
{
gPluginInstance = this;
SkGraphics::Init();
@@ -53,92 +61,16 @@
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);
- fPicture = new SkPicture(&pictureStream);
- if (fPicture->width() == 0 || fPicture->height() == 0) {
- SkDebugf("Failed to create SKP.\n");
- return;
- }
- fDebugger.loadPicture(fPicture);
-
- // Set up the command list.
- SkTArray<SkString>* commands = fDebugger.getDrawCommandsAsStrings();
- PostMessage("ClearCommands");
- for (int i = 0; i < commands->count(); ++i) {
- SkString addCommand("AddCommand:");
- addCommand.append((*commands)[i]);
- 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);
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setTextSize(SkIntToScalar(30));
+ paint.setTextAlign(SkPaint::kCenter_Align);
+ doDraw(fCanvas, paint, "Hello");
+
fDeviceContext.PaintImageData(fImage, pp::Point(0, 0));
if (!fFlushPending) {
fFlushPending = true;
@@ -158,7 +90,6 @@
}
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");
@@ -193,8 +124,6 @@
SkBitmap fBitmap;
SkCanvas* fCanvas;
- SkDebugger fDebugger;
- SkPicture* fPicture;
bool fFlushLoopRunning;
bool fFlushPending;
« no previous file with comments | « platform_tools/nacl/skhello/skhello.nmf ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698