17b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips/* 27b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips * Copyright 2014 Google Inc. 37b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips * 47b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips * Use of this source code is governed by a BSD-style license that can be 57b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips * found in the LICENSE file. 67b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips */ 77b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips 87b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips#ifndef SkSurface_Gpu_DEFINED 97b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips#define SkSurface_Gpu_DEFINED 107b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips 117b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips#include "SkSurface_Base.h" 127b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips 137b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips#if SK_SUPPORT_GPU 147b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips 157b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillipsclass SkGpuDevice; 167b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips 177b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillipsclass SkSurface_Gpu : public SkSurface_Base { 187b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillipspublic: 197b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips SK_DECLARE_INST_COUNT(SkSurface_Gpu) 207b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips 21afe3005be3392e43bc51eb7eb2017eefaed85ad1bsalomon SkSurface_Gpu(SkGpuDevice*); 227b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips virtual ~SkSurface_Gpu(); 237b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips 2436352bf5e38f45a70ee4f4fc132a38048d38206dmtklein SkCanvas* onNewCanvas() override; 2536352bf5e38f45a70ee4f4fc132a38048d38206dmtklein SkSurface* onNewSurface(const SkImageInfo&) override; 2636352bf5e38f45a70ee4f4fc132a38048d38206dmtklein SkImage* onNewImageSnapshot(Budgeted) override; 277831a4bbb46a919316efc7c70808dcaaf8ee629atfarina void onDraw(SkCanvas*, SkScalar x, SkScalar y, const SkPaint*) override; 2836352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onCopyOnWrite(ContentChangeMode) override; 2936352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void onDiscard() override; 307b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips 317b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips SkGpuDevice* getDevice() { return fDevice; } 327b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips 337b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillipsprivate: 347b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips SkGpuDevice* fDevice; 357b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips 367b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips typedef SkSurface_Base INHERITED; 377b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips}; 387b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips 397b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips#endif // SK_SUPPORT_GPU 407b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips 417b9e8a4b6af0f3df9bf20a5fdc0977bcd7c3c1abrobertphillips#endif // SkSurface_Gpu_DEFINED 42