diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2018-07-02 14:50:40 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2018-07-05 14:20:44 +0200 |
commit | 5d43f1c9bd736f45be6e7d700ef1f9d6ac5ee7a6 (patch) | |
tree | bcfce92ec93fede0e0e947f36e3adeef294c1cf4 /components/script/dom/webgl_extensions/ext/oesvertexarrayobject.rs | |
parent | c71c55e542c57f6ec4e5e77be750f74f50340e56 (diff) | |
download | servo-5d43f1c9bd736f45be6e7d700ef1f9d6ac5ee7a6.tar.gz servo-5d43f1c9bd736f45be6e7d700ef1f9d6ac5ee7a6.zip |
Rename BoundAttribBuffers to VertexAttribs and make it store a slice
Diffstat (limited to 'components/script/dom/webgl_extensions/ext/oesvertexarrayobject.rs')
-rw-r--r-- | components/script/dom/webgl_extensions/ext/oesvertexarrayobject.rs | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/components/script/dom/webgl_extensions/ext/oesvertexarrayobject.rs b/components/script/dom/webgl_extensions/ext/oesvertexarrayobject.rs index a6e8739862e..017932748c8 100644 --- a/components/script/dom/webgl_extensions/ext/oesvertexarrayobject.rs +++ b/components/script/dom/webgl_extensions/ext/oesvertexarrayobject.rs @@ -50,7 +50,13 @@ impl OESVertexArrayObjectMethods for OESVertexArrayObject { self.ctx.send_command(WebGLCommand::CreateVertexArray(sender)); let result = receiver.recv().unwrap(); - result.map(|vao_id| WebGLVertexArrayObjectOES::new(&self.global(), vao_id)) + result.map(|vao_id| { + WebGLVertexArrayObjectOES::new( + &self.global(), + vao_id, + self.ctx.limits().max_vertex_attribs, + ) + }) } // https://www.khronos.org/registry/webgl/extensions/OES_vertex_array_object/ @@ -69,7 +75,7 @@ impl OESVertexArrayObjectMethods for OESVertexArrayObject { } // Remove VAO references from buffers - for (_, &(_, ref buffer)) in vao.bound_attrib_buffers().borrow().iter() { + for (_, ref buffer) in vao.vertex_attribs().borrow().iter() { if let Some(ref buffer) = *buffer { buffer.remove_vao_reference(vao.id()); } @@ -94,8 +100,8 @@ impl OESVertexArrayObjectMethods for OESVertexArrayObject { fn BindVertexArrayOES(&self, vao: Option<&WebGLVertexArrayObjectOES>) { if let Some(bound_vao) = self.bound_vao.get() { // Store buffers attached to attrib pointers - bound_vao.bound_attrib_buffers().set_from(&self.ctx.bound_attrib_buffers()); - for (_, (_, ref buffer)) in bound_vao.bound_attrib_buffers().borrow().iter() { + bound_vao.vertex_attribs().set_from(&self.ctx.vertex_attribs()); + for (_, ref buffer) in bound_vao.vertex_attribs().borrow().iter() { if let Some(ref buffer) = *buffer { buffer.add_vao_reference(bound_vao.id()); } @@ -119,13 +125,13 @@ impl OESVertexArrayObjectMethods for OESVertexArrayObject { self.bound_vao.set(Some(&vao)); // Restore WebGLRenderingContext current bindings - self.ctx.bound_attrib_buffers().set_from(&vao.bound_attrib_buffers()); + self.ctx.vertex_attribs().set_from(&vao.vertex_attribs()); let element_array = vao.bound_buffer_element_array(); self.ctx.set_bound_buffer_element_array(element_array.as_ref().map(|buffer| &**buffer)); } else { self.ctx.send_command(WebGLCommand::BindVertexArray(None)); self.bound_vao.set(None); - self.ctx.bound_attrib_buffers().clear(); + self.ctx.vertex_attribs().clear(); } } } |