3 <script src=
"../../../resources/js-test.js"></script>
4 <script src=
"resources/webgl-test.js"></script>
7 <div id=
"description"></div>
8 <div id=
"console"></div>
11 description("Tests calling WebGL APIs with objects from other contexts");
14 window
.internals
.settings
.setWebGLErrorsToConsoleEnabled(false);
16 var contextA
= create3DContext();
17 var contextB
= create3DContext();
18 var programA
= loadStandardProgram(contextA
);
19 var programB
= loadStandardProgram(contextB
);
20 var shaderA
= loadStandardVertexShader(contextA
);
21 var shaderB
= loadStandardVertexShader(contextB
);
22 var textureA
= contextA
.createTexture();
23 var textureB
= contextB
.createTexture();
24 var frameBufferA
= contextA
.createFramebuffer();
25 var frameBufferB
= contextB
.createFramebuffer();
26 var renderBufferA
= contextA
.createRenderbuffer();
27 var renderBufferB
= contextB
.createRenderbuffer();
28 var locationA
= contextA
.getUniformLocation(programA
, 'u_modelViewProjMatrix');
29 var locationB
= contextB
.getUniformLocation(programB
, 'u_modelViewProjMatrix');
31 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.compileShader(shaderB)");
32 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.linkProgram(programB)");
33 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.attachShader(programA, shaderB)");
34 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.attachShader(programB, shaderA)");
35 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.attachShader(programB, shaderB)");
36 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.detachShader(programA, shaderB)");
37 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.detachShader(programB, shaderA)");
38 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.detachShader(programB, shaderB)");
39 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.shaderSource(shaderB, 'foo')");
40 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.bindAttribLocation(programB, 0, 'foo')");
41 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.bindFramebuffer(contextA.FRAMEBUFFER, frameBufferB)");
42 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.bindRenderbuffer(contextA.RENDERBUFFER, renderBufferB)");
43 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.bindTexture(contextA.TEXTURE_2D, textureB)");
44 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.framebufferRenderbuffer(contextA.FRAMEBUFFER, contextA.DEPTH_ATTACHMENT, contextA.RENDERBUFFER, renderBufferB)");
45 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.framebufferTexture2D(contextA.FRAMEBUFFER, contextA.COLOR_ATTACHMENT0, contextA.TEXTURE_2D, textureB, 0)");
46 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.getProgramParameter(programB, 0)");
47 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.getProgramInfoLog(programB, 0)");
48 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.getShaderParameter(shaderB, 0)");
49 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.getShaderInfoLog(shaderB, 0)");
50 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.getShaderSource(shaderB)");
51 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.getUniform(programB, locationA)");
52 shouldGenerateGLError(contextA
, contextA
.INVALID_OPERATION
, "contextA.getUniformLocation(programB, 'u_modelViewProjMatrix')");