| /* |
| * 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; |
| } |
| |