1*8975f5c5SAndroid Build Coastguard Worker //
2*8975f5c5SAndroid Build Coastguard Worker // Copyright 2019 The ANGLE Project Authors. All rights reserved.
3*8975f5c5SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
4*8975f5c5SAndroid Build Coastguard Worker // found in the LICENSE file.
5*8975f5c5SAndroid Build Coastguard Worker //
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Worker #include "test_utils/ANGLETest.h"
8*8975f5c5SAndroid Build Coastguard Worker
9*8975f5c5SAndroid Build Coastguard Worker #include "test_utils/gl_raii.h"
10*8975f5c5SAndroid Build Coastguard Worker
11*8975f5c5SAndroid Build Coastguard Worker using namespace angle;
12*8975f5c5SAndroid Build Coastguard Worker
13*8975f5c5SAndroid Build Coastguard Worker namespace
14*8975f5c5SAndroid Build Coastguard Worker {
15*8975f5c5SAndroid Build Coastguard Worker
16*8975f5c5SAndroid Build Coastguard Worker class WEBGLVideoTextureTest : public ANGLETest<>
17*8975f5c5SAndroid Build Coastguard Worker {
18*8975f5c5SAndroid Build Coastguard Worker protected:
WEBGLVideoTextureTest()19*8975f5c5SAndroid Build Coastguard Worker WEBGLVideoTextureTest()
20*8975f5c5SAndroid Build Coastguard Worker {
21*8975f5c5SAndroid Build Coastguard Worker setWindowWidth(128);
22*8975f5c5SAndroid Build Coastguard Worker setWindowHeight(128);
23*8975f5c5SAndroid Build Coastguard Worker setConfigRedBits(8);
24*8975f5c5SAndroid Build Coastguard Worker setConfigGreenBits(8);
25*8975f5c5SAndroid Build Coastguard Worker setConfigBlueBits(8);
26*8975f5c5SAndroid Build Coastguard Worker setConfigAlphaBits(8);
27*8975f5c5SAndroid Build Coastguard Worker }
28*8975f5c5SAndroid Build Coastguard Worker };
29*8975f5c5SAndroid Build Coastguard Worker
30*8975f5c5SAndroid Build Coastguard Worker class WEBGLVideoTextureES300Test : public ANGLETest<>
31*8975f5c5SAndroid Build Coastguard Worker {
32*8975f5c5SAndroid Build Coastguard Worker protected:
WEBGLVideoTextureES300Test()33*8975f5c5SAndroid Build Coastguard Worker WEBGLVideoTextureES300Test()
34*8975f5c5SAndroid Build Coastguard Worker {
35*8975f5c5SAndroid Build Coastguard Worker setWindowWidth(128);
36*8975f5c5SAndroid Build Coastguard Worker setWindowHeight(128);
37*8975f5c5SAndroid Build Coastguard Worker setConfigRedBits(8);
38*8975f5c5SAndroid Build Coastguard Worker setConfigGreenBits(8);
39*8975f5c5SAndroid Build Coastguard Worker setConfigBlueBits(8);
40*8975f5c5SAndroid Build Coastguard Worker setConfigAlphaBits(8);
41*8975f5c5SAndroid Build Coastguard Worker }
42*8975f5c5SAndroid Build Coastguard Worker };
43*8975f5c5SAndroid Build Coastguard Worker
44*8975f5c5SAndroid Build Coastguard Worker // Test to verify samplerVideoWEBGL works fine when extension is enabled.
TEST_P(WEBGLVideoTextureTest,VerifySamplerVideoWEBGL)45*8975f5c5SAndroid Build Coastguard Worker TEST_P(WEBGLVideoTextureTest, VerifySamplerVideoWEBGL)
46*8975f5c5SAndroid Build Coastguard Worker {
47*8975f5c5SAndroid Build Coastguard Worker ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_WEBGL_video_texture"));
48*8975f5c5SAndroid Build Coastguard Worker
49*8975f5c5SAndroid Build Coastguard Worker constexpr char kVS[] = R"(
50*8975f5c5SAndroid Build Coastguard Worker attribute vec2 position;
51*8975f5c5SAndroid Build Coastguard Worker varying mediump vec2 texCoord;
52*8975f5c5SAndroid Build Coastguard Worker void main()
53*8975f5c5SAndroid Build Coastguard Worker {
54*8975f5c5SAndroid Build Coastguard Worker gl_Position = vec4(position, 0, 1);
55*8975f5c5SAndroid Build Coastguard Worker texCoord = position * 0.5 + vec2(0.5);
56*8975f5c5SAndroid Build Coastguard Worker })";
57*8975f5c5SAndroid Build Coastguard Worker
58*8975f5c5SAndroid Build Coastguard Worker constexpr char kFS[] = R"(
59*8975f5c5SAndroid Build Coastguard Worker
60*8975f5c5SAndroid Build Coastguard Worker #extension GL_WEBGL_video_texture : require
61*8975f5c5SAndroid Build Coastguard Worker precision mediump float;
62*8975f5c5SAndroid Build Coastguard Worker varying mediump vec2 texCoord;
63*8975f5c5SAndroid Build Coastguard Worker uniform mediump samplerVideoWEBGL s;
64*8975f5c5SAndroid Build Coastguard Worker void main()
65*8975f5c5SAndroid Build Coastguard Worker {
66*8975f5c5SAndroid Build Coastguard Worker gl_FragColor = textureVideoWEBGL(s, texCoord);
67*8975f5c5SAndroid Build Coastguard Worker })";
68*8975f5c5SAndroid Build Coastguard Worker
69*8975f5c5SAndroid Build Coastguard Worker ANGLE_GL_PROGRAM(program, kVS, kFS);
70*8975f5c5SAndroid Build Coastguard Worker // Initialize basic red texture.
71*8975f5c5SAndroid Build Coastguard Worker const std::vector<GLColor> redColors(4, GLColor::red);
72*8975f5c5SAndroid Build Coastguard Worker GLTexture texture;
73*8975f5c5SAndroid Build Coastguard Worker glBindTexture(GL_TEXTURE_VIDEO_IMAGE_WEBGL, texture);
74*8975f5c5SAndroid Build Coastguard Worker glTexImage2D(GL_TEXTURE_VIDEO_IMAGE_WEBGL, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE,
75*8975f5c5SAndroid Build Coastguard Worker redColors.data());
76*8975f5c5SAndroid Build Coastguard Worker glTexParameteri(GL_TEXTURE_VIDEO_IMAGE_WEBGL, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
77*8975f5c5SAndroid Build Coastguard Worker glTexParameteri(GL_TEXTURE_VIDEO_IMAGE_WEBGL, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
78*8975f5c5SAndroid Build Coastguard Worker
79*8975f5c5SAndroid Build Coastguard Worker ASSERT_GL_NO_ERROR();
80*8975f5c5SAndroid Build Coastguard Worker
81*8975f5c5SAndroid Build Coastguard Worker drawQuad(program, "position", 0.0f);
82*8975f5c5SAndroid Build Coastguard Worker EXPECT_PIXEL_RECT_EQ(0, 0, getWindowWidth(), getWindowHeight(), GLColor::red);
83*8975f5c5SAndroid Build Coastguard Worker glBindTexture(GL_TEXTURE_VIDEO_IMAGE_WEBGL, 0);
84*8975f5c5SAndroid Build Coastguard Worker ASSERT_GL_NO_ERROR();
85*8975f5c5SAndroid Build Coastguard Worker }
86*8975f5c5SAndroid Build Coastguard Worker
87*8975f5c5SAndroid Build Coastguard Worker // Test to verify samplerVideoWEBGL works fine as parameter of user defined function
88*8975f5c5SAndroid Build Coastguard Worker // when extension is enabled.
TEST_P(WEBGLVideoTextureTest,VerifySamplerVideoWEBGLAsParameter)89*8975f5c5SAndroid Build Coastguard Worker TEST_P(WEBGLVideoTextureTest, VerifySamplerVideoWEBGLAsParameter)
90*8975f5c5SAndroid Build Coastguard Worker {
91*8975f5c5SAndroid Build Coastguard Worker ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_WEBGL_video_texture"));
92*8975f5c5SAndroid Build Coastguard Worker
93*8975f5c5SAndroid Build Coastguard Worker constexpr char kVS[] = R"(
94*8975f5c5SAndroid Build Coastguard Worker attribute vec2 position;
95*8975f5c5SAndroid Build Coastguard Worker varying mediump vec2 texCoord;
96*8975f5c5SAndroid Build Coastguard Worker void main()
97*8975f5c5SAndroid Build Coastguard Worker {
98*8975f5c5SAndroid Build Coastguard Worker gl_Position = vec4(position, 0, 1);
99*8975f5c5SAndroid Build Coastguard Worker texCoord = position * 0.5 + vec2(0.5);
100*8975f5c5SAndroid Build Coastguard Worker })";
101*8975f5c5SAndroid Build Coastguard Worker
102*8975f5c5SAndroid Build Coastguard Worker constexpr char kFS[] = R"(
103*8975f5c5SAndroid Build Coastguard Worker
104*8975f5c5SAndroid Build Coastguard Worker #extension GL_WEBGL_video_texture : require
105*8975f5c5SAndroid Build Coastguard Worker precision mediump float;
106*8975f5c5SAndroid Build Coastguard Worker varying mediump vec2 texCoord;
107*8975f5c5SAndroid Build Coastguard Worker uniform mediump samplerVideoWEBGL s;
108*8975f5c5SAndroid Build Coastguard Worker
109*8975f5c5SAndroid Build Coastguard Worker vec4 wrapTextureVideoWEBGL(mediump samplerVideoWEBGL sampler, vec2 coord)
110*8975f5c5SAndroid Build Coastguard Worker {
111*8975f5c5SAndroid Build Coastguard Worker return textureVideoWEBGL(sampler, coord);
112*8975f5c5SAndroid Build Coastguard Worker }
113*8975f5c5SAndroid Build Coastguard Worker
114*8975f5c5SAndroid Build Coastguard Worker void main()
115*8975f5c5SAndroid Build Coastguard Worker {
116*8975f5c5SAndroid Build Coastguard Worker gl_FragColor = wrapTextureVideoWEBGL(s, texCoord);
117*8975f5c5SAndroid Build Coastguard Worker })";
118*8975f5c5SAndroid Build Coastguard Worker
119*8975f5c5SAndroid Build Coastguard Worker ANGLE_GL_PROGRAM(program, kVS, kFS);
120*8975f5c5SAndroid Build Coastguard Worker // Initialize basic red texture.
121*8975f5c5SAndroid Build Coastguard Worker const std::vector<GLColor> redColors(4, GLColor::red);
122*8975f5c5SAndroid Build Coastguard Worker GLTexture texture;
123*8975f5c5SAndroid Build Coastguard Worker glBindTexture(GL_TEXTURE_VIDEO_IMAGE_WEBGL, texture);
124*8975f5c5SAndroid Build Coastguard Worker glTexImage2D(GL_TEXTURE_VIDEO_IMAGE_WEBGL, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE,
125*8975f5c5SAndroid Build Coastguard Worker redColors.data());
126*8975f5c5SAndroid Build Coastguard Worker glTexParameteri(GL_TEXTURE_VIDEO_IMAGE_WEBGL, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
127*8975f5c5SAndroid Build Coastguard Worker glTexParameteri(GL_TEXTURE_VIDEO_IMAGE_WEBGL, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
128*8975f5c5SAndroid Build Coastguard Worker ASSERT_GL_NO_ERROR();
129*8975f5c5SAndroid Build Coastguard Worker
130*8975f5c5SAndroid Build Coastguard Worker drawQuad(program, "position", 0.0f);
131*8975f5c5SAndroid Build Coastguard Worker EXPECT_PIXEL_RECT_EQ(0, 0, getWindowWidth(), getWindowHeight(), GLColor::red);
132*8975f5c5SAndroid Build Coastguard Worker glBindTexture(GL_TEXTURE_VIDEO_IMAGE_WEBGL, 0);
133*8975f5c5SAndroid Build Coastguard Worker ASSERT_GL_NO_ERROR();
134*8975f5c5SAndroid Build Coastguard Worker }
135*8975f5c5SAndroid Build Coastguard Worker
136*8975f5c5SAndroid Build Coastguard Worker // Test to ensure ANGLE state manager knows the change when binding VideoImage
137*8975f5c5SAndroid Build Coastguard Worker // and can handle it correctly based on the program.
TEST_P(WEBGLVideoTextureTest,VerifyStateManagerKnowsBindingVideoImage)138*8975f5c5SAndroid Build Coastguard Worker TEST_P(WEBGLVideoTextureTest, VerifyStateManagerKnowsBindingVideoImage)
139*8975f5c5SAndroid Build Coastguard Worker {
140*8975f5c5SAndroid Build Coastguard Worker ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_WEBGL_video_texture"));
141*8975f5c5SAndroid Build Coastguard Worker
142*8975f5c5SAndroid Build Coastguard Worker constexpr char kVS[] = R"(
143*8975f5c5SAndroid Build Coastguard Worker attribute vec2 position;
144*8975f5c5SAndroid Build Coastguard Worker varying mediump vec2 texCoord;
145*8975f5c5SAndroid Build Coastguard Worker void main()
146*8975f5c5SAndroid Build Coastguard Worker {
147*8975f5c5SAndroid Build Coastguard Worker gl_Position = vec4(position, 0, 1);
148*8975f5c5SAndroid Build Coastguard Worker texCoord = position * 0.5 + vec2(0.5);
149*8975f5c5SAndroid Build Coastguard Worker })";
150*8975f5c5SAndroid Build Coastguard Worker
151*8975f5c5SAndroid Build Coastguard Worker constexpr char kFS2D[] = R"(
152*8975f5c5SAndroid Build Coastguard Worker
153*8975f5c5SAndroid Build Coastguard Worker precision mediump float;
154*8975f5c5SAndroid Build Coastguard Worker varying mediump vec2 texCoord;
155*8975f5c5SAndroid Build Coastguard Worker uniform mediump sampler2D s;
156*8975f5c5SAndroid Build Coastguard Worker
157*8975f5c5SAndroid Build Coastguard Worker void main()
158*8975f5c5SAndroid Build Coastguard Worker {
159*8975f5c5SAndroid Build Coastguard Worker gl_FragColor = texture2D(s, texCoord);
160*8975f5c5SAndroid Build Coastguard Worker })";
161*8975f5c5SAndroid Build Coastguard Worker
162*8975f5c5SAndroid Build Coastguard Worker constexpr char kFSVideoImage[] = R"(
163*8975f5c5SAndroid Build Coastguard Worker
164*8975f5c5SAndroid Build Coastguard Worker #extension GL_WEBGL_video_texture : require
165*8975f5c5SAndroid Build Coastguard Worker precision mediump float;
166*8975f5c5SAndroid Build Coastguard Worker varying mediump vec2 texCoord;
167*8975f5c5SAndroid Build Coastguard Worker uniform mediump samplerVideoWEBGL s;
168*8975f5c5SAndroid Build Coastguard Worker
169*8975f5c5SAndroid Build Coastguard Worker void main()
170*8975f5c5SAndroid Build Coastguard Worker {
171*8975f5c5SAndroid Build Coastguard Worker gl_FragColor = textureVideoWEBGL(s, texCoord);
172*8975f5c5SAndroid Build Coastguard Worker })";
173*8975f5c5SAndroid Build Coastguard Worker
174*8975f5c5SAndroid Build Coastguard Worker ANGLE_GL_PROGRAM(program2D, kVS, kFS2D);
175*8975f5c5SAndroid Build Coastguard Worker ANGLE_GL_PROGRAM(programVideoImage, kVS, kFSVideoImage);
176*8975f5c5SAndroid Build Coastguard Worker // Initialize basic red texture.
177*8975f5c5SAndroid Build Coastguard Worker const std::vector<GLColor> redColors(4, GLColor::red);
178*8975f5c5SAndroid Build Coastguard Worker const std::vector<GLColor> greenColors(4, GLColor::green);
179*8975f5c5SAndroid Build Coastguard Worker GLTexture texture2D;
180*8975f5c5SAndroid Build Coastguard Worker GLTexture textureVideoImage;
181*8975f5c5SAndroid Build Coastguard Worker glBindTexture(GL_TEXTURE_2D, texture2D);
182*8975f5c5SAndroid Build Coastguard Worker glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, redColors.data());
183*8975f5c5SAndroid Build Coastguard Worker glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
184*8975f5c5SAndroid Build Coastguard Worker glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
185*8975f5c5SAndroid Build Coastguard Worker ASSERT_GL_NO_ERROR();
186*8975f5c5SAndroid Build Coastguard Worker
187*8975f5c5SAndroid Build Coastguard Worker // This should unbind the native TEXTURE_2D
188*8975f5c5SAndroid Build Coastguard Worker glBindTexture(GL_TEXTURE_VIDEO_IMAGE_WEBGL, textureVideoImage);
189*8975f5c5SAndroid Build Coastguard Worker glTexImage2D(GL_TEXTURE_VIDEO_IMAGE_WEBGL, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE,
190*8975f5c5SAndroid Build Coastguard Worker greenColors.data());
191*8975f5c5SAndroid Build Coastguard Worker glTexParameteri(GL_TEXTURE_VIDEO_IMAGE_WEBGL, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
192*8975f5c5SAndroid Build Coastguard Worker glTexParameteri(GL_TEXTURE_VIDEO_IMAGE_WEBGL, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
193*8975f5c5SAndroid Build Coastguard Worker ASSERT_GL_NO_ERROR();
194*8975f5c5SAndroid Build Coastguard Worker
195*8975f5c5SAndroid Build Coastguard Worker // ANGLE will check state change and apply changes through state manager. If state manager
196*8975f5c5SAndroid Build Coastguard Worker // is aware of the unbind, it will bind the correct texture back in native and the draw should
197*8975f5c5SAndroid Build Coastguard Worker // work fine.
198*8975f5c5SAndroid Build Coastguard Worker drawQuad(program2D, "position", 0.0f);
199*8975f5c5SAndroid Build Coastguard Worker EXPECT_PIXEL_RECT_EQ(0, 0, getWindowWidth(), getWindowHeight(), GLColor::red);
200*8975f5c5SAndroid Build Coastguard Worker drawQuad(programVideoImage, "position", 0.0f);
201*8975f5c5SAndroid Build Coastguard Worker EXPECT_PIXEL_RECT_EQ(0, 0, getWindowWidth(), getWindowHeight(), GLColor::green);
202*8975f5c5SAndroid Build Coastguard Worker drawQuad(program2D, "position", 0.0f);
203*8975f5c5SAndroid Build Coastguard Worker EXPECT_PIXEL_RECT_EQ(0, 0, getWindowWidth(), getWindowHeight(), GLColor::red);
204*8975f5c5SAndroid Build Coastguard Worker
205*8975f5c5SAndroid Build Coastguard Worker glBindTexture(GL_TEXTURE_VIDEO_IMAGE_WEBGL, 0);
206*8975f5c5SAndroid Build Coastguard Worker glBindTexture(GL_TEXTURE_2D, 0);
207*8975f5c5SAndroid Build Coastguard Worker ASSERT_GL_NO_ERROR();
208*8975f5c5SAndroid Build Coastguard Worker }
209*8975f5c5SAndroid Build Coastguard Worker
210*8975f5c5SAndroid Build Coastguard Worker // Test to verify samplerVideoWEBGL works fine in ES300 when extension is enabled.
TEST_P(WEBGLVideoTextureES300Test,VerifySamplerVideoWEBGLInES300)211*8975f5c5SAndroid Build Coastguard Worker TEST_P(WEBGLVideoTextureES300Test, VerifySamplerVideoWEBGLInES300)
212*8975f5c5SAndroid Build Coastguard Worker {
213*8975f5c5SAndroid Build Coastguard Worker ANGLE_SKIP_TEST_IF(!EnsureGLExtensionEnabled("GL_WEBGL_video_texture"));
214*8975f5c5SAndroid Build Coastguard Worker
215*8975f5c5SAndroid Build Coastguard Worker constexpr char kVS[] = R"(#version 300 es
216*8975f5c5SAndroid Build Coastguard Worker in vec2 position;
217*8975f5c5SAndroid Build Coastguard Worker out mediump vec2 texCoord;
218*8975f5c5SAndroid Build Coastguard Worker
219*8975f5c5SAndroid Build Coastguard Worker void main()
220*8975f5c5SAndroid Build Coastguard Worker {
221*8975f5c5SAndroid Build Coastguard Worker gl_Position = vec4(position, 0, 1);
222*8975f5c5SAndroid Build Coastguard Worker texCoord = position * 0.5 + vec2(0.5);
223*8975f5c5SAndroid Build Coastguard Worker })";
224*8975f5c5SAndroid Build Coastguard Worker
225*8975f5c5SAndroid Build Coastguard Worker constexpr char kFS[] = R"(#version 300 es
226*8975f5c5SAndroid Build Coastguard Worker #extension GL_WEBGL_video_texture : require
227*8975f5c5SAndroid Build Coastguard Worker precision mediump float;
228*8975f5c5SAndroid Build Coastguard Worker in mediump vec2 texCoord;
229*8975f5c5SAndroid Build Coastguard Worker uniform mediump samplerVideoWEBGL s;
230*8975f5c5SAndroid Build Coastguard Worker out vec4 my_FragColor;
231*8975f5c5SAndroid Build Coastguard Worker void main()
232*8975f5c5SAndroid Build Coastguard Worker {
233*8975f5c5SAndroid Build Coastguard Worker my_FragColor = texture(s, texCoord);
234*8975f5c5SAndroid Build Coastguard Worker })";
235*8975f5c5SAndroid Build Coastguard Worker
236*8975f5c5SAndroid Build Coastguard Worker ANGLE_GL_PROGRAM(program, kVS, kFS);
237*8975f5c5SAndroid Build Coastguard Worker // Initialize basic red texture.
238*8975f5c5SAndroid Build Coastguard Worker const std::vector<GLColor> redColors(4, GLColor::red);
239*8975f5c5SAndroid Build Coastguard Worker GLTexture texture;
240*8975f5c5SAndroid Build Coastguard Worker glBindTexture(GL_TEXTURE_VIDEO_IMAGE_WEBGL, texture);
241*8975f5c5SAndroid Build Coastguard Worker glTexImage2D(GL_TEXTURE_VIDEO_IMAGE_WEBGL, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE,
242*8975f5c5SAndroid Build Coastguard Worker redColors.data());
243*8975f5c5SAndroid Build Coastguard Worker glTexParameteri(GL_TEXTURE_VIDEO_IMAGE_WEBGL, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
244*8975f5c5SAndroid Build Coastguard Worker glTexParameteri(GL_TEXTURE_VIDEO_IMAGE_WEBGL, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
245*8975f5c5SAndroid Build Coastguard Worker ASSERT_GL_NO_ERROR();
246*8975f5c5SAndroid Build Coastguard Worker
247*8975f5c5SAndroid Build Coastguard Worker drawQuad(program, "position", 0.0f);
248*8975f5c5SAndroid Build Coastguard Worker EXPECT_PIXEL_RECT_EQ(0, 0, getWindowWidth(), getWindowHeight(), GLColor::red);
249*8975f5c5SAndroid Build Coastguard Worker glBindTexture(GL_TEXTURE_VIDEO_IMAGE_WEBGL, 0);
250*8975f5c5SAndroid Build Coastguard Worker ASSERT_GL_NO_ERROR();
251*8975f5c5SAndroid Build Coastguard Worker }
252*8975f5c5SAndroid Build Coastguard Worker
253*8975f5c5SAndroid Build Coastguard Worker ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(WEBGLVideoTextureTest);
254*8975f5c5SAndroid Build Coastguard Worker
255*8975f5c5SAndroid Build Coastguard Worker GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(WEBGLVideoTextureES300Test);
256*8975f5c5SAndroid Build Coastguard Worker ANGLE_INSTANTIATE_TEST_ES3(WEBGLVideoTextureES300Test);
257*8975f5c5SAndroid Build Coastguard Worker } // namespace
258