| 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 "GrGLGpu.h" | 8 #include "GrGLGpu.h" |
| 9 #include "GrGLBuffer.h" | 9 #include "GrGLBuffer.h" |
| 10 #include "GrGLGLSL.h" | 10 #include "GrGLGLSL.h" |
| 11 #include "GrGLGpuCommandBuffer.h" |
| 11 #include "GrGLStencilAttachment.h" | 12 #include "GrGLStencilAttachment.h" |
| 12 #include "GrGLTextureRenderTarget.h" | 13 #include "GrGLTextureRenderTarget.h" |
| 13 #include "GrGpuResourcePriv.h" | 14 #include "GrGpuResourcePriv.h" |
| 14 #include "GrMesh.h" | 15 #include "GrMesh.h" |
| 15 #include "GrPipeline.h" | 16 #include "GrPipeline.h" |
| 16 #include "GrPLSGeometryProcessor.h" | 17 #include "GrPLSGeometryProcessor.h" |
| 17 #include "GrRenderTargetPriv.h" | 18 #include "GrRenderTargetPriv.h" |
| 18 #include "GrSurfacePriv.h" | 19 #include "GrSurfacePriv.h" |
| 19 #include "GrTexturePriv.h" | 20 #include "GrTexturePriv.h" |
| 20 #include "GrTypes.h" | 21 #include "GrTypes.h" |
| (...skipping 2595 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2616 if (!flipY) { | 2617 if (!flipY) { |
| 2617 dst += rowBytes; | 2618 dst += rowBytes; |
| 2618 } else { | 2619 } else { |
| 2619 dst -= rowBytes; | 2620 dst -= rowBytes; |
| 2620 } | 2621 } |
| 2621 } | 2622 } |
| 2622 } | 2623 } |
| 2623 return true; | 2624 return true; |
| 2624 } | 2625 } |
| 2625 | 2626 |
| 2627 GrGpuCommandBuffer* GrGLGpu::createCommandBuffer(const GrRenderTarget& target, |
| 2628 GrGpuCommandBuffer::LoadAndStor
eOp colorOp, |
| 2629 GrColor colorClear, |
| 2630 GrGpuCommandBuffer::LoadAndStor
eOp stencilOp, |
| 2631 GrColor stencilClear) { |
| 2632 return new GrGLGpuCommandBuffer(this); |
| 2633 } |
| 2634 |
| 2626 void GrGLGpu::finishDrawTarget() { | 2635 void GrGLGpu::finishDrawTarget() { |
| 2627 if (fPLSHasBeenUsed) { | 2636 if (fPLSHasBeenUsed) { |
| 2628 /* There is an ARM driver bug where if we use PLS, and then draw a frame
which does not | 2637 /* There is an ARM driver bug where if we use PLS, and then draw a frame
which does not |
| 2629 * use PLS, it leaves garbage all over the place. As a workaround, we us
e PLS in a | 2638 * use PLS, it leaves garbage all over the place. As a workaround, we us
e PLS in a |
| 2630 * trivial way every frame. And since we use it every frame, there's nev
er a point at which | 2639 * trivial way every frame. And since we use it every frame, there's nev
er a point at which |
| 2631 * it becomes safe to stop using this workaround once we start. | 2640 * it becomes safe to stop using this workaround once we start. |
| 2632 */ | 2641 */ |
| 2633 this->disableScissor(); | 2642 this->disableScissor(); |
| 2634 // using PLS in the presence of MSAA results in GL_INVALID_OPERATION | 2643 // using PLS in the presence of MSAA results in GL_INVALID_OPERATION |
| 2635 this->flushHWAAState(nullptr, false, false); | 2644 this->flushHWAAState(nullptr, false, false); |
| (...skipping 1994 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4630 if (GR_GL_TEXTURE_EXTERNAL == glTexture->target() || | 4639 if (GR_GL_TEXTURE_EXTERNAL == glTexture->target() || |
| 4631 GR_GL_TEXTURE_RECTANGLE == glTexture->target()) { | 4640 GR_GL_TEXTURE_RECTANGLE == glTexture->target()) { |
| 4632 copyParams->fFilter = GrTextureParams::kNone_FilterMode; | 4641 copyParams->fFilter = GrTextureParams::kNone_FilterMode; |
| 4633 copyParams->fWidth = texture->width(); | 4642 copyParams->fWidth = texture->width(); |
| 4634 copyParams->fHeight = texture->height(); | 4643 copyParams->fHeight = texture->height(); |
| 4635 return true; | 4644 return true; |
| 4636 } | 4645 } |
| 4637 } | 4646 } |
| 4638 return false; | 4647 return false; |
| 4639 } | 4648 } |
| OLD | NEW |