diff options
author | chansuke <chansuke@georepublic.de> | 2018-09-18 23:24:15 +0900 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2018-09-19 17:40:47 -0400 |
commit | c37a345dc9f4dda6ea29c42f96f6c7201c42cbac (patch) | |
tree | 1f05b49bac02318455a59d5b143c186fd872bdb9 /components/script/dom/webglprogram.rs | |
parent | 2ca7a134736bb4759ff209c1bc0b6dc3cc1984c9 (diff) | |
download | servo-c37a345dc9f4dda6ea29c42f96f6c7201c42cbac.tar.gz servo-c37a345dc9f4dda6ea29c42f96f6c7201c42cbac.zip |
Format script component
Diffstat (limited to 'components/script/dom/webglprogram.rs')
-rw-r--r-- | components/script/dom/webglprogram.rs | 81 |
1 files changed, 53 insertions, 28 deletions
diff --git a/components/script/dom/webglprogram.rs b/components/script/dom/webglprogram.rs index 4fb1147e042..e6cf894feca 100644 --- a/components/script/dom/webglprogram.rs +++ b/components/script/dom/webglprogram.rs @@ -56,7 +56,10 @@ impl WebGLProgram { pub fn maybe_new(context: &WebGLRenderingContext) -> Option<DomRoot<Self>> { let (sender, receiver) = webgl_channel().unwrap(); context.send_command(WebGLCommand::CreateProgram(sender)); - receiver.recv().unwrap().map(|id| WebGLProgram::new(context, id)) + receiver + .recv() + .unwrap() + .map(|id| WebGLProgram::new(context, id)) } pub fn new(context: &WebGLRenderingContext, id: WebGLProgramId) -> DomRoot<Self> { @@ -68,7 +71,6 @@ impl WebGLProgram { } } - impl WebGLProgram { pub fn id(&self) -> WebGLProgramId { self.id @@ -129,7 +131,8 @@ impl WebGLProgram { /// glLinkProgram pub fn link(&self) -> WebGLResult<()> { self.linked.set(false); - self.link_generation.set(self.link_generation.get().checked_add(1).unwrap()); + self.link_generation + .set(self.link_generation.get().checked_add(1).unwrap()); *self.active_attribs.borrow_mut() = Box::new([]); *self.active_uniforms.borrow_mut() = Box::new([]); @@ -214,7 +217,7 @@ impl WebGLProgram { _ => { error!("detachShader: Unexpected shader type"); return Err(WebGLError::InvalidValue); - } + }, }; if shader_slot.get().is_some() { @@ -243,11 +246,11 @@ impl WebGLProgram { }; match shader_slot.get() { - Some(ref attached_shader) if attached_shader.id() != shader.id() => - return Err(WebGLError::InvalidOperation), - None => - return Err(WebGLError::InvalidOperation), - _ => {} + Some(ref attached_shader) if attached_shader.id() != shader.id() => { + return Err(WebGLError::InvalidOperation) + }, + None => return Err(WebGLError::InvalidOperation), + _ => {}, } shader_slot.set(None); @@ -276,7 +279,11 @@ impl WebGLProgram { self.upcast::<WebGLObject>() .context() - .send_command(WebGLCommand::BindAttribLocation(self.id, index, name.into())); + .send_command(WebGLCommand::BindAttribLocation( + self.id, + index, + name.into(), + )); Ok(()) } @@ -285,7 +292,9 @@ impl WebGLProgram { return Err(WebGLError::InvalidValue); } let uniforms = self.active_uniforms.borrow(); - let data = uniforms.get(index as usize).ok_or(WebGLError::InvalidValue)?; + let data = uniforms + .get(index as usize) + .ok_or(WebGLError::InvalidValue)?; Ok(WebGLActiveInfo::new( self.global().as_window(), data.size.unwrap_or(1), @@ -300,7 +309,9 @@ impl WebGLProgram { return Err(WebGLError::InvalidValue); } let attribs = self.active_attribs.borrow(); - let data = attribs.get(index as usize).ok_or(WebGLError::InvalidValue)?; + let data = attribs + .get(index as usize) + .ok_or(WebGLError::InvalidValue)?; Ok(WebGLActiveInfo::new( self.global().as_window(), data.size, @@ -328,7 +339,8 @@ impl WebGLProgram { return Ok(-1); } - let location = self.active_attribs + let location = self + .active_attribs .borrow() .iter() .find(|attrib| attrib.name == &*name) @@ -365,10 +377,16 @@ impl WebGLProgram { }; let uniforms = self.active_uniforms.borrow(); - match uniforms.iter().find(|attrib| &*attrib.base_name == base_name) { - Some(uniform) if array_index.is_none() || array_index < uniform.size => { - (uniform.size.map(|size| size - array_index.unwrap_or_default()), uniform.type_) - }, + match uniforms + .iter() + .find(|attrib| &*attrib.base_name == base_name) + { + Some(uniform) if array_index.is_none() || array_index < uniform.size => ( + uniform + .size + .map(|size| size - array_index.unwrap_or_default()), + uniform.type_, + ), _ => return Ok(None), } }; @@ -376,7 +394,11 @@ impl WebGLProgram { let (sender, receiver) = webgl_channel().unwrap(); self.upcast::<WebGLObject>() .context() - .send_command(WebGLCommand::GetUniformLocation(self.id, name.into(), sender)); + .send_command(WebGLCommand::GetUniformLocation( + self.id, + name.into(), + sender, + )); let location = receiver.recv().unwrap(); Ok(Some(WebGLUniformLocation::new( @@ -397,7 +419,7 @@ impl WebGLProgram { if self.link_called.get() { let shaders_compiled = match (self.fragment_shader.get(), self.vertex_shader.get()) { (Some(fs), Some(vs)) => fs.successfully_compiled() && vs.successfully_compiled(), - _ => false + _ => false, }; if !shaders_compiled { return Ok("One or more shaders failed to compile".to_string()); @@ -414,13 +436,15 @@ impl WebGLProgram { if self.marked_for_deletion.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![] - }) + 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![], + }, + ) } pub fn link_generation(&self) -> u64 { @@ -435,12 +459,13 @@ impl Drop for WebGLProgram { } } - fn parse_uniform_name(name: &str) -> Option<(&str, Option<i32>)> { if !name.ends_with(']') { return Some((name, None)); } let bracket_pos = name[..name.len() - 1].rfind('[')?; - let index = name[(bracket_pos + 1)..(name.len() - 1)].parse::<i32>().ok()?; + let index = name[(bracket_pos + 1)..(name.len() - 1)] + .parse::<i32>() + .ok()?; Some((&name[..bracket_pos], Some(index))) } |