aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/sk_app
diff options
context:
space:
mode:
Diffstat (limited to 'tools/sk_app')
-rw-r--r--tools/sk_app/Window.cpp3
-rw-r--r--tools/sk_app/Window.h3
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);
}