bool GrPathProcessor::canMakeEqual(const GrBatchTracker& m, const GrPrimitiveProcessor& that, const GrBatchTracker& t) const { if (this->classID() != that.classID() || !this->hasSameTextureAccesses(that)) { return false; } const GrPathProcessor& other = that.cast<GrPathProcessor>(); if (!this->viewMatrix().cheapEqualTo(other.viewMatrix())) { return false; } const PathBatchTracker& mine = m.cast<PathBatchTracker>(); const PathBatchTracker& theirs = t.cast<PathBatchTracker>(); if (mine.fColor != theirs.fColor) { return false; } if (mine.fUsesLocalCoords != theirs.fUsesLocalCoords) { return false; } if (mine.fUsesLocalCoords && !this->localMatrix().cheapEqualTo(other.localMatrix())) { return false; } return true; }
bool GrPathProcessor::canMakeEqual(const GrBatchTracker& m, const GrPrimitiveProcessor& that, const GrBatchTracker& t) const { if (this->classID() != that.classID() || !this->hasSameTextureAccesses(that)) { return false; } if (!this->viewMatrix().cheapEqualTo(that.viewMatrix())) { return false; } const PathBatchTracker& mine = m.cast<PathBatchTracker>(); const PathBatchTracker& theirs = t.cast<PathBatchTracker>(); return CanCombineLocalMatrices(*this, mine.fUsesLocalCoords, that, theirs.fUsesLocalCoords) && CanCombineOutput(mine.fInputColorType, mine.fColor, theirs.fInputColorType, theirs.fColor) && CanCombineOutput(mine.fInputCoverageType, 0xff, theirs.fInputCoverageType, 0xff); }