1fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/* 2fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Copyright 2015 Google Inc. 3fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * 4fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Use of this source code is governed by a BSD-style license that can be 5fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * found in the LICENSE file. 6fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */ 7fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 8fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#ifndef GrDrawAtlasOp_DEFINED 9fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#define GrDrawAtlasOp_DEFINED 10fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 11fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "GrColor.h" 12fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "GrDefaultGeoProcFactory.h" 13fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "GrMeshDrawOp.h" 14fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "GrSimpleMeshDrawOpHelper.h" 15fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 16fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass GrDrawAtlasOp final : public GrMeshDrawOp { 17fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprivate: 18fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot using Helper = GrSimpleMeshDrawOpHelper; 19fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 20fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotpublic: 21fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot DEFINE_OP_CLASS_ID 22fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 23fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot static std::unique_ptr<GrDrawOp> Make(GrPaint&& paint, const SkMatrix& viewMatrix, 24fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot GrAAType aaType, int spriteCount, const SkRSXform* xforms, 25fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot const SkRect* rects, const SkColor* colors) { 26fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot return Helper::FactoryHelper<GrDrawAtlasOp>(std::move(paint), viewMatrix, aaType, 27fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot spriteCount, xforms, rects, colors); 28fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot } 29fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 30fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot GrDrawAtlasOp(const Helper::MakeArgs& helperArgs, GrColor color, const SkMatrix& viewMatrix, 31fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot GrAAType, int spriteCount, const SkRSXform* xforms, const SkRect* rects, 32fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot const SkColor* colors); 33fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 34fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot const char* name() const override { return "DrawAtlasOp"; } 35fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 36fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot void visitProxies(const VisitProxyFunc& func) const override { 37fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot fHelper.visitProxies(func); 38fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot } 39fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 40fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SkString dumpInfo() const override; 41fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 42fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot FixedFunctionFlags fixedFunctionFlags() const override; 43fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 44fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, 45fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot GrPixelConfigIsClamped dstIsClamped) override; 46fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 47fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprivate: 48fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot void onPrepareDraws(Target*) override; 49fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 50fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot GrColor color() const { return fColor; } 51fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot const SkMatrix& viewMatrix() const { return fViewMatrix; } 52fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot bool hasColors() const { return fHasColors; } 53fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot int quadCount() const { return fQuadCount; } 54fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 55fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot bool onCombineIfPossible(GrOp* t, const GrCaps&) override; 56fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 57fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot struct Geometry { 58fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot GrColor fColor; 59fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SkTArray<uint8_t, true> fVerts; 60fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot }; 61fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 62fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SkSTArray<1, Geometry, true> fGeoData; 63fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot Helper fHelper; 64fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SkMatrix fViewMatrix; 65fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot GrColor fColor; 66fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot int fQuadCount; 67fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot bool fHasColors; 68fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 69fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot typedef GrMeshDrawOp INHERITED; 70fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot}; 71fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 72fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#endif 73