webgl: Implement multiple calls and improve error detection

This commit implements WebGL's:
 * cullFace
 * frontFace
 * enable
 * disable
 * depthMask
 * colorMask
 * clearDepth
 * clearStencil
 * depthFunc
 * depthRange
 * hint
 * lineWidth
 * pixelStorei
 * polygonOffset
 * texParameteri
 * texParameterf
 * texImage2D (partially)

It inlines a lot of OpenGL calls to keep the file
`components/canvas/webgl_paint_task.rs` as small as possible while
keeping readability.

It also improves error detection on previous calls, and sets node damage
on the canvas in the drawing calls.

It adds a `TexImage2D` reftest, even though it's not enabled because:
 * WebGL paints the image when it loads (asynchronously), so the reftest doesn't wait for it and it finishes early
 * If we change the source for the base64 src of the image it works as expected in non-headless mode, but the test harness locks
This commit is contained in:
ecoal95 2015-07-25 21:01:44 +02:00
parent af3310f149
commit 6341c77700
12 changed files with 763 additions and 226 deletions

View file

@ -378,6 +378,7 @@ experimental == viewport_rule.html viewport_rule_ref.html
== webgl-context/clearcolor.html webgl-context/clearcolor_ref.html
== webgl-context/draw_arrays_simple.html webgl-context/draw_arrays_simple_ref.html
== webgl-context/tex_image_2d_simple.html webgl-context/tex_image_2d_simple_ref.html
flaky_macos == white_space_intrinsic_sizes_a.html white_space_intrinsic_sizes_ref.html
== whitespace_nowrap_a.html whitespace_nowrap_ref.html