blob: 09a6b6ef99d938eac583221bb91d777fd23f7f1d [file] [edit]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="resources/webgl_test_files/resources/js-test-style.css"/>
<script src="resources/webgl_test_files/js/js-test-pre.js"></script>
<script src="resources/webgl_test_files/js/webgl-test-utils.js"></script>
</head>
<body>
<div id="description"></div>
<div id="console"></div>
<canvas id="canvas" width="1" height="1"></canvas>
<script>
"use strict";
description("Test that deleteFramebuffer() on the draw framebuffer alone does not unbind the read framebuffer.");
var wtu = WebGLTestUtils;
var gl = wtu.create3DContext(canvas, undefined, 2);
gl.clearColor(1, 0, 0, 1);
gl.clear(gl.COLOR_BUFFER_BIT);
var green = [0, 255, 0, 255];
var texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA8, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array(green));
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
var readFB = gl.createFramebuffer();
gl.bindFramebuffer(gl.READ_FRAMEBUFFER, readFB);
gl.framebufferTexture2D(gl.READ_FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);
var drawFB = gl.createFramebuffer();
gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, drawFB);
gl.deleteFramebuffer(drawFB);
wtu.glErrorShouldBe(gl, gl.NO_ERROR, "deleteFramebuffer(drawFB) succeeds");
shouldBe("gl.getParameter(gl.READ_FRAMEBUFFER_BINDING)", "readFB");
shouldBeNull("gl.getParameter(gl.DRAW_FRAMEBUFFER_BINDING)");
shouldBe("gl.checkFramebufferStatus(gl.READ_FRAMEBUFFER)", "gl.FRAMEBUFFER_COMPLETE");
wtu.checkCanvasRect(gl, 0, 0, 1, 1, green, "read green after delete");
finishTest();
</script>
</body>
</html>