| |
| /* |
| * Copyright 2010 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| |
| |
| #include "GrContext.h" |
| |
| #include "SkGpuCanvas.h" |
| #include "SkGpuDevice.h" |
| |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| SkGpuCanvas::SkGpuCanvas(GrContext* context, GrRenderTarget* renderTarget) { |
| SkASSERT(context); |
| fContext = context; |
| fContext->ref(); |
| |
| this->setDevice(SkNEW_ARGS(SkGpuDevice, (context, renderTarget)))->unref(); |
| } |
| |
| SkGpuCanvas::~SkGpuCanvas() { |
| // call this now, while our override of restore() is in effect |
| this->restoreToCount(1); |
| fContext->flush(false); |
| fContext->unref(); |
| } |
| |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| bool SkGpuCanvas::getViewport(SkIPoint* size) const { |
| if (size) { |
| SkDevice* device = this->getDevice(); |
| if (device) { |
| size->set(device->width(), device->height()); |
| } else { |
| size->set(0, 0); |
| } |
| } |
| return true; |
| } |
| |