@@ -50,6 +50,21 @@ static inline SupportRequirement VersionOrExts(GLuint major,
5050 return requirement;
5151}
5252
53+ // supported = requiredExt && (version || requiredWithoutVersionExt)
54+ static inline SupportRequirement ExtAndVersionOrExt (const std::string &requiredExt,
55+ GLuint major,
56+ GLuint minor,
57+ const std::string &requiredWithoutVersionExt)
58+ {
59+ SupportRequirement requirement;
60+ requirement.requiredExtensions .resize (1 );
61+ angle::SplitStringAlongWhitespace (requiredExt, &requirement.requiredExtensions [0 ]);
62+ requirement.version .major = major;
63+ requirement.version .minor = minor;
64+ angle::SplitStringAlongWhitespace (requiredWithoutVersionExt, &requirement.versionExtensions );
65+ return requirement;
66+ }
67+
5368// supported = version
5469static inline SupportRequirement VersionOnly (GLuint major, GLuint minor)
5570{
@@ -325,11 +340,11 @@ static InternalFormatInfoMap BuildInternalFormatInfoMap()
325340 InsertFormatMapping (&map, GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE, ExtsOnly (" GL_EXT_texture_compression_s3tc" ), AlwaysSupported (), NeverSupported (), ExtsOnly (" GL_ANGLE_texture_compression_dxt5" , " GL_EXT_texture_compression_s3tc" ), AlwaysSupported (), NeverSupported (), NeverSupported () );
326341
327342 // From GL_EXT_texture_compression_s3tc_srgb
328- // | Format | OpenGL texture support | Filter | Render | OpenGL ES texture support | Filter | OpenGL ES texture attachment support | OpenGL ES renderbuffer support |
329- InsertFormatMapping (&map, GL_COMPRESSED_SRGB_S3TC_DXT1_EXT, ExtsOnly (" GL_EXT_texture_compression_s3tc GL_EXT_texture_sRGB" ), AlwaysSupported (), NeverSupported (), ExtsOnly (" GL_EXT_texture_compression_s3tc_srgb" , " GL_EXT_texture_compression_s3tc GL_NV_sRGB_formats" ), AlwaysSupported (), NeverSupported (), NeverSupported () );
330- InsertFormatMapping (&map, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, ExtsOnly (" GL_EXT_texture_compression_s3tc GL_EXT_texture_sRGB" ), AlwaysSupported (), NeverSupported (), ExtsOnly (" GL_EXT_texture_compression_s3tc_srgb" , " GL_EXT_texture_compression_s3tc GL_NV_sRGB_formats" ), AlwaysSupported (), NeverSupported (), NeverSupported () );
331- InsertFormatMapping (&map, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, ExtsOnly (" GL_EXT_texture_compression_s3tc GL_EXT_texture_sRGB" ), AlwaysSupported (), NeverSupported (), ExtsOnly (" GL_EXT_texture_compression_s3tc_srgb" , " GL_EXT_texture_compression_s3tc GL_NV_sRGB_formats" ), AlwaysSupported (), NeverSupported (), NeverSupported () );
332- InsertFormatMapping (&map, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, ExtsOnly (" GL_EXT_texture_compression_s3tc GL_EXT_texture_sRGB" ), AlwaysSupported (), NeverSupported (), ExtsOnly (" GL_EXT_texture_compression_s3tc_srgb" , " GL_EXT_texture_compression_s3tc GL_NV_sRGB_formats" ), AlwaysSupported (), NeverSupported (), NeverSupported () );
343+ // | Format | OpenGL texture support | Filter | Render | OpenGL ES texture support | Filter | OpenGL ES texture attachment support | OpenGL ES renderbuffer support |
344+ InsertFormatMapping (&map, GL_COMPRESSED_SRGB_S3TC_DXT1_EXT, ExtAndVersionOrExt (" GL_EXT_texture_compression_s3tc" , 2 , 1 , " GL_EXT_texture_sRGB" ), AlwaysSupported (), NeverSupported (), ExtsOnly (" GL_EXT_texture_compression_s3tc_srgb" , " GL_EXT_texture_compression_s3tc GL_NV_sRGB_formats" ), AlwaysSupported (), NeverSupported (), NeverSupported () );
345+ InsertFormatMapping (&map, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, ExtAndVersionOrExt (" GL_EXT_texture_compression_s3tc" , 2 , 1 , " GL_EXT_texture_sRGB" ), AlwaysSupported (), NeverSupported (), ExtsOnly (" GL_EXT_texture_compression_s3tc_srgb" , " GL_EXT_texture_compression_s3tc GL_NV_sRGB_formats" ), AlwaysSupported (), NeverSupported (), NeverSupported () );
346+ InsertFormatMapping (&map, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, ExtAndVersionOrExt (" GL_EXT_texture_compression_s3tc" , 2 , 1 , " GL_EXT_texture_sRGB" ), AlwaysSupported (), NeverSupported (), ExtsOnly (" GL_EXT_texture_compression_s3tc_srgb" , " GL_EXT_texture_compression_s3tc GL_NV_sRGB_formats" ), AlwaysSupported (), NeverSupported (), NeverSupported () );
347+ InsertFormatMapping (&map, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, ExtAndVersionOrExt (" GL_EXT_texture_compression_s3tc" , 2 , 1 , " GL_EXT_texture_sRGB" ), AlwaysSupported (), NeverSupported (), ExtsOnly (" GL_EXT_texture_compression_s3tc_srgb" , " GL_EXT_texture_compression_s3tc GL_NV_sRGB_formats" ), AlwaysSupported (), NeverSupported (), NeverSupported () );
333348
334349 // From GL_OES_compressed_ETC1_RGB8_texture
335350 InsertFormatMapping (&map, GL_ETC1_RGB8_OES, VersionOrExts (4 , 3 , " GL_ARB_ES3_compatibility" ), AlwaysSupported (), NeverSupported (), VersionOrExts (3 , 0 , " GL_OES_compressed_ETC1_RGB8_texture" ), AlwaysSupported (), NeverSupported (), NeverSupported () );
0 commit comments