/* * Copyright 2015 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "GrDrawBatch.h" GrDrawBatch::GrDrawBatch(uint32_t classID) : INHERITED(classID), fPipelineInstalled(false) { } GrDrawBatch::~GrDrawBatch() { if (fPipelineInstalled) { this->pipeline()->~GrPipeline(); } } void GrDrawBatch::getPipelineOptimizations(GrPipelineOptimizations* opt) const { GrInitInvariantOutput color; GrInitInvariantOutput coverage; this->computePipelineOptimizations(&color, &coverage, &opt->fOverrides); opt->fColorPOI.initUsingInvariantOutput(color); opt->fCoveragePOI.initUsingInvariantOutput(coverage); } bool GrDrawBatch::installPipeline(const GrPipeline::CreateArgs& args) { GrXPOverridesForBatch overrides; void* location = fPipelineStorage.get(); if (!GrPipeline::CreateAt(location, args, &overrides)) { return false; } fPipelineInstalled = true; this->initBatchTracker(overrides); return true; }