Enumerate GL extensions in sorted order

Trac #18320 Sort order is OES, EXT, vendor Signed-off-by: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@767 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent 55d48c74
#define MAJOR_VERSION 0
#define MINOR_VERSION 0
#define BUILD_VERSION 0
#define BUILD_REVISION 766
#define BUILD_REVISION 767
#define STRINGIFY(x) #x
#define MACRO_STRINGIFY(x) STRINGIFY(x)
......
......@@ -3369,68 +3369,76 @@ void Context::setVertexAttrib(GLuint index, const GLfloat *values)
mVertexDataManager->dirtyCurrentValue(index);
}
// keep list sorted in following order
// OES extensions
// EXT extensions
// Vendor extensions
void Context::initExtensionString()
{
mExtensionString += "GL_OES_packed_depth_stencil ";
mExtensionString += "GL_EXT_texture_format_BGRA8888 ";
mExtensionString += "GL_EXT_read_format_bgra ";
mExtensionString += "GL_ANGLE_framebuffer_blit ";
mExtensionString += "GL_OES_rgb8_rgba8 ";
mExtensionString += "GL_OES_standard_derivatives ";
mExtensionString = "";
if (supportsEventQueries())
// OES extensions
if (supports32bitIndices())
{
mExtensionString += "GL_NV_fence ";
mExtensionString += "GL_OES_element_index_uint ";
}
if (supportsDXT1Textures())
{
mExtensionString += "GL_EXT_texture_compression_dxt1 ";
}
mExtensionString += "GL_OES_packed_depth_stencil ";
mExtensionString += "GL_OES_rgb8_rgba8 ";
mExtensionString += "GL_OES_standard_derivatives ";
if (supportsDXT3Textures())
if (supportsHalfFloatTextures())
{
mExtensionString += "GL_ANGLE_texture_compression_dxt3 ";
mExtensionString += "GL_OES_texture_half_float ";
}
if (supportsDXT5Textures())
if (supportsHalfFloatLinearFilter())
{
mExtensionString += "GL_ANGLE_texture_compression_dxt5 ";
mExtensionString += "GL_OES_texture_half_float_linear ";
}
if (supportsFloatTextures())
{
mExtensionString += "GL_OES_texture_float ";
}
if (supportsHalfFloatTextures())
if (supportsFloatLinearFilter())
{
mExtensionString += "GL_OES_texture_half_float ";
mExtensionString += "GL_OES_texture_float_linear ";
}
if (supportsFloatLinearFilter())
if (supportsNonPower2Texture())
{
mExtensionString += "GL_OES_texture_float_linear ";
mExtensionString += "GL_OES_texture_npot ";
}
if (supportsHalfFloatLinearFilter())
// Multi-vendor (EXT) extensions
mExtensionString += "GL_EXT_read_format_bgra ";
if (supportsDXT1Textures())
{
mExtensionString += "GL_OES_texture_half_float_linear ";
mExtensionString += "GL_EXT_texture_compression_dxt1 ";
}
mExtensionString += "GL_EXT_texture_format_BGRA8888 ";
// ANGLE-specific extensions
mExtensionString += "GL_ANGLE_framebuffer_blit ";
if (getMaxSupportedSamples() != 0)
{
mExtensionString += "GL_ANGLE_framebuffer_multisample ";
}
if (supports32bitIndices())
if (supportsDXT3Textures())
{
mExtensionString += "GL_OES_element_index_uint ";
mExtensionString += "GL_ANGLE_texture_compression_dxt3 ";
}
if (supportsDXT5Textures())
{
mExtensionString += "GL_ANGLE_texture_compression_dxt5 ";
}
if (supportsNonPower2Texture())
// Other vendor-specific extensions
if (supportsEventQueries())
{
mExtensionString += "GL_OES_texture_npot ";
mExtensionString += "GL_NV_fence ";
}
std::string::size_type end = mExtensionString.find_last_not_of(' ');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment