aboutsummaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
Diffstat (limited to 'components')
-rw-r--r--components/canvas/webgl_thread.rs14
-rw-r--r--components/canvas_traits/webgl.rs14
-rw-r--r--components/script/dom/webglrenderingcontext.rs20
-rw-r--r--components/script/dom/webglshader.rs4
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()
}