Support separate read and draw surfaces in eglMakeCurrent

Update ANGLE's default framebuffer implementation to support reading
and writing to different surfaces within the same framebuffer.

Bug: angleproject:2620
Test: EGLSurfaceTest[3]
Change-Id: I4b1ea04ca87a751f80cf190bf3adec148fc4fce3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1744746
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/validationES2.cpp b/src/libANGLE/validationES2.cpp
index 234cf84..aaaf198 100644
--- a/src/libANGLE/validationES2.cpp
+++ b/src/libANGLE/validationES2.cpp
@@ -2071,7 +2071,7 @@
     {
         case GL_FRAMEBUFFER:
             defaultFramebuffer =
-                (context->getState().getTargetFramebuffer(GL_FRAMEBUFFER)->id() == 0);
+                (context->getState().getTargetFramebuffer(GL_FRAMEBUFFER)->isDefault());
             break;
         default:
             context->validationError(GL_INVALID_ENUM, kInvalidFramebufferTarget);