diff options
Diffstat (limited to 'tools/sk_app')
-rw-r--r-- | tools/sk_app/Window.cpp | 3 | ||||
-rw-r--r-- | tools/sk_app/Window.h | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/tools/sk_app/Window.cpp b/tools/sk_app/Window.cpp index 436b6b9aa9..6713c4c2c9 100644 --- a/tools/sk_app/Window.cpp +++ b/tools/sk_app/Window.cpp @@ -88,6 +88,9 @@ void Window::onPaint() { SkCanvas* canvas = backbuffer->getCanvas(); for (int i = 0; i < fLayers.count(); ++i) { + fLayers[i]->onPrePaint(); + } + for (int i = 0; i < fLayers.count(); ++i) { fLayers[i]->onPaint(canvas); } diff --git a/tools/sk_app/Window.h b/tools/sk_app/Window.h index 77478b598e..b541e241a2 100644 --- a/tools/sk_app/Window.h +++ b/tools/sk_app/Window.h @@ -136,16 +136,19 @@ public: // return value of 'true' means 'I have handled this event' virtual void onBackendCreated() {} + virtual void onAttach(Window* window) {} virtual bool onChar(SkUnichar c, uint32_t modifiers) { return false; } virtual bool onKey(Key key, InputState state, uint32_t modifiers) { return false; } virtual bool onMouse(int x, int y, InputState state, uint32_t modifiers) { return false; } virtual bool onMouseWheel(float delta, uint32_t modifiers) { return false; } virtual bool onTouch(intptr_t owner, InputState state, float x, float y) { return false; } virtual void onUIStateChanged(const SkString& stateName, const SkString& stateValue) {} + virtual void onPrePaint() {} virtual void onPaint(SkCanvas*) {} }; void pushLayer(Layer* layer) { + layer->onAttach(this); fLayers.push(layer); } |