Create a DefaultAttachment type and an implementation for it.
This allows for dynamically sized default attachments instead of calling
Context::makeCurrent each time the surface changes size.
BUG=angle:824
Change-Id: Ic39c0d7dc4269db53a34c01c4d915cb1a3cfbd08
Reviewed-on: https://chromium-review.googlesource.com/228180
Tested-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libGLESv2/renderer/d3d/FramebufferD3D.cpp b/src/libGLESv2/renderer/d3d/FramebufferD3D.cpp
new file mode 100644
index 0000000..03a3029
--- /dev/null
+++ b/src/libGLESv2/renderer/d3d/FramebufferD3D.cpp
@@ -0,0 +1,62 @@
+//
+// Copyright 2014 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// Framebuffer11.h: Implements the DefaultAttachment11 class.
+
+#include "libGLESv2/renderer/d3d/FramebufferD3D.h"
+#include "libGLESv2/renderer/RenderTarget.h"
+
+namespace rx
+{
+
+DefaultAttachmentD3D::DefaultAttachmentD3D(RenderTarget *renderTarget)
+ : mRenderTarget(renderTarget)
+{
+ ASSERT(mRenderTarget);
+}
+
+DefaultAttachmentD3D::~DefaultAttachmentD3D()
+{
+ SafeDelete(mRenderTarget);
+}
+
+DefaultAttachmentD3D *DefaultAttachmentD3D::makeDefaultAttachmentD3D(DefaultAttachmentImpl* impl)
+{
+ ASSERT(HAS_DYNAMIC_TYPE(DefaultAttachmentD3D*, impl));
+ return static_cast<DefaultAttachmentD3D*>(impl);
+}
+
+GLsizei DefaultAttachmentD3D::getWidth() const
+{
+ return mRenderTarget->getWidth();
+}
+
+GLsizei DefaultAttachmentD3D::getHeight() const
+{
+ return mRenderTarget->getHeight();
+}
+
+GLenum DefaultAttachmentD3D::getInternalFormat() const
+{
+ return mRenderTarget->getInternalFormat();
+}
+
+GLenum DefaultAttachmentD3D::getActualFormat() const
+{
+ return mRenderTarget->getActualFormat();
+}
+
+GLsizei DefaultAttachmentD3D::getSamples() const
+{
+ return mRenderTarget->getSamples();
+}
+
+RenderTarget *DefaultAttachmentD3D::getRenderTarget() const
+{
+ return mRenderTarget;
+}
+
+}