Changeset 266364 in webkit
- Timestamp:
- Aug 31, 2020 11:59:08 AM (4 years ago)
- Location:
- trunk/Source
- Files:
-
- 3 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/ThirdParty/ANGLE/ChangeLog
r265602 r266364 1 2020-08-31 James Darpinian <jdarpinian@chromium.org> 2 3 Implement WEBGL_compressed_texture_s3tc_srgb extension 4 https://bugs.webkit.org/show_bug.cgi?id=215973 5 6 Reviewed by Dean Jackson. 7 8 * src/libANGLE/renderer/gl/formatutilsgl.cpp: 9 (rx::nativegl::ExtAndVersionOrExt): 10 (rx::nativegl::BuildInternalFormatInfoMap): 11 1 12 2020-08-12 Keith Rollin <krollin@apple.com> 2 13 -
trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/formatutilsgl.cpp
r265064 r266364 48 48 requirement.version.minor = minor; 49 49 angle::SplitStringAlongWhitespace(versionExt, &requirement.versionExtensions); 50 return requirement; 51 } 52 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); 50 65 return requirement; 51 66 } … … 326 341 327 342 // 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, Ext sOnly("GL_EXT_texture_compression_s3tcGL_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, Ext sOnly("GL_EXT_texture_compression_s3tcGL_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, Ext sOnly("GL_EXT_texture_compression_s3tcGL_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, Ext sOnly("GL_EXT_texture_compression_s3tcGL_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() ); 333 348 334 349 // From GL_OES_compressed_ETC1_RGB8_texture -
trunk/Source/WebCore/CMakeLists.txt
r266348 r266364 1431 1431 html/canvas/WebGLCompressedTexturePVRTC.cpp 1432 1432 html/canvas/WebGLCompressedTextureS3TC.cpp 1433 html/canvas/WebGLCompressedTextureS3TCsRGB.cpp 1433 1434 html/canvas/WebGLContextEvent.cpp 1434 1435 html/canvas/WebGLContextGroup.cpp … … 1487 1488 html/canvas/WebGLCompressedTexturePVRTC.idl 1488 1489 html/canvas/WebGLCompressedTextureS3TC.idl 1490 html/canvas/WebGLCompressedTextureS3TCsRGB.idl 1489 1491 html/canvas/WebGLContextAttributes.idl 1490 1492 html/canvas/WebGLContextEvent.idl -
trunk/Source/WebCore/ChangeLog
r266363 r266364 1 2020-08-31 James Darpinian <jdarpinian@chromium.org> 2 3 Implement WEBGL_compressed_texture_s3tc_srgb extension 4 https://bugs.webkit.org/show_bug.cgi?id=215973 5 6 Reviewed by Dean Jackson. 7 8 Tested by webgl/2.0.0/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html 9 10 * CMakeLists.txt: 11 * DerivedSources.make: 12 * Sources.txt: 13 * WebCore.xcodeproj/project.pbxproj: 14 * bindings/js/JSDOMConvertWebGL.cpp: 15 (WebCore::convertToJSValue): 16 * html/canvas/WebGLCompressedTextureS3TCsRGB.cpp: Added. 17 (WebCore::WebGLCompressedTextureS3TCsRGB::WebGLCompressedTextureS3TCsRGB): 18 (WebCore::WebGLCompressedTextureS3TCsRGB::getName const): 19 (WebCore::WebGLCompressedTextureS3TCsRGB::supported): 20 * html/canvas/WebGLCompressedTextureS3TCsRGB.h: Added. 21 * html/canvas/WebGLCompressedTextureS3TCsRGB.idl: Added. 22 * html/canvas/WebGLExtension.h: 23 * html/canvas/WebGLRenderingContext.cpp: 24 (WebCore::WebGLRenderingContext::getExtension): 25 (WebCore::WebGLRenderingContext::getSupportedExtensions): 26 * html/canvas/WebGLRenderingContextBase.cpp: 27 (WebCore::WebGLRenderingContextBase::extensionIsEnabled): 28 (WebCore::WebGLRenderingContextBase::validateCompressedTexFuncData): 29 (WebCore::WebGLRenderingContextBase::validateCompressedTexDimensions): 30 (WebCore::WebGLRenderingContextBase::validateCompressedTexSubDimensions): 31 * html/canvas/WebGLRenderingContextBase.h: 32 * platform/graphics/ExtensionsGL.h: 33 1 34 2020-08-31 Antti Koivisto <antti@apple.com> 2 35 -
trunk/Source/WebCore/DerivedSources.make
r266348 r266364 948 948 $(WebCore)/html/canvas/WebGLCompressedTexturePVRTC.idl \ 949 949 $(WebCore)/html/canvas/WebGLCompressedTextureS3TC.idl \ 950 $(WebCore)/html/canvas/WebGLCompressedTextureS3TCsRGB.idl \ 950 951 $(WebCore)/html/canvas/WebGLContextAttributes.idl \ 951 952 $(WebCore)/html/canvas/WebGLContextEvent.idl \ -
trunk/Source/WebCore/Sources.txt
r266351 r266364 1264 1264 html/canvas/WebGLCompressedTexturePVRTC.cpp 1265 1265 html/canvas/WebGLCompressedTextureS3TC.cpp 1266 html/canvas/WebGLCompressedTextureS3TCsRGB.cpp 1266 1267 html/canvas/WebGLContextEvent.cpp 1267 1268 html/canvas/WebGLContextGroup.cpp … … 3553 3554 JSWebGLCompressedTexturePVRTC.cpp 3554 3555 JSWebGLCompressedTextureS3TC.cpp 3556 JSWebGLCompressedTextureS3TCsRGB.cpp 3555 3557 JSWebGLContextAttributes.cpp 3556 3558 JSWebGLContextEvent.cpp -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r266360 r266364 11997 11997 A31C4E5316E02B40002F7957 /* JSOESTextureHalfFloat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSOESTextureHalfFloat.h; sourceTree = "<group>"; }; 11998 11998 A334BD822194E4610000D77F /* SSLKeyGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SSLKeyGenerator.cpp; sourceTree = "<group>"; }; 11999 A33C9F9124F835AA000F0845 /* WebGLCompressedTextureS3TCsRGB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGLCompressedTextureS3TCsRGB.h; sourceTree = "<group>"; }; 12000 A33C9F9324F835AB000F0845 /* WebGLCompressedTextureS3TCsRGB.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGLCompressedTextureS3TCsRGB.cpp; sourceTree = "<group>"; }; 12001 A33C9F9424F835AB000F0845 /* WebGLCompressedTextureS3TCsRGB.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGLCompressedTextureS3TCsRGB.idl; sourceTree = "<group>"; }; 11999 12002 A3AF9D81203252EE006CAD06 /* UserAgentCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = UserAgentCocoa.mm; sourceTree = "<group>"; }; 12000 12003 A3AF9D8220325324006CAD06 /* UserAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserAgent.h; sourceTree = "<group>"; }; … … 19351 19354 6E3FAE8D14733FDB00E42306 /* WebGLCompressedTextureS3TC.h */, 19352 19355 6E3FAE9014733FEA00E42306 /* WebGLCompressedTextureS3TC.idl */, 19356 A33C9F9324F835AB000F0845 /* WebGLCompressedTextureS3TCsRGB.cpp */, 19357 A33C9F9124F835AA000F0845 /* WebGLCompressedTextureS3TCsRGB.h */, 19358 A33C9F9424F835AB000F0845 /* WebGLCompressedTextureS3TCsRGB.idl */, 19353 19359 6E4E91AA10F7FB3100A2779C /* WebGLContextAttributes.h */, 19354 19360 6E4E91AB10F7FB3100A2779C /* WebGLContextAttributes.idl */, -
trunk/Source/WebCore/bindings/js/JSDOMConvertWebGL.cpp
r264988 r266364 53 53 #include "JSWebGLCompressedTexturePVRTC.h" 54 54 #include "JSWebGLCompressedTextureS3TC.h" 55 #include "JSWebGLCompressedTextureS3TCsRGB.h" 55 56 #include "JSWebGLDebugRendererInfo.h" 56 57 #include "JSWebGLDebugShaders.h" … … 205 206 case WebGLExtension::WebGLCompressedTextureS3TCName: 206 207 return toJS(&lexicalGlobalObject, &globalObject, static_cast<WebGLCompressedTextureS3TC&>(extension)); 208 case WebGLExtension::WebGLCompressedTextureS3TCsRGBName: 209 return toJS(&lexicalGlobalObject, &globalObject, static_cast<WebGLCompressedTextureS3TCsRGB&>(extension)); 207 210 case WebGLExtension::WebGLCompressedTextureASTCName: 208 211 return toJS(&lexicalGlobalObject, &globalObject, static_cast<WebGLCompressedTextureASTC&>(extension)); -
trunk/Source/WebCore/html/canvas/WebGLExtension.h
r265975 r266364 53 53 WebGLDebugShadersName, 54 54 WebGLCompressedTextureS3TCName, 55 WebGLCompressedTextureS3TCsRGBName, 55 56 WebGLDepthTextureName, 56 57 WebGLDrawBuffersName, -
trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp
r265975 r266364 59 59 #include "WebGLCompressedTexturePVRTC.h" 60 60 #include "WebGLCompressedTextureS3TC.h" 61 #include "WebGLCompressedTextureS3TCsRGB.h" 61 62 #include "WebGLDebugRendererInfo.h" 62 63 #include "WebGLDebugShaders.h" … … 165 166 ENABLE_IF_REQUESTED(WebGLCompressedTexturePVRTC, m_webglCompressedTexturePVRTC, "WEBKIT_WEBGL_compressed_texture_pvrtc", WebGLCompressedTexturePVRTC::supported(*this)); 166 167 ENABLE_IF_REQUESTED(WebGLCompressedTextureS3TC, m_webglCompressedTextureS3TC, "WEBGL_compressed_texture_s3tc", WebGLCompressedTextureS3TC::supported(*this)); 168 ENABLE_IF_REQUESTED(WebGLCompressedTextureS3TCsRGB, m_webglCompressedTextureS3TCsRGB, "WEBGL_compressed_texture_s3tc_srgb", WebGLCompressedTextureS3TCsRGB::supported(*this)); 167 169 ENABLE_IF_REQUESTED(WebGLDepthTexture, m_webglDepthTexture, "WEBGL_depth_texture", WebGLDepthTexture::supported(*m_context)); 168 170 if (equalIgnoringASCIICase(name, "WEBGL_draw_buffers")) { … … 244 246 if (WebGLCompressedTextureS3TC::supported(*this)) 245 247 result.append("WEBGL_compressed_texture_s3tc"_s); 248 if (WebGLCompressedTextureS3TCsRGB::supported(*this)) 249 result.append("WEBGL_compressed_texture_s3tc_srgb"_s); 246 250 if (WebGLDepthTexture::supported(*m_context)) 247 251 result.append("WEBGL_depth_texture"_s); -
trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
r266275 r266364 82 82 #include "WebGLCompressedTexturePVRTC.h" 83 83 #include "WebGLCompressedTextureS3TC.h" 84 #include "WebGLCompressedTextureS3TCsRGB.h" 84 85 #include "WebGLContextAttributes.h" 85 86 #include "WebGLContextEvent.h" … … 3732 3733 CHECK_EXTENSION(m_webglCompressedTexturePVRTC, "WEBKIT_WEBGL_compressed_texture_pvrtc"); 3733 3734 CHECK_EXTENSION(m_webglCompressedTextureS3TC, "WEBGL_compressed_texture_s3tc"); 3735 CHECK_EXTENSION(m_webglCompressedTextureS3TCsRGB, "WEBGL_compressed_texture_s3tc_srgb"); 3734 3736 CHECK_EXTENSION(m_webglDepthTexture, "WEBGL_depth_texture"); 3735 3737 CHECK_EXTENSION(m_webglDrawBuffers, "WEBGL_draw_buffers"); … … 6619 6621 case ExtensionsGL::COMPRESSED_RGB_S3TC_DXT1_EXT: 6620 6622 case ExtensionsGL::COMPRESSED_RGBA_S3TC_DXT1_EXT: 6623 case ExtensionsGL::COMPRESSED_SRGB_S3TC_DXT1_EXT: 6624 case ExtensionsGL::COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 6621 6625 case ExtensionsGL::COMPRESSED_ATC_RGB_AMD: 6622 6626 case ExtensionsGL::ETC1_RGB8_OES: { … … 6631 6635 case ExtensionsGL::COMPRESSED_RGBA_S3TC_DXT3_EXT: 6632 6636 case ExtensionsGL::COMPRESSED_RGBA_S3TC_DXT5_EXT: 6637 case ExtensionsGL::COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 6638 case ExtensionsGL::COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 6633 6639 case ExtensionsGL::COMPRESSED_ATC_RGBA_EXPLICIT_ALPHA_AMD: 6634 6640 case ExtensionsGL::COMPRESSED_ATC_RGBA_INTERPOLATED_ALPHA_AMD: … … 6741 6747 case ExtensionsGL::COMPRESSED_RGBA_S3TC_DXT1_EXT: 6742 6748 case ExtensionsGL::COMPRESSED_RGBA_S3TC_DXT3_EXT: 6743 case ExtensionsGL::COMPRESSED_RGBA_S3TC_DXT5_EXT: { 6749 case ExtensionsGL::COMPRESSED_RGBA_S3TC_DXT5_EXT: 6750 case ExtensionsGL::COMPRESSED_SRGB_S3TC_DXT1_EXT: 6751 case ExtensionsGL::COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 6752 case ExtensionsGL::COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 6753 case ExtensionsGL::COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: { 6744 6754 const GCGLsizei kBlockWidth = 4; 6745 6755 const GCGLsizei kBlockHeight = 4; … … 6821 6831 case ExtensionsGL::COMPRESSED_RGBA_S3TC_DXT1_EXT: 6822 6832 case ExtensionsGL::COMPRESSED_RGBA_S3TC_DXT3_EXT: 6823 case ExtensionsGL::COMPRESSED_RGBA_S3TC_DXT5_EXT: { 6833 case ExtensionsGL::COMPRESSED_RGBA_S3TC_DXT5_EXT: 6834 case ExtensionsGL::COMPRESSED_SRGB_S3TC_DXT1_EXT: 6835 case ExtensionsGL::COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 6836 case ExtensionsGL::COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 6837 case ExtensionsGL::COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: { 6824 6838 const int kBlockWidth = 4; 6825 6839 const int kBlockHeight = 4; -
trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h
r265975 r266364 97 97 class WebGLCompressedTexturePVRTC; 98 98 class WebGLCompressedTextureS3TC; 99 class WebGLCompressedTextureS3TCsRGB; 99 100 class WebGLContextGroup; 100 101 class WebGLContextObject; … … 439 440 friend class WebGLCompressedTexturePVRTC; 440 441 friend class WebGLCompressedTextureS3TC; 442 friend class WebGLCompressedTextureS3TCsRGB; 441 443 friend class WebGLRenderingContextErrorMessageCallback; 442 444 friend class WebGLVertexArrayObjectOES; … … 680 682 RefPtr<WebGLCompressedTexturePVRTC> m_webglCompressedTexturePVRTC; 681 683 RefPtr<WebGLCompressedTextureS3TC> m_webglCompressedTextureS3TC; 684 RefPtr<WebGLCompressedTextureS3TCsRGB> m_webglCompressedTextureS3TCsRGB; 682 685 RefPtr<WebGLDepthTexture> m_webglDepthTexture; 683 686 RefPtr<WebGLDrawBuffers> m_webglDrawBuffers; -
trunk/Source/WebCore/platform/graphics/ExtensionsGL.h
r264536 r266364 68 68 // GL_EXT_texture_compression_dxt1 69 69 // GL_EXT_texture_compression_s3tc 70 // GL_EXT_texture_compression_s3tc_srgb 70 71 // GL_OES_compressed_ETC1_RGB8_texture 71 72 // GL_IMG_texture_compression_pvrtc … … 155 156 COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2, 156 157 COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3, 158 159 // GL_EXT_texture_compression_s3tc_srgb 160 COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C, 161 COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D, 162 COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E, 163 COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F, 157 164 158 165 // GL_OES_compressed_ETC1_RGB8_texture
Note: See TracChangeset
for help on using the changeset viewer.