aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/webglprogram.rs
diff options
context:
space:
mode:
authorIstvan Miklos <istvan.miklos@h-lab.eu>2019-09-26 11:55:20 +0200
committerIstvan Miklos <istvan.miklos@h-lab.eu>2019-11-08 15:22:52 +0100
commit4f112b1705c27ec07911429b12016feb3d588987 (patch)
treee574d817db14541f96066a94937c43f8e1603b62 /components/script/dom/webglprogram.rs
parenta33d493a4ff6f8a629a9b82202c49c41ecbefa49 (diff)
downloadservo-4f112b1705c27ec07911429b12016feb3d588987.tar.gz
servo-4f112b1705c27ec07911429b12016feb3d588987.zip
Add Support for WebGL Transormfeedback
Reference: https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.15
Diffstat (limited to 'components/script/dom/webglprogram.rs')
-rw-r--r--components/script/dom/webglprogram.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/components/script/dom/webglprogram.rs b/components/script/dom/webglprogram.rs
index 6863bc89e53..e4f5f89c6d3 100644
--- a/components/script/dom/webglprogram.rs
+++ b/components/script/dom/webglprogram.rs
@@ -34,6 +34,8 @@ pub struct WebGLProgram {
vertex_shader: MutNullableDom<WebGLShader>,
active_attribs: DomRefCell<Box<[ActiveAttribInfo]>>,
active_uniforms: DomRefCell<Box<[ActiveUniformInfo]>>,
+ transform_feedback_varyings_length: Cell<i32>,
+ transform_feedback_mode: Cell<i32>,
}
impl WebGLProgram {
@@ -50,6 +52,8 @@ impl WebGLProgram {
vertex_shader: Default::default(),
active_attribs: DomRefCell::new(vec![].into()),
active_uniforms: DomRefCell::new(vec![].into()),
+ transform_feedback_varyings_length: Default::default(),
+ transform_feedback_mode: Default::default(),
}
}
@@ -187,6 +191,10 @@ impl WebGLProgram {
self.linked.set(link_info.linked);
self.link_called.set(true);
+ self.transform_feedback_varyings_length
+ .set(link_info.transform_feedback_length);
+ self.transform_feedback_mode
+ .set(link_info.transform_feedback_mode);
*self.active_attribs.borrow_mut() = link_info.active_attribs;
*self.active_uniforms.borrow_mut() = link_info.active_uniforms;
Ok(())
@@ -444,6 +452,14 @@ impl WebGLProgram {
pub fn link_generation(&self) -> u64 {
self.link_generation.get()
}
+
+ pub fn transform_feedback_varyings_length(&self) -> i32 {
+ self.transform_feedback_varyings_length.get()
+ }
+
+ pub fn transform_feedback_buffer_mode(&self) -> i32 {
+ self.transform_feedback_mode.get()
+ }
}
impl Drop for WebGLProgram {