/* * Copyright 2013 Google Inc. * * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * */ #ifndef BaseExample_DEFINED #define BaseExample_DEFINED #include "SkWindow.h" class GrContext; struct GrGLInterface; class GrRenderTarget; class SkCanvas; class BaseExample : public SkOSWindow { public: enum DeviceType { kRaster_DeviceType, kGPU_DeviceType, }; BaseExample(void* hWnd, int argc, char** argv); // Changes the device type of the object. bool setupBackend(DeviceType type); void tearDownBackend(); DeviceType getDeviceType() const { return fType; } protected: // Your class should override this method to do its thing. virtual void draw(SkCanvas* canvas) SK_OVERRIDE; virtual void onSizeChange() SK_OVERRIDE; #ifdef SK_BUILD_FOR_WIN virtual void onHandleInval(const SkIRect&) SK_OVERRIDE; #endif SkCanvas* createCanvas() SK_OVERRIDE; private: void setupRenderTarget(); DeviceType fType; GrContext* fContext; GrRenderTarget* fRenderTarget; AttachmentInfo fAttachmentInfo; const GrGLInterface* fInterface; typedef SkOSWindow INHERITED; }; #endif