Diff
Modified: trunk/Source/WebCore/CMakeLists.txt (294971 => 294972)
--- trunk/Source/WebCore/CMakeLists.txt 2022-05-28 00:32:27 UTC (rev 294971)
+++ trunk/Source/WebCore/CMakeLists.txt 2022-05-28 00:56:02 UTC (rev 294972)
@@ -1808,6 +1808,7 @@
html/canvas/EXTFloatBlend.cpp
html/canvas/EXTFragDepth.cpp
html/canvas/EXTShaderTextureLOD.cpp
+ html/canvas/EXTTextureCompressionBPTC.cpp
html/canvas/EXTTextureCompressionRGTC.cpp
html/canvas/EXTTextureFilterAnisotropic.cpp
html/canvas/EXTTextureNorm16.cpp
@@ -1870,6 +1871,7 @@
html/canvas/EXTFloatBlend.idl
html/canvas/EXTFragDepth.idl
html/canvas/EXTShaderTextureLOD.idl
+ html/canvas/EXTTextureCompressionBPTC.idl
html/canvas/EXTTextureCompressionRGTC.idl
html/canvas/EXTTextureFilterAnisotropic.idl
html/canvas/EXTTextureNorm16.idl
Modified: trunk/Source/WebCore/DerivedSources-input.xcfilelist (294971 => 294972)
--- trunk/Source/WebCore/DerivedSources-input.xcfilelist 2022-05-28 00:32:27 UTC (rev 294971)
+++ trunk/Source/WebCore/DerivedSources-input.xcfilelist 2022-05-28 00:56:02 UTC (rev 294972)
@@ -1296,6 +1296,7 @@
$(PROJECT_DIR)/html/canvas/EXTFloatBlend.idl
$(PROJECT_DIR)/html/canvas/EXTFragDepth.idl
$(PROJECT_DIR)/html/canvas/EXTShaderTextureLOD.idl
+$(PROJECT_DIR)/html/canvas/EXTTextureCompressionBPTC.idl
$(PROJECT_DIR)/html/canvas/EXTTextureCompressionRGTC.idl
$(PROJECT_DIR)/html/canvas/EXTTextureFilterAnisotropic.idl
$(PROJECT_DIR)/html/canvas/EXTTextureNorm16.idl
Modified: trunk/Source/WebCore/DerivedSources-output.xcfilelist (294971 => 294972)
--- trunk/Source/WebCore/DerivedSources-output.xcfilelist 2022-05-28 00:32:27 UTC (rev 294971)
+++ trunk/Source/WebCore/DerivedSources-output.xcfilelist 2022-05-28 00:56:02 UTC (rev 294972)
@@ -774,6 +774,8 @@
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSEXTFragDepth.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSEXTShaderTextureLOD.cpp
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSEXTShaderTextureLOD.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSEXTTextureCompressionBPTC.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSEXTTextureCompressionBPTC.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSEXTTextureCompressionRGTC.cpp
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSEXTTextureCompressionRGTC.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSEXTTextureFilterAnisotropic.cpp
Modified: trunk/Source/WebCore/DerivedSources.make (294971 => 294972)
--- trunk/Source/WebCore/DerivedSources.make 2022-05-28 00:32:27 UTC (rev 294971)
+++ trunk/Source/WebCore/DerivedSources.make 2022-05-28 00:56:02 UTC (rev 294972)
@@ -1138,6 +1138,7 @@
$(WebCore)/html/canvas/EXTFloatBlend.idl \
$(WebCore)/html/canvas/EXTFragDepth.idl \
$(WebCore)/html/canvas/EXTShaderTextureLOD.idl \
+ $(WebCore)/html/canvas/EXTTextureCompressionBPTC.idl \
$(WebCore)/html/canvas/EXTTextureCompressionRGTC.idl \
$(WebCore)/html/canvas/EXTTextureFilterAnisotropic.idl \
$(WebCore)/html/canvas/EXTTextureNorm16.idl \
Modified: trunk/Source/WebCore/Sources.txt (294971 => 294972)
--- trunk/Source/WebCore/Sources.txt 2022-05-28 00:32:27 UTC (rev 294971)
+++ trunk/Source/WebCore/Sources.txt 2022-05-28 00:56:02 UTC (rev 294972)
@@ -1364,6 +1364,7 @@
html/canvas/EXTFloatBlend.cpp
html/canvas/EXTFragDepth.cpp
html/canvas/EXTShaderTextureLOD.cpp
+html/canvas/EXTTextureCompressionBPTC.cpp
html/canvas/EXTTextureCompressionRGTC.cpp
html/canvas/EXTTextureFilterAnisotropic.cpp
html/canvas/EXTTextureNorm16.cpp
@@ -3124,6 +3125,7 @@
JSEXTFloatBlend.cpp
JSEXTFragDepth.cpp
JSEXTShaderTextureLOD.cpp
+JSEXTTextureCompressionBPTC.cpp
JSEXTTextureCompressionRGTC.cpp
JSEXTTextureFilterAnisotropic.cpp
JSEXTTextureNorm16.cpp
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (294971 => 294972)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2022-05-28 00:32:27 UTC (rev 294971)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2022-05-28 00:56:02 UTC (rev 294972)
@@ -2860,6 +2860,8 @@
8A7CC96B12076D73001D4588 /* PendingScript.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A7CC96A12076D73001D4588 /* PendingScript.h */; settings = {ATTRIBUTES = (Private, ); }; };
8A81BF8511DCFD9000DA2B98 /* NetworkLoadMetrics.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A81BF8411DCFD9000DA2B98 /* NetworkLoadMetrics.h */; settings = {ATTRIBUTES = (Private, ); }; };
8A844D0511D3C18E0014065C /* Performance.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A844D0211D3C18E0014065C /* Performance.h */; };
+ 8A8AFFF0283BE23E005221FE /* EXTTextureCompressionRGTC.h in Headers */ = {isa = PBXBuildFile; fileRef = A37A42E22527B49D00F75AFF /* EXTTextureCompressionRGTC.h */; };
+ 8A8AFFF1283BE241005221FE /* EXTTextureCompressionBPTC.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A3FE12D283BD69D000BD5DD /* EXTTextureCompressionBPTC.h */; };
8A9A587111E84C36008ACFD1 /* JSPerformanceNavigation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A9A586F11E84C36008ACFD1 /* JSPerformanceNavigation.h */; };
8A9A587511E84C81008ACFD1 /* JSPerformance.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A9A587311E84C81008ACFD1 /* JSPerformance.h */; };
8A9A588811E84F37008ACFD1 /* JSPerformanceTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A9A587711E84C98008ACFD1 /* JSPerformanceTiming.h */; };
@@ -12603,6 +12605,9 @@
8A054532283CF13F00F498E7 /* EXTTextureNorm16.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EXTTextureNorm16.h; sourceTree = "<group>"; };
8A12E35C11FA33280025836A /* DocumentLoadTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentLoadTiming.h; sourceTree = "<group>"; };
8A309C9E123950BE00CB9204 /* NestingLevelIncrementer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NestingLevelIncrementer.h; sourceTree = "<group>"; };
+ 8A3FE12D283BD69D000BD5DD /* EXTTextureCompressionBPTC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EXTTextureCompressionBPTC.h; sourceTree = "<group>"; };
+ 8A3FE12E283BD69E000BD5DD /* EXTTextureCompressionBPTC.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EXTTextureCompressionBPTC.cpp; sourceTree = "<group>"; };
+ 8A3FE12F283BD69E000BD5DD /* EXTTextureCompressionBPTC.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = EXTTextureCompressionBPTC.idl; sourceTree = "<group>"; };
8A413ADE1207BBA50082016E /* ScriptRunner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptRunner.h; sourceTree = "<group>"; };
8A413ADF1207BBA50082016E /* ScriptRunner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptRunner.cpp; sourceTree = "<group>"; };
8A7CC96A12076D73001D4588 /* PendingScript.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PendingScript.h; sourceTree = "<group>"; };
@@ -21861,6 +21866,9 @@
727AFED11A2EA6A0000442E8 /* EXTsRGB.cpp */,
727AFED21A2EA6A0000442E8 /* EXTsRGB.h */,
727AFED31A2EA6A0000442E8 /* EXTsRGB.idl */,
+ 8A3FE12E283BD69E000BD5DD /* EXTTextureCompressionBPTC.cpp */,
+ 8A3FE12D283BD69D000BD5DD /* EXTTextureCompressionBPTC.h */,
+ 8A3FE12F283BD69E000BD5DD /* EXTTextureCompressionBPTC.idl */,
A37A42E02527B49C00F75AFF /* EXTTextureCompressionRGTC.cpp */,
A37A42E22527B49D00F75AFF /* EXTTextureCompressionRGTC.h */,
A37A42E32527B49E00F75AFF /* EXTTextureCompressionRGTC.idl */,
@@ -34749,6 +34757,8 @@
FE0BCF3427C0661000BFB2DB /* ExtendedDOMIsoSubspaces.h in Headers */,
E47E276516036ED200EE2AFB /* ExtensionStyleSheets.h in Headers */,
5C4304B1191AC908000E2BC0 /* EXTShaderTextureLOD.h in Headers */,
+ 8A8AFFF1283BE241005221FE /* EXTTextureCompressionBPTC.h in Headers */,
+ 8A8AFFF0283BE23E005221FE /* EXTTextureCompressionRGTC.h in Headers */,
7728694F14F8882500F484DC /* EXTTextureFilterAnisotropic.h in Headers */,
8A054533283CF17F00F498E7 /* EXTTextureNorm16.h in Headers */,
41A0829C22935F3D008426E0 /* FeaturePolicy.h in Headers */,
Modified: trunk/Source/WebCore/bindings/js/JSDOMConvertWebGL.cpp (294971 => 294972)
--- trunk/Source/WebCore/bindings/js/JSDOMConvertWebGL.cpp 2022-05-28 00:32:27 UTC (rev 294971)
+++ trunk/Source/WebCore/bindings/js/JSDOMConvertWebGL.cpp 2022-05-28 00:56:02 UTC (rev 294972)
@@ -36,6 +36,7 @@
#include "JSEXTFloatBlend.h"
#include "JSEXTFragDepth.h"
#include "JSEXTShaderTextureLOD.h"
+#include "JSEXTTextureCompressionBPTC.h"
#include "JSEXTTextureCompressionRGTC.h"
#include "JSEXTTextureFilterAnisotropic.h"
#include "JSEXTTextureNorm16.h"
@@ -165,6 +166,8 @@
return toJS(&lexicalGlobalObject, &globalObject, static_cast<WebGLLoseContext&>(extension));
case WebGLExtension::EXTShaderTextureLODName:
return toJS(&lexicalGlobalObject, &globalObject, static_cast<EXTShaderTextureLOD&>(extension));
+ case WebGLExtension::EXTTextureCompressionBPTCName:
+ return toJS(&lexicalGlobalObject, &globalObject, static_cast<EXTTextureCompressionBPTC&>(extension));
case WebGLExtension::EXTTextureCompressionRGTCName:
return toJS(&lexicalGlobalObject, &globalObject, static_cast<EXTTextureCompressionRGTC&>(extension));
case WebGLExtension::EXTTextureFilterAnisotropicName:
Copied: trunk/Source/WebCore/html/canvas/EXTTextureCompressionBPTC.cpp (from rev 294971, trunk/Source/WebCore/html/canvas/EXTTextureCompressionRGTC.cpp) (0 => 294972)
--- trunk/Source/WebCore/html/canvas/EXTTextureCompressionBPTC.cpp (rev 0)
+++ trunk/Source/WebCore/html/canvas/EXTTextureCompressionBPTC.cpp 2022-05-28 00:56:02 UTC (rev 294972)
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2022 The Chromium Authors. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#if ENABLE(WEBGL)
+#include "EXTTextureCompressionBPTC.h"
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(EXTTextureCompressionBPTC);
+
+EXTTextureCompressionBPTC::EXTTextureCompressionBPTC(WebGLRenderingContextBase& context)
+ : WebGLExtension(context)
+{
+ context.graphicsContextGL()->ensureExtensionEnabled("GL_EXT_texture_compression_bptc"_s);
+ context.graphicsContextGL()->ensureExtensionEnabled("GL_ARB_texture_compression_bptc"_s);
+
+ context.addCompressedTextureFormat(GraphicsContextGL::COMPRESSED_RGBA_BPTC_UNORM_EXT);
+ context.addCompressedTextureFormat(GraphicsContextGL::COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT);
+ context.addCompressedTextureFormat(GraphicsContextGL::COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT);
+ context.addCompressedTextureFormat(GraphicsContextGL::COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT);
+}
+
+EXTTextureCompressionBPTC::~EXTTextureCompressionBPTC() = default;
+
+WebGLExtension::ExtensionName EXTTextureCompressionBPTC::getName() const
+{
+ return EXTTextureCompressionBPTCName;
+}
+
+bool EXTTextureCompressionBPTC::supported(GraphicsContextGL& context)
+{
+ return context.supportsExtension("GL_EXT_texture_compression_bptc"_s)
+ || context.supportsExtension("GL_ARB_texture_compression_bptc"_s);
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(WEBGL)
Copied: trunk/Source/WebCore/html/canvas/EXTTextureCompressionBPTC.h (from rev 294971, trunk/Source/WebCore/html/canvas/EXTTextureCompressionRGTC.h) (0 => 294972)
--- trunk/Source/WebCore/html/canvas/EXTTextureCompressionBPTC.h (rev 0)
+++ trunk/Source/WebCore/html/canvas/EXTTextureCompressionBPTC.h 2022-05-28 00:56:02 UTC (rev 294972)
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2022 The Chromium Authors. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "WebGLExtension.h"
+
+namespace WebCore {
+
+class EXTTextureCompressionBPTC final : public WebGLExtension {
+ WTF_MAKE_ISO_ALLOCATED(EXTTextureCompressionBPTC);
+public:
+ explicit EXTTextureCompressionBPTC(WebGLRenderingContextBase&);
+ virtual ~EXTTextureCompressionBPTC();
+
+ ExtensionName getName() const override;
+
+ static bool supported(GraphicsContextGL&);
+};
+
+} // namespace WebCore
Copied: trunk/Source/WebCore/html/canvas/EXTTextureCompressionBPTC.idl (from rev 294971, trunk/Source/WebCore/html/canvas/EXTTextureCompressionRGTC.h) (0 => 294972)
--- trunk/Source/WebCore/html/canvas/EXTTextureCompressionBPTC.idl (rev 0)
+++ trunk/Source/WebCore/html/canvas/EXTTextureCompressionBPTC.idl 2022-05-28 00:56:02 UTC (rev 294972)
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2022 The Chromium Authors. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+[
+ Conditional=WEBGL,
+ GenerateIsReachable=ImplWebGLRenderingContext,
+ LegacyNoInterfaceObject,
+] interface EXTTextureCompressionBPTC {
+ const unsigned long COMPRESSED_RGBA_BPTC_UNORM_EXT = 0x8E8C;
+ const unsigned long COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT = 0x8E8D;
+ const unsigned long COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT = 0x8E8E;
+ const unsigned long COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT = 0x8E8F;
+};
Modified: trunk/Source/WebCore/html/canvas/EXTTextureCompressionRGTC.cpp (294971 => 294972)
--- trunk/Source/WebCore/html/canvas/EXTTextureCompressionRGTC.cpp 2022-05-28 00:32:27 UTC (rev 294971)
+++ trunk/Source/WebCore/html/canvas/EXTTextureCompressionRGTC.cpp 2022-05-28 00:56:02 UTC (rev 294972)
@@ -38,6 +38,7 @@
: WebGLExtension(context)
{
context.graphicsContextGL()->ensureExtensionEnabled("GL_EXT_texture_compression_rgtc"_s);
+ context.graphicsContextGL()->ensureExtensionEnabled("GL_ARB_texture_compression_rgtc"_s);
context.addCompressedTextureFormat(GraphicsContextGL::COMPRESSED_RED_RGTC1_EXT);
context.addCompressedTextureFormat(GraphicsContextGL::COMPRESSED_SIGNED_RED_RGTC1_EXT);
@@ -52,6 +53,12 @@
return EXTTextureCompressionRGTCName;
}
+bool EXTTextureCompressionRGTC::supported(GraphicsContextGL& context)
+{
+ return context.supportsExtension("GL_EXT_texture_compression_rgtc"_s)
+ || context.supportsExtension("GL_ARB_texture_compression_rgtc"_s);
+}
+
} // namespace WebCore
#endif // ENABLE(WEBGL)
Modified: trunk/Source/WebCore/html/canvas/EXTTextureCompressionRGTC.h (294971 => 294972)
--- trunk/Source/WebCore/html/canvas/EXTTextureCompressionRGTC.h 2022-05-28 00:32:27 UTC (rev 294971)
+++ trunk/Source/WebCore/html/canvas/EXTTextureCompressionRGTC.h 2022-05-28 00:56:02 UTC (rev 294972)
@@ -36,6 +36,8 @@
virtual ~EXTTextureCompressionRGTC();
ExtensionName getName() const override;
+
+ static bool supported(GraphicsContextGL&);
};
} // namespace WebCore
Modified: trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp (294971 => 294972)
--- trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp 2022-05-28 00:32:27 UTC (rev 294971)
+++ trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp 2022-05-28 00:56:02 UTC (rev 294972)
@@ -32,6 +32,7 @@
#include "EXTColorBufferFloat.h"
#include "EXTColorBufferHalfFloat.h"
#include "EXTFloatBlend.h"
+#include "EXTTextureCompressionBPTC.h"
#include "EXTTextureCompressionRGTC.h"
#include "EXTTextureFilterAnisotropic.h"
#include "EXTTextureNorm16.h"
@@ -2711,7 +2712,8 @@
return variable.get(); \
}
- ENABLE_IF_REQUESTED(EXTTextureCompressionRGTC, m_extTextureCompressionRGTC, "EXT_texture_compression_rgtc"_s, enableSupportedExtension("GL_EXT_texture_compression_rgtc"_s));
+ ENABLE_IF_REQUESTED(EXTTextureCompressionBPTC, m_extTextureCompressionBPTC, "EXT_texture_compression_bptc"_s, EXTTextureCompressionBPTC::supported(*m_context));
+ ENABLE_IF_REQUESTED(EXTTextureCompressionRGTC, m_extTextureCompressionRGTC, "EXT_texture_compression_rgtc"_s, EXTTextureCompressionRGTC::supported(*m_context));
ENABLE_IF_REQUESTED(EXTTextureFilterAnisotropic, m_extTextureFilterAnisotropic, "EXT_texture_filter_anisotropic"_s, enableSupportedExtension("GL_EXT_texture_filter_anisotropic"_s));
ENABLE_IF_REQUESTED(EXTTextureNorm16, m_extTextureNorm16, "EXT_texture_norm16"_s, EXTTextureNorm16::supported(*m_context));
ENABLE_IF_REQUESTED(OESTextureFloatLinear, m_oesTextureFloatLinear, "OES_texture_float_linear"_s, enableSupportedExtension("GL_OES_texture_float_linear"_s));
@@ -2746,7 +2748,9 @@
if (m_context->supportsExtension("GL_OES_texture_float_linear"_s))
result.append("OES_texture_float_linear"_s);
- if (m_context->supportsExtension("GL_EXT_texture_compression_rgtc"_s))
+ if (EXTTextureCompressionBPTC::supported(*m_context))
+ result.append("EXT_texture_compression_bptc"_s);
+ if (EXTTextureCompressionRGTC::supported(*m_context))
result.append("EXT_texture_compression_rgtc"_s);
if (m_context->supportsExtension("GL_EXT_texture_filter_anisotropic"_s))
result.append("EXT_texture_filter_anisotropic"_s);
Modified: trunk/Source/WebCore/html/canvas/WebGLExtension.h (294971 => 294972)
--- trunk/Source/WebCore/html/canvas/WebGLExtension.h 2022-05-28 00:32:27 UTC (rev 294971)
+++ trunk/Source/WebCore/html/canvas/WebGLExtension.h 2022-05-28 00:56:02 UTC (rev 294972)
@@ -41,6 +41,7 @@
EXTBlendMinMaxName,
EXTFragDepthName,
EXTShaderTextureLODName,
+ EXTTextureCompressionBPTCName,
EXTTextureCompressionRGTCName,
EXTTextureFilterAnisotropicName,
EXTTextureNorm16Name,
Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp (294971 => 294972)
--- trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp 2022-05-28 00:32:27 UTC (rev 294971)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp 2022-05-28 00:56:02 UTC (rev 294972)
@@ -35,6 +35,7 @@
#include "EXTFloatBlend.h"
#include "EXTFragDepth.h"
#include "EXTShaderTextureLOD.h"
+#include "EXTTextureCompressionBPTC.h"
#include "EXTTextureCompressionRGTC.h"
#include "EXTTextureFilterAnisotropic.h"
#include "EXTsRGB.h"
@@ -163,7 +164,8 @@
return m_extShaderTextureLOD.get();
}
ENABLE_IF_REQUESTED(EXTTextureFilterAnisotropic, m_extTextureFilterAnisotropic, "EXT_texture_filter_anisotropic", enableSupportedExtension("GL_EXT_texture_filter_anisotropic"_s));
- ENABLE_IF_REQUESTED(EXTTextureCompressionRGTC, m_extTextureCompressionRGTC, "EXT_texture_compression_rgtc", enableSupportedExtension("GL_EXT_texture_compression_rgtc"_s));
+ ENABLE_IF_REQUESTED(EXTTextureCompressionBPTC, m_extTextureCompressionBPTC, "EXT_texture_compression_bptc", EXTTextureCompressionBPTC::supported(*m_context));
+ ENABLE_IF_REQUESTED(EXTTextureCompressionRGTC, m_extTextureCompressionRGTC, "EXT_texture_compression_rgtc", EXTTextureCompressionRGTC::supported(*m_context));
ENABLE_IF_REQUESTED(KHRParallelShaderCompile, m_khrParallelShaderCompile, "KHR_parallel_shader_compile", KHRParallelShaderCompile::supported(*m_context));
ENABLE_IF_REQUESTED(OESStandardDerivatives, m_oesStandardDerivatives, "OES_standard_derivatives", enableSupportedExtension("GL_OES_standard_derivatives"_s));
ENABLE_IF_REQUESTED(OESTextureFloat, m_oesTextureFloat, "OES_texture_float", OESTextureFloat::supported(*m_context));
@@ -244,7 +246,9 @@
result.append("OES_standard_derivatives"_s);
if (m_context->supportsExtension("GL_EXT_shader_texture_lod"_s) || m_context->supportsExtension("GL_ARB_shader_texture_lod"_s))
result.append("EXT_shader_texture_lod"_s);
- if (m_context->supportsExtension("GL_EXT_texture_compression_rgtc"_s))
+ if (EXTTextureCompressionBPTC::supported(*m_context))
+ result.append("EXT_texture_compression_bptc"_s);
+ if (EXTTextureCompressionRGTC::supported(*m_context))
result.append("EXT_texture_compression_rgtc"_s);
if (m_context->supportsExtension("GL_EXT_texture_filter_anisotropic"_s))
result.append("EXT_texture_filter_anisotropic"_s);
Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp (294971 => 294972)
--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp 2022-05-28 00:32:27 UTC (rev 294971)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp 2022-05-28 00:56:02 UTC (rev 294972)
@@ -40,6 +40,7 @@
#include "EXTFloatBlend.h"
#include "EXTFragDepth.h"
#include "EXTShaderTextureLOD.h"
+#include "EXTTextureCompressionBPTC.h"
#include "EXTTextureCompressionRGTC.h"
#include "EXTTextureFilterAnisotropic.h"
#include "EXTTextureNorm16.h"
@@ -4000,6 +4001,7 @@
CHECK_EXTENSION(m_extFragDepth, "EXT_frag_depth");
CHECK_EXTENSION(m_extBlendMinMax, "EXT_blend_minmax");
CHECK_EXTENSION(m_extsRGB, "EXT_sRGB");
+ CHECK_EXTENSION(m_extTextureCompressionBPTC, "EXT_texture_compression_bptc");
CHECK_EXTENSION(m_extTextureCompressionRGTC, "EXT_texture_compression_rgtc");
CHECK_EXTENSION(m_extTextureFilterAnisotropic, "EXT_texture_filter_anisotropic");
CHECK_EXTENSION(m_extTextureFilterAnisotropic, "WEBKIT_EXT_texture_filter_anisotropic");
@@ -7099,7 +7101,11 @@
break;
}
case GraphicsContextGL::COMPRESSED_RED_GREEN_RGTC2_EXT:
- case GraphicsContextGL::COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: {
+ case GraphicsContextGL::COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT:
+ case GraphicsContextGL::COMPRESSED_RGBA_BPTC_UNORM_EXT:
+ case GraphicsContextGL::COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:
+ case GraphicsContextGL::COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT:
+ case GraphicsContextGL::COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT: {
const int kBlockSize = 16;
const int kBlockWidth = 4;
const int kBlockHeight = 4;
@@ -8102,6 +8108,7 @@
LOSE_EXTENSION(m_extFragDepth);
LOSE_EXTENSION(m_extBlendMinMax);
LOSE_EXTENSION(m_extsRGB);
+ LOSE_EXTENSION(m_extTextureCompressionBPTC);
LOSE_EXTENSION(m_extTextureCompressionRGTC);
LOSE_EXTENSION(m_extTextureFilterAnisotropic);
LOSE_EXTENSION(m_extTextureNorm16);
Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h (294971 => 294972)
--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h 2022-05-28 00:32:27 UTC (rev 294971)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h 2022-05-28 00:56:02 UTC (rev 294972)
@@ -76,6 +76,7 @@
class EXTColorBufferFloat;
class EXTColorBufferHalfFloat;
class EXTFloatBlend;
+class EXTTextureCompressionBPTC;
class EXTTextureCompressionRGTC;
class EXTTextureFilterAnisotropic;
class EXTTextureNorm16;
@@ -441,6 +442,7 @@
WebGLRenderingContextBase(CanvasBase&, WebGLContextAttributes);
WebGLRenderingContextBase(CanvasBase&, Ref<GraphicsContextGL>&&, WebGLContextAttributes);
+ friend class EXTTextureCompressionBPTC;
friend class EXTTextureCompressionRGTC;
friend class WebGLDrawBuffers;
friend class WebGLFramebuffer;
@@ -706,6 +708,7 @@
RefPtr<EXTFragDepth> m_extFragDepth;
RefPtr<EXTBlendMinMax> m_extBlendMinMax;
RefPtr<EXTsRGB> m_extsRGB;
+ RefPtr<EXTTextureCompressionBPTC> m_extTextureCompressionBPTC;
RefPtr<EXTTextureCompressionRGTC> m_extTextureCompressionRGTC;
RefPtr<EXTTextureFilterAnisotropic> m_extTextureFilterAnisotropic;
RefPtr<EXTTextureNorm16> m_extTextureNorm16;
Modified: trunk/Source/WebCore/platform/graphics/GraphicsContextGL.h (294971 => 294972)
--- trunk/Source/WebCore/platform/graphics/GraphicsContextGL.h 2022-05-28 00:32:27 UTC (rev 294971)
+++ trunk/Source/WebCore/platform/graphics/GraphicsContextGL.h 2022-05-28 00:56:02 UTC (rev 294972)
@@ -756,6 +756,12 @@
static constexpr GCGLenum COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC;
static constexpr GCGLenum COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD;
+ // GL_EXT_texture_compression_bptc
+ static constexpr GCGLenum COMPRESSED_RGBA_BPTC_UNORM_EXT = 0x8E8C;
+ static constexpr GCGLenum COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT = 0x8E8D;
+ static constexpr GCGLenum COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT = 0x8E8E;
+ static constexpr GCGLenum COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT = 0x8E8F;
+
// GL_EXT_texture_compression_rgtc
static constexpr GCGLenum COMPRESSED_RED_RGTC1_EXT = 0x8DBB;
static constexpr GCGLenum COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC;