Chromium Code Reviews| Index: src/gpu/gl/GrGLGpu.h |
| diff --git a/src/gpu/gl/GrGLGpu.h b/src/gpu/gl/GrGLGpu.h |
| index c5103ebb1159bde79bdb1c4c8294bdccc8ae713a..3eea6e9ee61d1b7333edaee10c4513b9cf3fc4fe 100644 |
| --- a/src/gpu/gl/GrGLGpu.h |
| +++ b/src/gpu/gl/GrGLGpu.h |
| @@ -283,7 +283,15 @@ private: |
| bool createRenderTargetObjects(const GrSurfaceDesc&, bool budgeted, GrGLuint texID, |
| GrGLRenderTarget::IDDesc*); |
| - GrGLuint bindSurfaceAsFBO(GrSurface* surface, GrGLenum fboTarget, GrGLIRect* viewport); |
| + enum TempFBOTarget { |
| + kSrc_TempFBOTarget, |
| + kDst_TempFBOTarget |
| + }; |
| + |
| + GrGLuint bindSurfaceAsFBO(GrSurface* surface, GrGLenum fboTarget, GrGLIRect* viewport, |
| + TempFBOTarget tempFBOTarget); |
| + |
| + void unbindTextureFromFBO(GrGLenum fboTarget); |
| GrGLContext fGLContext; |
| @@ -303,6 +311,24 @@ private: |
| kUnknown_TriState |
| }; |
| + // Temp FBOs |
| + struct TempFBO { |
|
bsalomon
2015/02/02 21:33:01
Maybe it'd be better to just have explicit calls i
|
| + explicit TempFBO(GrGLGpu* gpu) : fID(0), fGpu(gpu) {} |
| + ~TempFBO() { |
| + if (0 != fID) { |
| + GR_GL_CALL(fGpu->glInterface(), DeleteFramebuffers(1, &fID)); |
| + } |
| + } |
| + GrGLuint fID; |
| + GrGLGpu* fGpu; |
| + |
| + void reset() { |
| + fID = 0; |
| + } |
| + }; |
| + TempFBO fTempSrcFBO; |
| + TempFBO fTempDstFBO; |
| + |
| // last scissor / viewport scissor state seen by the GL. |
| struct { |
| TriState fEnabled; |