script/dom/webgl/
webglshaderprecisionformat.rs1use dom_struct::dom_struct;
7use js::context::JSContext;
8use script_bindings::reflector::{Reflector, reflect_dom_object_with_cx};
9
10use crate::dom::bindings::codegen::Bindings::WebGLShaderPrecisionFormatBinding::WebGLShaderPrecisionFormatMethods;
11use crate::dom::bindings::root::DomRoot;
12use crate::dom::window::Window;
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 cx: &mut JSContext,
34 window: &Window,
35 range_min: i32,
36 range_max: i32,
37 precision: i32,
38 ) -> DomRoot<WebGLShaderPrecisionFormat> {
39 reflect_dom_object_with_cx(
40 Box::new(WebGLShaderPrecisionFormat::new_inherited(
41 range_min, range_max, precision,
42 )),
43 window,
44 cx,
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}