diff options
Diffstat (limited to 'components/script/dom/webglprogram.rs')
-rw-r--r-- | components/script/dom/webglprogram.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/components/script/dom/webglprogram.rs b/components/script/dom/webglprogram.rs index f08c40f5500..115b866b984 100644 --- a/components/script/dom/webglprogram.rs +++ b/components/script/dom/webglprogram.rs @@ -367,6 +367,19 @@ impl WebGLProgram { self.renderer.send(WebGLCommand::GetProgramParameter(self.id, param_id, sender)).unwrap(); receiver.recv().unwrap() } + + pub fn attached_shaders(&self) -> WebGLResult<Vec<DomRoot<WebGLShader>>> { + if self.is_deleted.get() { + return Err(WebGLError::InvalidValue); + } + Ok(match (self.vertex_shader.get(), self.fragment_shader.get()) { + (Some(vertex_shader), Some(fragment_shader)) => { + vec![vertex_shader, fragment_shader] + } + (Some(shader), None) | (None, Some(shader)) => vec![shader], + (None, None) => vec![] + }) + } } impl Drop for WebGLProgram { |