/* * Copyright 2010 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkGpuCanvas_DEFINED #define SkGpuCanvas_DEFINED #include "SkCanvas.h" class GrContext; class GrRenderTarget; /** * Subclass of canvas that creates devices compatible with the GrContext pass * to the canvas' constructor. */ class SkGpuCanvas : public SkCanvas { public: /** * The GrContext object is reference counted. When passed to our * constructor, its reference count is incremented. In our destructor, the * GrGpu's reference count will be decremented. * GrRenderTarget represents the rendering destination in the underlying * 3D API. Its reference count is incremented in the constructor and * decremented in the destructor. */ explicit SkGpuCanvas(GrContext*, GrRenderTarget*); virtual ~SkGpuCanvas(); /** * Override from SkCanvas. Returns true, and if not-null, sets size to * be the width/height of our viewport. */ virtual bool getViewport(SkIPoint* size) const; #if 0 virtual int saveLayer(const SkRect* bounds, const SkPaint* paint, SaveFlags flags = kARGB_ClipLayer_SaveFlag) { return this->save(flags); } #endif private: GrContext* fContext; typedef SkCanvas INHERITED; }; #endif