Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 /* | |
| 2 * Copyright 2014 Google Inc. | |
| 3 * | |
| 4 * Use of this source code is governed by a BSD-style license that can be | |
| 5 * found in the LICENSE file. | |
| 6 */ | |
| 7 | |
| 8 #ifndef GrOptDrawState_DEFINED | |
| 9 #define GrOptDrawState_DEFINED | |
| 10 | |
| 11 #include "GrRODrawState.h" | |
| 12 | |
| 13 class GrDrawState; | |
| 14 | |
| 15 /** | |
| 16 * Sub class that is derived from GrRODrawState. This class holds an optimized v ersion of a | |
|
bsalomon
2014/08/26 18:41:44
Subclass of GrRODrawState that holds an... ?
| |
| 17 * drawState. Like it's parent it is meant to be an immutable class, and simply adds a few | |
| 18 * helpful data members not in the base class. | |
| 19 */ | |
| 20 class GrOptDrawState : public GrRODrawState { | |
| 21 public: | |
| 22 /** | |
| 23 * Constructs and optimized drawState out of a GrRODrawState. | |
| 24 */ | |
| 25 explicit GrOptDrawState(const GrDrawState& drawState); | |
| 26 | |
| 27 bool operator== (const GrOptDrawState& that) const; | |
| 28 | |
| 29 private: | |
| 30 /* | |
| 31 * Loops through all the color stage effects to check if the stage will igno re color input or | |
| 32 * always output a constant color. In the ignore color input case we can ign ore all previous | |
| 33 * stages. In the constant color case, we can ignore all previous stages and | |
| 34 * the current one and set the state color to the constant color. Once we de termine the so | |
| 35 * called first effective stage, we copy all the effective stages into our o ptimized | |
| 36 * state. | |
| 37 */ | |
| 38 void copyEffectiveColorStages(const GrDrawState& ds); | |
| 39 /* | |
|
bsalomon
2014/08/26 18:41:43
\n
| |
| 40 * Loops through all the coverage stage effects to check if the stage will i gnore color input. | |
| 41 * If a coverage stage will ignore input, then we can ignore all coverage st ages before it. We | |
| 42 * loop to determine the first effective coverage stage, and then copy all o f our effective | |
| 43 * coverage stages into our optimized state. | |
| 44 */ | |
| 45 void copyEffectiveCoverageStages(const GrDrawState& ds); | |
| 46 | |
| 47 /* | |
| 48 * This function takes in a flag and removes the corresponding fixed functio n vertex attributes. | |
| 49 * The flags must be in the same order as GrVertexAttribBinding array. In ot herwords the lowest | |
|
bsalomon
2014/08/26 18:41:43
I think removeVAFlag should be plural since it can
| |
| 50 * bit is for the position, the 2nd is for the local coord, and so on. | |
| 51 */ | |
| 52 void removeFixedFunctionVertexAttribs(uint8_t removeVAFlag); | |
| 53 | |
| 54 void removeColorVertexAttrib(); | |
| 55 | |
| 56 bool fInputColorIsUsed; | |
|
bsalomon
2014/08/26 18:41:43
What's the use case for these?
egdaniel
2014/08/26 18:50:52
Ahh comment only made into last cl for these. Basi
| |
| 57 bool fInputCoverageIsUsed; | |
| 58 | |
| 59 SkAutoSTArray<4, GrVertexAttrib> fOptVA; | |
| 60 | |
| 61 typedef GrRODrawState INHERITED; | |
| 62 }; | |
| 63 | |
| 64 #endif | |
| OLD | NEW |