Index: tools/viewer/sk_app/WindowContext.h |
diff --git a/tools/viewer/sk_app/WindowContext.h b/tools/viewer/sk_app/WindowContext.h |
index d48e38e7466949b07031a3dd2443231f3011e847..1fd921afb2e83a9f531134ffb601243d5326073b 100644 |
--- a/tools/viewer/sk_app/WindowContext.h |
+++ b/tools/viewer/sk_app/WindowContext.h |
@@ -9,30 +9,54 @@ |
#include "DisplayParams.h" |
#include "GrTypes.h" |
+#include "SkRefCnt.h" |
+#include "SkSurfaceProps.h" |
+class GrContext; |
class SkSurface; |
+class GrRenderTarget; |
namespace sk_app { |
-// TODO: fill this out with an interface |
class WindowContext { |
public: |
+ WindowContext() : fContext(nullptr) |
+ , fSurfaceProps(SkSurfaceProps::kLegacyFontHost_InitType) {} |
+ |
virtual ~WindowContext() {} |
- virtual SkSurface* getBackbufferSurface() = 0; |
+ virtual sk_sp<SkSurface> getBackbufferSurface() = 0; |
virtual void swapBuffers() = 0; |
- virtual bool makeCurrent() = 0; |
- |
virtual bool isValid() = 0; |
virtual void resize(uint32_t w, uint32_t h) = 0; |
- virtual const DisplayParams& getDisplayParams() = 0; |
+ const DisplayParams& getDisplayParams() { return fDisplayParams; } |
virtual void setDisplayParams(const DisplayParams& params) = 0; |
+ SkSurfaceProps getSurfaceProps() const { return fSurfaceProps; } |
+ void setSurfaceProps(const SkSurfaceProps& props) { |
+ fSurfaceProps = props; |
+ } |
+ |
virtual GrBackendContext getBackendContext() = 0; |
+ |
+ sk_sp<SkSurface> createRenderSurface(sk_sp<GrRenderTarget>, int colorBits); |
+ void presentRenderSurface(sk_sp<SkSurface> renderSurface, sk_sp<GrRenderTarget> rt, |
+ int colorBits); |
+ |
+protected: |
+ virtual bool isGpuContext() { return true; } |
+ |
+ GrContext* fContext; |
+ |
+ int fWidth; |
+ int fHeight; |
+ DisplayParams fDisplayParams; |
+ GrPixelConfig fPixelConfig; |
+ SkSurfaceProps fSurfaceProps; |
}; |
} // namespace sk_app |