Initial import from TransGaming

git-svn-id: https://angleproject.googlecode.com/svn/trunk@2 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/libGLESv2/Framebuffer.h b/libGLESv2/Framebuffer.h
new file mode 100644
index 0000000..fd90ae1
--- /dev/null
+++ b/libGLESv2/Framebuffer.h
@@ -0,0 +1,62 @@
+//
+// Copyright (c) 2002-2010 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.
+//
+
+// Framebuffer.h: Defines the gl::Framebuffer class. Implements GL framebuffer
+// objects and related functionality. [OpenGL ES 2.0.24] section 4.4 page 105.
+
+#ifndef LIBGLESV2_FRAMEBUFFER_H_
+#define LIBGLESV2_FRAMEBUFFER_H_
+
+#define GL_APICALL
+#include <GLES2/gl2.h>
+#include <d3d9.h>
+
+#include "angleutils.h"
+
+namespace gl
+{
+class Colorbuffer;
+class Depthbuffer;
+class Stencilbuffer;
+
+class Framebuffer
+{
+  public:
+    Framebuffer();
+
+    ~Framebuffer();
+
+    void setColorbuffer(GLenum type, GLuint colorbuffer);
+    void setDepthbuffer(GLenum type, GLuint depthbuffer);
+    void setStencilbuffer(GLenum type, GLuint stencilbuffer);
+
+    void detachTexture(GLuint texture);
+    void detachRenderbuffer(GLuint renderbuffer);
+
+    IDirect3DSurface9 *getRenderTarget();
+    IDirect3DSurface9 *getDepthStencil();
+
+    Colorbuffer *getColorbuffer();
+    Depthbuffer *getDepthbuffer();
+    Stencilbuffer *getStencilbuffer();
+
+    GLenum completeness();
+
+  private:
+    DISALLOW_COPY_AND_ASSIGN(Framebuffer);
+
+    GLuint mColorbufferHandle;
+    GLenum mColorbufferType;
+
+    GLuint mDepthbufferHandle;
+    GLenum mDepthbufferType;
+
+    GLuint mStencilbufferHandle;
+    GLenum mStencilbufferType;
+};
+}
+
+#endif   // LIBGLESV2_FRAMEBUFFER_H_