Implement GL_OES_surfaceless_context

BUG=angleproject:1651

Change-Id: I733ccedad7c7424cdb70e21ef8d48b2a15ccdfd7
Reviewed-on: https://chromium-review.googlesource.com/434762
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/libANGLE/Framebuffer.h b/src/libANGLE/Framebuffer.h
index ccab31d..478ce08 100644
--- a/src/libANGLE/Framebuffer.h
+++ b/src/libANGLE/Framebuffer.h
@@ -99,8 +99,13 @@
 class Framebuffer final : public LabeledObject, public angle::SignalReceiver
 {
   public:
+    // Constructor to build application-defined framebuffers
     Framebuffer(const Caps &caps, rx::GLImplFactory *factory, GLuint id);
+    // Constructor to build default framebuffers for a surface
     Framebuffer(rx::SurfaceImpl *surface);
+    // Constructor to build a fake default framebuffer when surfaceless
+    Framebuffer(rx::GLImplFactory *factory);
+
     virtual ~Framebuffer();
 
     void setLabel(const std::string &label) override;