| author | Arthur Iakab <aiakab@mozilla.com> |
| Tue, 18 Feb 2020 18:27:23 +0200 | |
| changeset 514411 | 9571edde56aaa5a3a3474bc1c042c6c42e80f25f |
| parent 514410 | 65dd9e70071acf3ef844ec09f93579282a5a5451 |
| child 514412 | 920641826337ca6e7f9a8f090e63eb90d068c0c5 |
| push id | 37135 |
| push user | opoprus@mozilla.com |
| push date | Tue, 18 Feb 2020 21:33:59 +0000 |
| treeherder | mozilla-central@df596657bebc [default view] [failures only] |
| perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
| bugs | 1615694 |
| milestone | 75.0a1 |
| backs out | 106776ac6c2056323c24fbc1e57c9eaee537e64c |
| first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
| last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/Cargo.lock +++ b/Cargo.lock @@ -1632,30 +1632,30 @@ name = "gkrust_utils" version = "0.1.0" dependencies = [ "nsstring", "uuid 0.8.1", ] [[package]] name = "gl_generator" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39a23d5e872a275135d66895d954269cf5e8661d234eb1c2480f4ce0d586acbd" dependencies = [ "khronos_api", "log", "xml-rs", ] [[package]] name = "gleam" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "332d1f4e6c6181ed07178f84a552b2387d43ecf6821a86c22cfb3883ea3fb1b9" +version = "0.6.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f46fd8874e043ffac0d638ed1567a2584f7814f6d72b4db37ab1689004a26c4" dependencies = [ "gl_generator", ] [[package]] name = "glean-core" version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index"
--- a/gfx/webrender_bindings/Cargo.toml +++ b/gfx/webrender_bindings/Cargo.toml @@ -8,17 +8,17 @@ license = "MPL-2.0" webrender_debugger = ["webrender/debugger"] [dependencies] rayon = "1" num_cpus = "1.7.0" thread_profiler = "0.1.1" euclid = { version = "0.20.0", features = ["serde"] } app_units = "0.7" -gleam = "0.9.2" +gleam = "0.6.14" log = "0.4" nsstring = { path = "../../xpcom/rust/nsstring" } bincode = "1.0" uuid = { version = "0.8", features = ["v4"] } fxhash = "0.2.1" [dependencies.webrender] path = "../wr/webrender"
--- a/gfx/wr/Cargo.lock +++ b/gfx/wr/Cargo.lock @@ -183,17 +183,17 @@ name = "cfg-if" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cgl" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gleam 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "clap" version = "2.31.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ @@ -237,17 +237,17 @@ dependencies = [ "objc 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "compositor" version = "0.1.0" dependencies = [ "compositor-windows 0.1.0", - "gleam 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)", "webrender 0.61.0", ] [[package]] name = "compositor-windows" version = "0.1.0" dependencies = [ "cc 1.0.15 (registry+https://github.com/rust-lang/crates.io-index)", @@ -410,17 +410,17 @@ dependencies = [ "generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "direct-composition" version = "0.1.0" dependencies = [ "euclid 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)", "mozangle 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "webrender 0.61.0", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "winit 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "dlib" @@ -588,39 +588,21 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "khronos_api 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "gl_generator" -version = "0.14.0" +name = "gleam" +version = "0.6.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "khronos_api 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "gleam" -version = "0.6.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "gl_generator 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "gleam" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "gl_generator 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gl_generator 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "glutin" version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "android_glue 0.2.3 (git+https://github.com/rust-windowing/android-rs-glue.git?rev=e3ac6edea5814e1faca0c31ea8fac6877cb929ea)", @@ -1766,17 +1748,17 @@ dependencies = [ "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "cstr 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "dwrote 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.20.0 (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.9.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.22.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "malloc_size_of_derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "mozangle 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "plane-split 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1800,17 +1782,17 @@ dependencies = [ [[package]] name = "webrender-examples" version = "0.1.0" dependencies = [ "app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)", "glutin 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "rayon 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "webrender 0.61.0", "winit 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "webrender_api" @@ -1927,17 +1909,17 @@ dependencies = [ "clap 2.31.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", "dwrote 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", "font-loader 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)", "glutin 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.22.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "mozangle 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "osmesa-src 0.1.1 (git+https://github.com/servo/osmesa-src)", "osmesa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "ron 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2072,19 +2054,17 @@ dependencies = [ "checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" "checksum gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0912515a8ff24ba900422ecda800b52f4016a56251922d397c576bf92c690518" "checksum generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c0f28c2f5bfb5960175af447a2da7c18900693738343dc896ffbcabd9839592" "checksum gl_generator 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "39a23d5e872a275135d66895d954269cf5e8661d234eb1c2480f4ce0d586acbd" "checksum gl_generator 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ca98bbde17256e02d17336a6bdb5a50f7d0ccacee502e191d3e3d0ec2f96f84a" -"checksum gl_generator 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" -"checksum gleam 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)" = "cae10d7c99d0e77b4766e850a60898a17c1abaf01075531f1066f03dc7dc5fc5" -"checksum gleam 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332d1f4e6c6181ed07178f84a552b2387d43ecf6821a86c22cfb3883ea3fb1b9" +"checksum gleam 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)" = "7f46fd8874e043ffac0d638ed1567a2584f7814f6d72b4db37ab1689004a26c4" "checksum glutin 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cb26027a84c3b9e1949ef0df0b6a3db8d0c124243a5c161ea25c7def90cb1474" "checksum glutin_egl_sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "23f48987ab6cb2b61ad903b59e54a2fd0c380a7baff68cffd6826b69a73dd326" "checksum glutin_emscripten_sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "245b3fdb08df6ffed7585365851f8404af9c7e2dd4b59f15262e968b6a95a0c7" "checksum glutin_gles2_sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "89996c30857ae1b4de4b5189abf1ea822a20a9fe9e1c93e5e7b862ff0bdd5cdf" "checksum glutin_glx_sys 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1290a5ca5e46fcfa7f66f949cc9d9194b2cb6f2ed61892c8c2b82343631dba57" "checksum glutin_wgl_sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f801bbc91efc22dd1c4818a47814fc72bf74d024510451b119381579bfa39021" "checksum httparse 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c2f407128745b78abc95c0ffbe4e5d37427fdc0d45470710cfef8c44522a2e37" "checksum humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e"
--- a/gfx/wr/direct-composition/Cargo.toml +++ b/gfx/wr/direct-composition/Cargo.toml @@ -2,13 +2,13 @@ name = "direct-composition" version = "0.1.0" authors = ["Simon Sapin <simon.sapin@exyr.org>"] license = "MPL-2.0" edition = "2018" [target.'cfg(windows)'.dependencies] euclid = "0.20" -gleam = "0.9.2" +gleam = "0.6.2" mozangle = {version = "0.3.1", features = ["egl"]} webrender = {path = "../webrender"} winapi = {version = "0.3", features = ["winerror", "d3d11", "dcomp"]} winit = "0.19"
--- a/gfx/wr/example-compositor/compositor/Cargo.toml +++ b/gfx/wr/example-compositor/compositor/Cargo.toml @@ -2,12 +2,12 @@ name = "compositor" version = "0.1.0" authors = ["Glenn Watson <gw@intuitionlibrary.com>"] edition = "2018" license = "MPL-2.0" [dependencies] webrender = { path = "../../webrender" } -gleam = "0.9.2" +gleam = "0.6.2" [target.'cfg(windows)'.dependencies] compositor-windows = { path = "../compositor-windows" }
--- a/gfx/wr/examples/Cargo.toml +++ b/gfx/wr/examples/Cargo.toml @@ -56,16 +56,16 @@ path = "yuv.rs" [features] debug = ["webrender/capture", "webrender/debugger", "webrender/profiler"] [dependencies] app_units = "0.7" env_logger = "0.5" euclid = "0.20" -gleam = "0.9.2" +gleam = "0.6.2" glutin = "0.21" rayon = "1" webrender = { path = "../webrender" } winit = "0.19" [target.'cfg(target_os = "macos")'.dependencies] core-foundation = "0.6.4"
--- a/gfx/wr/webrender/Cargo.toml +++ b/gfx/wr/webrender/Cargo.toml @@ -27,17 +27,17 @@ webrender_build = { version = "0.0.1", p base64 = { optional = true, version = "0.10" } bincode = "1.0" bitflags = "1.2" byteorder = "1.0" cfg-if = "0.1.2" cstr = "0.1.2" euclid = { version = "0.20.0", features = ["serde"] } fxhash = "0.2.1" -gleam = "0.9.2" +gleam = "0.6.17" image_loader = { optional = true, version = "0.22", package = "image", default-features = false, features = ["png_codec"] } lazy_static = "1" log = "0.4" malloc_size_of_derive = "0.1" num-traits = "0.2" plane-split = "0.15" png = { optional = true, version = "0.15" } rayon = "1"
--- a/gfx/wr/webrender/src/device/gl.rs +++ b/gfx/wr/webrender/src/device/gl.rs @@ -944,18 +944,16 @@ pub struct Capabilities { /// Whether KHR_debug is supported for getting debug messages from /// the driver. pub supports_khr_debug: bool, /// Whether we can configure texture units to do swizzling on sampling. pub supports_texture_swizzle: bool, /// Whether the driver supports uploading to textures from a non-zero /// offset within a PBO. pub supports_nonzero_pbo_offsets: bool, - /// Whether the driver supports specifying the texture usage up front. - pub supports_texture_usage: bool, } #[derive(Clone, Debug)] pub enum ShaderError { Compilation(String, String), // name, error message Link(String, String), // name, error message } @@ -1306,18 +1304,16 @@ impl Device { panic!("Caught GL error {:x} at {}", code, name); }); } if supports_extension(&extensions, "GL_ANGLE_provoking_vertex") { gl.provoking_vertex_angle(gl::FIRST_VERTEX_CONVENTION); } - let supports_texture_usage = supports_extension(&extensions, "GL_ANGLE_texture_usage"); - // Our common-case image data in Firefox is BGRA, so we make an effort // to use BGRA as the internal texture storage format to avoid the need // to swizzle during upload. Currently we only do this on GLES (and thus // for Windows, via ANGLE). // // On Mac, Apple docs [1] claim that BGRA is a more efficient internal // format, but they don't support it with glTextureStorage. As a workaround, // we pretend that it's RGBA8 for the purposes of texture transfers, @@ -1479,17 +1475,16 @@ impl Device { supports_multisampling: false, //TODO supports_copy_image_sub_data, supports_blit_to_texture_array, supports_pixel_local_storage, supports_advanced_blend_equation, supports_khr_debug, supports_texture_swizzle, supports_nonzero_pbo_offsets, - supports_texture_usage, }, color_formats, bgra_formats, swizzle_settings: SwizzleSettings { bgra8_sampling_swizzle, }, @@ -2084,20 +2079,16 @@ impl Device { fbos_with_depth: vec![], blit_workaround_buffer: None, last_frame_used: self.frame_id, flags: TextureFlags::default(), }; self.bind_texture(DEFAULT_TEXTURE, &texture, Swizzle::default()); self.set_texture_parameters(texture.target, filter); - if self.capabilities.supports_texture_usage && render_target.is_some() { - self.gl.tex_parameter_i(texture.target, gl::TEXTURE_USAGE_ANGLE, gl::FRAMEBUFFER_ATTACHMENT_ANGLE as gl::GLint); - } - // Allocate storage. let desc = self.gl_describe_format(texture.format); let is_array = match texture.target { gl::TEXTURE_2D_ARRAY => true, gl::TEXTURE_2D | gl::TEXTURE_RECTANGLE | gl::TEXTURE_EXTERNAL_OES => false, _ => panic!("BUG: Unexpected texture target!"), }; assert!(is_array || texture.layer_count == 1);
--- a/gfx/wr/wrench/Cargo.toml +++ b/gfx/wr/wrench/Cargo.toml @@ -7,17 +7,17 @@ license = "MPL-2.0" edition = "2018" [dependencies] base64 = "0.10" bincode = "1.0" byteorder = "1.0" env_logger = { version = "0.5", optional = true } euclid = "0.20" -gleam = "0.9.2" +gleam = "0.6.2" glutin = "0.21" app_units = "0.7" clap = { version = "2", features = ["yaml"] } log = "0.4" yaml-rust = "0.4" serde_json = "1.0" ron = "0.1.5" time = "0.1"
--- a/third_party/rust/gl_generator/.cargo-checksum.json +++ b/third_party/rust/gl_generator/.cargo-checksum.json @@ -1,1 +1,1 @@ -{"files":{"Cargo.toml":"f586015aa2816b3c34d89f5e6a6539172efcd7f3ed055a0fab433ea83e2a0f0f","README.md":"52d8fee4681c879f2c964fd30e3faf0c907e8bf676eab7b44beab5c5bbd5c284","generators/debug_struct_gen.rs":"6fecccf8e57d4be93ea2657328d6e111ca44bc69542a5522cd7360d80ca64630","generators/global_gen.rs":"1696013af16bb92a3fa7cf3802a57ec6f7ba460322ede33aa2af30fc9911bd98","generators/mod.rs":"100a1da965bf11eaa9fad48a06c7856b60f48363a4a707e34ba97938bedae0b8","generators/static_gen.rs":"925a9401e27358a466baadfb660056a24394cf2fa21f5613e2d7f50ab8935e71","generators/static_struct_gen.rs":"eb08e6e59b0e0947c4ab263a0749efbb28430c5741634c413a2be011fcdad88f","generators/struct_gen.rs":"fa1bcda4501a597922be7c7ef4ad13738536a9c97529996671e264acd709c680","generators/templates/types/egl.rs":"d1785a30f1098e101302ba74ba4c22cf95ac44b17edf221dbb9d890f4bd635a2","generators/templates/types/gl.rs":"d72f91355febec875c40899a44c5575bd04993f7cf5c6e289eec872a2a161b20","generators/templates/types/glx.rs":"f444166d117b96afed2d8d13db6cd3369d6c59704f296e76202269f411bbd4a8","generators/templates/types/wgl.rs":"9d626e0959374c694c19a36d4dd34dae2f37acf3cb94e9bd4d242a16b41a970d","lib.rs":"6f47da878479b503b5202bda84ad8935607264ac03c0b68203109fad9cd479db","registry/mod.rs":"84eed5c113b322e5267b2b130987e6bb726b4e7c38ce50292cd6cc57b8e06994","registry/parse.rs":"5cb781082014f143b06ef7d3678f3c4ca59133a5732d4e136fd750b78fb9453f"},"package":"1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d"} \ No newline at end of file +{"files":{"Cargo.toml":"e1a5f54814bdc0073585819a8bf8cbdba3e9b1cfb7fa1a5bd7fbb8d8670a3673","README.md":"52d8fee4681c879f2c964fd30e3faf0c907e8bf676eab7b44beab5c5bbd5c284","generators/debug_struct_gen.rs":"73164956c9c5fe848a568aac1a7518947a0786ad6118618d78b4f0208c3f442e","generators/global_gen.rs":"486384b1d7fc234dbe55815bd99e5fbd69144f361f8cefdf4aa9841db1d7832a","generators/mod.rs":"100a1da965bf11eaa9fad48a06c7856b60f48363a4a707e34ba97938bedae0b8","generators/static_gen.rs":"925a9401e27358a466baadfb660056a24394cf2fa21f5613e2d7f50ab8935e71","generators/static_struct_gen.rs":"eb08e6e59b0e0947c4ab263a0749efbb28430c5741634c413a2be011fcdad88f","generators/struct_gen.rs":"13444b524e992d88fdd2f4b0990e06bdee292b076047b274b7f607f3de12a85d","generators/templates/types/egl.rs":"d1785a30f1098e101302ba74ba4c22cf95ac44b17edf221dbb9d890f4bd635a2","generators/templates/types/gl.rs":"f71f3a2200c0fa13f09687ef05e51c28c5b11c1bb841acd402c0097d8f9130bd","generators/templates/types/glx.rs":"f444166d117b96afed2d8d13db6cd3369d6c59704f296e76202269f411bbd4a8","generators/templates/types/wgl.rs":"9d626e0959374c694c19a36d4dd34dae2f37acf3cb94e9bd4d242a16b41a970d","lib.rs":"6f47da878479b503b5202bda84ad8935607264ac03c0b68203109fad9cd479db","registry/mod.rs":"84eed5c113b322e5267b2b130987e6bb726b4e7c38ce50292cd6cc57b8e06994","registry/parse.rs":"c201ee463663878d4546a7d94194303a3d3c27f2bcb2cdbedd892f0446583795"},"package":"39a23d5e872a275135d66895d954269cf5e8661d234eb1c2480f4ce0d586acbd"} \ No newline at end of file
--- a/third_party/rust/gl_generator/Cargo.toml +++ b/third_party/rust/gl_generator/Cargo.toml @@ -7,17 +7,17 @@ # # If you believe there's an error in this file please file an # issue against the rust-lang/cargo repository. If you're # editing this file be aware that the upstream Cargo.toml # will likely look very different (and much more reasonable) [package] name = "gl_generator" -version = "0.14.0" +version = "0.11.0" authors = ["Brendan Zabarauskas <bjzaba@yahoo.com.au>", "Corey Richardson", "Arseny Kapoulkine"] description = "Code generators for creating bindings to the Khronos OpenGL APIs." homepage = "https://github.com/brendanzab/gl-rs/" documentation = "https://docs.rs/gl_generator" readme = "README.md" keywords = ["gl", "egl", "opengl", "khronos"] categories = ["api-bindings", "rendering::graphics-api"] license = "Apache-2.0"
--- a/third_party/rust/gl_generator/generators/debug_struct_gen.rs +++ b/third_party/rust/gl_generator/generators/debug_struct_gen.rs @@ -182,17 +182,17 @@ where /// use of functions like `glfwGetProcAddress` or `SDL_GL_GetProcAddress`. /// /// ~~~ignore /// let gl = Gl::load_with(|s| glfw.get_proc_address(s)); /// ~~~ #[allow(dead_code, unused_variables)] pub fn load_with<F>(mut loadfn: F) -> {api} where F: FnMut(&'static str) -> *const __gl_imports::raw::c_void {{ #[inline(never)] - fn do_metaloadfn(loadfn: &mut dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void, + fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, symbol: &'static str, symbols: &[&'static str]) -> *const __gl_imports::raw::c_void {{ let mut ptr = loadfn(symbol); if ptr.is_null() {{ for &sym in symbols {{ ptr = loadfn(sym); if !ptr.is_null() {{ break; }}
--- a/third_party/rust/gl_generator/generators/global_gen.rs +++ b/third_party/rust/gl_generator/generators/global_gen.rs @@ -58,17 +58,17 @@ where fn write_metaloadfn<W>(dest: &mut W) -> io::Result<()> where W: io::Write, { writeln!( dest, r#" #[inline(never)] - fn metaloadfn(loadfn: &mut dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void, + fn metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, symbol: &'static str, fallbacks: &[&'static str]) -> *const __gl_imports::raw::c_void {{ let mut ptr = loadfn(symbol); if ptr.is_null() {{ for &sym in fallbacks {{ ptr = loadfn(sym); if !ptr.is_null() {{ break; }} }} @@ -280,30 +280,25 @@ where " /// Load each OpenGL symbol using a custom load function. This allows for the /// use of functions like `glfwGetProcAddress` or `SDL_GL_GetProcAddress`. /// ~~~ignore /// gl::load_with(|s| glfw.get_proc_address(s)); /// ~~~ #[allow(dead_code)] pub fn load_with<F>(mut loadfn: F) where F: FnMut(&'static str) -> *const __gl_imports::raw::c_void {{ - #[inline(never)] - fn inner(loadfn: &mut dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void) {{ ")); for c in ®istry.cmds { try!(writeln!( dest, - "{cmd_name}::load_with(&mut *loadfn);", + "{cmd_name}::load_with(&mut loadfn);", cmd_name = &c.proto.ident[..] )); } writeln!( dest, " - }} - - inner(&mut loadfn) }} " ) }
--- a/third_party/rust/gl_generator/generators/struct_gen.rs +++ b/third_party/rust/gl_generator/generators/struct_gen.rs @@ -182,17 +182,17 @@ where /// use of functions like `glfwGetProcAddress` or `SDL_GL_GetProcAddress`. /// /// ~~~ignore /// let gl = Gl::load_with(|s| glfw.get_proc_address(s)); /// ~~~ #[allow(dead_code, unused_variables)] pub fn load_with<F>(mut loadfn: F) -> {api} where F: FnMut(&'static str) -> *const __gl_imports::raw::c_void {{ #[inline(never)] - fn do_metaloadfn(loadfn: &mut dyn FnMut(&'static str) -> *const __gl_imports::raw::c_void, + fn do_metaloadfn(loadfn: &mut FnMut(&'static str) -> *const __gl_imports::raw::c_void, symbol: &'static str, symbols: &[&'static str]) -> *const __gl_imports::raw::c_void {{ let mut ptr = loadfn(symbol); if ptr.is_null() {{ for &sym in symbols {{ ptr = loadfn(sym); if !ptr.is_null() {{ break; }}
--- a/third_party/rust/gl_generator/generators/templates/types/gl.rs +++ b/third_party/rust/gl_generator/generators/templates/types/gl.rs @@ -41,37 +41,37 @@ pub type GLuint64EXT = u64; pub enum __GLsync {} pub type GLsync = *const __GLsync; // compatible with OpenCL cl_context pub enum _cl_context {} pub enum _cl_event {} -pub type GLDEBUGPROC = Option<extern "system" fn(source: GLenum, - gltype: GLenum, - id: GLuint, - severity: GLenum, - length: GLsizei, - message: *const GLchar, - userParam: *mut super::__gl_imports::raw::c_void)>; -pub type GLDEBUGPROCARB = Option<extern "system" fn(source: GLenum, - gltype: GLenum, - id: GLuint, - severity: GLenum, - length: GLsizei, - message: *const GLchar, - userParam: *mut super::__gl_imports::raw::c_void)>; -pub type GLDEBUGPROCKHR = Option<extern "system" fn(source: GLenum, - gltype: GLenum, - id: GLuint, - severity: GLenum, - length: GLsizei, - message: *const GLchar, - userParam: *mut super::__gl_imports::raw::c_void)>; +pub type GLDEBUGPROC = extern "system" fn(source: GLenum, + gltype: GLenum, + id: GLuint, + severity: GLenum, + length: GLsizei, + message: *const GLchar, + userParam: *mut super::__gl_imports::raw::c_void); +pub type GLDEBUGPROCARB = extern "system" fn(source: GLenum, + gltype: GLenum, + id: GLuint, + severity: GLenum, + length: GLsizei, + message: *const GLchar, + userParam: *mut super::__gl_imports::raw::c_void); +pub type GLDEBUGPROCKHR = extern "system" fn(source: GLenum, + gltype: GLenum, + id: GLuint, + severity: GLenum, + length: GLsizei, + message: *const GLchar, + userParam: *mut super::__gl_imports::raw::c_void); // GLES 1 types // "pub type GLclampx = i32;", // GLES 1/2 types (tagged for GLES 1) // "pub type GLbyte = i8;", // "pub type GLubyte = u8;", // "pub type GLfloat = GLfloat;", @@ -93,16 +93,16 @@ pub type GLDEBUGPROCKHR = Option<extern // "pub type GLint64EXT = i64;", // "pub type GLuint64EXT = u64;", // "pub type GLintptr = intptr_t;", // "pub type GLsizeiptr = ssize_t;", // GLES 2 types (none currently) // Vendor extension types -pub type GLDEBUGPROCAMD = Option<extern "system" fn(id: GLuint, - category: GLenum, - severity: GLenum, - length: GLsizei, - message: *const GLchar, - userParam: *mut super::__gl_imports::raw::c_void)>; +pub type GLDEBUGPROCAMD = extern "system" fn(id: GLuint, + category: GLenum, + severity: GLenum, + length: GLsizei, + message: *const GLchar, + userParam: *mut super::__gl_imports::raw::c_void); pub type GLhalfNV = super::__gl_imports::raw::c_ushort; pub type GLvdpauSurfaceNV = GLintptr;
--- a/third_party/rust/gl_generator/registry/parse.rs +++ b/third_party/rust/gl_generator/registry/parse.rs @@ -196,17 +196,17 @@ fn make_egl_enum(ident: String, ty: Opti let value = working[i + 1..].to_string(); (Cow::Owned(ty), value, true) } else { panic!("Unexpected value format: {}", value) } } else { match value.chars().next() { - Some('-') | Some('0'..='9') => (), + Some('-') | Some('0'...'9') => (), _ => panic!("Unexpected value format: {}", value), } let ty = match ty { Some(ref ty) if ty == "ull" => "EGLuint64KHR", Some(ty) => panic!("Unhandled enum type: {}", ty), None if value.starts_with('-') => "EGLint", None if ident == "TRUE" || ident == "FALSE" => "EGLBoolean", @@ -1036,17 +1036,16 @@ pub fn to_rust_ty<T: AsRef<str>>(ty: T) "NativeWindowType" => "types::NativeWindowType", //"Bool" => "types::Bool", "EGLBoolean" => "types::EGLBoolean", "EGLenum" => "types::EGLenum", "EGLAttribKHR" => "types::EGLAttribKHR", "EGLAttrib" => "types::EGLAttrib", "EGLAttrib *" => "*mut types::EGLAttrib", "const EGLAttrib *" => "*const types::EGLAttrib", - "const EGLattrib *" => "*const types::EGLAttrib", // Due to a typo in khronos_api/api_angle/scripts/egl_angle_ext.xml - see brendanzab/gl-rs#491 "EGLConfig" => "types::EGLConfig", "EGLConfig *" => "*mut types::EGLConfig", "EGLContext" => "types::EGLContext", "EGLDeviceEXT" => "types::EGLDeviceEXT", "EGLDisplay" => "types::EGLDisplay", "EGLSurface" => "types::EGLSurface", "EGLClientBuffer" => "types::EGLClientBuffer", "__eglMustCastToProperFunctionPointerType" => {
--- a/third_party/rust/gleam/.cargo-checksum.json +++ b/third_party/rust/gleam/.cargo-checksum.json @@ -1,1 +1,1 @@ -{"files":{"COPYING":"ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a","Cargo.toml":"834f409ac81917f5b5730483c90611e3193a8fb7400c87d30e7988d866bc5740","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","README.md":"1acb12040be43a3582d5897f11870b3ffdcd7ce0f4f32de158175bb6b33ec0b7","build.rs":"b6b30972ee2be2e151af0ca93b30ccc3c8bce2cfeef4217244d6b413b6bd0c9d","rustfmt.toml":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","src/gl.rs":"e923f4ccfeae5112e6cea8f78ff279e8a26c041dcfb5cfb63d9713e733d249c3","src/gl_fns.rs":"67b5eac2a686f4a58201b8d51fc27db1aca6d597dfaa5c8ad4007170ffb18887","src/gles_fns.rs":"1c206adf96e6b9767d526aad54ddfb48e99aa0f5766d3cb72019470f4bdd88f9","src/lib.rs":"16610c19b45a3f26d56b379a3591aa2e4fc9477e7bd88f86b31c6ea32e834861"},"package":"332d1f4e6c6181ed07178f84a552b2387d43ecf6821a86c22cfb3883ea3fb1b9"} \ No newline at end of file +{"files":{"COPYING":"ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a","Cargo.toml":"40dda1b03ff20d8a3b4b544683f37a8d2b2137cfbb4d545122167352690d6b16","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","README.md":"1acb12040be43a3582d5897f11870b3ffdcd7ce0f4f32de158175bb6b33ec0b7","build.rs":"2d3833a24fee9d1f669f4cd7347b4ca8444a138d473ab9188f4d65f6981c4191","rustfmt.toml":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","src/gl.rs":"b7791f77dbbea690a7a0d33e3c083337a6b04a233a192dc8c96d4fe481a4a7ed","src/gl_fns.rs":"f88cd940691e0fca169cabbe2a95418300d09392d91a020079cfbdd5bacd753b","src/gles_fns.rs":"3766f2b76aa4038774a4754ce89cdcbb50286ab5bcf07cb0bb6e88f0de31f96f","src/lib.rs":"16610c19b45a3f26d56b379a3591aa2e4fc9477e7bd88f86b31c6ea32e834861"},"package":"7f46fd8874e043ffac0d638ed1567a2584f7814f6d72b4db37ab1689004a26c4"} \ No newline at end of file
--- a/third_party/rust/gleam/Cargo.toml +++ b/third_party/rust/gleam/Cargo.toml @@ -7,17 +7,17 @@ # # If you believe there's an error in this file please file an # issue against the rust-lang/cargo repository. If you're # editing this file be aware that the upstream Cargo.toml # will likely look very different (and much more reasonable) [package] name = "gleam" -version = "0.9.2" +version = "0.6.17" authors = ["The Servo Project Developers"] build = "build.rs" description = "Generated OpenGL bindings and wrapper for Servo." documentation = "https://doc.servo.org/gleam/" license = "Apache-2.0/MIT" repository = "https://github.com/servo/gleam" [build-dependencies.gl_generator] -version = "0.14" +version = "0.11"
--- a/third_party/rust/gleam/build.rs +++ b/third_party/rust/gleam/build.rs @@ -12,17 +12,16 @@ fn main() { let mut file_gl = File::create(&Path::new(&dest).join("gl_bindings.rs")).unwrap(); let mut file_gles = File::create(&Path::new(&dest).join("gles_bindings.rs")).unwrap(); // OpenGL 3.3 bindings let gl_extensions = [ "GL_APPLE_client_storage", "GL_APPLE_fence", "GL_APPLE_texture_range", - "GL_APPLE_vertex_array_object", "GL_ARB_blend_func_extended", "GL_ARB_copy_image", "GL_ARB_get_program_binary", "GL_ARB_invalidate_subdata", "GL_ARB_texture_rectangle", "GL_ARB_texture_storage", "GL_EXT_debug_marker", "GL_EXT_texture_filter_anisotropic", @@ -50,18 +49,16 @@ fn main() { "GL_EXT_texture_filter_anisotropic", "GL_EXT_texture_format_BGRA8888", "GL_EXT_texture_storage", "GL_OES_EGL_image_external", "GL_OES_EGL_image", "GL_OES_texture_half_float", "GL_EXT_shader_pixel_local_storage", "GL_ANGLE_provoking_vertex", - "GL_ANGLE_texture_usage", - "GL_CHROMIUM_copy_texture", "GL_KHR_debug", "GL_KHR_blend_equation_advanced", "GL_KHR_blend_equation_advanced_coherent", ]; let gles_reg = Registry::new( Api::Gles2, (3, 0), Profile::Core,
--- a/third_party/rust/gleam/src/gl.rs +++ b/third_party/rust/gleam/src/gl.rs @@ -18,17 +18,17 @@ use std::str; use std::time::{Duration, Instant}; pub use ffi::types::*; pub use ffi::*; pub use ffi_gl::Gl as GlFfi; pub use ffi_gles::Gles2 as GlesFfi; -#[derive(Copy, Clone, Debug, Eq, PartialEq)] +#[derive(Debug, Eq, PartialEq)] pub enum GlType { Gl, Gles, } impl Default for GlType { #[cfg(any(target_os = "android", target_os = "ios"))] fn default() -> GlType { @@ -69,53 +69,42 @@ fn calculate_length(width: GLsizei, heig pub struct DebugMessage { pub message: String, pub source: GLenum, pub ty: GLenum, pub id: GLenum, pub severity: GLenum, } -mod private { - // Private marker trait extended by the Gl public trait so that no one - // else outside this crate can implement Gl. Why? So that adding new methods - // to it don't lead to a breaking change. - pub trait Sealed {} -} -use self::private::Sealed; - macro_rules! declare_gl_apis { // garbo is a hack to handle unsafe methods. ($($(unsafe $([$garbo:expr])*)* fn $name:ident(&self $(, $arg:ident: $t:ty)* $(,)*) $(-> $retty:ty)* ;)+) => { - pub trait Gl: Sealed { + pub trait Gl { $($(unsafe $($garbo)*)* fn $name(&self $(, $arg:$t)*) $(-> $retty)* ;)+ } - impl Sealed for ErrorCheckingGl {} impl Gl for ErrorCheckingGl { $($(unsafe $($garbo)*)* fn $name(&self $(, $arg:$t)*) $(-> $retty)* { let rv = self.gl.$name($($arg,)*); assert_eq!(self.gl.get_error(), 0); rv })+ } - impl<F> Sealed for ErrorReactingGl<F> {} - impl<F: Fn(&dyn Gl, &str, GLenum)> Gl for ErrorReactingGl<F> { + impl<F: Fn(&Gl, &str, GLenum)> Gl for ErrorReactingGl<F> { $($(unsafe $($garbo)*)* fn $name(&self $(, $arg:$t)*) $(-> $retty)* { let rv = self.gl.$name($($arg,)*); let error = self.gl.get_error(); if error != 0 { (self.callback)(&*self.gl, stringify!($name), error); } rv })+ } - impl<F> Sealed for ProfilingGl<F> {} impl<F: Fn(&str, Duration)> Gl for ProfilingGl<F> { $($(unsafe $($garbo)*)* fn $name(&self $(, $arg:$t)*) $(-> $retty)* { let start = Instant::now(); let rv = self.gl.$name($($arg,)*); let duration = Instant::now() - start; if duration > self.threshold { (self.callback)(stringify!($name), duration); } @@ -175,28 +164,26 @@ declare_gl_apis! { fn sample_coverage(&self, value: GLclampf, invert: bool); fn polygon_offset(&self, factor: GLfloat, units: GLfloat); fn pixel_store_i(&self, name: GLenum, param: GLint); fn gen_buffers(&self, n: GLsizei) -> Vec<GLuint>; fn gen_renderbuffers(&self, n: GLsizei) -> Vec<GLuint>; fn gen_framebuffers(&self, n: GLsizei) -> Vec<GLuint>; fn gen_textures(&self, n: GLsizei) -> Vec<GLuint>; fn gen_vertex_arrays(&self, n: GLsizei) -> Vec<GLuint>; - fn gen_vertex_arrays_apple(&self, n: GLsizei) -> Vec<GLuint>; fn gen_queries(&self, n: GLsizei) -> Vec<GLuint>; fn begin_query(&self, target: GLenum, id: GLuint); fn end_query(&self, target: GLenum); fn query_counter(&self, id: GLuint, target: GLenum); fn get_query_object_iv(&self, id: GLuint, pname: GLenum) -> i32; fn get_query_object_uiv(&self, id: GLuint, pname: GLenum) -> u32; fn get_query_object_i64v(&self, id: GLuint, pname: GLenum) -> i64; fn get_query_object_ui64v(&self, id: GLuint, pname: GLenum) -> u64; fn delete_queries(&self, queries: &[GLuint]); fn delete_vertex_arrays(&self, vertex_arrays: &[GLuint]); - fn delete_vertex_arrays_apple(&self, vertex_arrays: &[GLuint]); fn delete_buffers(&self, buffers: &[GLuint]); fn delete_renderbuffers(&self, renderbuffers: &[GLuint]); fn delete_framebuffers(&self, framebuffers: &[GLuint]); fn delete_textures(&self, textures: &[GLuint]); fn framebuffer_renderbuffer(&self, target: GLenum, attachment: GLenum, renderbuffertarget: GLenum, @@ -217,17 +204,16 @@ declare_gl_apis! { fn bind_buffer_base(&self, target: GLenum, index: GLuint, buffer: GLuint); fn bind_buffer_range(&self, target: GLenum, index: GLuint, buffer: GLuint, offset: GLintptr, size: GLsizeiptr); fn uniform_block_binding(&self, program: GLuint, uniform_block_index: GLuint, uniform_block_binding: GLuint); fn bind_buffer(&self, target: GLenum, buffer: GLuint); fn bind_vertex_array(&self, vao: GLuint); - fn bind_vertex_array_apple(&self, vao: GLuint); fn bind_renderbuffer(&self, target: GLenum, renderbuffer: GLuint); fn bind_framebuffer(&self, target: GLenum, framebuffer: GLuint); fn bind_texture(&self, target: GLenum, texture: GLuint); fn draw_buffers(&self, bufs: &[GLenum]); fn tex_image_2d(&self, target: GLenum, level: GLint, internal_format: GLint, @@ -558,17 +544,16 @@ declare_gl_apis! { fn get_error(&self) -> GLenum; fn stencil_mask(&self, mask: GLuint); fn stencil_mask_separate(&self, face: GLenum, mask: GLuint); fn stencil_func(&self, func: GLenum, ref_: GLint, mask: GLuint); fn stencil_func_separate(&self, face: GLenum, func: GLenum, ref_: GLint, mask: GLuint); fn stencil_op(&self, sfail: GLenum, dpfail: GLenum, dppass: GLenum); fn stencil_op_separate(&self, face: GLenum, sfail: GLenum, dpfail: GLenum, dppass: GLenum); fn egl_image_target_texture2d_oes(&self, target: GLenum, image: GLeglImageOES); - fn egl_image_target_renderbuffer_storage_oes(&self, target: GLenum, image: GLeglImageOES); fn generate_mipmap(&self, target: GLenum); fn insert_event_marker_ext(&self, message: &str); fn push_group_marker_ext(&self, message: &str); fn pop_group_marker_ext(&self); fn debug_message_insert_khr(&self, source: GLenum, type_: GLenum, id: GLuint, severity: GLenum, message: &str); fn push_debug_group_khr(&self, source: GLenum, id: GLuint, message: &str); fn pop_debug_group_khr(&self); fn fence_sync(&self, condition: GLenum, flags: GLbitfield) -> GLsync; @@ -598,91 +583,79 @@ declare_gl_apis! { &self, program: GLuint, name: &str, ) -> GLint; // GL_KHR_debug fn get_debug_messages(&self) -> Vec<DebugMessage>; - // GL_ANGLE_provoking_vertex + // GL_ANGLE_provoking_vertex. fn provoking_vertex_angle(&self, mode: GLenum); - - // GL_CHROMIUM_copy_texture - fn copy_texture_chromium(&self, - source_id: GLuint, source_level: GLint, - dest_target: GLenum, dest_id: GLuint, dest_level: GLint, - internal_format: GLint, dest_type: GLenum, - unpack_flip_y: GLboolean, unpack_premultiply_alpha: GLboolean, unpack_unmultiply_alpha: GLboolean); - fn copy_sub_texture_chromium(&self, - source_id: GLuint, source_level: GLint, - dest_target: GLenum, dest_id: GLuint, dest_level: GLint, - x_offset: GLint, y_offset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei, - unpack_flip_y: GLboolean, unpack_premultiply_alpha: GLboolean, unpack_unmultiply_alpha: GLboolean); } //#[deprecated(since = "0.6.11", note = "use ErrorReactingGl instead")] pub struct ErrorCheckingGl { - gl: Rc<dyn Gl>, + gl: Rc<Gl>, } impl ErrorCheckingGl { - pub fn wrap(fns: Rc<dyn Gl>) -> Rc<dyn Gl> { - Rc::new(ErrorCheckingGl { gl: fns }) as Rc<dyn Gl> + pub fn wrap(fns: Rc<Gl>) -> Rc<Gl> { + Rc::new(ErrorCheckingGl { gl: fns }) as Rc<Gl> } } /// A wrapper around GL context that calls a specified callback on each GL error. pub struct ErrorReactingGl<F> { - gl: Rc<dyn Gl>, + gl: Rc<Gl>, callback: F, } -impl<F: 'static + Fn(&dyn Gl, &str, GLenum)> ErrorReactingGl<F> { - pub fn wrap(fns: Rc<dyn Gl>, callback: F) -> Rc<dyn Gl> { - Rc::new(ErrorReactingGl { gl: fns, callback }) as Rc<dyn Gl> +impl<F: 'static + Fn(&Gl, &str, GLenum)> ErrorReactingGl<F> { + pub fn wrap(fns: Rc<Gl>, callback: F) -> Rc<Gl> { + Rc::new(ErrorReactingGl { gl: fns, callback }) as Rc<Gl> } } /// A wrapper around GL context that times each call and invokes the callback /// if the call takes longer than the threshold. pub struct ProfilingGl<F> { - gl: Rc<dyn Gl>, + gl: Rc<Gl>, threshold: Duration, callback: F, } impl<F: 'static + Fn(&str, Duration)> ProfilingGl<F> { - pub fn wrap(fns: Rc<dyn Gl>, threshold: Duration, callback: F) -> Rc<dyn Gl> { - Rc::new(ProfilingGl { gl: fns, threshold, callback }) as Rc<dyn Gl> + pub fn wrap(fns: Rc<Gl>, threshold: Duration, callback: F) -> Rc<Gl> { + Rc::new(ProfilingGl { gl: fns, threshold, callback }) as Rc<Gl> } } #[inline] -pub fn buffer_data<T>(gl_: &dyn Gl, target: GLenum, data: &[T], usage: GLenum) { +pub fn buffer_data<T>(gl_: &Gl, target: GLenum, data: &[T], usage: GLenum) { gl_.buffer_data_untyped( target, (data.len() * size_of::<T>()) as GLsizeiptr, data.as_ptr() as *const GLvoid, usage, ) } #[inline] -pub fn buffer_data_raw<T>(gl_: &dyn Gl, target: GLenum, data: &T, usage: GLenum) { +pub fn buffer_data_raw<T>(gl_: &Gl, target: GLenum, data: &T, usage: GLenum) { gl_.buffer_data_untyped( target, size_of::<T>() as GLsizeiptr, data as *const T as *const GLvoid, usage, ) } #[inline] -pub fn buffer_sub_data<T>(gl_: &dyn Gl, target: GLenum, offset: isize, data: &[T]) { +pub fn buffer_sub_data<T>(gl_: &Gl, target: GLenum, offset: isize, data: &[T]) { gl_.buffer_sub_data_untyped( target, offset, (data.len() * size_of::<T>()) as GLsizeiptr, data.as_ptr() as *const GLvoid, ); }
--- a/third_party/rust/gleam/src/gl_fns.rs +++ b/third_party/rust/gleam/src/gl_fns.rs @@ -7,26 +7,25 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. pub struct GlFns { ffi_gl_: GlFfi, } impl GlFns { - pub unsafe fn load_with<'a, F>(loadfn: F) -> Rc<dyn Gl> + pub unsafe fn load_with<'a, F>(loadfn: F) -> Rc<Gl> where F: FnMut(&str) -> *const c_void, { let ffi_gl_ = GlFfi::load_with(loadfn); - Rc::new(GlFns { ffi_gl_: ffi_gl_ }) as Rc<dyn Gl> + Rc::new(GlFns { ffi_gl_: ffi_gl_ }) as Rc<Gl> } } -impl Sealed for GlFns {} impl Gl for GlFns { fn get_type(&self) -> GlType { GlType::Gl } fn buffer_data_untyped( &self, target: GLenum, @@ -217,25 +216,17 @@ impl Gl for GlFns { self.ffi_gl_.GenTextures(n, result.as_mut_ptr()); } result } fn gen_vertex_arrays(&self, n: GLsizei) -> Vec<GLuint> { let mut result = vec![0 as GLuint; n as usize]; unsafe { - self.ffi_gl_.GenVertexArrays(n, result.as_mut_ptr()) - } - result - } - - fn gen_vertex_arrays_apple(&self, n: GLsizei) -> Vec<GLuint> { - let mut result = vec![0 as GLuint; n as usize]; - unsafe { - self.ffi_gl_.GenVertexArraysAPPLE(n, result.as_mut_ptr()) + self.ffi_gl_.GenVertexArrays(n, result.as_mut_ptr()); } result } fn gen_queries(&self, n: GLsizei) -> Vec<GLuint> { let mut result = vec![0 as GLuint; n as usize]; unsafe { self.ffi_gl_.GenQueries(n, result.as_mut_ptr()); @@ -302,23 +293,16 @@ impl Gl for GlFns { fn delete_vertex_arrays(&self, vertex_arrays: &[GLuint]) { unsafe { self.ffi_gl_ .DeleteVertexArrays(vertex_arrays.len() as GLsizei, vertex_arrays.as_ptr()); } } - fn delete_vertex_arrays_apple(&self, vertex_arrays: &[GLuint]) { - unsafe { - self.ffi_gl_ - .DeleteVertexArraysAPPLE(vertex_arrays.len() as GLsizei, vertex_arrays.as_ptr()); - } - } - fn delete_buffers(&self, buffers: &[GLuint]) { unsafe { self.ffi_gl_ .DeleteBuffers(buffers.len() as GLsizei, buffers.as_ptr()); } } fn delete_renderbuffers(&self, renderbuffers: &[GLuint]) { @@ -475,22 +459,16 @@ impl Gl for GlFns { } fn bind_vertex_array(&self, vao: GLuint) { unsafe { self.ffi_gl_.BindVertexArray(vao); } } - fn bind_vertex_array_apple(&self, vao: GLuint) { - unsafe { - self.ffi_gl_.BindVertexArrayAPPLE(vao) - } - } - fn bind_renderbuffer(&self, target: GLenum, renderbuffer: GLuint) { unsafe { self.ffi_gl_.BindRenderbuffer(target, renderbuffer); } } fn bind_framebuffer(&self, target: GLenum, framebuffer: GLuint) { unsafe { @@ -1933,21 +1911,16 @@ impl Gl for GlFns { unsafe { self.ffi_gl_.StencilOpSeparate(face, sfail, dpfail, dppass) } } #[allow(unused_variables)] fn egl_image_target_texture2d_oes(&self, target: GLenum, image: GLeglImageOES) { panic!("not supported") } - #[allow(unused_variables)] - fn egl_image_target_renderbuffer_storage_oes(&self, target: GLenum, image: GLeglImageOES) { - panic!("not supported") - } - fn generate_mipmap(&self, target: GLenum) { unsafe { self.ffi_gl_.GenerateMipmap(target) } } fn insert_event_marker_ext(&self, message: &str) { if self.ffi_gl_.InsertEventMarkerEXT.is_loaded() { unsafe { self.ffi_gl_ @@ -2175,27 +2148,9 @@ impl Gl for GlFns { // GL_KHR_blend_equation_advanced fn blend_barrier_khr(&self) { if self.ffi_gl_.BlendBarrierKHR.is_loaded() { unsafe { self.ffi_gl_.BlendBarrierKHR(); } } } - - // GL_CHROMIUM_copy_texture - fn copy_texture_chromium(&self, - _source_id: GLuint, _source_level: GLint, - _dest_target: GLenum, _dest_id: GLuint, _dest_level: GLint, - _internal_format: GLint, _dest_type: GLenum, - _unpack_flip_y: GLboolean, _unpack_premultiply_alpha: GLboolean, _unpack_unmultiply_alpha: GLboolean) - { - unimplemented!("This extension is GLES only"); - } - fn copy_sub_texture_chromium(&self, - _source_id: GLuint, _source_level: GLint, - _dest_target: GLenum, _dest_id: GLuint, _dest_level: GLint, - _x_offset: GLint, _y_offset: GLint, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei, - _unpack_flip_y: GLboolean, _unpack_premultiply_alpha: GLboolean, _unpack_unmultiply_alpha: GLboolean) - { - unimplemented!("This extension is GLES only"); - } }
--- a/third_party/rust/gleam/src/gles_fns.rs +++ b/third_party/rust/gleam/src/gles_fns.rs @@ -7,26 +7,25 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. pub struct GlesFns { ffi_gl_: GlesFfi, } impl GlesFns { - pub unsafe fn load_with<'a, F>(loadfn: F) -> Rc<dyn Gl> + pub unsafe fn load_with<'a, F>(loadfn: F) -> Rc<Gl> where F: FnMut(&str) -> *const c_void, { let ffi_gl_ = GlesFfi::load_with(loadfn); - Rc::new(GlesFns { ffi_gl_: ffi_gl_ }) as Rc<dyn Gl> + Rc::new(GlesFns { ffi_gl_: ffi_gl_ }) as Rc<Gl> } } -impl Sealed for GlesFns {} impl Gl for GlesFns { fn get_type(&self) -> GlType { GlType::Gles } fn buffer_data_untyped( &self, target: GLenum, @@ -217,20 +216,16 @@ impl Gl for GlesFns { fn gen_vertex_arrays(&self, n: GLsizei) -> Vec<GLuint> { let mut result = vec![0 as GLuint; n as usize]; unsafe { self.ffi_gl_.GenVertexArrays(n, result.as_mut_ptr()); } result } - fn gen_vertex_arrays_apple(&self, _n: GLsizei) -> Vec<GLuint> { - panic!("not supported") - } - fn gen_queries(&self, n: GLsizei) -> Vec<GLuint> { if !self.ffi_gl_.GenQueriesEXT.is_loaded() { return Vec::new(); } let mut result = vec![0 as GLuint; n as usize]; unsafe { self.ffi_gl_.GenQueriesEXT(n, result.as_mut_ptr()); } @@ -320,20 +315,16 @@ impl Gl for GlesFns { fn delete_vertex_arrays(&self, vertex_arrays: &[GLuint]) { unsafe { self.ffi_gl_ .DeleteVertexArrays(vertex_arrays.len() as GLsizei, vertex_arrays.as_ptr()); } } - fn delete_vertex_arrays_apple(&self, _vertex_arrays: &[GLuint]) { - panic!("not supported") - } - fn delete_buffers(&self, buffers: &[GLuint]) { unsafe { self.ffi_gl_ .DeleteBuffers(buffers.len() as GLsizei, buffers.as_ptr()); } } fn delete_renderbuffers(&self, renderbuffers: &[GLuint]) { @@ -490,20 +481,16 @@ impl Gl for GlesFns { } fn bind_vertex_array(&self, vao: GLuint) { unsafe { self.ffi_gl_.BindVertexArray(vao); } } - fn bind_vertex_array_apple(&self, _vao: GLuint) { - panic!("not supported") - } - fn bind_renderbuffer(&self, target: GLenum, renderbuffer: GLuint) { unsafe { self.ffi_gl_.BindRenderbuffer(target, renderbuffer); } } fn bind_framebuffer(&self, target: GLenum, framebuffer: GLuint) { unsafe { @@ -1930,22 +1917,16 @@ impl Gl for GlesFns { } fn egl_image_target_texture2d_oes(&self, target: GLenum, image: GLeglImageOES) { unsafe { self.ffi_gl_.EGLImageTargetTexture2DOES(target, image); } } - fn egl_image_target_renderbuffer_storage_oes(&self, target: GLenum, image: GLeglImageOES) { - unsafe { - self.ffi_gl_.EGLImageTargetRenderbufferStorageOES(target, image); - } - } - fn generate_mipmap(&self, target: GLenum) { unsafe { self.ffi_gl_.GenerateMipmap(target) } } fn insert_event_marker_ext(&self, message: &str) { if self.ffi_gl_.InsertEventMarkerEXT.is_loaded() { unsafe { self.ffi_gl_ @@ -2134,37 +2115,9 @@ impl Gl for GlesFns { // GL_KHR_blend_equation_advanced fn blend_barrier_khr(&self) { if self.ffi_gl_.BlendBarrierKHR.is_loaded() { unsafe { self.ffi_gl_.BlendBarrierKHR(); } } } - - // GL_CHROMIUM_copy_texture - fn copy_texture_chromium(&self, - source_id: GLuint, source_level: GLint, - dest_target: GLenum, dest_id: GLuint, dest_level: GLint, - internal_format: GLint, dest_type: GLenum, - unpack_flip_y: GLboolean, unpack_premultiply_alpha: GLboolean, unpack_unmultiply_alpha: GLboolean) - { - unsafe { - self.ffi_gl_.CopyTextureCHROMIUM(source_id, source_level, dest_target, dest_id, dest_level, - internal_format, dest_type, - unpack_flip_y, unpack_premultiply_alpha, unpack_unmultiply_alpha, - ); - } - } - fn copy_sub_texture_chromium(&self, - source_id: GLuint, source_level: GLint, - dest_target: GLenum, dest_id: GLuint, dest_level: GLint, - x_offset: GLint, y_offset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei, - unpack_flip_y: GLboolean, unpack_premultiply_alpha: GLboolean, unpack_unmultiply_alpha: GLboolean) - { - unsafe { - self.ffi_gl_.CopySubTextureCHROMIUM(source_id, source_level, dest_target, dest_id, dest_level, - x_offset, y_offset, x, y, width, height, - unpack_flip_y, unpack_premultiply_alpha, unpack_unmultiply_alpha, - ); - } - } }