mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Add Support for WebGL Transormfeedback
Reference: https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.15
This commit is contained in:
parent
a33d493a4f
commit
4f112b1705
17 changed files with 588 additions and 17 deletions
|
@ -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 {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue