Index: src/gpu/gl/GrGLTextureRenderTarget.h |
diff --git a/src/gpu/gl/GrGLTextureRenderTarget.h b/src/gpu/gl/GrGLTextureRenderTarget.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..55da28f6b8240868b7092eb61218a50538814739 |
--- /dev/null |
+++ b/src/gpu/gl/GrGLTextureRenderTarget.h |
@@ -0,0 +1,58 @@ |
+/* |
+ * Copyright 2014 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+ |
+#ifndef GrGLTextureRenderTarget_DEFINED |
+#define GrGLTextureRenderTarget_DEFINED |
+ |
+#include "GrGLTexture.h" |
+#include "GrGLRenderTarget.h" |
+ |
+class GrGpuGL; |
+ |
+#ifdef SK_BUILD_FOR_WIN |
+// Windows gives bogus warnings about inheriting asTexture/asRenderTarget via dominance. |
+#pragma warning(push) |
+#pragma warning(disable: 4250) |
+#endif |
+ |
+class GrGLTextureRenderTarget : public GrGLTexture, public GrGLRenderTarget { |
+public: |
+ // We're virtually derived from GrSurface (via both GrGLTexture and GrGLRenderTarget) so its |
+ // constructor must be explicitly called. |
+ GrGLTextureRenderTarget(GrGpuGL* gpu, |
+ const GrSurfaceDesc& desc, |
+ const GrGLTexture::IDDesc& texIDDesc, |
+ const GrGLRenderTarget::IDDesc& rtIDDesc) |
+ : GrSurface(gpu, texIDDesc.fIsWrapped, desc) |
+ , GrGLTexture(gpu, desc, texIDDesc, GrGLTexture::kDerived) |
+ , GrGLRenderTarget(gpu, desc, rtIDDesc, GrGLRenderTarget::kDerived) { |
+ this->registerWithCache(); |
+ } |
+ |
+ virtual ~GrGLTextureRenderTarget() { this->release(); } |
+ |
+ // GrGLRenderTarget accounts for the texture's memory and any MSAA renderbuffer's memory. |
+ virtual size_t gpuMemorySize() const SK_OVERRIDE { return GrGLRenderTarget::gpuMemorySize(); } |
+ |
+protected: |
+ virtual void onAbandon() SK_OVERRIDE { |
+ GrGLRenderTarget::onAbandon(); |
+ GrGLTexture::onAbandon(); |
+ } |
+ |
+ virtual void onRelease() SK_OVERRIDE { |
+ GrGLRenderTarget::onRelease(); |
+ GrGLTexture::onRelease(); |
+ } |
+}; |
+ |
+#ifdef SK_BUILD_FOR_WIN |
+#pragma warning(pop) |
+#endif |
+ |
+#endif |