Skip to content

Commit

Permalink
Implement ImageBitmapOptions (#3269)
Browse files Browse the repository at this point in the history
  • Loading branch information
daxpedda committed Jan 31, 2023
1 parent 8fc0e2b commit d696427
Show file tree
Hide file tree
Showing 14 changed files with 830 additions and 3 deletions.
5 changes: 5 additions & 0 deletions crates/web-sys/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ CloseEvent = ["Event"]
CloseEventInit = []
CodecState = []
CollectedClientData = []
ColorSpaceConversion = []
Comment = ["CharacterData", "EventTarget", "Node"]
CompositeOperation = []
CompositionEvent = ["Event", "UiEvent"]
Expand Down Expand Up @@ -692,6 +693,7 @@ IirFilterNode = ["AudioNode", "EventTarget"]
IirFilterOptions = []
ImageBitmap = []
ImageBitmapFormat = []
ImageBitmapOptions = []
ImageBitmapRenderingContext = []
ImageCapture = []
ImageCaptureError = []
Expand All @@ -702,6 +704,7 @@ ImageDecodeOptions = []
ImageDecodeResult = []
ImageDecoder = []
ImageDecoderInit = []
ImageOrientation = []
ImageTrack = ["EventTarget"]
ImageTrackList = []
InputEvent = ["Event", "UiEvent"]
Expand Down Expand Up @@ -933,6 +936,7 @@ Position = []
PositionAlignSetting = []
PositionError = []
PositionOptions = []
PremultiplyAlpha = []
Presentation = []
PresentationAvailability = ["EventTarget"]
PresentationConnection = ["EventTarget"]
Expand Down Expand Up @@ -1017,6 +1021,7 @@ ResizeObserverBoxOptions = []
ResizeObserverEntry = []
ResizeObserverOptions = []
ResizeObserverSize = []
ResizeQuality = []
Response = []
ResponseInit = []
ResponseType = []
Expand Down
11 changes: 11 additions & 0 deletions crates/web-sys/src/features/gen_ColorSpaceConversion.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#![allow(unused_imports)]
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
#[doc = "The `ColorSpaceConversion` enum."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ColorSpaceConversion`*"]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ColorSpaceConversion {
None = "none",
Default = "default",
}
133 changes: 133 additions & 0 deletions crates/web-sys/src/features/gen_ImageBitmapOptions.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
#![allow(unused_imports)]
use super::*;
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
extern "C" {
# [wasm_bindgen (extends = :: js_sys :: Object , js_name = ImageBitmapOptions)]
#[derive(Debug, Clone, PartialEq, Eq)]
#[doc = "The `ImageBitmapOptions` dictionary."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageBitmapOptions`*"]
pub type ImageBitmapOptions;
}
impl ImageBitmapOptions {
#[doc = "Construct a new `ImageBitmapOptions`."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageBitmapOptions`*"]
pub fn new() -> Self {
#[allow(unused_mut)]
let mut ret: Self = ::wasm_bindgen::JsCast::unchecked_into(::js_sys::Object::new());
ret
}
#[cfg(feature = "ColorSpaceConversion")]
#[doc = "Change the `colorSpaceConversion` field of this object."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ColorSpaceConversion`, `ImageBitmapOptions`*"]
pub fn color_space_conversion(&mut self, val: ColorSpaceConversion) -> &mut Self {
use wasm_bindgen::JsValue;
let r = ::js_sys::Reflect::set(
self.as_ref(),
&JsValue::from("colorSpaceConversion"),
&JsValue::from(val),
);
debug_assert!(
r.is_ok(),
"setting properties should never fail on our dictionary objects"
);
let _ = r;
self
}
#[cfg(feature = "ImageOrientation")]
#[doc = "Change the `imageOrientation` field of this object."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageBitmapOptions`, `ImageOrientation`*"]
pub fn image_orientation(&mut self, val: ImageOrientation) -> &mut Self {
use wasm_bindgen::JsValue;
let r = ::js_sys::Reflect::set(
self.as_ref(),
&JsValue::from("imageOrientation"),
&JsValue::from(val),
);
debug_assert!(
r.is_ok(),
"setting properties should never fail on our dictionary objects"
);
let _ = r;
self
}
#[cfg(feature = "PremultiplyAlpha")]
#[doc = "Change the `premultiplyAlpha` field of this object."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageBitmapOptions`, `PremultiplyAlpha`*"]
pub fn premultiply_alpha(&mut self, val: PremultiplyAlpha) -> &mut Self {
use wasm_bindgen::JsValue;
let r = ::js_sys::Reflect::set(
self.as_ref(),
&JsValue::from("premultiplyAlpha"),
&JsValue::from(val),
);
debug_assert!(
r.is_ok(),
"setting properties should never fail on our dictionary objects"
);
let _ = r;
self
}
#[doc = "Change the `resizeHeight` field of this object."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageBitmapOptions`*"]
pub fn resize_height(&mut self, val: u32) -> &mut Self {
use wasm_bindgen::JsValue;
let r = ::js_sys::Reflect::set(
self.as_ref(),
&JsValue::from("resizeHeight"),
&JsValue::from(val),
);
debug_assert!(
r.is_ok(),
"setting properties should never fail on our dictionary objects"
);
let _ = r;
self
}
#[cfg(feature = "ResizeQuality")]
#[doc = "Change the `resizeQuality` field of this object."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageBitmapOptions`, `ResizeQuality`*"]
pub fn resize_quality(&mut self, val: ResizeQuality) -> &mut Self {
use wasm_bindgen::JsValue;
let r = ::js_sys::Reflect::set(
self.as_ref(),
&JsValue::from("resizeQuality"),
&JsValue::from(val),
);
debug_assert!(
r.is_ok(),
"setting properties should never fail on our dictionary objects"
);
let _ = r;
self
}
#[doc = "Change the `resizeWidth` field of this object."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageBitmapOptions`*"]
pub fn resize_width(&mut self, val: u32) -> &mut Self {
use wasm_bindgen::JsValue;
let r = ::js_sys::Reflect::set(
self.as_ref(),
&JsValue::from("resizeWidth"),
&JsValue::from(val),
);
debug_assert!(
r.is_ok(),
"setting properties should never fail on our dictionary objects"
);
let _ = r;
self
}
}
impl Default for ImageBitmapOptions {
fn default() -> Self {
Self::new()
}
}
44 changes: 44 additions & 0 deletions crates/web-sys/src/features/gen_ImageDecoderInit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,28 @@ impl ImageDecoderInit {
ret
}
#[cfg(web_sys_unstable_apis)]
#[cfg(feature = "ColorSpaceConversion")]
#[doc = "Change the `colorSpaceConversion` field of this object."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ColorSpaceConversion`, `ImageDecoderInit`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn color_space_conversion(&mut self, val: ColorSpaceConversion) -> &mut Self {
use wasm_bindgen::JsValue;
let r = ::js_sys::Reflect::set(
self.as_ref(),
&JsValue::from("colorSpaceConversion"),
&JsValue::from(val),
);
debug_assert!(
r.is_ok(),
"setting properties should never fail on our dictionary objects"
);
let _ = r;
self
}
#[cfg(web_sys_unstable_apis)]
#[doc = "Change the `data` field of this object."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageDecoderInit`*"]
Expand Down Expand Up @@ -110,6 +132,28 @@ impl ImageDecoderInit {
self
}
#[cfg(web_sys_unstable_apis)]
#[cfg(feature = "PremultiplyAlpha")]
#[doc = "Change the `premultiplyAlpha` field of this object."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageDecoderInit`, `PremultiplyAlpha`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn premultiply_alpha(&mut self, val: PremultiplyAlpha) -> &mut Self {
use wasm_bindgen::JsValue;
let r = ::js_sys::Reflect::set(
self.as_ref(),
&JsValue::from("premultiplyAlpha"),
&JsValue::from(val),
);
debug_assert!(
r.is_ok(),
"setting properties should never fail on our dictionary objects"
);
let _ = r;
self
}
#[cfg(web_sys_unstable_apis)]
#[doc = "Change the `type` field of this object."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageDecoderInit`*"]
Expand Down
11 changes: 11 additions & 0 deletions crates/web-sys/src/features/gen_ImageOrientation.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#![allow(unused_imports)]
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
#[doc = "The `ImageOrientation` enum."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageOrientation`*"]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ImageOrientation {
FromImage = "from-image",
FlipY = "flipY",
}
12 changes: 12 additions & 0 deletions crates/web-sys/src/features/gen_PremultiplyAlpha.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#![allow(unused_imports)]
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
#[doc = "The `PremultiplyAlpha` enum."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PremultiplyAlpha`*"]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PremultiplyAlpha {
None = "none",
Premultiply = "premultiply",
Default = "default",
}
13 changes: 13 additions & 0 deletions crates/web-sys/src/features/gen_ResizeQuality.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#![allow(unused_imports)]
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
#[doc = "The `ResizeQuality` enum."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ResizeQuality`*"]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ResizeQuality {
Pixelated = "pixelated",
Low = "low",
Medium = "medium",
High = "high",
}
Loading

0 comments on commit d696427

Please sign in to comment.