Home | History | Annotate | Download | only in batches
      1 /*
      2  * Copyright 2015 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can be
      5  * found in the LICENSE file.
      6  */
      7 
      8 #include "GrDrawBatch.h"
      9 
     10 GrDrawBatch::GrDrawBatch(uint32_t classID) : INHERITED(classID), fPipelineInstalled(false) { }
     11 
     12 GrDrawBatch::~GrDrawBatch() {
     13     if (fPipelineInstalled) {
     14         this->pipeline()->~GrPipeline();
     15     }
     16 }
     17 
     18 void GrDrawBatch::getPipelineOptimizations(GrPipelineOptimizations* opt) const {
     19     GrInitInvariantOutput color;
     20     GrInitInvariantOutput coverage;
     21     this->computePipelineOptimizations(&color, &coverage, &opt->fOverrides);
     22     opt->fColorPOI.initUsingInvariantOutput(color);
     23     opt->fCoveragePOI.initUsingInvariantOutput(coverage);
     24 }
     25 
     26 bool GrDrawBatch::installPipeline(const GrPipeline::CreateArgs& args) {
     27     GrXPOverridesForBatch overrides;
     28     void* location = fPipelineStorage.get();
     29     if (!GrPipeline::CreateAt(location, args, &overrides)) {
     30         return false;
     31     }
     32     fPipelineInstalled = true;
     33     this->initBatchTracker(overrides);
     34     return true;
     35 }
     36