Use a Caps structure to store extension and texture format support.
Removes support for fallbacks in D3D9 texture formats. The fallback
formats did not work properly anyways.
BUG=angle:658
Change-Id: Idfa5183bf71fd8ebf4608f940f9d93177b9eff08
Reviewed-on: https://chromium-review.googlesource.com/200813
Tested-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libGLESv2/validationES.cpp b/src/libGLESv2/validationES.cpp
index e44a0f7..46f2321 100644
--- a/src/libGLESv2/validationES.cpp
+++ b/src/libGLESv2/validationES.cpp
@@ -1,6 +1,6 @@
#include "precompiled.h"
//
-// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Copyright (c) 2013-2014 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
@@ -111,7 +111,7 @@
case GL_PIXEL_PACK_BUFFER:
case GL_PIXEL_UNPACK_BUFFER:
- return context->supportsPBOs();
+ return context->getCaps().extensions.pixelBufferObject;
case GL_COPY_READ_BUFFER:
case GL_COPY_WRITE_BUFFER:
@@ -173,7 +173,7 @@
return false;
}
- if (!context->supportsNonPower2Texture() && (level != 0 || !gl::isPow2(width) || !gl::isPow2(height) || !gl::isPow2(depth)))
+ if (!context->getCaps().extensions.textureNPOT && (level != 0 || !gl::isPow2(width) || !gl::isPow2(height) || !gl::isPow2(depth)))
{
return false;
}
@@ -261,7 +261,8 @@
return gl::error(GL_INVALID_VALUE, false);
}
- if (!gl::IsValidInternalFormat(internalformat, context))
+ const gl::Caps &caps = context->getCaps();
+ if (!gl::IsValidInternalFormat(internalformat, caps.extensions, context->getClientVersion()))
{
return gl::error(GL_INVALID_ENUM, false);
}
@@ -281,9 +282,8 @@
return gl::error(GL_INVALID_OPERATION, false);
}
- if (!gl::IsColorRenderingSupported(internalformat, context) &&
- !gl::IsDepthRenderingSupported(internalformat, context) &&
- !gl::IsStencilRenderingSupported(internalformat, context))
+ const TextureCaps &formatCaps = caps.textureCaps.get(internalformat);
+ if (!formatCaps.colorRendering && !formatCaps.depthRendering && !formatCaps.stencilRendering)
{
return gl::error(GL_INVALID_ENUM, false);
}
@@ -728,7 +728,7 @@
break;
case GL_TEXTURE_MAX_ANISOTROPY_EXT:
- if (!context->supportsTextureFilterAnisotropy())
+ if (!context->getCaps().extensions.textureFilterAnisotropic)
{
return gl::error(GL_INVALID_ENUM, false);
}
@@ -1272,7 +1272,7 @@
return gl::error(GL_INVALID_VALUE, false);
}
- if (!IsValidInternalFormat(internalformat, context))
+ if (!IsValidInternalFormat(internalformat, context->getCaps().extensions, context->getClientVersion()))
{
return gl::error(GL_INVALID_ENUM, false);
}