diff options
author | Brian Osman <brianosman@google.com> | 2017-11-21 13:18:02 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-11-21 18:37:19 +0000 |
commit | eff04b5ec287e0fee0d44207c10d2d11f7eade8a (patch) | |
tree | ea2cf00ea329c81611536aaa9a9f1eca47c67e9a /tools/sk_app/GLWindowContext.h | |
parent | 2aa09dbe8aced37aa6bb285e62df45deb0e81650 (diff) |
Remove SampleApp and convert HelloWorld to sk_app
There is still a large amount of views code that could be trimmed down,
but which is used to implement samples (in viewer). Seemed simpler to
remove some of this code in pieces.
Bug: skia:
Change-Id: Ia3415060d03c8de604a154e3dc38379b754daab6
Reviewed-on: https://skia-review.googlesource.com/72801
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'tools/sk_app/GLWindowContext.h')
-rw-r--r-- | tools/sk_app/GLWindowContext.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/tools/sk_app/GLWindowContext.h b/tools/sk_app/GLWindowContext.h new file mode 100644 index 0000000000..44810c93d2 --- /dev/null +++ b/tools/sk_app/GLWindowContext.h @@ -0,0 +1,59 @@ + +/* + * Copyright 2016 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ +#ifndef GLWindowContext_DEFINED +#define GLWindowContext_DEFINED + + +#include "gl/GrGLInterface.h" + +#include "SkRefCnt.h" +#include "SkSurface.h" + +#include "WindowContext.h" + +class GrContext; + +namespace sk_app { + +class GLWindowContext : public WindowContext { +public: + sk_sp<SkSurface> getBackbufferSurface() override; + + bool isValid() override { return SkToBool(fBackendContext.get()); } + + void resize(int w, int h) override; + void swapBuffers() override; + + void setDisplayParams(const DisplayParams& params) override; + + GrBackendContext getBackendContext() override { + return (GrBackendContext) fBackendContext.get(); + } + +protected: + GLWindowContext(const DisplayParams&); + // This should be called by subclass constructor. It is also called when window/display + // parameters change. This will in turn call onInitializeContext(). + void initializeContext(); + virtual sk_sp<const GrGLInterface> onInitializeContext() = 0; + + // This should be called by subclass destructor. It is also called when window/display + // parameters change prior to initializing a new GL context. This will in turn call + // onDestroyContext(). + void destroyContext(); + virtual void onDestroyContext() = 0; + + virtual void onSwapBuffers() = 0; + + sk_sp<const GrGLInterface> fBackendContext; + sk_sp<SkSurface> fSurface; +}; + +} // namespace sk_app + +#endif |