Bug 1229944 - Add test for ANGLE_depth_texture. - r=kamidphish, a=sylvestre
--- a/dom/canvas/moz.build
+++ b/dom/canvas/moz.build
@@ -1,16 +1,19 @@
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
TEST_DIRS += ['compiledtest']
+# Number changes to this file to avoid bug 1081323 (clobber after changing a manifest):
+# 2
+
MOCHITEST_MANIFESTS += [
'test/crossorigin/mochitest.ini',
'test/mochitest-subsuite-webgl.ini',
'test/mochitest.ini',
]
MOCHITEST_CHROME_MANIFESTS += ['test/chrome/chrome.ini']
@@ -165,9 +168,8 @@ LOCAL_INCLUDES += [
'/layout/xul',
'/media/libyuv/include',
]
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
CXXFLAGS += CONFIG['TK_CFLAGS']
LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES']
-
--- a/dom/canvas/test/webgl-mochitest.ini
+++ b/dom/canvas/test/webgl-mochitest.ini
@@ -7,16 +7,17 @@ support-files =
webgl-mochitest/webgl-util.js
[webgl-mochitest/test_backbuffer_channels.html]
fail-if = (os == 'b2g')
[webgl-mochitest/test_depth_readpixels.html]
[webgl-mochitest/test_capture.html]
support-files = captureStream_common.js
[webgl-mochitest/test_cubemap_must_be_square.html]
+[webgl-mochitest/test_depth_tex_lazy_clear.html]
[webgl-mochitest/test_draw.html]
[webgl-mochitest/test_fb_param.html]
[webgl-mochitest/test_fb_param_crash.html]
[webgl-mochitest/test_hidden_alpha.html]
skip-if = (os == 'b2g') || buildapp == 'mulet' # Mulet - bug 1093639 (crashes in libLLVM-3.0.so)
[webgl-mochitest/test_implicit_color_buffer_float.html]
[webgl-mochitest/test_highp_fs.html]
[webgl-mochitest/test_no_arr_points.html]
new file mode 100644
--- /dev/null
+++ b/dom/canvas/test/webgl-mochitest/test_depth_tex_lazy_clear.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <meta charset='utf-8'/>
+ <script src='/tests/SimpleTest/SimpleTest.js'></script>
+ <link rel='stylesheet' href='/tests/SimpleTest/test.css'>
+ <script src='webgl-util.js'></script>
+</head>
+<body>
+<script id='vs' type='x-shader/x-vertex'>
+
+attribute vec2 aVertCoord;
+
+void main(void) {
+ gl_Position = vec4(aVertCoord, 0.0, 1.0);
+}
+
+</script>
+<script id='fs' type='x-shader/x-fragment'>
+
+precision mediump float;
+uniform sampler2D uTexUnit;
+
+void main(void) {
+ vec4 tex = texture2D(uTexUnit, vec2(0));
+ gl_FragColor = vec4(tex.r, 1.0, 0.0, 1.0);
+}
+
+</script>
+<script>
+'use strict';
+
+var gl = null;
+
+do {
+ var c = document.createElement('canvas');
+ gl = c.getContext('webgl');
+ if (!gl) {
+ todo(false, 'Get GL working here first.');
+ break;
+ }
+
+ var ext = gl.getExtension('WEBGL_depth_texture');
+ if (!ext) {
+ todo(false, 'WEBGL_depth_texture not supported, which is fine.');
+ break;
+ }
+
+ var prog = WebGLUtil.createProgramByIds(gl, 'vs', 'fs');
+ if (!prog) {
+ ok(false, 'Program linking should succeed.');
+ break;
+ }
+
+ var tex = gl.createTexture();
+ gl.bindTexture(gl.TEXTURE_2D, tex);
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT, 1, 1, 0, gl.DEPTH_COMPONENT,
+ gl.UNSIGNED_INT, null);
+
+ var uTexUnit = gl.getUniformLocation(prog, 'uTexUnit');
+ gl.useProgram(prog);
+ gl.uniform1i(uTexUnit, 0);
+
+ gl.drawArrays(gl.POINTS, 0, 1);
+
+ ok(!gl.getError(), 'Should have no errors.');
+} while (false);
+
+ok(true, 'Test complete.');
+
+</script>
+</body>
+</html>