| #include "SkCanvas.h" |
| #include "SkDevice.h" |
| #include "SkGraphics.h" |
| #include "SkPaint.h" |
| #include "SkPicture.h" |
| #include "SkStream.h" |
| #include "SkWindow.h" |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| |
| class SimpleWindow : public SkOSWindow { |
| public: |
| SimpleWindow(void* hwnd); |
| |
| protected: |
| virtual void onDraw(SkCanvas* canvas); |
| virtual bool onHandleKey(SkKey key); |
| virtual bool onHandleChar(SkUnichar); |
| virtual void onSizeChange(); |
| |
| virtual SkCanvas* beforeChildren(SkCanvas*); |
| virtual void afterChildren(SkCanvas*); |
| |
| virtual bool onEvent(const SkEvent& evt); |
| |
| private: |
| typedef SkOSWindow INHERITED; |
| }; |
| |
| SimpleWindow::SimpleWindow(void* hwnd) : INHERITED(hwnd) { |
| // this->setConfig(SkBitmap::kRGB_565_Config); |
| this->setConfig(SkBitmap::kARGB_8888_Config); |
| this->setVisibleP(true); |
| this->setTitle("Simple"); |
| } |
| |
| void SimpleWindow::onDraw(SkCanvas* canvas) { |
| canvas->drawColor(SK_ColorWHITE); |
| |
| const SkScalar w = this->width(); |
| const SkScalar h = this->height(); |
| |
| SkPaint paint; |
| paint.setAntiAlias(true); |
| paint.setTextSize(SkIntToScalar(40)); |
| paint.setTextAlign(SkPaint::kCenter_Align); |
| |
| canvas->drawText("Hello world", 11, w/2, h/2, paint); |
| } |
| |
| SkCanvas* SimpleWindow::beforeChildren(SkCanvas* canvas) { |
| // can wack the canvas here, which will affect child views |
| // and can be "undone" in afterChildren() |
| // |
| // e.g. return a picture-canvas, or wack the clip or matrix, etc. |
| |
| return canvas; |
| } |
| |
| void SimpleWindow::afterChildren(SkCanvas* orig) { |
| } |
| |
| bool SimpleWindow::onEvent(const SkEvent& evt) { |
| return this->INHERITED::onEvent(evt); |
| } |
| |
| bool SimpleWindow::onHandleChar(SkUnichar uni) { |
| return this->INHERITED::onHandleChar(uni); |
| } |
| |
| bool SimpleWindow::onHandleKey(SkKey key) { |
| return this->INHERITED::onHandleKey(key); |
| } |
| |
| void SimpleWindow::onSizeChange() { |
| this->INHERITED::onSizeChange(); |
| } |
| |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| SkOSWindow* create_sk_window(void* hwnd) { |
| return new SimpleWindow(hwnd); |
| } |
| |
| void get_preferred_size(int* x, int* y, int* width, int* height) { |
| *x = 10; |
| *y = 50; |
| *width = 640; |
| *height = 480; |
| } |
| |
| void application_init() { |
| // setenv("ANDROID_ROOT", "../../../data", 0); |
| setenv("ANDROID_ROOT", "/android/device/data", 0); |
| SkGraphics::Init(true); |
| SkEvent::Init(); |
| } |
| |
| void application_term() { |
| SkEvent::Term(); |
| SkGraphics::Term(); |
| } |