mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Issue #20556: Implement proper checks in WebGLRenderingContext's bindBuffer().
This commit is contained in:
parent
dc17b32ceb
commit
c2fb588ac7
3 changed files with 49 additions and 0 deletions
|
@ -77,6 +77,9 @@ impl WebGLBuffer {
|
|||
|
||||
// NB: Only valid buffer targets come here
|
||||
pub fn bind(&self, target: u32) -> WebGLResult<()> {
|
||||
if self.is_deleted() || self.is_pending_delete() {
|
||||
return Err(WebGLError::InvalidOperation);
|
||||
}
|
||||
if let Some(previous_target) = self.target.get() {
|
||||
if target != previous_target {
|
||||
return Err(WebGLError::InvalidOperation);
|
||||
|
@ -141,6 +144,10 @@ impl WebGLBuffer {
|
|||
self.pending_delete.set(true);
|
||||
}
|
||||
|
||||
pub fn is_pending_delete(&self) -> bool {
|
||||
self.pending_delete.get()
|
||||
}
|
||||
|
||||
pub fn add_vao_reference(&self, id: WebGLVertexArrayId) {
|
||||
let mut vao_refs = self.vao_references.borrow_mut();
|
||||
if let Some(ref mut vao_refs) = *vao_refs {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue