| Index: src/gpu/GrPendingFragmentStage.h
|
| diff --git a/src/gpu/GrPendingFragmentStage.h b/src/gpu/GrPendingFragmentStage.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0bf984ab7d68ced7be7fdc79637ac6201372a822
|
| --- /dev/null
|
| +++ b/src/gpu/GrPendingFragmentStage.h
|
| @@ -0,0 +1,53 @@
|
| +/*
|
| + * Copyright 2014 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#ifndef GrPendingProcessorStage_DEFINED
|
| +#define GrPendingProcessorStage_DEFINED
|
| +
|
| +#include "GrFragmentStage.h"
|
| +#include "GrCoordTransform.h"
|
| +#include "GrFragmentProcessor.h"
|
| +#include "GrPendingProgramElement.h"
|
| +
|
| +/**
|
| + * This a baked variant of GrFragmentStage, as recorded in GrOptDrawState.
|
| + */
|
| +class GrPendingFragmentStage {
|
| +public:
|
| + GrPendingFragmentStage(const GrFragmentStage& stage) : fProc(stage.processor()) {}
|
| +
|
| + GrPendingFragmentStage(const GrPendingFragmentStage& that) { *this = that; }
|
| +
|
| + GrPendingFragmentStage& operator=(const GrPendingFragmentStage& that) {
|
| + fProc.reset(that.fProc.get());
|
| + return *this;
|
| + }
|
| +
|
| + bool operator==(const GrPendingFragmentStage& that) const {
|
| + return this->processor()->isEqual(*that.processor());
|
| + }
|
| +
|
| + bool operator!=(const GrPendingFragmentStage& that) const { return !(*this == that); }
|
| +
|
| + /**
|
| + * For a coord transform on the fragment processor, does it or the coord change matrix (if
|
| + * relevant) contain perspective?
|
| + */
|
| + bool isPerspectiveCoordTransform(int matrixIndex) const {
|
| + const GrCoordTransform& coordTransform = this->processor()->coordTransform(matrixIndex);
|
| + uint32_t type = coordTransform.getMatrix().getType();
|
| + return SkToBool(SkMatrix::kPerspective_Mask & type);
|
| + }
|
| +
|
| + const char* name() const { return fProc->name(); }
|
| +
|
| + const GrFragmentProcessor* processor() const { return fProc.get(); }
|
| +
|
| +protected:
|
| + GrPendingProgramElement<const GrFragmentProcessor> fProc;
|
| +};
|
| +#endif
|
|
|