Remove unused code for GL_TEXTURE_RECTANGLE_ARB
https://bugs.webkit.org/show_bug.cgi?id=241670

Reviewed by Don Olmstead.

The code for GL_TEXTURE_RECTANGLE_ARB was added by 105925@main (Bug
87738) for Qt-Mac port. But, no longer used.

* Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawTexture):
(WebCore::prepareTransformationMatrixWithFlags):
(WebCore::TextureMapperGL::drawTexturePlanarYUV):
(WebCore::TextureMapperGL::drawTextureSemiPlanarYUV):
(WebCore::TextureMapperGL::drawTexturePackedYUV):
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
* Source/WebCore/platform/graphics/texmap/TextureMapperGL.h:
* Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:
(WebCore::TextureMapperShaderProgram::create):
* Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.h:

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


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@295587 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp b/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp
index f4d9940..933fe57 100644
--- a/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp
+++ b/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp
@@ -469,14 +469,11 @@
 
 void TextureMapperGL::drawTexture(GLuint texture, Flags flags, const IntSize& textureSize, const FloatRect& targetRect, const TransformationMatrix& modelViewMatrix, float opacity, unsigned exposedEdges)
 {
-    bool useRect = flags & ShouldUseARBTextureRect;
     bool useAntialiasing = m_enableEdgeDistanceAntialiasing
         && exposedEdges == AllEdges
         && !modelViewMatrix.mapQuad(targetRect).isRectilinear();
 
     TextureMapperShaderProgram::Options options;
-    if (useRect)
-        options.add(TextureMapperShaderProgram::Rect);
     if (opacity < 1)
         options.add(TextureMapperShaderProgram::Opacity);
     if (useAntialiasing) {
@@ -534,24 +531,19 @@
         patternTransform.rotate(-270);
         patternTransform.translate(0, -1);
     }
-    if (flags & TextureMapperGL::ShouldFlipTexture)
+    if (flags & TextureMapperGL::ShouldFlipTexture) {
         patternTransform.flipY();
-    if (flags & TextureMapperGL::ShouldUseARBTextureRect)
-        patternTransform.scaleNonUniform(size.width(), size.height());
-    if (flags & TextureMapperGL::ShouldFlipTexture)
         patternTransform.translate(0, -1);
+    }
 }
 
 void TextureMapperGL::drawTexturePlanarYUV(const std::array<GLuint, 3>& textures, const std::array<GLfloat, 16>& yuvToRgbMatrix, Flags flags, const IntSize& textureSize, const FloatRect& targetRect, const TransformationMatrix& modelViewMatrix, float opacity, std::optional<GLuint> alphaPlane, unsigned exposedEdges)
 {
-    bool useRect = flags & ShouldUseARBTextureRect;
     bool useAntialiasing = m_enableEdgeDistanceAntialiasing
         && exposedEdges == AllEdges
         && !modelViewMatrix.mapQuad(targetRect).isRectilinear();
 
     TextureMapperShaderProgram::Options options = alphaPlane ? TextureMapperShaderProgram::TextureYUVA : TextureMapperShaderProgram::TextureYUV;
-    if (useRect)
-        options.add(TextureMapperShaderProgram::Rect);
     if (opacity < 1)
         options.add(TextureMapperShaderProgram::Opacity);
     if (useAntialiasing) {
@@ -607,15 +599,12 @@
 
 void TextureMapperGL::drawTextureSemiPlanarYUV(const std::array<GLuint, 2>& textures, bool uvReversed, const std::array<GLfloat, 16>& yuvToRgbMatrix, Flags flags, const IntSize& textureSize, const FloatRect& targetRect, const TransformationMatrix& modelViewMatrix, float opacity, unsigned exposedEdges)
 {
-    bool useRect = flags & ShouldUseARBTextureRect;
     bool useAntialiasing = m_enableEdgeDistanceAntialiasing
         && exposedEdges == AllEdges
         && !modelViewMatrix.mapQuad(targetRect).isRectilinear();
 
     TextureMapperShaderProgram::Options options = uvReversed ?
         TextureMapperShaderProgram::TextureNV21 : TextureMapperShaderProgram::TextureNV12;
-    if (useRect)
-        options.add(TextureMapperShaderProgram::Rect);
     if (opacity < 1)
         options.add(TextureMapperShaderProgram::Opacity);
     if (useAntialiasing) {
@@ -664,14 +653,11 @@
 
 void TextureMapperGL::drawTexturePackedYUV(GLuint texture, const std::array<GLfloat, 16>& yuvToRgbMatrix, Flags flags, const IntSize& textureSize, const FloatRect& targetRect, const TransformationMatrix& modelViewMatrix, float opacity, unsigned exposedEdges)
 {
-    bool useRect = flags & ShouldUseARBTextureRect;
     bool useAntialiasing = m_enableEdgeDistanceAntialiasing
         && exposedEdges == AllEdges
         && !modelViewMatrix.mapQuad(targetRect).isRectilinear();
 
     TextureMapperShaderProgram::Options options = TextureMapperShaderProgram::TexturePackedYUV;
-    if (useRect)
-        options.add(TextureMapperShaderProgram::Rect);
     if (opacity < 1)
         options.add(TextureMapperShaderProgram::Opacity);
     if (useAntialiasing) {
@@ -827,11 +813,9 @@
     glUseProgram(program.programID());
 
     bool repeatWrap = wrapMode() == RepeatWrap && m_contextAttributes.supportsNPOTTextures;
-    GLenum target;
+    GLenum target = GLenum(GL_TEXTURE_2D);
     if (flags & ShouldUseExternalOESTextureRect)
         target = GLenum(GL_TEXTURE_EXTERNAL_OES);
-    else
-        target = flags & ShouldUseARBTextureRect ? GLenum(GL_TEXTURE_RECTANGLE_ARB) : GLenum(GL_TEXTURE_2D);
 
     for (unsigned i = 0; i < texturesAndSamplers.size(); ++i) {
         auto& textureAndSampler = texturesAndSamplers[i];
diff --git a/Source/WebCore/platform/graphics/texmap/TextureMapperGL.h b/Source/WebCore/platform/graphics/texmap/TextureMapperGL.h
index 06e1f23..de777d5 100644
--- a/Source/WebCore/platform/graphics/texmap/TextureMapperGL.h
+++ b/Source/WebCore/platform/graphics/texmap/TextureMapperGL.h
@@ -49,7 +49,6 @@
         NoFlag = 0x00,
         ShouldBlend = 0x01,
         ShouldFlipTexture = 0x02,
-        ShouldUseARBTextureRect = 0x04,
         ShouldAntialias = 0x08,
         ShouldRotateTexture90 = 0x10,
         ShouldRotateTexture180 = 0x20,
diff --git a/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp b/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp
index 21a3ed3..52a32f1 100644
--- a/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp
+++ b/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp
@@ -140,15 +140,6 @@
         }
     );
 
-#define RECT_TEXTURE_DIRECTIVE \
-    GLSL_DIRECTIVE(ifdef ENABLE_Rect) \
-        GLSL_DIRECTIVE(define SamplerType sampler2DRect) \
-        GLSL_DIRECTIVE(define SamplerFunction texture2DRect) \
-    GLSL_DIRECTIVE(else) \
-        GLSL_DIRECTIVE(define SamplerType sampler2D) \
-        GLSL_DIRECTIVE(define SamplerFunction texture2D) \
-    GLSL_DIRECTIVE(endif)
-
 #define ANTIALIASING_TEX_COORD_DIRECTIVE \
     GLSL_DIRECTIVE(if defined(ENABLE_Antialiasing) && defined(ENABLE_Texture)) \
         GLSL_DIRECTIVE(define transformTexCoord fragmentTransformTexCoord) \
@@ -185,7 +176,6 @@
 // directives scope: the first one applies to the matrices variables and the next one to the
 // rest of them. The precision is only used in GLES.
 static const char* fragmentTemplateHeaderCommon =
-    RECT_TEXTURE_DIRECTIVE
     ANTIALIASING_TEX_COORD_DIRECTIVE
     BLUR_CONSTANTS
     ROUNDED_RECT_CONSTANTS
@@ -229,11 +219,11 @@
 
 static const char* fragmentTemplateCommon =
     STRINGIFY(
-        uniform SamplerType s_sampler;
-        uniform SamplerType s_samplerY;
-        uniform SamplerType s_samplerU;
-        uniform SamplerType s_samplerV;
-        uniform SamplerType s_samplerA;
+        uniform sampler2D s_sampler;
+        uniform sampler2D s_samplerY;
+        uniform sampler2D s_samplerU;
+        uniform sampler2D s_samplerV;
+        uniform sampler2D s_samplerA;
         uniform sampler2D s_contentTexture;
         uniform SamplerExternalOESType s_externalOESTexture;
         uniform float u_opacity;
@@ -263,7 +253,7 @@
 
         void applyManualRepeat(inout vec2 pos) { pos = fract(pos); }
 
-        void applyTextureRGB(inout vec4 color, vec2 texCoord) { color = u_textureColorSpaceMatrix * SamplerFunction(s_sampler, texCoord); }
+        void applyTextureRGB(inout vec4 color, vec2 texCoord) { color = u_textureColorSpaceMatrix * texture2D(s_sampler, texCoord); }
 
         void applyPremultiply(inout vec4 color) { color = vec4(color.rgb * color.a, color.a); }
 
@@ -274,38 +264,38 @@
         }
         void applyTextureYUV(inout vec4 color, vec2 texCoord)
         {
-            float y = SamplerFunction(s_samplerY, texCoord).r;
-            float u = SamplerFunction(s_samplerU, texCoord).r;
-            float v = SamplerFunction(s_samplerV, texCoord).r;
+            float y = texture2D(s_samplerY, texCoord).r;
+            float u = texture2D(s_samplerU, texCoord).r;
+            float v = texture2D(s_samplerV, texCoord).r;
             vec4 data = vec4(yuvToRgb(y, u, v), 1.0);
             color = u_textureColorSpaceMatrix * data;
         }
         void applyTextureYUVA(inout vec4 color, vec2 texCoord)
         {
-            float y = SamplerFunction(s_samplerY, texCoord).r;
-            float u = SamplerFunction(s_samplerU, texCoord).r;
-            float v = SamplerFunction(s_samplerV, texCoord).r;
-            float a = SamplerFunction(s_samplerA, texCoord).r;
+            float y = texture2D(s_samplerY, texCoord).r;
+            float u = texture2D(s_samplerU, texCoord).r;
+            float v = texture2D(s_samplerV, texCoord).r;
+            float a = texture2D(s_samplerA, texCoord).r;
             vec4 data = vec4(yuvToRgb(y, u, v), a);
             color = u_textureColorSpaceMatrix * data;
         }
         void applyTextureNV12(inout vec4 color, vec2 texCoord)
         {
-            float y = SamplerFunction(s_samplerY, texCoord).r;
-            vec2 uv = SamplerFunction(s_samplerU, texCoord).rg;
+            float y = texture2D(s_samplerY, texCoord).r;
+            vec2 uv = texture2D(s_samplerU, texCoord).rg;
             vec4 data = vec4(yuvToRgb(y, uv.x, uv.y), 1.0);
             color = u_textureColorSpaceMatrix * data;
         }
         void applyTextureNV21(inout vec4 color, vec2 texCoord)
         {
-            float y = SamplerFunction(s_samplerY, texCoord).r;
-            vec2 uv = SamplerFunction(s_samplerU, texCoord).gr;
+            float y = texture2D(s_samplerY, texCoord).r;
+            vec2 uv = texture2D(s_samplerU, texCoord).gr;
             vec4 data = vec4(yuvToRgb(y, uv.x, uv.y), 1.0);
             color = u_textureColorSpaceMatrix * data;
         }
         void applyTexturePackedYUV(inout vec4 color, vec2 texCoord)
         {
-            vec4 data = SamplerFunction(s_sampler, texCoord);
+            vec4 data = texture2D(s_sampler, texCoord);
             color = u_textureColorSpaceMatrix * vec4(yuvToRgb(data.b, data.g, data.r), data.a);
         }
         void applyOpacity(inout vec4 color) { color *= u_opacity; }
@@ -373,13 +363,13 @@
         vec4 sampleColorAtRadius(float radius, vec2 texCoord)
         {
             vec2 coord = texCoord + radius * u_blurRadius;
-            return SamplerFunction(s_sampler, coord);
+            return texture2D(s_sampler, coord);
         }
 
         float sampleAlphaAtRadius(float radius, vec2 texCoord)
         {
             vec2 coord = texCoord - u_shadowOffset + radius * u_blurRadius;
-            return SamplerFunction(s_sampler, coord).a * float(coord.x > 0. && coord.y > 0. && coord.x < 1. && coord.y < 1.);
+            return texture2D(s_sampler, coord).a * float(coord.x > 0. && coord.y > 0. && coord.x < 1. && coord.y < 1.);
         }
 
         void applyBlurFilter(inout vec4 color, vec2 texCoord)
@@ -533,7 +523,6 @@
     SET_APPLIER_FROM_OPTIONS(TextureNV12);
     SET_APPLIER_FROM_OPTIONS(TextureNV21);
     SET_APPLIER_FROM_OPTIONS(TexturePackedYUV);
-    SET_APPLIER_FROM_OPTIONS(Rect);
     SET_APPLIER_FROM_OPTIONS(SolidColor);
     SET_APPLIER_FROM_OPTIONS(Opacity);
     SET_APPLIER_FROM_OPTIONS(Antialiasing);
diff --git a/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.h b/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.h
index d2d6fe2..e6366bd 100644
--- a/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.h
+++ b/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.h
@@ -82,7 +82,6 @@
 public:
     enum Option {
         TextureRGB       = 1L << 0,
-        Rect             = 1L << 1,
         SolidColor       = 1L << 2,
         Opacity          = 1L << 3,
         Antialiasing     = 1L << 5,
@@ -147,7 +146,6 @@
     using values = EnumValues<
         WebCore::TextureMapperShaderProgram::Option,
         WebCore::TextureMapperShaderProgram::TextureRGB,
-        WebCore::TextureMapperShaderProgram::Rect,
         WebCore::TextureMapperShaderProgram::SolidColor,
         WebCore::TextureMapperShaderProgram::Opacity,
         WebCore::TextureMapperShaderProgram::Antialiasing,