~mmach/netext73/webkit2gtk

« back to all changes in this revision

Viewing changes to Source/ThirdParty/ANGLE/src/tests/compiler_tests/SamplerVideoWEBGL_test.cpp

  • Committer: mmach
  • Date: 2023-06-16 17:21:37 UTC
  • Revision ID: netbit73@gmail.com-20230616172137-2rqx6yr96ga9g3kp
1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//
 
2
// Copyright 2019 The ANGLE Project Authors. All rights reserved.
 
3
// Use of this source code is governed by a BSD-style license that can be
 
4
// found in the LICENSE file.
 
5
//
 
6
// samplerVideoWEBGL_test.cpp:
 
7
// Tests compiling shaders that use samplerVideoWEBGL types
 
8
//
 
9
 
 
10
#include "GLSLANG/ShaderLang.h"
 
11
#include "angle_gl.h"
 
12
#include "gtest/gtest.h"
 
13
#include "tests/test_utils/ShaderCompileTreeTest.h"
 
14
 
 
15
using namespace sh;
 
16
 
 
17
class SamplerVideoWEBGLTest : public ShaderCompileTreeTest
 
18
{
 
19
  public:
 
20
    SamplerVideoWEBGLTest() {}
 
21
 
 
22
    void initResources(ShBuiltInResources *resources) override
 
23
    {
 
24
        resources->WEBGL_video_texture = 1;
 
25
    }
 
26
 
 
27
  protected:
 
28
    ::GLenum getShaderType() const override { return GL_FRAGMENT_SHADER; }
 
29
    ShShaderSpec getShaderSpec() const override { return SH_GLES3_1_SPEC; }
 
30
};
 
31
 
 
32
// Checks whether compiler returns error when extension isn't enabled but samplerVideoWEBGL is
 
33
// used in shader.
 
34
TEST_F(SamplerVideoWEBGLTest, UsingSamplerVideoWEBGLWithoutWEBGLVideoTextureExtensionRequired)
 
35
{
 
36
    const std::string &shaderString =
 
37
        "precision mediump float;\n"
 
38
        "uniform mediump samplerVideoWEBGL s;\n"
 
39
        "void main()\n"
 
40
        "{\n"
 
41
        "    gl_FragColor = textureVideoWEBGL(s, vec2(0.0, 0.0));\n"
 
42
        "}\n";
 
43
 
 
44
    if (compile(shaderString))
 
45
    {
 
46
        FAIL() << "Shader compilation passed, expecting fail:\n" << mInfoLog;
 
47
    }
 
48
}
 
49
 
 
50
// Checks whether compiler returns error when extension isn't enabled but use samplerVideoWEBGL is
 
51
// used in ES300 shader.
 
52
TEST_F(SamplerVideoWEBGLTest,
 
53
       UsingSamplerVideoWEBGLWithoutWEBGLVideoTextureExtensionRequiredInES300)
 
54
{
 
55
    const std::string &shaderString =
 
56
        "#version 300 es"
 
57
        "precision mediump float;\n"
 
58
        "uniform mediump samplerVideoWEBGL s;\n"
 
59
        "out vec4 my_FragColor;\n"
 
60
        "void main()\n"
 
61
        "{\n"
 
62
        "   my_FragColor = texture(s, vec2(0.0, 0.0));\n"
 
63
        "}\n";
 
64
 
 
65
    if (compile(shaderString))
 
66
    {
 
67
        FAIL() << "Shader compilation passed, expecting fail:\n" << mInfoLog;
 
68
    }
 
69
}
 
70
 
 
71
// Checks whether compiler can support samplerVideoWEBGL as texture2D parameter.
 
72
TEST_F(SamplerVideoWEBGLTest, SamplerVideoWEBGLCanBeSupportedInTexture2D)
 
73
{
 
74
    const std::string &shaderString =
 
75
        "#extension GL_WEBGL_video_texture : require\n"
 
76
        "precision mediump float;\n"
 
77
        "uniform mediump samplerVideoWEBGL s;\n"
 
78
        "void main()\n"
 
79
        "{\n"
 
80
        "    gl_FragColor = textureVideoWEBGL(s, vec2(0.0, 0.0));\n"
 
81
        "}\n";
 
82
 
 
83
    if (!compile(shaderString))
 
84
    {
 
85
        FAIL() << "Shader compilation failed, expecting success:\n" << mInfoLog;
 
86
    }
 
87
}
 
88
 
 
89
// Checks whether compiler can support samplerVideoWEBGL as texture parameter in ES300.
 
90
TEST_F(SamplerVideoWEBGLTest, SamplerVideoWEBGLCanBeSupportedInTextureInES300)
 
91
{
 
92
    const std::string &shaderString =
 
93
        "#version 300 es\n"
 
94
        "#extension GL_WEBGL_video_texture : require\n"
 
95
        "precision mediump float;\n"
 
96
        "uniform mediump samplerVideoWEBGL s;\n"
 
97
        "out vec4 my_FragColor;\n"
 
98
        "void main()\n"
 
99
        "{\n"
 
100
        "    my_FragColor = texture(s, vec2(0.0, 0.0));\n"
 
101
        "}\n";
 
102
 
 
103
    if (!compile(shaderString))
 
104
    {
 
105
        FAIL() << "Shader compilation failed, expecting success:\n" << mInfoLog;
 
106
    }
 
107
}
 
 
b'\\ No newline at end of file'