| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <canvas id="c" width="40" height="40"></canvas> |
| <script> |
| description("Checks that using WebGL 2 buffer targets don't cause errors"); |
| |
| if (window.internals) |
| internals.settings.setWebGL2Enabled(true); |
| |
| var canvas = document.getElementById("c"); |
| var context = canvas.getContext("webgl2"); |
| shouldBe("context.getError()", "context.NO_ERROR"); |
| checkBufferSuccess(context, context.ARRAY_BUFFER); |
| checkBufferSuccess(context, context.COPY_READ_BUFFER); |
| checkBufferSuccess(context, context.COPY_WRITE_BUFFER); |
| checkBufferSuccess(context, context.ELEMENT_ARRAY_BUFFER); |
| checkBufferSuccess(context, context.PIXEL_PACK_BUFFER); |
| checkBufferSuccess(context, context.PIXEL_UNPACK_BUFFER); |
| checkBufferSuccess(context, context.TRANSFORM_FEEDBACK_BUFFER); |
| checkBufferSuccess(context, context.UNIFORM_BUFFER); |
| |
| canvas = document.createElement("canvas"); |
| canvas.width = 40; |
| canvas.height = 40; |
| context = canvas.getContext("webgl"); |
| shouldBe("context.getError()", "context.NO_ERROR"); |
| shouldBe("context.getError()", "context.NO_ERROR"); |
| checkBufferSuccess(context, context.ARRAY_BUFFER); |
| checkBufferFailure(context, context.COPY_READ_BUFFER); |
| checkBufferFailure(context, context.COPY_WRITE_BUFFER); |
| checkBufferSuccess(context, context.ELEMENT_ARRAY_BUFFER); |
| checkBufferFailure(context, context.PIXEL_PACK_BUFFER); |
| checkBufferFailure(context, context.PIXEL_UNPACK_BUFFER); |
| checkBufferFailure(context, context.TRANSFORM_FEEDBACK_BUFFER); |
| checkBufferFailure(context, context.UNIFORM_BUFFER); |
| |
| function checkBufferSuccess(context, target) { |
| var buffer = context.createBuffer(); |
| shouldBe("context.getError()", "context.NO_ERROR"); |
| context.bindBuffer(target, buffer); |
| shouldBe("context.getError()", "context.NO_ERROR"); |
| context.bufferData(target, new Int32Array(16), context.STATIC_DRAW); |
| shouldBe("context.getError()", "context.NO_ERROR"); |
| context.deleteBuffer(buffer); |
| shouldBe("context.getError()", "context.NO_ERROR"); |
| } |
| |
| function checkBufferFailure(context, target) { |
| var buffer = context.createBuffer(); |
| shouldBe("context.getError()", "context.NO_ERROR"); |
| context.bindBuffer(target, buffer); |
| shouldBe("context.getError()", "context.INVALID_ENUM"); |
| context.bufferData(target, new Int32Array(16), context.STATIC_DRAW); |
| shouldBe("context.getError()", "context.INVALID_ENUM"); |
| context.deleteBuffer(buffer); |
| shouldBe("context.getError()", "context.NO_ERROR"); |
| } |
| </script> |
| <script src="../../../resources/js-test-post.js"></script> |
| </body> |
| </html> |