Fix bugs with drawbuffer state.

 * IsAttachmentEnabled was checking the wrong draw buffer state.  Instead
   of checking that drawbuffer[colorAttachment] is in use, it should have
   been scanning for a drawbuffer state that points to colorAttachment.
 * Allow for maxDrawBuffer != maxColorAttachments.  Tested by the GL
   backend on some systems that don't have the draw buffers extension.

Fixed by updating the helpers and adding a new getDrawBuffer helper.

BUG=angleproject:1121

Change-Id: Idd1b0a9ec4a3f944d332c708364408bf5d59e1fd
Reviewed-on: https://chromium-review.googlesource.com/292740
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tryjob-Request: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/renderer/d3d/FramebufferD3D.cpp b/src/libANGLE/renderer/d3d/FramebufferD3D.cpp
index 2f89ca1..82967ac 100644
--- a/src/libANGLE/renderer/d3d/FramebufferD3D.cpp
+++ b/src/libANGLE/renderer/d3d/FramebufferD3D.cpp
@@ -54,7 +54,7 @@
     const gl::Framebuffer *framebufferObject = state.getDrawFramebuffer();
     if (mask & GL_COLOR_BUFFER_BIT)
     {
-        if (framebufferObject->hasEnabledColorAttachment())
+        if (framebufferObject->hasEnabledDrawBuffer())
         {
             for (unsigned int i = 0; i < ArraySize(clearParams.clearColor); i++)
             {