diff options
author | Emilio Cobos Álvarez <ecoal95@gmail.com> | 2016-01-04 14:17:10 +0100 |
---|---|---|
committer | Emilio Cobos Álvarez <ecoal95@gmail.com> | 2016-01-13 15:28:36 +0100 |
commit | 4092ffd245c51704faec97e6da70577fd92d1f94 (patch) | |
tree | 6054d28a33f8c951582a2bd914bf1b537a2d5528 /components/script/dom/webglprogram.rs | |
parent | cf479a2b4fd07abf73237fbd365e229787bf6630 (diff) | |
download | servo-4092ffd245c51704faec97e6da70577fd92d1f94.tar.gz servo-4092ffd245c51704faec97e6da70577fd92d1f94.zip |
webgl: Check shader compilation status on use_program.
Diffstat (limited to 'components/script/dom/webglprogram.rs')
-rw-r--r-- | components/script/dom/webglprogram.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/components/script/dom/webglprogram.rs b/components/script/dom/webglprogram.rs index 272eeae72aa..42eb0a23581 100644 --- a/components/script/dom/webglprogram.rs +++ b/components/script/dom/webglprogram.rs @@ -73,8 +73,19 @@ impl WebGLProgram { } /// glUseProgram - pub fn use_program(&self) { + pub fn use_program(&self) -> WebGLResult<()> { + match self.fragment_shader.get() { + Some(ref shader) if shader.successfully_compiled() => {}, + _ => return Err(WebGLError::InvalidOperation), + } + + match self.vertex_shader.get() { + Some(ref shader) if shader.successfully_compiled() => {}, + _ => return Err(WebGLError::InvalidOperation), + } + self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::UseProgram(self.id))).unwrap(); + Ok(()) } /// glAttachShader |