• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 /*
3  * Copyright 2010 Google Inc.
4  *
5  * Use of this source code is governed by a BSD-style license that can be
6  * found in the LICENSE file.
7  */
8 
9 
10 
11 #include "GrContext.h"
12 
13 #include "SkGpuCanvas.h"
14 #include "SkGpuDevice.h"
15 
16 ///////////////////////////////////////////////////////////////////////////////
17 
SkGpuCanvas(GrContext * context,GrRenderTarget * renderTarget)18 SkGpuCanvas::SkGpuCanvas(GrContext* context, GrRenderTarget* renderTarget) {
19     SkASSERT(context);
20     fContext = context;
21     fContext->ref();
22 
23     this->setDevice(new SkGpuDevice(context, renderTarget))->unref();
24 }
25 
~SkGpuCanvas()26 SkGpuCanvas::~SkGpuCanvas() {
27     // call this now, while our override of restore() is in effect
28     this->restoreToCount(1);
29     fContext->flush(false);
30     fContext->unref();
31 }
32 
33 ///////////////////////////////////////////////////////////////////////////////
34 
getViewport(SkIPoint * size) const35 bool SkGpuCanvas::getViewport(SkIPoint* size) const {
36     if (size) {
37         SkDevice* device = this->getDevice();
38         if (device) {
39             size->set(device->width(), device->height());
40         } else {
41             size->set(0, 0);
42         }
43     }
44     return true;
45 }
46 
47