script/dom/webgl/
webglshaderprecisionformat.rs1use dom_struct::dom_struct;
7
8use crate::dom::bindings::codegen::Bindings::WebGLShaderPrecisionFormatBinding::WebGLShaderPrecisionFormatMethods;
9use crate::dom::bindings::reflector::{Reflector, reflect_dom_object};
10use crate::dom::bindings::root::DomRoot;
11use crate::dom::window::Window;
12use crate::script_runtime::CanGc;
13
14#[dom_struct]
15pub(crate) struct WebGLShaderPrecisionFormat {
16 reflector_: Reflector,
17 range_min: i32,
18 range_max: i32,
19 precision: i32,
20}
21
22impl WebGLShaderPrecisionFormat {
23 fn new_inherited(range_min: i32, range_max: i32, precision: i32) -> WebGLShaderPrecisionFormat {
24 WebGLShaderPrecisionFormat {
25 reflector_: Reflector::new(),
26 range_min,
27 range_max,
28 precision,
29 }
30 }
31
32 pub(crate) fn new(
33 window: &Window,
34 range_min: i32,
35 range_max: i32,
36 precision: i32,
37 can_gc: CanGc,
38 ) -> DomRoot<WebGLShaderPrecisionFormat> {
39 reflect_dom_object(
40 Box::new(WebGLShaderPrecisionFormat::new_inherited(
41 range_min, range_max, precision,
42 )),
43 window,
44 can_gc,
45 )
46 }
47}
48
49impl WebGLShaderPrecisionFormatMethods<crate::DomTypeHolder> for WebGLShaderPrecisionFormat {
50 fn RangeMin(&self) -> i32 {
52 self.range_min
53 }
54
55 fn RangeMax(&self) -> i32 {
57 self.range_max
58 }
59
60 fn Precision(&self) -> i32 {
62 self.precision
63 }
64}