diff --git a/Cargo.lock b/Cargo.lock index 489663d2ffe..cc798ae1625 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -81,14 +81,14 @@ dependencies = [ [[package]] name = "azure" -version = "0.31.1" -source = "git+https://github.com/servo/rust-azure#46a4d1b42f9ae285417bf17185f97f5c23802945" +version = "0.32.0" +source = "git+https://github.com/servo/rust-azure#a14d56facd952fb9a096e005407131094784de13" dependencies = [ "cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.18.2 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", "servo-freetype-sys 4.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "servo-skia 0.30000016.0 (registry+https://github.com/rust-lang/crates.io-index)", + "servo-skia 0.30000017.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -268,17 +268,17 @@ dependencies = [ name = "canvas" version = "0.0.1" dependencies = [ - "azure 0.31.1 (git+https://github.com/servo/rust-azure)", + "azure 0.32.0 (git+https://github.com/servo/rust-azure)", "canvas_traits 0.0.1", "compositing 0.0.1", "cssparser 0.24.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.18.2 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", - "offscreen_gl_context 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", + "offscreen_gl_context 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)", "servo_config 0.0.1", "webrender 0.57.2 (git+https://github.com/servo/webrender)", @@ -291,12 +291,12 @@ version = "0.0.1" dependencies = [ "cssparser 0.24.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.18.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "malloc_size_of 0.0.1", "malloc_size_of_derive 0.0.1", - "offscreen_gl_context 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", + "offscreen_gl_context 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)", "serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)", "servo_config 0.0.1", @@ -332,10 +332,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cgl" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gleam 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -425,7 +425,7 @@ dependencies = [ "embedder_traits 0.0.1", "euclid 0.18.2 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", - "gleam 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1081,7 +1081,7 @@ dependencies = [ [[package]] name = "gleam" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "gl_generator 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1098,7 +1098,7 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "android_glue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "cgl 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "cgl 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "cocoa 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1303,12 +1303,12 @@ dependencies = [ [[package]] name = "io-surface" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cgl 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "cgl 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1562,7 +1562,7 @@ dependencies = [ "euclid 0.18.2 (registry+https://github.com/rust-lang/crates.io-index)", "gaol 0.0.1 (git+https://github.com/servo/gaol)", "gfx 0.0.1", - "gleam 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "layout_thread 0.0.1", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2072,14 +2072,14 @@ dependencies = [ [[package]] name = "offscreen_gl_context" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cgl 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "cgl 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.18.2 (registry+https://github.com/rust-lang/crates.io-index)", "gl_generator 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2540,7 +2540,7 @@ dependencies = [ "enum-iterator 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.18.2 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "half 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "html5ever 0.22.3 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.10.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2563,7 +2563,7 @@ dependencies = [ "msg 0.0.1", "net_traits 0.0.1", "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", - "offscreen_gl_context 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", + "offscreen_gl_context 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "phf 0.7.21 (registry+https://github.com/rust-lang/crates.io-index)", "phf_codegen 0.7.21 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2751,7 +2751,7 @@ dependencies = [ "bitflags 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.18.2 (registry+https://github.com/rust-lang/crates.io-index)", "gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "glutin 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "libservo 0.0.1", @@ -2806,17 +2806,17 @@ dependencies = [ [[package]] name = "servo-skia" -version = "0.30000016.0" +version = "0.30000017.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cgl 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "cgl 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.18.2 (registry+https://github.com/rust-lang/crates.io-index)", "expat-sys 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "glutin 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", "glx 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "io-surface 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "io-surface 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", "servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "servo-fontconfig-sys 4.0.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3530,7 +3530,7 @@ dependencies = [ [[package]] name = "webrender" version = "0.57.2" -source = "git+https://github.com/servo/webrender#9117f291310b1c4dd3a433e62472c00d2a3946ad" +source = "git+https://github.com/servo/webrender#41ceda1754a950bcc2127059ab1dff728eb40ab6" dependencies = [ "app_units 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "base64 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3545,7 +3545,7 @@ dependencies = [ "euclid 0.18.2 (registry+https://github.com/rust-lang/crates.io-index)", "freetype 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3565,7 +3565,7 @@ dependencies = [ [[package]] name = "webrender_api" version = "0.57.2" -source = "git+https://github.com/servo/webrender#9117f291310b1c4dd3a433e62472c00d2a3946ad" +source = "git+https://github.com/servo/webrender#41ceda1754a950bcc2127059ab1dff728eb40ab6" dependencies = [ "app_units 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3781,7 +3781,7 @@ dependencies = [ "checksum atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fb2dcb6e6d35f20276943cc04bb98e538b348d525a04ac79c10021561d202f21" "checksum atty 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "21e50800ec991574876040fff8ee46b136a53e985286fbe6a3bdfe6421b78860" "checksum audio-video-metadata 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "71536082079f5ba92c274fba7c2dcd4e2f9d5c13ce6d7f8fe9acbbb258916d18" -"checksum azure 0.31.1 (git+https://github.com/servo/rust-azure)" = "" +"checksum azure 0.32.0 (git+https://github.com/servo/rust-azure)" = "" "checksum backtrace 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "72f9b4182546f4b04ebc4ab7f84948953a118bd6021a1b6a6c909e3e94f6be76" "checksum backtrace-sys 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "44585761d6161b0f57afc49482ab6bd067e4edef48c12a152c237eb0203f7661" "checksum base64 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "96434f987501f0ed4eb336a411e0631ecd1afa11574fe148587adc4ff96143c9" @@ -3804,7 +3804,7 @@ dependencies = [ "checksum cc 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "9be26b24e988625409b19736d130f0c7d224f01d06454b5f81d8d23d6c1a618f" "checksum cexpr 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393a5f0088efbe41f9d1fcd062f24e83c278608420e62109feb2c8abee07de7d" "checksum cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de" -"checksum cgl 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "80f05e25f9631fdee56693110feda284a49308ca1e768857a0ad3906cfc1502a" +"checksum cgl 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "55e7ec0b74fe5897894cbc207092c577e87c52f8a59e8ca8d97ef37551f60a49" "checksum chrono 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1cce36c92cb605414e9b824f866f5babe0a0368e39ea07393b9b63cf3844c0e6" "checksum clang-sys 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d7f7c04e52c35222fffcc3a115b5daf5f7e2bfb71c13c4e2321afe1fc71859c2" "checksum clap 2.28.0 (registry+https://github.com/rust-lang/crates.io-index)" = "dc34bf7d5d66268b466b9852bca925ec1d2650654dab4da081e63fd230145c2e" @@ -3864,7 +3864,7 @@ dependencies = [ "checksum getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9047cfbd08a437050b363d35ef160452c5fe8ea5187ae0a624708c91581d685" "checksum gif 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff3414b424657317e708489d2857d9575f4403698428b040b609b9d1c1a84a2c" "checksum gl_generator 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a795170cbd85b5a7baa58d6d7525cae6a03e486859860c220f7ebbbdd379d0a" -"checksum gleam 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "12b793fcf40a23dd372f184c228ab3eb96f88c50bb4fba8319c483aa025a4e45" +"checksum gleam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d41e7ac812597988fdae31c9baec3c6d35cadb8ad9ab88a9bf9c0f119ed66c2" "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" "checksum glutin 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a70c5fe78efbd5a3b243a804ea1032053c584510f8822819f94cfb29b2100317" "checksum glx 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "63a6e7c2846e12626455f45ebaff9d92161436dd0fa703d9d198012e528ca7b9" @@ -3886,7 +3886,7 @@ dependencies = [ "checksum immeta 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1aaaa557fbc7323c857871ce15f2b2c08d90548cba4aabda4251fac1b4778337" "checksum inflate 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6f53b811ee8e2057ccf9643ca6b4277de90efaf5e61e55fd5254576926bb4245" "checksum influent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a22b311b83431be3ab9af96ca9ea41554bb4a8551ea871ae44c3ce0c57e55f2c" -"checksum io-surface 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "42970992917904ee7912a12b1c4a81943042b27e24a070436267a4817e68fc89" +"checksum io-surface 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5f9a33981dff54baaff80f4decb487a65d148a3c00facc97820d0f09128f74dd" "checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" "checksum ipc-channel 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db9daf099728ac5390c73f54e6e3708f0c514d2b51f24373830f568702eadfca" "checksum itertools 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "b07332223953b5051bceb67e8c4700aa65291535568e1f12408c43c4a42c0394" @@ -3941,7 +3941,7 @@ dependencies = [ "checksum objc 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "877f30f37acef6749b1841cceab289707f211aecfc756553cd63976190e6cc2e" "checksum objc-foundation 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" "checksum objc_id 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e4730aa1c64d722db45f7ccc4113a3e2c465d018de6db4d3e7dfe031e8c8a297" -"checksum offscreen_gl_context 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "639ac1ccb9555e3b8bf3a4e1530d3aaf0cfc122a6214f5f24a5ba0282a072af9" +"checksum offscreen_gl_context 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6b32afb13c80c2b41cf1c3af12792802a744b05f2dd1cbdea6b1dc3874c3d6f9" "checksum ogg 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7137bf02687385302f4c0aecd77cfce052b69f5b4ee937be778e125c62f67e30" "checksum ogg_metadata 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fc665717454399cba557c55ad226148996e9266ee291f8a37a98bb2cded0a490" "checksum openssl 0.9.24 (registry+https://github.com/rust-lang/crates.io-index)" = "a3605c298474a3aa69de92d21139fb5e2a81688d308262359d85cdd0d12a7985" @@ -3998,7 +3998,7 @@ dependencies = [ "checksum servo-fontconfig 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "93f799b649b4a2bf362398910eca35240704c7e765e780349b2bb1070d892262" "checksum servo-fontconfig-sys 4.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "38b494f03009ee81914b0e7d387ad7c145cafcd69747c2ec89b0e17bb94f303a" "checksum servo-freetype-sys 4.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9232032c2e85118c0282c6562c84cab12316e655491ba0a5d1905b2320060d1b" -"checksum servo-skia 0.30000016.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d2f760b83483fd1606e2f8b05143c254d26a871c3263edda43a2dd7078ecfc2" +"checksum servo-skia 0.30000017.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe33a2592a74f2096daf70bcbee39f2d183efcdc81f536a28af3a357baa6f5b0" "checksum servo-websocket 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6bac1e2295e72f0525147d993c626761811acf0441dac1cee8707f12dc7f3363" "checksum sha1 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cc30b1e1e8c40c121ca33b86c23308a090d19974ef001b4bf6e61fd1a0fb095c" "checksum shared_library 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8254bf098ce4d8d7cc7cc6de438c5488adc5297e5b7ffef88816c0a91bd289c1" diff --git a/components/canvas/Cargo.toml b/components/canvas/Cargo.toml index 99a107d47f6..f5c08e4ba31 100644 --- a/components/canvas/Cargo.toml +++ b/components/canvas/Cargo.toml @@ -16,11 +16,11 @@ compositing = {path = "../compositing"} cssparser = "0.24" euclid = "0.18" fnv = "1.0" -gleam = "0.5" +gleam = "0.6" ipc-channel = "0.10" log = "0.4" num-traits = "0.1.32" -offscreen_gl_context = {version = "0.19", features = ["serde", "osmesa"]} +offscreen_gl_context = {version = "0.20", features = ["serde", "osmesa"]} serde_bytes = "0.10" servo_config = {path = "../config"} webrender = {git = "https://github.com/servo/webrender"} diff --git a/components/canvas/webgl_thread.rs b/components/canvas/webgl_thread.rs index 4c6deace945..ec65b7d144f 100644 --- a/components/canvas/webgl_thread.rs +++ b/components/canvas/webgl_thread.rs @@ -982,6 +982,119 @@ impl WebGLImpl { WebGLCommand::VertexAttribDivisor { index, divisor } => { ctx.gl().vertex_attrib_divisor(index, divisor) } + WebGLCommand::GetUniformBool(program_id, loc, ref sender) => { + let mut value = [0]; + unsafe { + ctx.gl().get_uniform_iv(program_id.get(), loc, &mut value); + } + sender.send(value[0] != 0).unwrap(); + } + WebGLCommand::GetUniformBool2(program_id, loc, ref sender) => { + let mut value = [0; 2]; + unsafe { + ctx.gl().get_uniform_iv(program_id.get(), loc, &mut value); + } + let value = [ + value[0] != 0, + value[1] != 0, + ]; + sender.send(value).unwrap(); + } + WebGLCommand::GetUniformBool3(program_id, loc, ref sender) => { + let mut value = [0; 3]; + unsafe { + ctx.gl().get_uniform_iv(program_id.get(), loc, &mut value); + } + let value = [ + value[0] != 0, + value[1] != 0, + value[2] != 0, + ]; + sender.send(value).unwrap(); + } + WebGLCommand::GetUniformBool4(program_id, loc, ref sender) => { + let mut value = [0; 4]; + unsafe { + ctx.gl().get_uniform_iv(program_id.get(), loc, &mut value); + } + let value = [ + value[0] != 0, + value[1] != 0, + value[2] != 0, + value[3] != 0, + ]; + sender.send(value).unwrap(); + } + WebGLCommand::GetUniformInt(program_id, loc, ref sender) => { + let mut value = [0]; + unsafe { + ctx.gl().get_uniform_iv(program_id.get(), loc, &mut value); + } + sender.send(value[0]).unwrap(); + } + WebGLCommand::GetUniformInt2(program_id, loc, ref sender) => { + let mut value = [0; 2]; + unsafe { + ctx.gl().get_uniform_iv(program_id.get(), loc, &mut value); + } + sender.send(value).unwrap(); + } + WebGLCommand::GetUniformInt3(program_id, loc, ref sender) => { + let mut value = [0; 3]; + unsafe { + ctx.gl().get_uniform_iv(program_id.get(), loc, &mut value); + } + sender.send(value).unwrap(); + } + WebGLCommand::GetUniformInt4(program_id, loc, ref sender) => { + let mut value = [0; 4]; + unsafe { + ctx.gl().get_uniform_iv(program_id.get(), loc, &mut value); + } + sender.send(value).unwrap(); + } + WebGLCommand::GetUniformFloat(program_id, loc, ref sender) => { + let mut value = [0.]; + unsafe { + ctx.gl().get_uniform_fv(program_id.get(), loc, &mut value); + } + sender.send(value[0]).unwrap(); + } + WebGLCommand::GetUniformFloat2(program_id, loc, ref sender) => { + let mut value = [0.; 2]; + unsafe { + ctx.gl().get_uniform_fv(program_id.get(), loc, &mut value); + } + sender.send(value).unwrap(); + } + WebGLCommand::GetUniformFloat3(program_id, loc, ref sender) => { + let mut value = [0.; 3]; + unsafe { + ctx.gl().get_uniform_fv(program_id.get(), loc, &mut value); + } + sender.send(value).unwrap(); + } + WebGLCommand::GetUniformFloat4(program_id, loc, ref sender) => { + let mut value = [0.; 4]; + unsafe { + ctx.gl().get_uniform_fv(program_id.get(), loc, &mut value); + } + sender.send(value).unwrap(); + } + WebGLCommand::GetUniformFloat9(program_id, loc, ref sender) => { + let mut value = [0.; 9]; + unsafe { + ctx.gl().get_uniform_fv(program_id.get(), loc, &mut value); + } + sender.send(value).unwrap(); + } + WebGLCommand::GetUniformFloat16(program_id, loc, ref sender) => { + let mut value = [0.; 16]; + unsafe { + ctx.gl().get_uniform_fv(program_id.get(), loc, &mut value); + } + sender.send(value).unwrap(); + } } // TODO: update test expectations in order to enable debug assertions diff --git a/components/canvas_traits/Cargo.toml b/components/canvas_traits/Cargo.toml index 45c784ad5c9..2c5d9281bb8 100644 --- a/components/canvas_traits/Cargo.toml +++ b/components/canvas_traits/Cargo.toml @@ -13,11 +13,11 @@ path = "lib.rs" cssparser = "0.24.0" euclid = "0.18" ipc-channel = "0.10" -gleam = "0.5.1" +gleam = "0.6" lazy_static = "1" malloc_size_of = { path = "../malloc_size_of" } malloc_size_of_derive = { path = "../malloc_size_of_derive" } -offscreen_gl_context = {version = "0.19", features = ["serde"]} +offscreen_gl_context = {version = "0.20", features = ["serde"]} serde = "1.0" serde_bytes = "0.10" servo_config = {path = "../config"} diff --git a/components/canvas_traits/webgl.rs b/components/canvas_traits/webgl.rs index e4fc9d0d739..5fb9d0befb2 100644 --- a/components/canvas_traits/webgl.rs +++ b/components/canvas_traits/webgl.rs @@ -284,6 +284,20 @@ pub enum WebGLCommand { DrawArraysInstanced { mode: u32, first: i32, count: i32, primcount: i32 }, DrawElementsInstanced { mode: u32, count: i32, type_: u32, offset: u32, primcount: i32 }, VertexAttribDivisor { index: u32, divisor: u32 }, + GetUniformBool(WebGLProgramId, i32, WebGLSender), + GetUniformBool2(WebGLProgramId, i32, WebGLSender<[bool; 2]>), + GetUniformBool3(WebGLProgramId, i32, WebGLSender<[bool; 3]>), + GetUniformBool4(WebGLProgramId, i32, WebGLSender<[bool; 4]>), + GetUniformInt(WebGLProgramId, i32, WebGLSender), + GetUniformInt2(WebGLProgramId, i32, WebGLSender<[i32; 2]>), + GetUniformInt3(WebGLProgramId, i32, WebGLSender<[i32; 3]>), + GetUniformInt4(WebGLProgramId, i32, WebGLSender<[i32; 4]>), + GetUniformFloat(WebGLProgramId, i32, WebGLSender), + GetUniformFloat2(WebGLProgramId, i32, WebGLSender<[f32; 2]>), + GetUniformFloat3(WebGLProgramId, i32, WebGLSender<[f32; 3]>), + GetUniformFloat4(WebGLProgramId, i32, WebGLSender<[f32; 4]>), + GetUniformFloat9(WebGLProgramId, i32, WebGLSender<[f32; 9]>), + GetUniformFloat16(WebGLProgramId, i32, WebGLSender<[f32; 16]>), } macro_rules! define_resource_id_struct { diff --git a/components/compositing/Cargo.toml b/components/compositing/Cargo.toml index bab20198967..8c58608b7ac 100644 --- a/components/compositing/Cargo.toml +++ b/components/compositing/Cargo.toml @@ -17,7 +17,7 @@ default = [] embedder_traits = {path = "../embedder_traits"} euclid = "0.18" gfx_traits = {path = "../gfx_traits"} -gleam = {version = "0.5", optional = true} +gleam = {version = "0.6", optional = true} image = "0.19" ipc-channel = "0.10" libc = "0.2" diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml index d6feb4280f5..e2af3c864b0 100644 --- a/components/script/Cargo.toml +++ b/components/script/Cargo.toml @@ -47,7 +47,7 @@ encoding_rs = "0.7" enum-iterator = "0.2.0" euclid = "0.18" fnv = "1.0" -gleam = "0.5" +gleam = "0.6" half = "1.0" html5ever = "0.22" hyper = "0.10" @@ -69,7 +69,7 @@ mozjs = { version = "0.7.1", features = ["promises"]} msg = {path = "../msg"} net_traits = {path = "../net_traits"} num-traits = "0.1.32" -offscreen_gl_context = {version = "0.19", features = ["serde"]} +offscreen_gl_context = {version = "0.20", features = ["serde"]} parking_lot = "0.5" phf = "0.7.18" profile_traits = {path = "../profile_traits"} diff --git a/components/script/dom/webgl2renderingcontext.rs b/components/script/dom/webgl2renderingcontext.rs index deb82e9ced2..811fc100e6b 100644 --- a/components/script/dom/webgl2renderingcontext.rs +++ b/components/script/dom/webgl2renderingcontext.rs @@ -766,6 +766,17 @@ impl WebGL2RenderingContextMethods for WebGL2RenderingContext { self.base.UniformMatrix4fv(location, transpose, v) } + // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10 + #[allow(unsafe_code)] + unsafe fn GetUniform( + &self, + cx: *mut JSContext, + program: &WebGLProgram, + location: &WebGLUniformLocation, + ) -> JSVal { + self.base.GetUniform(cx, program, location) + } + /// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.9 fn UseProgram(&self, program: Option<&WebGLProgram>) { self.base.UseProgram(program) diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index 317a51d0cbf..45923d1b27c 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -8,8 +8,8 @@ use canvas_traits::webgl::{ActiveAttribInfo, DOMToTextureCommand, Parameter}; use canvas_traits::webgl::{ShaderParameter, TexParameter, WebGLCommand}; use canvas_traits::webgl::{WebGLContextShareMode, WebGLError}; use canvas_traits::webgl::{WebGLFramebufferBindingRequest, WebGLMsg, WebGLMsgSender}; -use canvas_traits::webgl::{WebGLResult, WebGLSLVersion, WebGLVersion}; -use canvas_traits::webgl::{WebVRCommand, webgl_channel}; +use canvas_traits::webgl::{WebGLProgramId, WebGLResult, WebGLSLVersion, WebGLSender}; +use canvas_traits::webgl::{WebGLVersion, WebVRCommand, webgl_channel}; use canvas_traits::webgl::WebGLError::*; use dom::bindings::cell::DomRefCell; use dom::bindings::codegen::Bindings::ANGLEInstancedArraysBinding::ANGLEInstancedArraysConstants; @@ -56,12 +56,14 @@ use js::jsapi::{JSContext, JSObject, Type}; use js::jsval::{BooleanValue, DoubleValue, Int32Value, UInt32Value, JSVal}; use js::jsval::{ObjectValue, NullValue, UndefinedValue}; use js::rust::CustomAutoRooterGuard; -use js::typedarray::{ArrayBufferView, CreateWith, Float32Array, Int32Array, Uint32Array}; +use js::typedarray::{ArrayBufferView, CreateWith, Float32, Float32Array, Int32, Int32Array, Uint32Array}; +use js::typedarray::{TypedArray, TypedArrayElementCreator}; use net_traits::image::base::PixelFormat; use net_traits::image_cache::ImageResponse; use offscreen_gl_context::{GLContextAttributes, GLLimits}; use ref_filter_map::ref_filter_map; use script_layout_interface::HTMLCanvasDataSource; +use serde::{Deserialize, Serialize}; use servo_config::prefs::PREFS; use std::cell::{Cell, Ref}; use std::cmp; @@ -3600,6 +3602,80 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { }); } + // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10 + #[allow(unsafe_code)] + unsafe fn GetUniform( + &self, + cx: *mut JSContext, + program: &WebGLProgram, + location: &WebGLUniformLocation, + ) -> JSVal { + // FIXME(nox): https://github.com/servo/servo/issues/21133 + + if program.is_deleted() || !program.is_linked() || program.id() != location.program_id() { + self.webgl_error(InvalidOperation); + return NullValue(); + } + + fn get( + triple: (&WebGLRenderingContext, WebGLProgramId, i32), + f: F, + ) -> T + where + F: FnOnce(WebGLProgramId, i32, WebGLSender) -> WebGLCommand, + T: for<'de> Deserialize<'de> + Serialize, + { + let (sender, receiver) = webgl_channel().unwrap(); + triple.0.send_command(f(triple.1, triple.2, sender)); + receiver.recv().unwrap() + } + + let triple = (self, program.id(), location.id()); + + unsafe fn typed(cx: *mut JSContext, value: &[T::Element]) -> JSVal + where + T: TypedArrayElementCreator, + { + rooted!(in(cx) let mut rval = ptr::null_mut::()); + >::create(cx, CreateWith::Slice(&value), rval.handle_mut()).unwrap(); + ObjectValue(rval.get()) + } + + match location.type_() { + constants::BOOL => BooleanValue(get(triple, WebGLCommand::GetUniformBool)), + constants::BOOL_VEC2 => { + rooted!(in(cx) let mut rval = NullValue()); + get(triple, WebGLCommand::GetUniformBool2).to_jsval(cx, rval.handle_mut()); + rval.get() + } + constants::BOOL_VEC3 => { + rooted!(in(cx) let mut rval = NullValue()); + get(triple, WebGLCommand::GetUniformBool3).to_jsval(cx, rval.handle_mut()); + rval.get() + } + constants::BOOL_VEC4 => { + rooted!(in(cx) let mut rval = NullValue()); + get(triple, WebGLCommand::GetUniformBool4).to_jsval(cx, rval.handle_mut()); + rval.get() + } + constants::INT | constants::SAMPLER_2D | constants::SAMPLER_CUBE => { + Int32Value(get(triple, WebGLCommand::GetUniformInt)) + } + constants::INT_VEC2 => typed::(cx, &get(triple, WebGLCommand::GetUniformInt2)), + constants::INT_VEC3 => typed::(cx, &get(triple, WebGLCommand::GetUniformInt3)), + constants::INT_VEC4 => typed::(cx, &get(triple, WebGLCommand::GetUniformInt4)), + constants::FLOAT => DoubleValue(get(triple, WebGLCommand::GetUniformFloat) as f64), + constants::FLOAT_VEC2 => typed::(cx, &get(triple, WebGLCommand::GetUniformFloat2)), + constants::FLOAT_VEC3 => typed::(cx, &get(triple, WebGLCommand::GetUniformFloat3)), + constants::FLOAT_VEC4 | constants::FLOAT_MAT2 => { + typed::(cx, &get(triple, WebGLCommand::GetUniformFloat4)) + } + constants::FLOAT_MAT3 => typed::(cx, &get(triple, WebGLCommand::GetUniformFloat9)), + constants::FLOAT_MAT4 => typed::(cx, &get(triple, WebGLCommand::GetUniformFloat16)), + _ => panic!("wrong uniform type"), + } + } + // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.9 fn UseProgram(&self, program: Option<&WebGLProgram>) { if let Some(program) = program { diff --git a/components/script/dom/webidls/WebGLRenderingContext.webidl b/components/script/dom/webidls/WebGLRenderingContext.webidl index 82769410062..d36154c7355 100644 --- a/components/script/dom/webidls/WebGLRenderingContext.webidl +++ b/components/script/dom/webidls/WebGLRenderingContext.webidl @@ -580,7 +580,7 @@ interface WebGLRenderingContextBase any getTexParameter(GLenum target, GLenum pname); - // any getUniform(WebGLProgram program, WebGLUniformLocation location); + any getUniform(WebGLProgram program, WebGLUniformLocation location); WebGLUniformLocation? getUniformLocation(WebGLProgram program, DOMString name); diff --git a/components/servo/Cargo.toml b/components/servo/Cargo.toml index 5509930b040..ccc5c0e0675 100644 --- a/components/servo/Cargo.toml +++ b/components/servo/Cargo.toml @@ -39,7 +39,7 @@ embedder_traits = {path = "../embedder_traits"} env_logger = "0.5" euclid = "0.18" gfx = {path = "../gfx"} -gleam = "0.5" +gleam = "0.6" ipc-channel = "0.10" layout_thread = {path = "../layout_thread"} log = "0.4" diff --git a/ports/servo/Cargo.toml b/ports/servo/Cargo.toml index 850ab706e2a..aa77bcfe6aa 100644 --- a/ports/servo/Cargo.toml +++ b/ports/servo/Cargo.toml @@ -37,7 +37,7 @@ unstable = ["libservo/unstable"] backtrace = "0.3" bitflags = "1.0" euclid = "0.18" -gleam = "0.5" +gleam = "0.6" glutin = "0.17" lazy_static = "1" libservo = {path = "../../components/servo"} diff --git a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/context/incorrect-context-object-behaviour.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/context/incorrect-context-object-behaviour.html.ini index b77cd62d6ae..7bf7795c56a 100644 --- a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/context/incorrect-context-object-behaviour.html.ini +++ b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/context/incorrect-context-object-behaviour.html.ini @@ -7,15 +7,6 @@ [WebGL test #1: getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: contextA.linkProgram(programB)] expected: FAIL - [WebGL test #5: contextA.detachShader(programA, shaderB) threw exception TypeError: contextA.detachShader is not a function] - expected: FAIL - - [WebGL test #6: contextA.detachShader(programB, shaderA) threw exception TypeError: contextA.detachShader is not a function] - expected: FAIL - - [WebGL test #7: contextA.detachShader(programB, shaderB) threw exception TypeError: contextA.detachShader is not a function] - expected: FAIL - [WebGL test #8: getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: contextA.shaderSource(shaderB, 'foo')] expected: FAIL @@ -31,10 +22,16 @@ [WebGL test #12: getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: contextA.bindTexture(contextA.TEXTURE_2D, textureB)] expected: FAIL + [WebGL test #13: getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: contextA.framebufferRenderbuffer(contextA.FRAMEBUFFER, contextA.DEPTH_ATTACHMENT, contextA.RENDERBUFFER, renderBufferB)] + expected: FAIL + + [WebGL test #14: getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: contextA.framebufferTexture2D(contextA.FRAMEBUFFER, contextA.COLOR_ATTACHMENT0, contextA.TEXTURE_2D, textureB, 0)] + expected: FAIL + [WebGL test #15: getError expected: INVALID_OPERATION. Was INVALID_ENUM : after evaluating: contextA.getProgramParameter(programB, 0)] expected: FAIL - [WebGL test #16: contextA.getProgramInfoLog(programB, 0) threw exception TypeError: contextA.getProgramInfoLog is not a function] + [WebGL test #16: getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: contextA.getProgramInfoLog(programB, 0)] expected: FAIL [WebGL test #17: getError expected: INVALID_OPERATION. Was INVALID_ENUM : after evaluating: contextA.getShaderParameter(shaderB, 0)] @@ -46,18 +43,6 @@ [WebGL test #19: getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: contextA.getShaderSource(shaderB)] expected: FAIL - [WebGL test #20: contextA.getUniform(programB, locationA) threw exception TypeError: contextA.getUniform is not a function] - expected: FAIL - [WebGL test #21: getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: contextA.getUniformLocation(programB, 'u_modelViewProjMatrix')] expected: FAIL - [WebGL test #13: getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: contextA.framebufferRenderbuffer(contextA.FRAMEBUFFER, contextA.DEPTH_ATTACHMENT, contextA.RENDERBUFFER, renderBufferB)] - expected: FAIL - - [WebGL test #14: getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: contextA.framebufferTexture2D(contextA.FRAMEBUFFER, contextA.COLOR_ATTACHMENT0, contextA.TEXTURE_2D, textureB, 0)] - expected: FAIL - - [WebGL test #16: getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: contextA.getProgramInfoLog(programB, 0)] - expected: FAIL - diff --git a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/context/methods.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/context/methods.html.ini index 9afaa0848b6..44c46a26ede 100644 --- a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/context/methods.html.ini +++ b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/context/methods.html.ini @@ -1,7 +1,4 @@ [methods.html] - [WebGL test #0: Property either does not exist or is not a function: getUniform] - expected: FAIL - - [WebGL test #1: Property either does not exist or is not a function: isContextLost] + [WebGL test #0: Property either does not exist or is not a function: isContextLost] expected: FAIL diff --git a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/misc/bad-arguments-test.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/misc/bad-arguments-test.html.ini deleted file mode 100644 index 9caac9fee7c..00000000000 --- a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/misc/bad-arguments-test.html.ini +++ /dev/null @@ -1,14 +0,0 @@ -[bad-arguments-test.html] - type: testharness - [WebGL test #78: context.getUniform(argument, loc) should be null. Threw exception TypeError: context.getUniform is not a function] - expected: FAIL - - [WebGL test #79: context.getUniform(program, argument) should be null. Threw exception TypeError: context.getUniform is not a function] - expected: FAIL - - [WebGL test #104: context.getUniform(argument, loc) should be null. Threw exception TypeError: context.getUniform is not a function] - expected: FAIL - - [WebGL test #105: context.getUniform(program, argument) should be null. Threw exception TypeError: context.getUniform is not a function] - expected: FAIL - diff --git a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/more/functions/uniformMatrixBadArgs.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/more/functions/uniformMatrixBadArgs.html.ini deleted file mode 100644 index a9c34e61d2d..00000000000 --- a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/more/functions/uniformMatrixBadArgs.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[uniformMatrixBadArgs.html] - type: testharness - [WebGL test #0: testUniformf] - expected: FAIL - diff --git a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/state/gl-object-get-calls.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/state/gl-object-get-calls.html.ini deleted file mode 100644 index 6f9b9bcd5d6..00000000000 --- a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/state/gl-object-get-calls.html.ini +++ /dev/null @@ -1,52 +0,0 @@ -[gl-object-get-calls.html] - [WebGL test #57: gl.getUniform(boolProgram, bvalLoc) should be true. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - - [WebGL test #58: gl.getUniform(boolProgram, bval2Loc) should be true,false. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - - [WebGL test #59: gl.getUniform(boolProgram, bval3Loc) should be true,false,true. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - - [WebGL test #60: gl.getUniform(boolProgram, bval4Loc) should be true,false,true,false. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - - [WebGL test #63: gl.getUniform(intProgram, ivalLoc) should be 1. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - - [WebGL test #64: gl.getUniform(intProgram, ival2Loc) should be 2,3. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - - [WebGL test #65: gl.getUniform(intProgram, ival3Loc) should be 4,5,6. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - - [WebGL test #66: gl.getUniform(intProgram, ival4Loc) should be 7,8,9,10. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - - [WebGL test #69: gl.getUniform(floatProgram, fvalLoc) should be 11. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - - [WebGL test #70: gl.getUniform(floatProgram, fval2Loc) should be 12,13. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - - [WebGL test #71: gl.getUniform(floatProgram, fval3Loc) should be 14,15,16. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - - [WebGL test #72: gl.getUniform(floatProgram, fval4Loc) should be 17,18,19,20. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - - [WebGL test #75: gl.getUniform(samplerProgram, s2DValLoc) should be 0. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - - [WebGL test #76: gl.getUniform(samplerProgram, sCubeValLoc) should be 1. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - - [WebGL test #79: gl.getUniform(matProgram, mval2Loc) should be 1,2,3,4. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - - [WebGL test #80: gl.getUniform(matProgram, mval3Loc) should be 5,6,7,8,9,10,11,12,13. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - - [WebGL test #81: gl.getUniform(matProgram, mval4Loc) should be 14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29. Threw exception TypeError: gl.getUniform is not a function] - expected: FAIL - diff --git a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/uniforms/gl-uniform-arrays.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/uniforms/gl-uniform-arrays.html.ini deleted file mode 100644 index d557119df79..00000000000 --- a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/uniforms/gl-uniform-arrays.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[gl-uniform-arrays.html] - expected: ERROR - [Overall test] - expected: NOTRUN - diff --git a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/uniforms/uniform-default-values.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/uniforms/uniform-default-values.html.ini deleted file mode 100644 index d438933647c..00000000000 --- a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/uniforms/uniform-default-values.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[uniform-default-values.html] - expected: ERROR - [Overall test] - expected: NOTRUN - diff --git a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/uniforms/uniform-location.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/uniforms/uniform-location.html.ini index fb6c9c25e94..0598a5b72a8 100644 --- a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/uniforms/uniform-location.html.ini +++ b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/uniforms/uniform-location.html.ini @@ -1,25 +1,7 @@ [uniform-location.html] - [WebGL test #9: contextA.getUniform(programS, locationSx) should be 333. Threw exception TypeError: contextA.getUniform is not a function] - expected: FAIL - - [WebGL test #10: contextA.getUniform(programS, locationArray0) should be 4. Threw exception TypeError: contextA.getUniform is not a function] - expected: FAIL - - [WebGL test #11: contextA.getUniform(programS, locationArray1) should be 5. Threw exception TypeError: contextA.getUniform is not a function] - expected: FAIL - - [WebGL test #14: contextA.getUniform(programV, locationVec4) should be 1,2,3,4. Threw exception TypeError: contextA.getUniform is not a function] - expected: FAIL - [WebGL test #20: getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: contextA.uniform1i(locationSx, 3)] expected: FAIL - [WebGL test #21: contextA.getUniform(programS, locationSx) threw exception TypeError: contextA.getUniform is not a function] - expected: FAIL - - [WebGL test #24: contextA.getUniform(programS, locationSx) should be 3. Threw exception TypeError: contextA.getUniform is not a function] - expected: FAIL - - [WebGL test #25: contextA.getUniform(programS, locationArray0) should be 123. Threw exception TypeError: contextA.getUniform is not a function] + [WebGL test #21: getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: contextA.getUniform(programS, locationSx)] expected: FAIL diff --git a/tests/wpt/mozilla/meta/webgl/conformance-2.0.0/conformance2/context/methods-2.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-2.0.0/conformance2/context/methods-2.html.ini index 6eedd053fe6..2498627f37b 100644 --- a/tests/wpt/mozilla/meta/webgl/conformance-2.0.0/conformance2/context/methods-2.html.ini +++ b/tests/wpt/mozilla/meta/webgl/conformance-2.0.0/conformance2/context/methods-2.html.ini @@ -1,262 +1,259 @@ [methods-2.html] - [WebGL test #0: Property either does not exist or is not a function: getUniform] + [WebGL test #0: Property either does not exist or is not a function: isContextLost] expected: FAIL - [WebGL test #1: Property either does not exist or is not a function: isContextLost] + [WebGL test #1: Property either does not exist or is not a function: getBufferSubData] expected: FAIL - [WebGL test #2: Property either does not exist or is not a function: getBufferSubData] + [WebGL test #2: Property either does not exist or is not a function: copyBufferSubData] expected: FAIL - [WebGL test #3: Property either does not exist or is not a function: copyBufferSubData] + [WebGL test #3: Property either does not exist or is not a function: blitFramebuffer] expected: FAIL - [WebGL test #4: Property either does not exist or is not a function: blitFramebuffer] + [WebGL test #4: Property either does not exist or is not a function: framebufferTextureLayer] expected: FAIL - [WebGL test #5: Property either does not exist or is not a function: framebufferTextureLayer] + [WebGL test #5: Property either does not exist or is not a function: getInternalformatParameter] expected: FAIL - [WebGL test #6: Property either does not exist or is not a function: getInternalformatParameter] + [WebGL test #6: Property either does not exist or is not a function: invalidateFramebuffer] expected: FAIL - [WebGL test #7: Property either does not exist or is not a function: invalidateFramebuffer] + [WebGL test #7: Property either does not exist or is not a function: invalidateSubFramebuffer] expected: FAIL - [WebGL test #8: Property either does not exist or is not a function: invalidateSubFramebuffer] + [WebGL test #8: Property either does not exist or is not a function: readBuffer] expected: FAIL - [WebGL test #9: Property either does not exist or is not a function: readBuffer] + [WebGL test #9: Property either does not exist or is not a function: renderbufferStorageMultisample] expected: FAIL - [WebGL test #10: Property either does not exist or is not a function: renderbufferStorageMultisample] + [WebGL test #10: Property either does not exist or is not a function: texImage3D] expected: FAIL - [WebGL test #11: Property either does not exist or is not a function: texImage3D] + [WebGL test #11: Property either does not exist or is not a function: texStorage2D] expected: FAIL - [WebGL test #12: Property either does not exist or is not a function: texStorage2D] + [WebGL test #12: Property either does not exist or is not a function: texStorage3D] expected: FAIL - [WebGL test #13: Property either does not exist or is not a function: texStorage3D] + [WebGL test #13: Property either does not exist or is not a function: texSubImage3D] expected: FAIL - [WebGL test #14: Property either does not exist or is not a function: texSubImage3D] + [WebGL test #14: Property either does not exist or is not a function: copyTexSubImage3D] expected: FAIL - [WebGL test #15: Property either does not exist or is not a function: copyTexSubImage3D] + [WebGL test #15: Property either does not exist or is not a function: compressedTexImage3D] expected: FAIL - [WebGL test #16: Property either does not exist or is not a function: compressedTexImage3D] + [WebGL test #16: Property either does not exist or is not a function: compressedTexSubImage3D] expected: FAIL - [WebGL test #17: Property either does not exist or is not a function: compressedTexSubImage3D] + [WebGL test #17: Property either does not exist or is not a function: getFragDataLocation] expected: FAIL - [WebGL test #18: Property either does not exist or is not a function: getFragDataLocation] + [WebGL test #18: Property either does not exist or is not a function: uniform1ui] expected: FAIL - [WebGL test #19: Property either does not exist or is not a function: uniform1ui] + [WebGL test #19: Property either does not exist or is not a function: uniform2ui] expected: FAIL - [WebGL test #20: Property either does not exist or is not a function: uniform2ui] + [WebGL test #20: Property either does not exist or is not a function: uniform3ui] expected: FAIL - [WebGL test #21: Property either does not exist or is not a function: uniform3ui] + [WebGL test #21: Property either does not exist or is not a function: uniform4ui] expected: FAIL - [WebGL test #22: Property either does not exist or is not a function: uniform4ui] + [WebGL test #22: Property either does not exist or is not a function: uniform1uiv] expected: FAIL - [WebGL test #23: Property either does not exist or is not a function: uniform1uiv] + [WebGL test #23: Property either does not exist or is not a function: uniform2uiv] expected: FAIL - [WebGL test #24: Property either does not exist or is not a function: uniform2uiv] + [WebGL test #24: Property either does not exist or is not a function: uniform3uiv] expected: FAIL - [WebGL test #25: Property either does not exist or is not a function: uniform3uiv] + [WebGL test #25: Property either does not exist or is not a function: uniform4uiv] expected: FAIL - [WebGL test #26: Property either does not exist or is not a function: uniform4uiv] + [WebGL test #26: Property either does not exist or is not a function: uniformMatrix2x3fv] expected: FAIL - [WebGL test #27: Property either does not exist or is not a function: uniformMatrix2x3fv] + [WebGL test #27: Property either does not exist or is not a function: uniformMatrix3x2fv] expected: FAIL - [WebGL test #28: Property either does not exist or is not a function: uniformMatrix3x2fv] + [WebGL test #28: Property either does not exist or is not a function: uniformMatrix2x4fv] expected: FAIL - [WebGL test #29: Property either does not exist or is not a function: uniformMatrix2x4fv] + [WebGL test #29: Property either does not exist or is not a function: uniformMatrix4x2fv] expected: FAIL - [WebGL test #30: Property either does not exist or is not a function: uniformMatrix4x2fv] + [WebGL test #30: Property either does not exist or is not a function: uniformMatrix3x4fv] expected: FAIL - [WebGL test #31: Property either does not exist or is not a function: uniformMatrix3x4fv] + [WebGL test #31: Property either does not exist or is not a function: uniformMatrix4x3fv] expected: FAIL - [WebGL test #32: Property either does not exist or is not a function: uniformMatrix4x3fv] + [WebGL test #32: Property either does not exist or is not a function: vertexAttribI4i] expected: FAIL - [WebGL test #33: Property either does not exist or is not a function: vertexAttribI4i] + [WebGL test #33: Property either does not exist or is not a function: vertexAttribI4iv] expected: FAIL - [WebGL test #34: Property either does not exist or is not a function: vertexAttribI4iv] + [WebGL test #34: Property either does not exist or is not a function: vertexAttribI4ui] expected: FAIL - [WebGL test #35: Property either does not exist or is not a function: vertexAttribI4ui] + [WebGL test #35: Property either does not exist or is not a function: vertexAttribI4uiv] expected: FAIL - [WebGL test #36: Property either does not exist or is not a function: vertexAttribI4uiv] + [WebGL test #36: Property either does not exist or is not a function: vertexAttribIPointer] expected: FAIL - [WebGL test #37: Property either does not exist or is not a function: vertexAttribIPointer] + [WebGL test #37: Property either does not exist or is not a function: drawRangeElements] expected: FAIL - [WebGL test #38: Property either does not exist or is not a function: drawRangeElements] + [WebGL test #38: Property either does not exist or is not a function: drawBuffers] expected: FAIL - [WebGL test #39: Property either does not exist or is not a function: drawBuffers] + [WebGL test #39: Property either does not exist or is not a function: clearBufferiv] expected: FAIL - [WebGL test #40: Property either does not exist or is not a function: clearBufferiv] + [WebGL test #40: Property either does not exist or is not a function: clearBufferuiv] expected: FAIL - [WebGL test #41: Property either does not exist or is not a function: clearBufferuiv] + [WebGL test #41: Property either does not exist or is not a function: clearBufferfv] expected: FAIL - [WebGL test #42: Property either does not exist or is not a function: clearBufferfv] + [WebGL test #42: Property either does not exist or is not a function: clearBufferfi] expected: FAIL - [WebGL test #43: Property either does not exist or is not a function: clearBufferfi] + [WebGL test #43: Property either does not exist or is not a function: createQuery] expected: FAIL - [WebGL test #44: Property either does not exist or is not a function: createQuery] + [WebGL test #44: Property either does not exist or is not a function: deleteQuery] expected: FAIL - [WebGL test #45: Property either does not exist or is not a function: deleteQuery] + [WebGL test #45: Property either does not exist or is not a function: isQuery] expected: FAIL - [WebGL test #46: Property either does not exist or is not a function: isQuery] + [WebGL test #46: Property either does not exist or is not a function: beginQuery] expected: FAIL - [WebGL test #47: Property either does not exist or is not a function: beginQuery] + [WebGL test #47: Property either does not exist or is not a function: endQuery] expected: FAIL - [WebGL test #48: Property either does not exist or is not a function: endQuery] + [WebGL test #48: Property either does not exist or is not a function: getQuery] expected: FAIL - [WebGL test #49: Property either does not exist or is not a function: getQuery] + [WebGL test #49: Property either does not exist or is not a function: getQueryParameter] expected: FAIL - [WebGL test #50: Property either does not exist or is not a function: getQueryParameter] + [WebGL test #50: Property either does not exist or is not a function: createSampler] expected: FAIL - [WebGL test #51: Property either does not exist or is not a function: createSampler] + [WebGL test #51: Property either does not exist or is not a function: deleteSampler] expected: FAIL - [WebGL test #52: Property either does not exist or is not a function: deleteSampler] + [WebGL test #52: Property either does not exist or is not a function: isSampler] expected: FAIL - [WebGL test #53: Property either does not exist or is not a function: isSampler] + [WebGL test #53: Property either does not exist or is not a function: bindSampler] expected: FAIL - [WebGL test #54: Property either does not exist or is not a function: bindSampler] + [WebGL test #54: Property either does not exist or is not a function: samplerParameteri] expected: FAIL - [WebGL test #55: Property either does not exist or is not a function: samplerParameteri] + [WebGL test #55: Property either does not exist or is not a function: samplerParameterf] expected: FAIL - [WebGL test #56: Property either does not exist or is not a function: samplerParameterf] + [WebGL test #56: Property either does not exist or is not a function: getSamplerParameter] expected: FAIL - [WebGL test #57: Property either does not exist or is not a function: getSamplerParameter] + [WebGL test #57: Property either does not exist or is not a function: fenceSync] expected: FAIL - [WebGL test #58: Property either does not exist or is not a function: fenceSync] + [WebGL test #58: Property either does not exist or is not a function: isSync] expected: FAIL - [WebGL test #59: Property either does not exist or is not a function: isSync] + [WebGL test #59: Property either does not exist or is not a function: deleteSync] expected: FAIL - [WebGL test #60: Property either does not exist or is not a function: deleteSync] + [WebGL test #60: Property either does not exist or is not a function: clientWaitSync] expected: FAIL - [WebGL test #61: Property either does not exist or is not a function: clientWaitSync] + [WebGL test #61: Property either does not exist or is not a function: waitSync] expected: FAIL - [WebGL test #62: Property either does not exist or is not a function: waitSync] + [WebGL test #62: Property either does not exist or is not a function: getSyncParameter] expected: FAIL - [WebGL test #63: Property either does not exist or is not a function: getSyncParameter] + [WebGL test #63: Property either does not exist or is not a function: createTransformFeedback] expected: FAIL - [WebGL test #64: Property either does not exist or is not a function: createTransformFeedback] + [WebGL test #64: Property either does not exist or is not a function: deleteTransformFeedback] expected: FAIL - [WebGL test #65: Property either does not exist or is not a function: deleteTransformFeedback] + [WebGL test #65: Property either does not exist or is not a function: isTransformFeedback] expected: FAIL - [WebGL test #66: Property either does not exist or is not a function: isTransformFeedback] + [WebGL test #66: Property either does not exist or is not a function: bindTransformFeedback] expected: FAIL - [WebGL test #67: Property either does not exist or is not a function: bindTransformFeedback] + [WebGL test #67: Property either does not exist or is not a function: beginTransformFeedback] expected: FAIL - [WebGL test #68: Property either does not exist or is not a function: beginTransformFeedback] + [WebGL test #68: Property either does not exist or is not a function: endTransformFeedback] expected: FAIL - [WebGL test #69: Property either does not exist or is not a function: endTransformFeedback] + [WebGL test #69: Property either does not exist or is not a function: transformFeedbackVaryings] expected: FAIL - [WebGL test #70: Property either does not exist or is not a function: transformFeedbackVaryings] + [WebGL test #70: Property either does not exist or is not a function: getTransformFeedbackVarying] expected: FAIL - [WebGL test #71: Property either does not exist or is not a function: getTransformFeedbackVarying] + [WebGL test #71: Property either does not exist or is not a function: pauseTransformFeedback] expected: FAIL - [WebGL test #72: Property either does not exist or is not a function: pauseTransformFeedback] + [WebGL test #72: Property either does not exist or is not a function: resumeTransformFeedback] expected: FAIL - [WebGL test #73: Property either does not exist or is not a function: resumeTransformFeedback] + [WebGL test #73: Property either does not exist or is not a function: bindBufferBase] expected: FAIL - [WebGL test #74: Property either does not exist or is not a function: bindBufferBase] + [WebGL test #74: Property either does not exist or is not a function: bindBufferRange] expected: FAIL - [WebGL test #75: Property either does not exist or is not a function: bindBufferRange] + [WebGL test #75: Property either does not exist or is not a function: getIndexedParameter] expected: FAIL - [WebGL test #76: Property either does not exist or is not a function: getIndexedParameter] + [WebGL test #76: Property either does not exist or is not a function: getUniformIndices] expected: FAIL - [WebGL test #77: Property either does not exist or is not a function: getUniformIndices] + [WebGL test #77: Property either does not exist or is not a function: getActiveUniforms] expected: FAIL - [WebGL test #78: Property either does not exist or is not a function: getActiveUniforms] + [WebGL test #78: Property either does not exist or is not a function: getUniformBlockIndex] expected: FAIL - [WebGL test #79: Property either does not exist or is not a function: getUniformBlockIndex] + [WebGL test #79: Property either does not exist or is not a function: getActiveUniformBlockParameter] expected: FAIL - [WebGL test #80: Property either does not exist or is not a function: getActiveUniformBlockParameter] + [WebGL test #80: Property either does not exist or is not a function: getActiveUniformBlockName] expected: FAIL - [WebGL test #81: Property either does not exist or is not a function: getActiveUniformBlockName] + [WebGL test #81: Property either does not exist or is not a function: uniformBlockBinding] expected: FAIL - [WebGL test #82: Property either does not exist or is not a function: uniformBlockBinding] + [WebGL test #82: Property either does not exist or is not a function: createVertexArray] expected: FAIL - [WebGL test #83: Property either does not exist or is not a function: createVertexArray] + [WebGL test #83: Property either does not exist or is not a function: deleteVertexArray] expected: FAIL - [WebGL test #84: Property either does not exist or is not a function: deleteVertexArray] + [WebGL test #84: Property either does not exist or is not a function: isVertexArray] expected: FAIL - [WebGL test #85: Property either does not exist or is not a function: isVertexArray] - expected: FAIL - - [WebGL test #86: Property either does not exist or is not a function: bindVertexArray] + [WebGL test #85: Property either does not exist or is not a function: bindVertexArray] expected: FAIL