| Index: src/gpu/GrProgramDesc.h
|
| diff --git a/src/gpu/GrProgramDesc.h b/src/gpu/GrProgramDesc.h
|
| index 66e0e06b8c88ed629c1ba7eeb06c795923895ce7..e07e116733b8a5313402d00fa0c7595c481fcef3 100644
|
| --- a/src/gpu/GrProgramDesc.h
|
| +++ b/src/gpu/GrProgramDesc.h
|
| @@ -55,6 +55,9 @@
|
| }
|
|
|
| struct KeyHeader {
|
| + uint8_t fDstReadKey; // set by GrGLShaderBuilder if there
|
| + // are effects that must read the dst.
|
| + // Otherwise, 0.
|
| uint8_t fFragPosKey; // set by GrGLShaderBuilder if there are
|
| // effects that read the fragment position.
|
| // Otherwise, 0.
|
| @@ -75,6 +78,20 @@
|
|
|
| // This should really only be used internally, base classes should return their own headers
|
| const KeyHeader& header() const { return *this->atOffset<KeyHeader, kHeaderOffset>(); }
|
| +
|
| + // A struct to communicate descriptor information to the program descriptor builder
|
| + struct DescInfo {
|
| + bool operator==(const DescInfo& that) const {
|
| + return fReadsDst == that.fReadsDst &&
|
| + fReadsFragPosition == that.fReadsFragPosition;
|
| + }
|
| + bool operator!=(const DescInfo& that) const { return !(*this == that); };
|
| +
|
| + // These flags give aggregated info on the processor stages that are used when building
|
| + // programs.
|
| + bool fReadsDst;
|
| + bool fReadsFragPosition;
|
| + };
|
|
|
| private:
|
| template<typename T, size_t OFFSET> T* atOffset() {
|
|
|