|  | /* | 
|  | * Copyright 2016 Google Inc. | 
|  | * | 
|  | * Use of this source code is governed by a BSD-style license that can be | 
|  | * found in the LICENSE file. | 
|  | */ | 
|  |  | 
|  | #include "GrGpuCommandBuffer.h" | 
|  |  | 
|  | #include "GrCaps.h" | 
|  | #include "GrGpu.h" | 
|  | #include "GrPrimitiveProcessor.h" | 
|  | #include "GrRenderTarget.h" | 
|  | #include "SkRect.h" | 
|  |  | 
|  | void GrGpuCommandBuffer::submit(const SkIRect& bounds) { | 
|  | this->gpu()->handleDirtyContext(); | 
|  | this->onSubmit(bounds); | 
|  | } | 
|  |  | 
|  | void GrGpuCommandBuffer::clear(const SkIRect& rect, GrColor color, GrRenderTarget* renderTarget) { | 
|  | SkASSERT(renderTarget); | 
|  | SkASSERT(SkIRect::MakeWH(renderTarget->width(), renderTarget->height()).contains(rect)); | 
|  | this->onClear(renderTarget, rect, color); | 
|  | } | 
|  |  | 
|  | void GrGpuCommandBuffer::clearStencilClip(const SkIRect& rect, | 
|  | bool insideClip, | 
|  | GrRenderTarget* renderTarget) { | 
|  | SkASSERT(renderTarget); | 
|  | this->onClearStencilClip(renderTarget, rect, insideClip); | 
|  | } | 
|  |  | 
|  |  | 
|  | bool GrGpuCommandBuffer::draw(const GrPipeline& pipeline, | 
|  | const GrPrimitiveProcessor& primProc, | 
|  | const GrMesh* mesh, | 
|  | int meshCount) { | 
|  | if (primProc.numAttribs() > this->gpu()->caps()->maxVertexAttributes()) { | 
|  | this->gpu()->stats()->incNumFailedDraws(); | 
|  | return false; | 
|  | } | 
|  | this->onDraw(pipeline, primProc, mesh, meshCount); | 
|  | return true; | 
|  | } | 
|  |  |