aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/webgl_extensions/ext/oesvertexarrayobject.rs
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2018-07-02 14:50:40 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2018-07-05 14:20:44 +0200
commit5d43f1c9bd736f45be6e7d700ef1f9d6ac5ee7a6 (patch)
treebcfce92ec93fede0e0e947f36e3adeef294c1cf4 /components/script/dom/webgl_extensions/ext/oesvertexarrayobject.rs
parentc71c55e542c57f6ec4e5e77be750f74f50340e56 (diff)
downloadservo-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.rs18
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();
}
}
}