Fix framebuffer attachment parameter query error.

OpenGL ES 2.0 expects GL_INVALID_OPERATION when querying default framebuffer
attachment parameters.

Change-Id: Ie0e0c35ad835e06b16c7aaaea48f7ec7eb64c663
Reviewed-on: https://swiftshader-review.googlesource.com/5124
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/libGLESv2/libGLESv2.cpp b/src/OpenGL/libGLESv2/libGLESv2.cpp
index ec6a512..28838c8 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv2.cpp
@@ -2730,30 +2730,33 @@
 

 	if(context)

 	{

-		if(target != GL_FRAMEBUFFER && target != GL_DRAW_FRAMEBUFFER_ANGLE && target != GL_READ_FRAMEBUFFER_ANGLE)

+		if(target != GL_FRAMEBUFFER && target != GL_DRAW_FRAMEBUFFER && target != GL_READ_FRAMEBUFFER)

 		{

 			return error(GL_INVALID_ENUM);

 		}

 

 		GLint clientVersion = context->getClientVersion();

 

-		es2::Framebuffer *framebuffer = NULL;

-		if(target == GL_READ_FRAMEBUFFER_ANGLE)

+		es2::Framebuffer *framebuffer = nullptr;

+		if(target == GL_READ_FRAMEBUFFER)

 		{

 			if(context->getReadFramebufferName() == 0)

 			{

-				switch(attachment)

+				if(clientVersion < 3)

 				{

-				case GL_BACK:

-				case GL_DEPTH:

-				case GL_STENCIL:

-					if(clientVersion >= 3)

+					return error(GL_INVALID_OPERATION);

+				}

+				else

+				{

+					switch(attachment)

 					{

+					case GL_BACK:

+					case GL_DEPTH:

+					case GL_STENCIL:

 						break;

+					default:

+						return error(GL_INVALID_ENUM);

 					}

-					// fall through

-				default:

-					return error(GL_INVALID_ENUM);

 				}

 			}

 

@@ -2763,18 +2766,21 @@
 		{

 			if(context->getDrawFramebufferName() == 0)

 			{

-				switch(attachment)

+				if(clientVersion < 3)

 				{

-				case GL_BACK:

-				case GL_DEPTH:

-				case GL_STENCIL:

-					if(clientVersion >= 3)

+					return error(GL_INVALID_OPERATION);

+				}

+				else

+				{

+					switch(attachment)

 					{

+					case GL_BACK:

+					case GL_DEPTH:

+					case GL_STENCIL:

 						break;

+					default:

+						return error(GL_INVALID_ENUM);

 					}

-					// fall through

-				default:

-					return error(GL_INVALID_ENUM);

 				}

 			}