Title: [294946] trunk
Revision
294946
Author
commit-qu...@webkit.org
Date
2022-05-27 11:58:43 -0700 (Fri, 27 May 2022)

Log Message

Add EXT_texture_norm16 WebGL extension support
https://bugs.webkit.org/show_bug.cgi?id=220343

Patch by Alexey Knyazev <3479527+lexaknya...@users.noreply.github.com> on 2022-05-27
Reviewed by Kenneth Russell.

* LayoutTests/TestExpectations:
* Source/WebCore/CMakeLists.txt:
* Source/WebCore/DerivedSources-input.xcfilelist:
* Source/WebCore/DerivedSources-output.xcfilelist:
* Source/WebCore/DerivedSources.make:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/bindings/js/JSDOMConvertWebGL.cpp:
(WebCore::convertToJSValue):
* Source/WebCore/html/canvas/EXTTextureNorm16.cpp: Added.
(WebCore::EXTTextureNorm16::EXTTextureNorm16):
(WebCore::EXTTextureNorm16::getName const):
(WebCore::EXTTextureNorm16::supported):
* Source/WebCore/html/canvas/EXTTextureNorm16.h: Added.
* Source/WebCore/html/canvas/EXTTextureNorm16.idl: Added.
* Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::getExtension):
(WebCore::WebGL2RenderingContext::getSupportedExtensions):
(WebCore::WebGL2RenderingContext::renderbufferStorageImpl):
* Source/WebCore/html/canvas/WebGLExtension.h:
* Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::extensionIsEnabled):
(WebCore::WebGLRenderingContextBase::addExtensionSupportedFormatsAndTypesWebGL2):
(WebCore::WebGLRenderingContextBase::loseExtensions):
* Source/WebCore/html/canvas/WebGLRenderingContextBase.h:
* Source/WebCore/platform/graphics/GraphicsContextGL.h:

Canonical link: https://commits.webkit.org/251054@main

Modified Paths

Added Paths

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;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to