| OLD | NEW | 
|   1 /* |   1 /* | 
|   2  * Copyright 2015 Google Inc. |   2  * Copyright 2015 Google Inc. | 
|   3  * |   3  * | 
|   4  * Use of this source code is governed by a BSD-style license that can be |   4  * Use of this source code is governed by a BSD-style license that can be | 
|   5  * found in the LICENSE file. |   5  * found in the LICENSE file. | 
|   6  */ |   6  */ | 
|   7  |   7  | 
|   8 #ifndef GrDrawVerticesBatch_DEFINED |   8 #ifndef GrDrawVerticesBatch_DEFINED | 
|   9 #define GrDrawVerticesBatch_DEFINED |   9 #define GrDrawVerticesBatch_DEFINED | 
|  10  |  10  | 
|  11 #include "GrColor.h" |  11 #include "GrColor.h" | 
|  12 #include "GrTypes.h" |  12 #include "GrTypes.h" | 
|  13 #include "GrVertexBatch.h" |  13 #include "GrVertexBatch.h" | 
|  14 #include "SkMatrix.h" |  14 #include "SkMatrix.h" | 
|  15 #include "SkRect.h" |  15 #include "SkRect.h" | 
|  16 #include "SkTDArray.h" |  16 #include "SkTDArray.h" | 
|  17  |  17  | 
|  18 class GrBatchTarget; |  18 class GrBatchFlushState; | 
|  19 struct GrInitInvariantOutput; |  19 struct GrInitInvariantOutput; | 
|  20  |  20  | 
|  21 class GrDrawVerticesBatch : public GrVertexBatch { |  21 class GrDrawVerticesBatch : public GrVertexBatch { | 
|  22 public: |  22 public: | 
|  23     struct Geometry { |  23     struct Geometry { | 
|  24         GrColor fColor; |  24         GrColor fColor; | 
|  25         SkTDArray<SkPoint> fPositions; |  25         SkTDArray<SkPoint> fPositions; | 
|  26         SkTDArray<uint16_t> fIndices; |  26         SkTDArray<uint16_t> fIndices; | 
|  27         SkTDArray<GrColor> fColors; |  27         SkTDArray<GrColor> fColors; | 
|  28         SkTDArray<SkPoint> fLocalCoords; |  28         SkTDArray<SkPoint> fLocalCoords; | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
|  40     } |  40     } | 
|  41  |  41  | 
|  42     const char* name() const override { return "DrawVerticesBatch"; } |  42     const char* name() const override { return "DrawVerticesBatch"; } | 
|  43  |  43  | 
|  44     void getInvariantOutputColor(GrInitInvariantOutput* out) const override; |  44     void getInvariantOutputColor(GrInitInvariantOutput* out) const override; | 
|  45  |  45  | 
|  46     void getInvariantOutputCoverage(GrInitInvariantOutput* out) const override; |  46     void getInvariantOutputCoverage(GrInitInvariantOutput* out) const override; | 
|  47  |  47  | 
|  48     void initBatchTracker(const GrPipelineOptimizations&) override; |  48     void initBatchTracker(const GrPipelineOptimizations&) override; | 
|  49  |  49  | 
|  50     void generateGeometry(GrBatchTarget* batchTarget) override; |  | 
|  51  |  | 
|  52     SkSTArray<1, Geometry, true>* geoData() { return &fGeoData; } |  50     SkSTArray<1, Geometry, true>* geoData() { return &fGeoData; } | 
|  53  |  51  | 
|  54 private: |  52 private: | 
 |  53     void onPrepareDraws(Target*) override; | 
 |  54  | 
|  55     GrDrawVerticesBatch(const Geometry& geometry, GrPrimitiveType primitiveType, |  55     GrDrawVerticesBatch(const Geometry& geometry, GrPrimitiveType primitiveType, | 
|  56                         const SkMatrix& viewMatrix, |  56                         const SkMatrix& viewMatrix, | 
|  57                         const SkPoint* positions, int vertexCount, |  57                         const SkPoint* positions, int vertexCount, | 
|  58                         const uint16_t* indices, int indexCount, |  58                         const uint16_t* indices, int indexCount, | 
|  59                         const GrColor* colors, const SkPoint* localCoords, const
     SkRect& bounds); |  59                         const GrColor* colors, const SkPoint* localCoords, const
     SkRect& bounds); | 
|  60  |  60  | 
|  61     GrPrimitiveType primitiveType() const { return fBatch.fPrimitiveType; } |  61     GrPrimitiveType primitiveType() const { return fBatch.fPrimitiveType; } | 
|  62     bool batchablePrimitiveType() const { |  62     bool batchablePrimitiveType() const { | 
|  63         return kTriangles_GrPrimitiveType == fBatch.fPrimitiveType || |  63         return kTriangles_GrPrimitiveType == fBatch.fPrimitiveType || | 
|  64                kLines_GrPrimitiveType == fBatch.fPrimitiveType || |  64                kLines_GrPrimitiveType == fBatch.fPrimitiveType || | 
| (...skipping 24 matching lines...) Expand all  Loading... | 
|  89         bool fHasLocalCoords; |  89         bool fHasLocalCoords; | 
|  90         int fVertexCount; |  90         int fVertexCount; | 
|  91         int fIndexCount; |  91         int fIndexCount; | 
|  92     }; |  92     }; | 
|  93  |  93  | 
|  94     BatchTracker fBatch; |  94     BatchTracker fBatch; | 
|  95     SkSTArray<1, Geometry, true> fGeoData; |  95     SkSTArray<1, Geometry, true> fGeoData; | 
|  96 }; |  96 }; | 
|  97  |  97  | 
|  98 #endif |  98 #endif | 
| OLD | NEW |