10a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 20a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger/* 30a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger * Copyright 2013 Google Inc. 40a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger * 50a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger * Use of this source code is governed by a BSD-style license that can be 60a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger * found in the LICENSE file. 70a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger */ 80a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 90a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#ifndef GrTest_DEFINED 100a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#define GrTest_DEFINED 110a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 120a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#include "GrContext.h" 130a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#include "GrDrawTarget.h" 140a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 150a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger/** Allows a test to temporarily draw to a GrDrawTarget owned by a GrContext. Tests that use this 160a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger should be careful not to mix using the GrDrawTarget directly and drawing via SkCanvas or 170a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger GrContext. In the future this object may provide some guards to prevent this. */ 180a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenbergerclass GrTestTarget { 190a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenbergerpublic: 200a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger GrTestTarget() {}; 210a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 220a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger void init(GrContext*, GrDrawTarget*); 230a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 240a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger GrDrawTarget* target() { return fDrawTarget.get(); } 250a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 260a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenbergerprivate: 270a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger SkTLazy<GrDrawTarget::AutoStateRestore> fASR; 280a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger SkTLazy<GrDrawTarget::AutoClipRestore> fACR; 290a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger SkTLazy<GrDrawTarget::AutoGeometryPush> fAGP; 300a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 310a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger SkAutoTUnref<GrDrawTarget> fDrawTarget; 320a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger SkAutoTUnref<GrContext> fContext; 330a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger}; 340a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger 350a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#endif 36