Add defines to enable or disable specific renderers.

BUG=angle:559

Change-Id: I88c168205b142701ec843aa394c82c3a5857ed0d
Reviewed-on: https://chromium-review.googlesource.com/185569
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libGLESv2/renderer/Renderer.cpp b/src/libGLESv2/renderer/Renderer.cpp
index 78c4b2d..d24e90d 100644
--- a/src/libGLESv2/renderer/Renderer.cpp
+++ b/src/libGLESv2/renderer/Renderer.cpp
@@ -11,14 +11,20 @@
 #include "libGLESv2/main.h"
 #include "libGLESv2/Program.h"
 #include "libGLESv2/renderer/Renderer.h"
-#include "libGLESv2/renderer/d3d9/Renderer9.h"
-#include "libGLESv2/renderer/d3d11/Renderer11.h"
 #include "common/utilities.h"
 #include "third_party/trace_event/trace_event.h"
 
-#if !defined(ANGLE_ENABLE_D3D11)
+#if defined (ANGLE_ENABLE_D3D9)
+#include "libGLESv2/renderer/d3d9/Renderer9.h"
+#endif // ANGLE_ENABLE_D3D9
+
+#if defined (ANGLE_ENABLE_D3D11)
+#include "libGLESv2/renderer/d3d11/Renderer11.h"
+#endif // ANGLE_ENABLE_D3D11
+
+#if !defined(ANGLE_DEFAULT_D3D11)
 // Enables use of the Direct3D 11 API for a default display, when available
-#define ANGLE_ENABLE_D3D11 1
+#define ANGLE_DEFAULT_D3D11 1
 #endif
 
 namespace rx
@@ -36,45 +42,39 @@
 
 rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayType displayId)
 {
-    rx::Renderer *renderer = NULL;
-    EGLint status = EGL_BAD_ALLOC;
-    
-    if (ANGLE_ENABLE_D3D11 ||
+#if defined(ANGLE_ENABLE_D3D11)
+    if (ANGLE_DEFAULT_D3D11 ||
         displayId == EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE ||
         displayId == EGL_D3D11_ONLY_DISPLAY_ANGLE)
     {
-        renderer = new rx::Renderer11(display, hDc);
-    
-        if (renderer)
-        {
-            status = renderer->initialize();
-        }
-
-        if (status == EGL_SUCCESS)
+        rx::Renderer11 *renderer = new rx::Renderer11(display, hDc);
+        if (renderer->initialize() == EGL_SUCCESS)
         {
             return renderer;
         }
-        else if (displayId == EGL_D3D11_ONLY_DISPLAY_ANGLE)
+        else
         {
-            return NULL;
+            // Failed to create a D3D11 renderer, try D3D9
+            SafeDelete(renderer);
         }
-
-        // Failed to create a D3D11 renderer, try creating a D3D9 renderer
-        delete renderer;
     }
+#endif
 
-    bool softwareDevice = (displayId == EGL_SOFTWARE_DISPLAY_ANGLE);
-    renderer = new rx::Renderer9(display, hDc, softwareDevice);
-    
-    if (renderer)
+#if defined(ANGLE_ENABLE_D3D9)
+    if (displayId != EGL_D3D11_ONLY_DISPLAY_ANGLE)
     {
-        status = renderer->initialize();
+        bool softwareDevice = (displayId == EGL_SOFTWARE_DISPLAY_ANGLE);
+        rx::Renderer9 *renderer = new rx::Renderer9(display, hDc, softwareDevice);
+        if (renderer->initialize() == EGL_SUCCESS)
+        {
+            return renderer;
+        }
+        else
+        {
+            SafeDelete(renderer);
+        }
     }
-
-    if (status == EGL_SUCCESS)
-    {
-        return renderer;
-    }
+#endif
 
     return NULL;
 }
@@ -84,4 +84,4 @@
     delete renderer;
 }
 
-}
\ No newline at end of file
+}