Index: platform_tools/nacl/src/nacl_sample.cpp |
diff --git a/platform_tools/nacl/src/nacl_sample.cpp b/platform_tools/nacl/src/nacl_sample.cpp |
deleted file mode 100644 |
index aca74f4247010378f63ef8cb9d29644edf281803..0000000000000000000000000000000000000000 |
--- a/platform_tools/nacl/src/nacl_sample.cpp |
+++ /dev/null |
@@ -1,212 +0,0 @@ |
-#include <cstdio> |
-#include <string> |
- |
-#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/var.h" |
- |
-#include "SampleApp.h" |
-#include "SkApplication.h" |
-#include "SkCanvas.h" |
-#include "SkBitmap.h" |
-#include "SkEvent.h" |
-#include "SkWindow.h" |
- |
-class SkiaInstance; |
- |
-namespace { |
-void FlushCallback(void* data, int32_t result); |
-} |
- |
-SkiaInstance* gPluginInstance; |
-extern int main(int, char**); |
- |
-class SkiaInstance : public pp::Instance { |
- public: |
- explicit SkiaInstance(PP_Instance instance) : pp::Instance(instance), |
- fFlushPending(false), |
- fGraphics2dContext(NULL), |
- fPixelBuffer(NULL) |
- { |
- gPluginInstance = this; |
- application_init(); |
- char* commandName = "SampleApp"; |
- fWindow = new SampleWindow(NULL, 0, &commandName, NULL); |
- } |
- |
- virtual ~SkiaInstance() { |
- gPluginInstance = NULL; |
- delete fWindow; |
- application_term(); |
- } |
- |
- virtual void HandleMessage(const pp::Var& var_message) { |
- // Receive a message from javascript. Right now this just signals us to |
- // get started. |
- uint32_t width = 500; |
- uint32_t height = 500; |
- char buffer[2048]; |
- sprintf(buffer, "SetSize:%d,%d", width, height); |
- PostMessage(buffer); |
- } |
- |
- virtual void DidChangeView(const pp::Rect& position, |
- const pp::Rect& clip) { |
- if (position.size().width() == width() && |
- position.size().height() == height()) { |
- return; // Size didn't change, no need to update anything. |
- } |
- // Create a new device context with the new size. |
- DestroyContext(); |
- CreateContext(position.size()); |
- // Delete the old pixel buffer and create a new one. |
- delete fPixelBuffer; |
- fPixelBuffer = NULL; |
- if (fGraphics2dContext != NULL) { |
- fPixelBuffer = new pp::ImageData(this, |
- PP_IMAGEDATAFORMAT_BGRA_PREMUL, |
- fGraphics2dContext->size(), |
- false); |
- fWindow->resize(position.size().width(), position.size().height()); |
- fWindow->update(NULL); |
- paint(); |
- } |
- } |
- |
- // Indicate whether a flush is pending. This can only be called from the |
- // main thread; it is not thread safe. |
- bool flush_pending() const { |
- return fFlushPending; |
- } |
- void set_flush_pending(bool flag) { |
- fFlushPending = flag; |
- } |
- |
- void paint() { |
- if (fPixelBuffer) { |
- // Draw some stuff. TODO(borenet): Actually have SampleApp draw into |
- // the plugin area. |
- uint32_t w = fPixelBuffer->size().width(); |
- uint32_t h = fPixelBuffer->size().height(); |
- uint32_t* data = (uint32_t*) fPixelBuffer->data(); |
- // Create a bitmap using the fPixelBuffer pixels |
- SkBitmap bitmap; |
- bitmap.setConfig(SkBitmap::kARGB_8888_Config, w, h); |
- bitmap.setPixels(data); |
- // Create a canvas with the bitmap as the backend |
- SkCanvas canvas(bitmap); |
- |
- canvas.drawColor(SK_ColorBLUE); |
- SkRect rect = SkRect::MakeXYWH(10, 10, 80, 80); |
- SkPaint rect_paint; |
- rect_paint.setStyle(SkPaint::kFill_Style); |
- rect_paint.setColor(SK_ColorRED); |
- canvas.drawRect(rect, rect_paint); |
- |
- FlushPixelBuffer(); |
- } |
- } |
- |
-private: |
- int width() const { |
- return fPixelBuffer ? fPixelBuffer->size().width() : 0; |
- } |
- |
- int height() const { |
- return fPixelBuffer ? fPixelBuffer->size().height() : 0; |
- } |
- |
- bool IsContextValid() const { |
- return fGraphics2dContext != NULL; |
- } |
- |
- void CreateContext(const pp::Size& size) { |
- if (IsContextValid()) |
- return; |
- fGraphics2dContext = new pp::Graphics2D(this, size, false); |
- if (!BindGraphics(*fGraphics2dContext)) { |
- SkDebugf("Couldn't bind the device context"); |
- } |
- } |
- |
- void DestroyContext() { |
- if (!IsContextValid()) |
- return; |
- delete fGraphics2dContext; |
- fGraphics2dContext = NULL; |
- } |
- |
- void FlushPixelBuffer() { |
- if (!IsContextValid()) |
- return; |
- // Note that the pixel lock is held while the buffer is copied into the |
- // device context and then flushed. |
- fGraphics2dContext->PaintImageData(*fPixelBuffer, pp::Point()); |
- if (flush_pending()) |
- return; |
- set_flush_pending(true); |
- fGraphics2dContext->Flush(pp::CompletionCallback(&FlushCallback, this)); |
- } |
- |
- bool fFlushPending; |
- pp::Graphics2D* fGraphics2dContext; |
- pp::ImageData* fPixelBuffer; |
- SampleWindow* fWindow; |
-}; |
- |
-class SkiaModule : public pp::Module { |
-public: |
- SkiaModule() : pp::Module() {} |
- virtual ~SkiaModule() {} |
- |
- virtual pp::Instance* CreateInstance(PP_Instance instance) { |
- gPluginInstance = new SkiaInstance(instance); |
- return gPluginInstance; |
- } |
-}; |
- |
-namespace { |
-void FlushCallback(void* data, int32_t result) { |
- static_cast<SkiaInstance*>(data)->set_flush_pending(false); |
-} |
-} |
- |
-namespace pp { |
-Module* CreateModule() { |
- return new SkiaModule(); |
-} |
-} // namespace pp |
- |
- |
-/////////////////////////////////////////// |
-///////////// SkOSWindow impl ///////////// |
-/////////////////////////////////////////// |
- |
-void SkOSWindow::onSetTitle(const char title[]) |
-{ |
- char buffer[2048]; |
- sprintf(buffer, "SetTitle:%s", title); |
- gPluginInstance->PostMessage(buffer); |
-} |
- |
-void SkOSWindow::onHandleInval(const SkIRect& rect) |
-{ |
- gPluginInstance->paint(); |
-} |
- |
-void SkOSWindow::onPDFSaved(const char title[], const char desc[], |
- const char path[]) { |
-} |
- |
-/////////////////////////////////////////// |
-/////////////// SkEvent impl ////////////// |
-/////////////////////////////////////////// |
- |
-void SkEvent::SignalQueueTimer(SkMSec ms) { |
-} |
- |
-void SkEvent::SignalNonEmptyQueue() { |
-} |