Diff
Modified: trunk/LayoutTests/ChangeLog (177234 => 177235)
--- trunk/LayoutTests/ChangeLog 2014-12-12 21:40:57 UTC (rev 177234)
+++ trunk/LayoutTests/ChangeLog 2014-12-12 21:56:20 UTC (rev 177235)
@@ -1,3 +1,13 @@
+2014-12-12 Roger Fong <roger_f...@apple.com>
+
+ Implement EXT_blend_minmax as a WebGL 1 extension.
+ https://bugs.webkit.org/show_bug.cgi?id=128974.
+ <rdar://problem/19195535>
+
+ Reviewed by Dean Jackson.
+
+ * fast/canvas/webgl/constants.html:
+
2014-12-12 Alexey Proskuryakov <a...@apple.com>
http/tests/css/link-css-disabled-value-with-slow-loading-sheet.html is flaky
Modified: trunk/LayoutTests/fast/canvas/webgl/constants.html (177234 => 177235)
--- trunk/LayoutTests/fast/canvas/webgl/constants.html 2014-12-12 21:40:57 UTC (rev 177234)
+++ trunk/LayoutTests/fast/canvas/webgl/constants.html 2014-12-12 21:56:20 UTC (rev 177235)
@@ -438,7 +438,11 @@
SRGB_EXT : 0x8C40,
SRGB_ALPHA_EXT : 0x8C42,
SRGB8_ALPHA8_EXT : 0x8C43,
-FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT : 0x8210
+FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT : 0x8210,
+
+/* EXT_BLEND_MINMAX extension */
+MIN_EXT : 0x8007,
+MAX_EXT : 0x8008
};
// Constants removed from the WebGL spec compared to ES 2.0
Modified: trunk/Source/WebCore/CMakeLists.txt (177234 => 177235)
--- trunk/Source/WebCore/CMakeLists.txt 2014-12-12 21:40:57 UTC (rev 177234)
+++ trunk/Source/WebCore/CMakeLists.txt 2014-12-12 21:56:20 UTC (rev 177235)
@@ -532,6 +532,7 @@
html/canvas/CanvasRenderingContext.idl
html/canvas/CanvasRenderingContext2D.idl
html/canvas/DOMPath.idl
+ html/canvas/EXTBlendMinMax.idl
html/canvas/EXTFragDepth.idl
html/canvas/EXTShaderTextureLOD.idl
html/canvas/EXTTextureFilterAnisotropic.idl
@@ -1675,6 +1676,7 @@
html/canvas/CanvasRenderingContext.cpp
html/canvas/CanvasRenderingContext2D.cpp
html/canvas/CanvasStyle.cpp
+ html/canvas/EXTBlendMinMax.cpp
html/canvas/EXTFragDepth.cpp
html/canvas/EXTShaderTextureLOD.cpp
html/canvas/EXTTextureFilterAnisotropic.cpp
@@ -2807,6 +2809,7 @@
list(APPEND WebCore_SOURCES
html/canvas/ANGLEInstancedArrays.cpp
+ html/canvas/EXTBlendMinMax.cpp
html/canvas/EXTFragDepth.cpp
html/canvas/EXTShaderTextureLOD.cpp
html/canvas/EXTTextureFilterAnisotropic.cpp
@@ -2847,6 +2850,7 @@
)
list(APPEND WebCore_IDL_FILES
html/canvas/ANGLEInstancedArrays.idl
+ html/canvas/EXTBlendMinMax.idl
html/canvas/EXTFragDepth.idl
html/canvas/EXTShaderTextureLOD.idl
html/canvas/EXTTextureFilterAnisotropic.idl
Modified: trunk/Source/WebCore/ChangeLog (177234 => 177235)
--- trunk/Source/WebCore/ChangeLog 2014-12-12 21:40:57 UTC (rev 177234)
+++ trunk/Source/WebCore/ChangeLog 2014-12-12 21:56:20 UTC (rev 177235)
@@ -1,3 +1,41 @@
+2014-12-12 Roger Fong <roger_f...@apple.com>
+
+ Implement EXT_blend_minmax as a WebGL 1 extension.
+ https://bugs.webkit.org/show_bug.cgi?id=128974.
+ <rdar://problem/19195535>
+
+ Reviewed by Dean Jackson.
+
+ Tested by:
+ webgl/1.0.3/conformance/extensions/ext-blend-minmax.html
+ fast/canvas/webgl/constants.html
+
+ Specifications for this extension:
+ https://www.khronos.org/registry/webgl/extensions/EXT_blend_minmax/
+
+ * CMakeLists.txt:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * WebCore.vcxproj/WebCore.vcxproj:
+ * WebCore.vcxproj/WebCore.vcxproj.filters:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/JSWebGLRenderingContextCustom.cpp:
+ (WebCore::toJS):
+ * html/canvas/EXTBlendMinMax.cpp: Added.
+ (WebCore::EXTBlendMinMax::EXTBlendMinMax):
+ (WebCore::EXTBlendMinMax::~EXTBlendMinMax):
+ (WebCore::EXTBlendMinMax::getName):
+ * html/canvas/EXTBlendMinMax.h: Added.
+ * html/canvas/EXTBlendMinMax.idl: Added.
+ * html/canvas/WebGLExtension.h:
+ * html/canvas/WebGLRenderingContext.cpp:
+ (WebCore::WebGLRenderingContext::getExtension):
+ (WebCore::WebGLRenderingContext::getSupportedExtensions):
+ (WebCore::WebGLRenderingContext::validateBlendEquation):
+ * html/canvas/WebGLRenderingContext.h:
+ * html/canvas/WebGLRenderingContext.idl:
+ * platform/graphics/Extensions3D.h:
+
2014-12-12 Benjamin Poulain <bpoul...@apple.com>
Remove the concept of simple selector from the parser
Modified: trunk/Source/WebCore/DerivedSources.cpp (177234 => 177235)
--- trunk/Source/WebCore/DerivedSources.cpp 2014-12-12 21:40:57 UTC (rev 177234)
+++ trunk/Source/WebCore/DerivedSources.cpp 2014-12-12 21:56:20 UTC (rev 177235)
@@ -42,6 +42,7 @@
#include "JSCanvasRenderingContext.cpp"
#include "JSCanvasRenderingContext2D.cpp"
#if ENABLE(WEBGL)
+#include "JSEXTBlendMinMax.cpp"
#include "JSEXTFragDepth.cpp"
#include "JSEXTShaderTextureLOD.cpp"
#include "JSEXTTextureFilterAnisotropic.cpp"
Modified: trunk/Source/WebCore/DerivedSources.make (177234 => 177235)
--- trunk/Source/WebCore/DerivedSources.make 2014-12-12 21:40:57 UTC (rev 177234)
+++ trunk/Source/WebCore/DerivedSources.make 2014-12-12 21:56:20 UTC (rev 177235)
@@ -425,6 +425,7 @@
$(WebCore)/html/canvas/EXTShaderTextureLOD.idl \
$(WebCore)/html/canvas/EXTTextureFilterAnisotropic.idl \
$(WebCore)/html/canvas/EXTsRGB.idl \
+ $(WebCore)/html/canvas/EXTBlendMinMax.idl \
$(WebCore)/html/canvas/EXTFragDepth.idl \
$(WebCore)/html/canvas/OESElementIndexUint.idl \
$(WebCore)/html/canvas/OESStandardDerivatives.idl \
Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj (177234 => 177235)
--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj 2014-12-12 21:40:57 UTC (rev 177234)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj 2014-12-12 21:56:20 UTC (rev 177235)
@@ -748,6 +748,20 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
</ClCompile>
+ <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\WebCore\DerivedSources\JSEXTBlendMinMax.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
+ </ClCompile>
<ClCompile Include="..\accessibility\AccessibilityNodeObject.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
@@ -6684,6 +6698,7 @@
<ClCompile Include="..\html\canvas\CanvasPathMethods.cpp" />
<ClCompile Include="..\html\canvas\EXTShaderTextureLOD.cpp" />
<ClCompile Include="..\html\canvas\EXTsRGB.cpp" />
+ <ClCompile Include="..\html\canvas\EXTBlendMinMax.cpp" />
<ClCompile Include="..\html\canvas\EXTFragDepth.cpp" />
<ClCompile Include="..\html\canvas\EXTTextureFilterAnisotropic.cpp" />
<ClCompile Include="..\html\canvas\OESElementIndexUint.cpp" />
@@ -18881,7 +18896,8 @@
<ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSVTTRegionList.cpp" />
<ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSVTTRegionList.h" />
<ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSEXTsRGB.h" />
- <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSEXTFragDepth.h” />
+ <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSEXTFragDepth.h" />
+ <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSEXTBlendMinMax.h" />
<ClInclude Include="..\accessibility\AccessibilityNodeObject.h" />
<ClInclude Include="..\css\CSSImageSetValue.h" />
<ClInclude Include="..\css\WebKitCSSResourceValue.h" />
@@ -18972,6 +18988,7 @@
<ClInclude Include="..\html\canvas\EXTShaderTextureLOD.h" />
<ClInclude Include="..\html\canvas\EXTsRGB.h" />
<ClInclude Include="..\html\canvas\EXTFragDepth.h” />
+ <ClInclude Include="..\html\canvas\EXTBlendMinMax.h” />
<ClInclude Include="..\html\canvas\EXTTextureFilterAnisotropic.h" />
<ClInclude Include="..\html\canvas\OESElementIndexUint.h" />
<ClInclude Include="..\html\canvas\OESStandardDerivatives.h" />
Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters (177234 => 177235)
--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters 2014-12-12 21:40:57 UTC (rev 177234)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters 2014-12-12 21:56:20 UTC (rev 177235)
@@ -7267,6 +7267,12 @@
<ClCompile Include="..\html\canvas\EXTFragDepth.cpp">
<Filter>html\canvas</Filter>
</ClCompile>
+ <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\WebCore\DerivedSources\JSEXTBlendMinMax.cpp">
+ <Filter>DerivedSources</Filter>
+ </ClCompile>
+ <ClCompile Include="..\html\canvas\EXTBlendMinMax.cpp">
+ <Filter>html\canvas</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\Modules\geolocation\Coordinates.h">
@@ -15278,6 +15284,12 @@
<ClInclude Include="..\html\canvas\EXTFragDepth.h”>
<Filter>html\canvas</Filter>
</ClInclude>
+ <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSEXTBlendMinMax.h”>
+ <Filter>DerivedSources</Filter>
+ </ClInclude>
+ <ClInclude Include="..\html\canvas\EXTBlendMinMax.h”>
+ <Filter>html\canvas</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\css\CSSGrammar.y.in">
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (177234 => 177235)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2014-12-12 21:40:57 UTC (rev 177234)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2014-12-12 21:56:20 UTC (rev 177235)
@@ -2309,6 +2309,9 @@
71E2183B17359FB8006E6E4D /* PlugInsResourcesData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 71E2183917359FB8006E6E4D /* PlugInsResourcesData.cpp */; };
71E623D1151F72A60036E2F4 /* SVGAnimatedIntegerOptionalInteger.h in Headers */ = {isa = PBXBuildFile; fileRef = 71E623CF151F72A60036E2F4 /* SVGAnimatedIntegerOptionalInteger.h */; };
71FB967B1383D64600AC8A4C /* SVGAnimatedEnumerationPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 71FB967A1383D64600AC8A4C /* SVGAnimatedEnumerationPropertyTearOff.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 724ED32C1A3A7E5400F5F13C /* EXTBlendMinMax.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 724ED3291A3A7E5400F5F13C /* EXTBlendMinMax.cpp */; };
+ 724ED3311A3A8B2300F5F13C /* JSEXTBlendMinMax.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 724ED32F1A3A8B2300F5F13C /* JSEXTBlendMinMax.cpp */; };
+ 724ED3321A3A8B2300F5F13C /* JSEXTBlendMinMax.h in Headers */ = {isa = PBXBuildFile; fileRef = 724ED3301A3A8B2300F5F13C /* JSEXTBlendMinMax.h */; };
72626E020EF022FE00A07E20 /* FontFastPath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 72626E010EF022FE00A07E20 /* FontFastPath.cpp */; };
727AFED41A2EA6AE000442E8 /* EXTsRGB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 727AFED11A2EA6A0000442E8 /* EXTsRGB.cpp */; };
72E417631A2E8D2F004C562A /* JSEXTsRGB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 72E417611A2E8D2F004C562A /* JSEXTsRGB.cpp */; };
@@ -9489,6 +9492,11 @@
71E623CE151F72A60036E2F4 /* SVGAnimatedIntegerOptionalInteger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedIntegerOptionalInteger.cpp; sourceTree = "<group>"; };
71E623CF151F72A60036E2F4 /* SVGAnimatedIntegerOptionalInteger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedIntegerOptionalInteger.h; sourceTree = "<group>"; };
71FB967A1383D64600AC8A4C /* SVGAnimatedEnumerationPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedEnumerationPropertyTearOff.h; sourceTree = "<group>"; };
+ 724ED3291A3A7E5400F5F13C /* EXTBlendMinMax.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EXTBlendMinMax.cpp; path = canvas/EXTBlendMinMax.cpp; sourceTree = "<group>"; };
+ 724ED32A1A3A7E5400F5F13C /* EXTBlendMinMax.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EXTBlendMinMax.h; path = canvas/EXTBlendMinMax.h; sourceTree = "<group>"; };
+ 724ED32B1A3A7E5400F5F13C /* EXTBlendMinMax.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = EXTBlendMinMax.idl; path = canvas/EXTBlendMinMax.idl; sourceTree = "<group>"; };
+ 724ED32F1A3A8B2300F5F13C /* JSEXTBlendMinMax.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSEXTBlendMinMax.cpp; path = "JSEXTBlendMinMax.cpp"; sourceTree = "<group>"; };
+ 724ED3301A3A8B2300F5F13C /* JSEXTBlendMinMax.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSEXTBlendMinMax.h; path = "JSEXTBlendMinMax.h"; sourceTree = "<group>"; };
72626E010EF022FE00A07E20 /* FontFastPath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FontFastPath.cpp; sourceTree = "<group>"; };
727AFED11A2EA6A0000442E8 /* EXTsRGB.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EXTsRGB.cpp; path = canvas/EXTsRGB.cpp; sourceTree = "<group>"; };
727AFED21A2EA6A0000442E8 /* EXTsRGB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EXTsRGB.h; path = canvas/EXTsRGB.h; sourceTree = "<group>"; };
@@ -15817,6 +15825,9 @@
49484FC0102CF23C00187DD3 /* CanvasStyle.h */,
FB91392016AE4B0B001FE682 /* DOMPath.h */,
FB91392116AE4B0B001FE682 /* DOMPath.idl */,
+ 724ED3291A3A7E5400F5F13C /* EXTBlendMinMax.cpp */,
+ 724ED32A1A3A7E5400F5F13C /* EXTBlendMinMax.h */,
+ 724ED32B1A3A7E5400F5F13C /* EXTBlendMinMax.idl */,
5C4304AD191AC908000E2BC0 /* EXTShaderTextureLOD.cpp */,
5C4304AE191AC908000E2BC0 /* EXTShaderTextureLOD.h */,
5C4304AF191AC908000E2BC0 /* EXTShaderTextureLOD.idl */,
@@ -18731,6 +18742,8 @@
A83B79080CCAFF2B000B0825 /* HTML */ = {
isa = PBXGroup;
children = (
+ 724ED32F1A3A8B2300F5F13C /* JSEXTBlendMinMax.cpp */,
+ 724ED3301A3A8B2300F5F13C /* JSEXTBlendMinMax.h */,
72F1ADA31A390B9F00014E18 /* JSEXTFragDepth.cpp */,
72F1ADA41A390B9F00014E18 /* JSEXTFragDepth.h */,
72E417611A2E8D2F004C562A /* JSEXTsRGB.cpp */,
@@ -25222,6 +25235,7 @@
A83B78FC0CCAFF15000B0825 /* JSSVGFontFaceUriElement.h in Headers */,
B2FA3D990AB75A6F000E5AC4 /* JSSVGForeignObjectElement.h in Headers */,
B2FA3D9B0AB75A6F000E5AC4 /* JSSVGGElement.h in Headers */,
+ 724ED3321A3A8B2300F5F13C /* JSEXTBlendMinMax.h in Headers */,
B27B28280CEF0C0700D39D54 /* JSSVGGlyphElement.h in Headers */,
24D9129A13CA971400D21915 /* JSSVGGlyphRefElement.h in Headers */,
B2FA3D9D0AB75A6F000E5AC4 /* JSSVGGradientElement.h in Headers */,
@@ -29085,6 +29099,7 @@
BC772C5E0C4EB3440083285F /* MIMETypeRegistryMac.mm in Sources */,
52F10865162B6DA4009AC81E /* MixedContentChecker.cpp in Sources */,
CDF2B0101820540600F2B424 /* MockBox.cpp in Sources */,
+ 724ED3311A3A8B2300F5F13C /* JSEXTBlendMinMax.cpp in Sources */,
CDF2B0121820540600F2B424 /* MockMediaPlayerMediaSource.cpp in Sources */,
CDF2B0141820540600F2B424 /* MockMediaSourcePrivate.cpp in Sources */,
07C59B6317F4D1BF000FBCBB /* MockMediaStreamCenter.cpp in Sources */,
@@ -30043,6 +30058,7 @@
A0EE0DF7144F825500F80B0D /* WebGLDebugShaders.cpp in Sources */,
6E3FAE8E14733FDB00E42307 /* WebGLDepthTexture.cpp in Sources */,
5B30695D18B3D3450099D5E8 /* WebGLDrawBuffers.cpp in Sources */,
+ 724ED32C1A3A7E5400F5F13C /* EXTBlendMinMax.cpp in Sources */,
6EBF0E5412A8929800DB1709 /* WebGLExtension.cpp in Sources */,
49C7B9CE1042D32F0009D447 /* WebGLFramebuffer.cpp in Sources */,
6E47E66010B7944B00B186C8 /* WebGLGetInfo.cpp in Sources */,
Modified: trunk/Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp (177234 => 177235)
--- trunk/Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp 2014-12-12 21:40:57 UTC (rev 177234)
+++ trunk/Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp 2014-12-12 21:56:20 UTC (rev 177235)
@@ -30,6 +30,7 @@
#include "JSWebGLRenderingContext.h"
#include "ANGLEInstancedArrays.h"
+#include "EXTBlendMinMax.h"
#include "EXTFragDepth.h"
#include "EXTShaderTextureLOD.h"
#include "EXTTextureFilterAnisotropic.h"
@@ -38,6 +39,7 @@
#include "HTMLCanvasElement.h"
#include "HTMLImageElement.h"
#include "JSANGLEInstancedArrays.h"
+#include "JSEXTBlendMinMax.h"
#include "JSEXTFragDepth.h"
#include "JSEXTShaderTextureLOD.h"
#include "JSEXTTextureFilterAnisotropic.h"
@@ -219,6 +221,8 @@
return toJS(exec, globalObject, static_cast<EXTsRGB*>(extension));
case WebGLExtension::EXTFragDepthName:
return toJS(exec, globalObject, static_cast<EXTFragDepth*>(extension));
+ case WebGLExtension::EXTBlendMinMaxName:
+ return toJS(exec, globalObject, static_cast<EXTBlendMinMax*>(extension));
case WebGLExtension::OESStandardDerivativesName:
return toJS(exec, globalObject, static_cast<OESStandardDerivatives*>(extension));
case WebGLExtension::OESTextureFloatName:
Added: trunk/Source/WebCore/html/canvas/EXTBlendMinMax.cpp (0 => 177235)
--- trunk/Source/WebCore/html/canvas/EXTBlendMinMax.cpp (rev 0)
+++ trunk/Source/WebCore/html/canvas/EXTBlendMinMax.cpp 2014-12-12 21:56:20 UTC (rev 177235)
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2014 Apple Inc. 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 "EXTBlendMinMax.h"
+
+namespace WebCore {
+
+EXTBlendMinMax::EXTBlendMinMax(WebGLRenderingContext* context)
+ : WebGLExtension(context)
+{
+}
+
+EXTBlendMinMax::~EXTBlendMinMax()
+{
+}
+
+WebGLExtension::ExtensionName EXTBlendMinMax::getName() const
+{
+ return EXTBlendMinMaxName;
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(WEBGL)
Added: trunk/Source/WebCore/html/canvas/EXTBlendMinMax.h (0 => 177235)
--- trunk/Source/WebCore/html/canvas/EXTBlendMinMax.h (rev 0)
+++ trunk/Source/WebCore/html/canvas/EXTBlendMinMax.h 2014-12-12 21:56:20 UTC (rev 177235)
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2014 Apple Inc. 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.
+ */
+
+#ifndef EXTBlendMinMax_h
+#define EXTBlendMinMax_h
+
+#include "WebGLExtension.h"
+
+namespace WebCore {
+
+class EXTBlendMinMax final : public WebGLExtension {
+public:
+ explicit EXTBlendMinMax(WebGLRenderingContext*);
+ virtual ~EXTBlendMinMax();
+
+ virtual ExtensionName getName() const override;
+};
+
+} // namespace WebCore
+
+#endif // EXTBlendMinMax_h
Added: trunk/Source/WebCore/html/canvas/EXTBlendMinMax.idl (0 => 177235)
--- trunk/Source/WebCore/html/canvas/EXTBlendMinMax.idl (rev 0)
+++ trunk/Source/WebCore/html/canvas/EXTBlendMinMax.idl 2014-12-12 21:56:20 UTC (rev 177235)
@@ -0,0 +1,33 @@
+/*
+* Copyright (C) 2014 Apple Inc. 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.
+*/
+
+[
+ NoInterfaceObject,
+ Conditional=WEBGL,
+ GenerateIsReachable=ImplWebGLRenderingContext
+] interface EXTBlendMinMax {
+ const unsigned int MIN_EXT = 0x8007;
+ const unsigned int MAX_EXT = 0x8008;
+};
Modified: trunk/Source/WebCore/html/canvas/WebGLExtension.h (177234 => 177235)
--- trunk/Source/WebCore/html/canvas/WebGLExtension.h 2014-12-12 21:40:57 UTC (rev 177234)
+++ trunk/Source/WebCore/html/canvas/WebGLExtension.h 2014-12-12 21:56:20 UTC (rev 177235)
@@ -36,6 +36,7 @@
// Extension names are needed to properly wrap instances in _javascript_ objects.
enum ExtensionName {
WebGLLoseContextName,
+ EXTBlendMinMaxName,
EXTFragDepthName,
EXTShaderTextureLODName,
EXTTextureFilterAnisotropicName,
Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp (177234 => 177235)
--- trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp 2014-12-12 21:40:57 UTC (rev 177234)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp 2014-12-12 21:56:20 UTC (rev 177235)
@@ -33,6 +33,7 @@
#include "CachedImage.h"
#include "DOMWindow.h"
#include "Document.h"
+#include "EXTBlendMinMax.h"
#include "EXTFragDepth.h"
#include "EXTShaderTextureLOD.h"
#include "EXTTextureFilterAnisotropic.h"
@@ -2455,6 +2456,14 @@
if (isContextLostOrPending())
return nullptr;
+ if (equalIgnoringCase(name, "EXT_blend_minmax")
+ && m_context->getExtensions()->supports("GL_EXT_blend_minmax")) {
+ if (!m_extBlendMinMax) {
+ m_context->getExtensions()->ensureEnabled("GL_EXT_blend_minmax");
+ m_extBlendMinMax = std::make_unique<EXTBlendMinMax>(this);
+ }
+ return m_extBlendMinMax.get();
+ }
if (equalIgnoringCase(name, "EXT_sRGB")
&& m_context->getExtensions()->supports("GL_EXT_sRGB")) {
if (!m_extsRGB) {
@@ -3087,6 +3096,8 @@
if (m_isPendingPolicyResolution)
return result;
+ if (m_context->getExtensions()->supports("GL_EXT_blend_minmax"))
+ result.append("EXT_blend_minmax");
if (m_context->getExtensions()->supports("GL_EXT_sRGB"))
result.append("EXT_sRGB");
if (m_context->getExtensions()->supports("GL_EXT_frag_depth"))
@@ -5664,7 +5675,14 @@
case GraphicsContext3D::FUNC_ADD:
case GraphicsContext3D::FUNC_SUBTRACT:
case GraphicsContext3D::FUNC_REVERSE_SUBTRACT:
+ case Extensions3D::MIN_EXT:
+ case Extensions3D::MAX_EXT:
+ if ((mode == Extensions3D::MIN_EXT || mode == Extensions3D::MAX_EXT) && !m_extBlendMinMax) {
+ synthesizeGLError(GraphicsContext3D::INVALID_ENUM, functionName, "invalid mode");
+ return false;
+ }
return true;
+ break;
default:
synthesizeGLError(GraphicsContext3D::INVALID_ENUM, functionName, "invalid mode");
return false;
Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContext.h (177234 => 177235)
--- trunk/Source/WebCore/html/canvas/WebGLRenderingContext.h 2014-12-12 21:40:57 UTC (rev 177234)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContext.h 2014-12-12 21:56:20 UTC (rev 177235)
@@ -41,6 +41,7 @@
namespace WebCore {
class ANGLEInstancedArrays;
+class EXTBlendMinMax;
class EXTTextureFilterAnisotropic;
class EXTShaderTextureLOD;
class EXTsRGB;
@@ -541,6 +542,7 @@
// Enabled extension objects.
std::unique_ptr<EXTFragDepth> m_extFragDepth;
+ std::unique_ptr<EXTBlendMinMax> m_extBlendMinMax;
std::unique_ptr<EXTsRGB> m_extsRGB;
std::unique_ptr<EXTTextureFilterAnisotropic> m_extTextureFilterAnisotropic;
std::unique_ptr<EXTShaderTextureLOD> m_extShaderTextureLOD;
Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContext.idl (177234 => 177235)
--- trunk/Source/WebCore/html/canvas/WebGLRenderingContext.idl 2014-12-12 21:40:57 UTC (rev 177234)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContext.idl 2014-12-12 21:56:20 UTC (rev 177235)
@@ -423,6 +423,9 @@
const GLenum SRGB8_ALPHA8_EXT = 0x8C43;
const GLenum FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210;
+ const GLenum MIN_EXT = 0x8007;
+ const GLenum MAX_EXT = 0x8008;
+
const GLenum RENDERBUFFER_WIDTH = 0x8D42;
const GLenum RENDERBUFFER_HEIGHT = 0x8D43;
const GLenum RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;
Modified: trunk/Source/WebCore/platform/graphics/Extensions3D.h (177234 => 177235)
--- trunk/Source/WebCore/platform/graphics/Extensions3D.h 2014-12-12 21:40:57 UTC (rev 177234)
+++ trunk/Source/WebCore/platform/graphics/Extensions3D.h 2014-12-12 21:56:20 UTC (rev 177235)
@@ -96,6 +96,10 @@
SRGB8_ALPHA8_EXT = 0x8C43,
FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210,
+ // EXT_blend_minmax enums
+ MIN_EXT = 0x8007,
+ MAX_EXT = 0x8008,
+
// GL_EXT_texture_format_BGRA8888 enums
BGRA_EXT = 0x80E1,