Diff
Modified: trunk/LayoutTests/TestExpectations (294945 => 294946)
--- trunk/LayoutTests/TestExpectations 2022-05-27 18:41:56 UTC (rev 294945)
+++ trunk/LayoutTests/TestExpectations 2022-05-27 18:58:43 UTC (rev 294946)
@@ -3701,6 +3701,7 @@
# Explicitly turn on conformance test until all of webgl/2.0.y is enabled
webgl/2.0.y/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html [ Pass ]
+webgl/2.0.y/conformance2/extensions/ext-texture-norm16.html [ Pass ]
# WebGL 1.0.3 and 2.0.0 tests where behavior is obsolete and WebKit contains implementation
# and tests for the new behavior. Should be removed once 1.0.3 and 2.0.0 are retired.
Modified: trunk/Source/WebCore/CMakeLists.txt (294945 => 294946)
--- trunk/Source/WebCore/CMakeLists.txt 2022-05-27 18:41:56 UTC (rev 294945)
+++ trunk/Source/WebCore/CMakeLists.txt 2022-05-27 18:58:43 UTC (rev 294946)
@@ -1810,6 +1810,7 @@
html/canvas/EXTShaderTextureLOD.cpp
html/canvas/EXTTextureCompressionRGTC.cpp
html/canvas/EXTTextureFilterAnisotropic.cpp
+ html/canvas/EXTTextureNorm16.cpp
html/canvas/EXTsRGB.cpp
html/canvas/KHRParallelShaderCompile.cpp
html/canvas/OESElementIndexUint.cpp
@@ -1871,6 +1872,7 @@
html/canvas/EXTShaderTextureLOD.idl
html/canvas/EXTTextureCompressionRGTC.idl
html/canvas/EXTTextureFilterAnisotropic.idl
+ html/canvas/EXTTextureNorm16.idl
html/canvas/EXTsRGB.idl
html/canvas/KHRParallelShaderCompile.idl
html/canvas/OESElementIndexUint.idl
Modified: trunk/Source/WebCore/DerivedSources-input.xcfilelist (294945 => 294946)
--- trunk/Source/WebCore/DerivedSources-input.xcfilelist 2022-05-27 18:41:56 UTC (rev 294945)
+++ trunk/Source/WebCore/DerivedSources-input.xcfilelist 2022-05-27 18:58:43 UTC (rev 294946)
@@ -1298,6 +1298,7 @@
$(PROJECT_DIR)/html/canvas/EXTShaderTextureLOD.idl
$(PROJECT_DIR)/html/canvas/EXTTextureCompressionRGTC.idl
$(PROJECT_DIR)/html/canvas/EXTTextureFilterAnisotropic.idl
+$(PROJECT_DIR)/html/canvas/EXTTextureNorm16.idl
$(PROJECT_DIR)/html/canvas/EXTsRGB.idl
$(PROJECT_DIR)/html/canvas/ImageBitmapRenderingContext.idl
$(PROJECT_DIR)/html/canvas/ImageBitmapRenderingContextSettings.idl
Modified: trunk/Source/WebCore/DerivedSources-output.xcfilelist (294945 => 294946)
--- trunk/Source/WebCore/DerivedSources-output.xcfilelist 2022-05-27 18:41:56 UTC (rev 294945)
+++ trunk/Source/WebCore/DerivedSources-output.xcfilelist 2022-05-27 18:58:43 UTC (rev 294946)
@@ -778,6 +778,8 @@
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSEXTTextureCompressionRGTC.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSEXTTextureFilterAnisotropic.cpp
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSEXTTextureFilterAnisotropic.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSEXTTextureNorm16.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSEXTTextureNorm16.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSEXTsRGB.cpp
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSEXTsRGB.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSEcKeyParams.cpp
Modified: trunk/Source/WebCore/DerivedSources.make (294945 => 294946)
--- trunk/Source/WebCore/DerivedSources.make 2022-05-27 18:41:56 UTC (rev 294945)
+++ trunk/Source/WebCore/DerivedSources.make 2022-05-27 18:58:43 UTC (rev 294946)
@@ -1140,6 +1140,7 @@
$(WebCore)/html/canvas/EXTShaderTextureLOD.idl \
$(WebCore)/html/canvas/EXTTextureCompressionRGTC.idl \
$(WebCore)/html/canvas/EXTTextureFilterAnisotropic.idl \
+ $(WebCore)/html/canvas/EXTTextureNorm16.idl \
$(WebCore)/html/canvas/EXTsRGB.idl \
$(WebCore)/html/canvas/ImageBitmapRenderingContext.idl \
$(WebCore)/html/canvas/ImageBitmapRenderingContextSettings.idl \
Modified: trunk/Source/WebCore/Sources.txt (294945 => 294946)
--- trunk/Source/WebCore/Sources.txt 2022-05-27 18:41:56 UTC (rev 294945)
+++ trunk/Source/WebCore/Sources.txt 2022-05-27 18:58:43 UTC (rev 294946)
@@ -1366,6 +1366,7 @@
html/canvas/EXTShaderTextureLOD.cpp
html/canvas/EXTTextureCompressionRGTC.cpp
html/canvas/EXTTextureFilterAnisotropic.cpp
+html/canvas/EXTTextureNorm16.cpp
html/canvas/EXTsRGB.cpp
html/canvas/GPUBasedCanvasRenderingContext.cpp
html/canvas/ImageBitmapRenderingContext.cpp
@@ -3125,6 +3126,7 @@
JSEXTShaderTextureLOD.cpp
JSEXTTextureCompressionRGTC.cpp
JSEXTTextureFilterAnisotropic.cpp
+JSEXTTextureNorm16.cpp
JSEXTsRGB.cpp
JSKHRParallelShaderCompile.cpp
JSEcKeyParams.cpp
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (294945 => 294946)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2022-05-27 18:41:56 UTC (rev 294945)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2022-05-27 18:58:43 UTC (rev 294946)
@@ -2853,6 +2853,7 @@
86BE340115058CB200CE0FD8 /* PerformanceEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 86BE33FB15058CB200CE0FD8 /* PerformanceEntry.h */; };
86D982F7125C154000AD9E3D /* DocumentEventTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 86D982F6125C154000AD9E3D /* DocumentEventTiming.h */; settings = {ATTRIBUTES = (Private, ); }; };
898785F5122E1EAC003AABDA /* JSFileReaderSync.h in Headers */ = {isa = PBXBuildFile; fileRef = 898785F3122E1EAC003AABDA /* JSFileReaderSync.h */; };
+ 8A054533283CF17F00F498E7 /* EXTTextureNorm16.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A054532283CF13F00F498E7 /* EXTTextureNorm16.h */; };
8A12E35D11FA33280025836A /* DocumentLoadTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A12E35C11FA33280025836A /* DocumentLoadTiming.h */; settings = {ATTRIBUTES = (Private, ); }; };
8A309C9F123950BE00CB9204 /* NestingLevelIncrementer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A309C9E123950BE00CB9204 /* NestingLevelIncrementer.h */; };
8A413AE01207BBA50082016E /* ScriptRunner.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A413ADE1207BBA50082016E /* ScriptRunner.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -12597,6 +12598,9 @@
8931DE5A14C44C44000DC9D2 /* JSBlobCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSBlobCustom.cpp; sourceTree = "<group>"; };
898785F2122E1EAC003AABDA /* JSFileReaderSync.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSFileReaderSync.cpp; sourceTree = "<group>"; };
898785F3122E1EAC003AABDA /* JSFileReaderSync.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSFileReaderSync.h; sourceTree = "<group>"; };
+ 8A054530283CF13E00F498E7 /* EXTTextureNorm16.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = EXTTextureNorm16.idl; sourceTree = "<group>"; };
+ 8A054531283CF13F00F498E7 /* EXTTextureNorm16.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EXTTextureNorm16.cpp; sourceTree = "<group>"; };
+ 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>"; };
8A413ADE1207BBA50082016E /* ScriptRunner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptRunner.h; sourceTree = "<group>"; };
@@ -21863,6 +21867,9 @@
7728694B14F8882500F484DC /* EXTTextureFilterAnisotropic.cpp */,
7728694C14F8882500F484DC /* EXTTextureFilterAnisotropic.h */,
7728694D14F8882500F484DC /* EXTTextureFilterAnisotropic.idl */,
+ 8A054531283CF13F00F498E7 /* EXTTextureNorm16.cpp */,
+ 8A054532283CF13F00F498E7 /* EXTTextureNorm16.h */,
+ 8A054530283CF13E00F498E7 /* EXTTextureNorm16.idl */,
0F16BED92304F05300B4A167 /* GPUBasedCanvasRenderingContext.cpp */,
311518FB1E78C15F00EC514A /* GPUBasedCanvasRenderingContext.h */,
7C7903B11F86F95C00463A70 /* ImageBitmapRenderingContext.cpp */,
@@ -34743,6 +34750,7 @@
E47E276516036ED200EE2AFB /* ExtensionStyleSheets.h in Headers */,
5C4304B1191AC908000E2BC0 /* EXTShaderTextureLOD.h in Headers */,
7728694F14F8882500F484DC /* EXTTextureFilterAnisotropic.h in Headers */,
+ 8A054533283CF17F00F498E7 /* EXTTextureNorm16.h in Headers */,
41A0829C22935F3D008426E0 /* FeaturePolicy.h in Headers */,
A75E8B890E1DE2D6007F2481 /* FEBlend.h in Headers */,
A75E8B8B0E1DE2D6007F2481 /* FEColorMatrix.h in Headers */,
Modified: trunk/Source/WebCore/bindings/js/JSDOMConvertWebGL.cpp (294945 => 294946)
--- trunk/Source/WebCore/bindings/js/JSDOMConvertWebGL.cpp 2022-05-27 18:41:56 UTC (rev 294945)
+++ trunk/Source/WebCore/bindings/js/JSDOMConvertWebGL.cpp 2022-05-27 18:58:43 UTC (rev 294946)
@@ -38,6 +38,7 @@
#include "JSEXTShaderTextureLOD.h"
#include "JSEXTTextureCompressionRGTC.h"
#include "JSEXTTextureFilterAnisotropic.h"
+#include "JSEXTTextureNorm16.h"
#include "JSEXTsRGB.h"
#include "JSKHRParallelShaderCompile.h"
#include "JSOESElementIndexUint.h"
@@ -168,6 +169,8 @@
return toJS(&lexicalGlobalObject, &globalObject, static_cast<EXTTextureCompressionRGTC&>(extension));
case WebGLExtension::EXTTextureFilterAnisotropicName:
return toJS(&lexicalGlobalObject, &globalObject, static_cast<EXTTextureFilterAnisotropic&>(extension));
+ case WebGLExtension::EXTTextureNorm16Name:
+ return toJS(&lexicalGlobalObject, &globalObject, static_cast<EXTTextureNorm16&>(extension));
case WebGLExtension::EXTsRGBName:
return toJS(&lexicalGlobalObject, &globalObject, static_cast<EXTsRGB&>(extension));
case WebGLExtension::EXTFragDepthName:
Added: trunk/Source/WebCore/html/canvas/EXTTextureNorm16.cpp (0 => 294946)
--- trunk/Source/WebCore/html/canvas/EXTTextureNorm16.cpp (rev 0)
+++ trunk/Source/WebCore/html/canvas/EXTTextureNorm16.cpp 2022-05-27 18:58:43 UTC (rev 294946)
@@ -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 "EXTTextureNorm16.h"
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(EXTTextureNorm16);
+
+EXTTextureNorm16::EXTTextureNorm16(WebGLRenderingContextBase& context)
+ : WebGLExtension(context)
+{
+#if USE(ANGLE)
+ context.graphicsContextGL()->ensureExtensionEnabled("GL_EXT_texture_norm16"_s);
+#endif
+}
+
+EXTTextureNorm16::~EXTTextureNorm16() = default;
+
+WebGLExtension::ExtensionName EXTTextureNorm16::getName() const
+{
+ return EXTTextureNorm16Name;
+}
+
+bool EXTTextureNorm16::supported(GraphicsContextGL& context)
+{
+#if USE(ANGLE)
+ return context.supportsExtension("GL_EXT_texture_norm16"_s);
+#else
+ UNUSED_PARAM(context);
+ return false;
+#endif
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(WEBGL)
Added: trunk/Source/WebCore/html/canvas/EXTTextureNorm16.h (0 => 294946)
--- trunk/Source/WebCore/html/canvas/EXTTextureNorm16.h (rev 0)
+++ trunk/Source/WebCore/html/canvas/EXTTextureNorm16.h 2022-05-27 18:58:43 UTC (rev 294946)
@@ -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 EXTTextureNorm16 final : public WebGLExtension {
+ WTF_MAKE_ISO_ALLOCATED(EXTTextureNorm16);
+public:
+ explicit EXTTextureNorm16(WebGLRenderingContextBase&);
+ virtual ~EXTTextureNorm16();
+
+ ExtensionName getName() const override;
+
+ static bool supported(GraphicsContextGL&);
+};
+
+} // namespace WebCore
Added: trunk/Source/WebCore/html/canvas/EXTTextureNorm16.idl (0 => 294946)
--- trunk/Source/WebCore/html/canvas/EXTTextureNorm16.idl (rev 0)
+++ trunk/Source/WebCore/html/canvas/EXTTextureNorm16.idl 2022-05-27 18:58:43 UTC (rev 294946)
@@ -0,0 +1,39 @@
+/*
+ * 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 EXTTextureNorm16 {
+ const unsigned long R16_EXT = 0x822A;
+ const unsigned long RG16_EXT = 0x822C;
+ const unsigned long RGB16_EXT = 0x8054;
+ const unsigned long RGBA16_EXT = 0x805B;
+ const unsigned long R16_SNORM_EXT = 0x8F98;
+ const unsigned long RG16_SNORM_EXT = 0x8F99;
+ const unsigned long RGB16_SNORM_EXT = 0x8F9A;
+ const unsigned long RGBA16_SNORM_EXT = 0x8F9B;
+};
Modified: trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp (294945 => 294946)
--- trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp 2022-05-27 18:41:56 UTC (rev 294945)
+++ trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp 2022-05-27 18:58:43 UTC (rev 294946)
@@ -34,6 +34,7 @@
#include "EXTFloatBlend.h"
#include "EXTTextureCompressionRGTC.h"
#include "EXTTextureFilterAnisotropic.h"
+#include "EXTTextureNorm16.h"
#include "EventLoop.h"
#include "HTMLCanvasElement.h"
#include "HTMLImageElement.h"
@@ -2712,6 +2713,7 @@
ENABLE_IF_REQUESTED(EXTTextureCompressionRGTC, m_extTextureCompressionRGTC, "EXT_texture_compression_rgtc"_s, enableSupportedExtension("GL_EXT_texture_compression_rgtc"_s));
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));
ENABLE_IF_REQUESTED(WebGLLoseContext, m_webglLoseContext, "WEBGL_lose_context"_s, true);
ENABLE_IF_REQUESTED(WebGLCompressedTextureASTC, m_webglCompressedTextureASTC, "WEBGL_compressed_texture_astc"_s, WebGLCompressedTextureASTC::supported(*m_context));
@@ -2748,6 +2750,8 @@
result.append("EXT_texture_compression_rgtc"_s);
if (m_context->supportsExtension("GL_EXT_texture_filter_anisotropic"_s))
result.append("EXT_texture_filter_anisotropic"_s);
+ if (EXTTextureNorm16::supported(*m_context))
+ result.append("EXT_texture_norm16"_s);
if (WebGLCompressedTextureASTC::supported(*m_context))
result.append("WEBGL_compressed_texture_astc"_s);
if (WebGLCompressedTextureATC::supported(*m_context))
@@ -3053,6 +3057,15 @@
}
renderbufferStorageHelper(target, samples, internalformat, width, height);
break;
+ case GraphicsContextGL::R16_EXT:
+ case GraphicsContextGL::RG16_EXT:
+ case GraphicsContextGL::RGBA16_EXT:
+ if (!extensionIsEnabled("EXT_texture_norm16"_s)) {
+ synthesizeGLError(GraphicsContextGL::INVALID_ENUM, functionName, "EXT_texture_norm16 not enabled");
+ return;
+ }
+ renderbufferStorageHelper(target, samples, internalformat, width, height);
+ break;
default:
synthesizeGLError(GraphicsContextGL::INVALID_ENUM, functionName, "invalid internalformat");
return;
Modified: trunk/Source/WebCore/html/canvas/WebGLExtension.h (294945 => 294946)
--- trunk/Source/WebCore/html/canvas/WebGLExtension.h 2022-05-27 18:41:56 UTC (rev 294945)
+++ trunk/Source/WebCore/html/canvas/WebGLExtension.h 2022-05-27 18:58:43 UTC (rev 294946)
@@ -43,6 +43,7 @@
EXTShaderTextureLODName,
EXTTextureCompressionRGTCName,
EXTTextureFilterAnisotropicName,
+ EXTTextureNorm16Name,
EXTsRGBName,
KHRParallelShaderCompileName,
OESTextureFloatName,
Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp (294945 => 294946)
--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp 2022-05-27 18:41:56 UTC (rev 294945)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp 2022-05-27 18:58:43 UTC (rev 294946)
@@ -42,6 +42,7 @@
#include "EXTShaderTextureLOD.h"
#include "EXTTextureCompressionRGTC.h"
#include "EXTTextureFilterAnisotropic.h"
+#include "EXTTextureNorm16.h"
#include "EXTsRGB.h"
#include "EventNames.h"
#include "Frame.h"
@@ -4002,6 +4003,7 @@
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");
+ CHECK_EXTENSION(m_extTextureNorm16, "EXT_texture_norm16");
CHECK_EXTENSION(m_extShaderTextureLOD, "EXT_shader_texture_lod");
CHECK_EXTENSION(m_khrParallelShaderCompile, "KHR_parallel_shader_compile");
CHECK_EXTENSION(m_oesTextureFloat, "OES_texture_float");
@@ -5648,7 +5650,7 @@
void WebGLRenderingContextBase::addExtensionSupportedFormatsAndTypesWebGL2()
{
- // FIXME: add EXT_texture_norm16 support.
+ // FIXME: add EXT_texture_norm16_dom_source support.
}
bool WebGLRenderingContextBase::validateTexImageSourceFormatAndType(const char* functionName, TexImageFunctionType functionType, GCGLenum internalformat, GCGLenum format, GCGLenum type)
@@ -8102,6 +8104,7 @@
LOSE_EXTENSION(m_extsRGB);
LOSE_EXTENSION(m_extTextureCompressionRGTC);
LOSE_EXTENSION(m_extTextureFilterAnisotropic);
+ LOSE_EXTENSION(m_extTextureNorm16);
LOSE_EXTENSION(m_extShaderTextureLOD);
LOSE_EXTENSION(m_khrParallelShaderCompile);
LOSE_EXTENSION(m_oesTextureFloat);
Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h (294945 => 294946)
--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h 2022-05-27 18:41:56 UTC (rev 294945)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h 2022-05-27 18:58:43 UTC (rev 294946)
@@ -78,6 +78,7 @@
class EXTFloatBlend;
class EXTTextureCompressionRGTC;
class EXTTextureFilterAnisotropic;
+class EXTTextureNorm16;
class EXTShaderTextureLOD;
class EXTsRGB;
class EXTFragDepth;
@@ -707,6 +708,7 @@
RefPtr<EXTsRGB> m_extsRGB;
RefPtr<EXTTextureCompressionRGTC> m_extTextureCompressionRGTC;
RefPtr<EXTTextureFilterAnisotropic> m_extTextureFilterAnisotropic;
+ RefPtr<EXTTextureNorm16> m_extTextureNorm16;
RefPtr<EXTShaderTextureLOD> m_extShaderTextureLOD;
RefPtr<KHRParallelShaderCompile> m_khrParallelShaderCompile;
RefPtr<OESTextureFloat> m_oesTextureFloat;
Modified: trunk/Source/WebCore/platform/graphics/GraphicsContextGL.h (294945 => 294946)
--- trunk/Source/WebCore/platform/graphics/GraphicsContextGL.h 2022-05-27 18:41:56 UTC (rev 294945)
+++ trunk/Source/WebCore/platform/graphics/GraphicsContextGL.h 2022-05-27 18:58:43 UTC (rev 294946)
@@ -766,6 +766,16 @@
static constexpr GCGLenum TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE;
static constexpr GCGLenum MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF;
+ // GL_EXT_texture_norm16
+ static constexpr GCGLenum R16_EXT = 0x822A;
+ static constexpr GCGLenum RG16_EXT = 0x822C;
+ static constexpr GCGLenum RGB16_EXT = 0x8054;
+ static constexpr GCGLenum RGBA16_EXT = 0x805B;
+ static constexpr GCGLenum R16_SNORM_EXT = 0x8F98;
+ static constexpr GCGLenum RG16_SNORM_EXT = 0x8F99;
+ static constexpr GCGLenum RGB16_SNORM_EXT = 0x8F9A;
+ static constexpr GCGLenum RGBA16_SNORM_EXT = 0x8F9B;
+
// GL_ARB_draw_buffers / GL_EXT_draw_buffers
static constexpr GCGLenum MAX_DRAW_BUFFERS_EXT = 0x8824;
static constexpr GCGLenum DRAW_BUFFER0_EXT = 0x8825;