mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Cache BUFFER_USAGE value on the DOM side
This commit is contained in:
parent
e06f0d32d0
commit
ae286a518d
4 changed files with 16 additions and 31 deletions
|
@ -30,6 +30,8 @@ pub struct WebGLBuffer {
|
|||
pending_delete: Cell<bool>,
|
||||
#[ignore_malloc_size_of = "Defined in ipc-channel"]
|
||||
renderer: WebGLMsgSender,
|
||||
/// https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glGetBufferParameteriv.xml
|
||||
usage: Cell<u32>,
|
||||
}
|
||||
|
||||
impl WebGLBuffer {
|
||||
|
@ -45,6 +47,7 @@ impl WebGLBuffer {
|
|||
vao_references: DomRefCell::new(None),
|
||||
pending_delete: Cell::new(false),
|
||||
renderer: renderer,
|
||||
usage: Cell::new(WebGLRenderingContextConstants::STATIC_DRAW),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -105,6 +108,7 @@ impl WebGLBuffer {
|
|||
}
|
||||
let data = data.into();
|
||||
self.capacity.set(data.len());
|
||||
self.usage.set(usage);
|
||||
self.renderer.send(WebGLCommand::BufferData(target, data.into(), usage)).unwrap();
|
||||
|
||||
Ok(())
|
||||
|
@ -158,6 +162,10 @@ impl WebGLBuffer {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn usage(&self) -> u32 {
|
||||
self.usage.get()
|
||||
}
|
||||
}
|
||||
|
||||
impl Drop for WebGLBuffer {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue