| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "GrInOrderDrawBuffer.h" | 8 #include "GrInOrderDrawBuffer.h" |
| 9 | 9 |
| 10 #include "GrBufferAllocPool.h" | 10 #include "GrBufferAllocPool.h" |
| (...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 578 } | 578 } |
| 579 | 579 |
| 580 void GrInOrderDrawBuffer::ClearStencilClip::execute(GrClipTarget* gpu) { | 580 void GrInOrderDrawBuffer::ClearStencilClip::execute(GrClipTarget* gpu) { |
| 581 gpu->clearStencilClip(fRect, fInsideClip, this->renderTarget()); | 581 gpu->clearStencilClip(fRect, fInsideClip, this->renderTarget()); |
| 582 } | 582 } |
| 583 | 583 |
| 584 void GrInOrderDrawBuffer::CopySurface::execute(GrClipTarget* gpu) { | 584 void GrInOrderDrawBuffer::CopySurface::execute(GrClipTarget* gpu) { |
| 585 gpu->copySurface(this->dst(), this->src(), fSrcRect, fDstPoint); | 585 gpu->copySurface(this->dst(), this->src(), fSrcRect, fDstPoint); |
| 586 } | 586 } |
| 587 | 587 |
| 588 bool GrInOrderDrawBuffer::onCopySurface(GrSurface* dst, | 588 bool GrInOrderDrawBuffer::copySurface(GrSurface* dst, |
| 589 GrSurface* src, | 589 GrSurface* src, |
| 590 const SkIRect& srcRect, | 590 const SkIRect& srcRect, |
| 591 const SkIPoint& dstPoint) { | 591 const SkIPoint& dstPoint) { |
| 592 if (fDstGpu->canCopySurface(dst, src, srcRect, dstPoint)) { | 592 if (fDstGpu->canCopySurface(dst, src, srcRect, dstPoint)) { |
| 593 CopySurface* cs = GrNEW_APPEND_TO_RECORDER(fCmdBuffer, CopySurface, (dst
, src)); | 593 CopySurface* cs = GrNEW_APPEND_TO_RECORDER(fCmdBuffer, CopySurface, (dst
, src)); |
| 594 cs->fSrcRect = srcRect; | 594 cs->fSrcRect = srcRect; |
| 595 cs->fDstPoint = dstPoint; | 595 cs->fDstPoint = dstPoint; |
| 596 this->recordTraceMarkersIfNecessary(); | 596 this->recordTraceMarkersIfNecessary(); |
| 597 return true; | 597 return true; |
| 598 } else if (GrDrawTarget::canCopySurface(dst, src, srcRect, dstPoint)) { |
| 599 GrDrawTarget::copySurface(dst, src, srcRect, dstPoint); |
| 600 return true; |
| 598 } else { | 601 } else { |
| 599 return false; | 602 return false; |
| 600 } | 603 } |
| 601 } | 604 } |
| 602 | 605 |
| 603 bool GrInOrderDrawBuffer::onCanCopySurface(GrSurface* dst, | 606 bool GrInOrderDrawBuffer::canCopySurface(GrSurface* dst, |
| 604 GrSurface* src, | 607 GrSurface* src, |
| 605 const SkIRect& srcRect, | 608 const SkIRect& srcRect, |
| 606 const SkIPoint& dstPoint) { | 609 const SkIPoint& dstPoint) { |
| 607 return fDstGpu->canCopySurface(dst, src, srcRect, dstPoint); | 610 return fDstGpu->canCopySurface(dst, src, srcRect, dstPoint) || |
| 611 GrDrawTarget::canCopySurface(dst, src, srcRect, dstPoint); |
| 608 } | 612 } |
| 609 | 613 |
| 610 void GrInOrderDrawBuffer::initCopySurfaceDstDesc(const GrSurface* src, GrSurface
Desc* desc) { | 614 void GrInOrderDrawBuffer::initCopySurfaceDstDesc(const GrSurface* src, GrSurface
Desc* desc) { |
| 611 fDstGpu->initCopySurfaceDstDesc(src, desc); | 615 fDstGpu->initCopySurfaceDstDesc(src, desc); |
| 612 } | 616 } |
| 613 | 617 |
| 614 void GrInOrderDrawBuffer::willReserveVertexAndIndexSpace(int vertexCount, | 618 void GrInOrderDrawBuffer::willReserveVertexAndIndexSpace(int vertexCount, |
| 615 int indexCount) { | 619 int indexCount) { |
| 616 // We use geometryHints() to know whether to flush the draw buffer. We | 620 // We use geometryHints() to know whether to flush the draw buffer. We |
| 617 // can't flush if we are inside an unbalanced pushGeometrySource. | 621 // can't flush if we are inside an unbalanced pushGeometrySource. |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 859 fCmdBuffer.back().fType = add_trace_bit(fCmdBuffer.back().fType); | 863 fCmdBuffer.back().fType = add_trace_bit(fCmdBuffer.back().fType); |
| 860 fGpuCmdMarkers.push_back(activeTraceMarkers); | 864 fGpuCmdMarkers.push_back(activeTraceMarkers); |
| 861 } | 865 } |
| 862 } | 866 } |
| 863 | 867 |
| 864 void GrInOrderDrawBuffer::clipWillBeSet(const GrClipData* newClipData) { | 868 void GrInOrderDrawBuffer::clipWillBeSet(const GrClipData* newClipData) { |
| 865 INHERITED::clipWillBeSet(newClipData); | 869 INHERITED::clipWillBeSet(newClipData); |
| 866 fClipSet = true; | 870 fClipSet = true; |
| 867 fClipProxyState = kUnknown_ClipProxyState; | 871 fClipProxyState = kUnknown_ClipProxyState; |
| 868 } | 872 } |
| OLD | NEW |