diff options
Diffstat (limited to 'components')
-rw-r--r-- | components/canvas/webgl_thread.rs | 14 | ||||
-rw-r--r-- | components/canvas_traits/webgl.rs | 14 | ||||
-rw-r--r-- | components/script/dom/webglrenderingcontext.rs | 20 | ||||
-rw-r--r-- | components/script/dom/webglshader.rs | 4 |
4 files changed, 12 insertions, 40 deletions
diff --git a/components/canvas/webgl_thread.rs b/components/canvas/webgl_thread.rs index 294afbcf226..c311868e923 100644 --- a/components/canvas/webgl_thread.rs +++ b/components/canvas/webgl_thread.rs @@ -932,20 +932,6 @@ impl WebGLImpl { } sender.send(value[0]).unwrap() } - WebGLCommand::GetShaderParameterBool(shader, param, ref sender) => { - let mut value = [0]; - unsafe { - ctx.gl().get_shader_iv(shader.get(), param as u32, &mut value); - } - sender.send(value[0] != 0).unwrap() - } - WebGLCommand::GetShaderParameterInt(shader, param, ref sender) => { - let mut value = [0]; - unsafe { - ctx.gl().get_shader_iv(shader.get(), param as u32, &mut value); - } - sender.send(value[0]).unwrap() - } WebGLCommand::GetCurrentVertexAttrib(index, ref sender) => { let mut value = [0.; 4]; unsafe { diff --git a/components/canvas_traits/webgl.rs b/components/canvas_traits/webgl.rs index 0b88fcfec99..007f381354d 100644 --- a/components/canvas_traits/webgl.rs +++ b/components/canvas_traits/webgl.rs @@ -273,8 +273,6 @@ pub enum WebGLCommand { GetParameterFloat4(ParameterFloat4, WebGLSender<[f32; 4]>), GetProgramValidateStatus(WebGLProgramId, WebGLSender<bool>), GetProgramActiveUniforms(WebGLProgramId, WebGLSender<i32>), - GetShaderParameterBool(WebGLShaderId, ShaderParameterBool, WebGLSender<bool>), - GetShaderParameterInt(WebGLShaderId, ShaderParameterInt, WebGLSender<i32>), GetCurrentVertexAttrib(u32, WebGLSender<[f32; 4]>), GetTexParameterFloat(u32, TexParameterFloat, WebGLSender<f32>), GetTexParameterInt(u32, TexParameterInt, WebGLSender<i32>), @@ -584,18 +582,6 @@ parameters! { } parameters! { - ShaderParameter { - Bool(ShaderParameterBool { - DeleteStatus = gl::DELETE_STATUS, - CompileStatus = gl::COMPILE_STATUS, - }), - Int(ShaderParameterInt { - ShaderType = gl::SHADER_TYPE, - }), - } -} - -parameters! { TexParameter { Float(TexParameterFloat { TextureMaxAnisotropyExt = gl::TEXTURE_MAX_ANISOTROPY_EXT, diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index f5f4674793d..336c60d2dc0 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -5,8 +5,7 @@ use byteorder::{NativeEndian, ReadBytesExt, WriteBytesExt}; use canvas_traits::canvas::{byte_swap, multiply_u8_pixel}; use canvas_traits::webgl::{ActiveAttribInfo, DOMToTextureCommand, Parameter}; -use canvas_traits::webgl::{ShaderParameter, TexParameter, WebGLCommand}; -use canvas_traits::webgl::{WebGLContextShareMode, WebGLError}; +use canvas_traits::webgl::{TexParameter, WebGLCommand, WebGLContextShareMode, WebGLError}; use canvas_traits::webgl::{WebGLFramebufferBindingRequest, WebGLMsg, WebGLMsgSender}; use canvas_traits::webgl::{WebGLProgramId, WebGLResult, WebGLSLVersion, WebGLSender}; use canvas_traits::webgl::{WebGLVersion, WebVRCommand, webgl_channel}; @@ -2737,16 +2736,13 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { self.webgl_error(InvalidValue); return NullValue(); } - match handle_potential_webgl_error!(self, ShaderParameter::from_u32(param), return NullValue()) { - ShaderParameter::Bool(param) => { - let (sender, receiver) = webgl_channel().unwrap(); - self.send_command(WebGLCommand::GetShaderParameterBool(shader.id(), param, sender)); - BooleanValue(receiver.recv().unwrap()) - } - ShaderParameter::Int(param) => { - let (sender, receiver) = webgl_channel().unwrap(); - self.send_command(WebGLCommand::GetShaderParameterInt(shader.id(), param, sender)); - Int32Value(receiver.recv().unwrap()) + match param { + constants::DELETE_STATUS => BooleanValue(shader.is_marked_for_deletion()), + constants::COMPILE_STATUS => BooleanValue(shader.successfully_compiled()), + constants::SHADER_TYPE => UInt32Value(shader.gl_type()), + _ => { + self.webgl_error(InvalidEnum); + NullValue() } } } diff --git a/components/script/dom/webglshader.rs b/components/script/dom/webglshader.rs index 558d43c220c..c3ca74fde1f 100644 --- a/components/script/dom/webglshader.rs +++ b/components/script/dom/webglshader.rs @@ -192,6 +192,10 @@ impl WebGLShader { } } + pub fn is_marked_for_deletion(&self) -> bool { + self.marked_for_deletion.get() + } + pub fn is_deleted(&self) -> bool { self.marked_for_deletion.get() && !self.is_attached() } |