Add support for copying from BGRA formats in CopyTexSubImage*.

This is necessary for copying from the offscreen texture, which we keep in BGRA to align with Chrome's D3D9 format.

TRAC #23501

Signed-off-by: Geoff Lang
Signed-off-by: Shannon Woods
Authored-by: Jamie Madill
diff --git a/src/libGLESv2/formatutils.cpp b/src/libGLESv2/formatutils.cpp
index b906933..39ead68 100644
--- a/src/libGLESv2/formatutils.cpp
+++ b/src/libGLESv2/formatutils.cpp
@@ -991,6 +991,15 @@
     set.insert(CopyConversion(GL_RGB,             GL_RGBA));
     set.insert(CopyConversion(GL_RGBA,            GL_RGBA));
 
+    // Necessary for ANGLE back-buffers
+    set.insert(CopyConversion(GL_ALPHA,           GL_BGRA_EXT));
+    set.insert(CopyConversion(GL_LUMINANCE,       GL_BGRA_EXT));
+    set.insert(CopyConversion(GL_LUMINANCE_ALPHA, GL_BGRA_EXT));
+    set.insert(CopyConversion(GL_RED,             GL_BGRA_EXT));
+    set.insert(CopyConversion(GL_RG,              GL_BGRA_EXT));
+    set.insert(CopyConversion(GL_RGB,             GL_BGRA_EXT));
+    set.insert(CopyConversion(GL_RGBA,            GL_BGRA_EXT));
+
     set.insert(CopyConversion(GL_RED_INTEGER,     GL_RED_INTEGER));
     set.insert(CopyConversion(GL_RED_INTEGER,     GL_RG_INTEGER));
     set.insert(CopyConversion(GL_RED_INTEGER,     GL_RGB_INTEGER));