diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-08-30 09:29:42 -0600 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-08-30 09:29:42 -0600 |
commit | 79328c11e320ad10a19d64d280df2e292eaf2e03 (patch) | |
tree | bff9e3737d0a851165c301a418a3386a7b7df0b1 /components/canvas/webgl_paint_task.rs | |
parent | 940bcadc134d1cf123518bebd84635b0053d6858 (diff) | |
parent | 167885707dfc7b050ac1fd1b6aee670a067515a4 (diff) | |
download | servo-79328c11e320ad10a19d64d280df2e292eaf2e03.tar.gz servo-79328c11e320ad10a19d64d280df2e292eaf2e03.zip |
Auto merge of #7442 - ecoal95:shader-validation, r=jdm
Add WebGL shader validation and translation
r? @jdm
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7442)
<!-- Reviewable:end -->
Diffstat (limited to 'components/canvas/webgl_paint_task.rs')
-rw-r--r-- | components/canvas/webgl_paint_task.rs | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/components/canvas/webgl_paint_task.rs b/components/canvas/webgl_paint_task.rs index b434f468711..aad45c916aa 100644 --- a/components/canvas/webgl_paint_task.rs +++ b/components/canvas/webgl_paint_task.rs @@ -112,14 +112,12 @@ impl WebGLPaintTask { gl::enable_vertex_attrib_array(attrib_id), CanvasWebGLMsg::GetAttribLocation(program_id, name, chan) => self.get_attrib_location(program_id, name, chan), - CanvasWebGLMsg::GetShaderInfoLog(shader_id, chan) => - self.get_shader_info_log(shader_id, chan), CanvasWebGLMsg::GetShaderParameter(shader_id, param_id, chan) => self.get_shader_parameter(shader_id, param_id, chan), CanvasWebGLMsg::GetUniformLocation(program_id, name, chan) => self.get_uniform_location(program_id, name, chan), - CanvasWebGLMsg::CompileShader(shader_id) => - self.compile_shader(shader_id), + CanvasWebGLMsg::CompileShader(shader_id, source) => + self.compile_shader(shader_id, source), CanvasWebGLMsg::CreateBuffer(chan) => self.create_buffer(chan), CanvasWebGLMsg::CreateFramebuffer(chan) => @@ -154,8 +152,6 @@ impl WebGLPaintTask { gl::bind_texture(target, id), CanvasWebGLMsg::LinkProgram(program_id) => gl::link_program(program_id), - CanvasWebGLMsg::ShaderSource(shader_id, source) => - gl::shader_source(shader_id, &[source.as_bytes()]), CanvasWebGLMsg::Uniform4fv(uniform_id, data) => gl::uniform_4f(uniform_id, data[0], data[1], data[2], data[3]), CanvasWebGLMsg::UseProgram(program_id) => @@ -303,11 +299,9 @@ impl WebGLPaintTask { gl::bind_framebuffer(target, id); } - // TODO(ecoal95): This is not spec-compliant, we must check - // the version of GLSL used. This functionality should probably - // be in the WebGLShader object #[inline] - fn compile_shader(&self, shader_id: u32) { + fn compile_shader(&self, shader_id: u32, source: String) { + gl::shader_source(shader_id, &[source.as_bytes()]); gl::compile_shader(shader_id); } @@ -323,13 +317,6 @@ impl WebGLPaintTask { chan.send(attrib_location).unwrap(); } - fn get_shader_info_log(&self, shader_id: u32, chan: IpcSender<Option<String>>) { - // TODO(ecoal95): Right now we always return a value, we should - // check for gl errors and return None there - let info = gl::get_shader_info_log(shader_id); - chan.send(Some(info)).unwrap(); - } - fn get_shader_parameter(&self, shader_id: u32, param_id: u32, |