bool GrDrawAtlasBatch::onCombineIfPossible(GrBatch* t) { if (!this->pipeline()->isEqual(*t->pipeline())) { return false; } GrDrawAtlasBatch* that = t->cast<GrDrawAtlasBatch>(); // We currently use a uniform viewmatrix for this batch if (!this->viewMatrix().cheapEqualTo(that->viewMatrix())) { return false; } if (this->hasColors() != that->hasColors()) { return false; } if (!this->hasColors() && this->color() != that->color()) { return false; } if (this->color() != that->color()) { fColor = GrColor_ILLEGAL; } fGeoData.push_back_n(that->geoData()->count(), that->geoData()->begin()); fVertexCount += that->vertexCount(); this->joinBounds(that->bounds()); return true; }
bool GrDrawAtlasBatch::onCombineIfPossible(GrBatch* t, const GrCaps& caps) { GrDrawAtlasBatch* that = t->cast<GrDrawAtlasBatch>(); if (!GrPipeline::CanCombine(*this->pipeline(), this->bounds(), *that->pipeline(), that->bounds(), caps)) { return false; } // We currently use a uniform viewmatrix for this batch if (!this->viewMatrix().cheapEqualTo(that->viewMatrix())) { return false; } if (this->hasColors() != that->hasColors()) { return false; } if (!this->hasColors() && this->color() != that->color()) { return false; } if (this->color() != that->color()) { fColor = GrColor_ILLEGAL; } fGeoData.push_back_n(that->fGeoData.count(), that->fGeoData.begin()); fQuadCount += that->quadCount(); this->joinBounds(*that); return true; }