1/*
2 * Copyright 2013 Google Inc.
3 *
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 *
8 */
9
10#ifndef SkV8Example_DEFINED
11#define SkV8Example_DEFINED
12
13#include "SkWindow.h"
14
15class GrContext;
16class GrGLInterface;
17class GrRenderTarget;
18class SkSurface;
19
20class JsContext;
21
22class SkV8ExampleWindow : public SkOSWindow {
23public:
24    SkV8ExampleWindow(void* hwnd, JsContext* canvas);
25    virtual ~SkV8ExampleWindow();
26
27protected:
28    void onDraw(SkCanvas* canvas) override;
29    void onSizeChange() override;
30
31#if SK_SUPPORT_GPU
32    SkSurface* createSurface() override;
33#endif
34
35#ifdef SK_BUILD_FOR_WIN
36    void onHandleInval(const SkIRect&) override;
37#endif
38
39    void windowSizeChanged();
40
41private:
42    typedef SkOSWindow INHERITED;
43    JsContext* fJsContext;
44
45#if SK_SUPPORT_GPU
46    GrContext*              fCurContext;
47    const GrGLInterface*    fCurIntf;
48    GrRenderTarget*         fCurRenderTarget;
49    SkSurface*              fCurSurface;
50#endif
51};
52
53#endif
54