diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-08-28 21:23:59 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-28 21:23:59 -0500 |
commit | d37d4d697ae8c8897384213be82f25a51a4aa835 (patch) | |
tree | 03be60e0099d8998a6d7eb50eca41dcc78277e9f /components/script/dom | |
parent | 11e8e42fd855c1078364c70926dfb1c888bdb7bb (diff) | |
parent | 847ab63de63343e767265d2825bbed7869358884 (diff) | |
download | servo-d37d4d697ae8c8897384213be82f25a51a4aa835.tar.gz servo-d37d4d697ae8c8897384213be82f25a51a4aa835.zip |
Auto merge of #13102 - anholt:webgl-is-program, r=emilio
webgl: Add isProgram() support.
<!-- Please describe your changes on the following line: -->
webgl: Add isProgram() support.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
There's one failure still, where a deleted program should still be
considered to be a program until it's unbound. However, I recently
made it so that we unbind at delete time, and we may need to partially
back that change out.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13102)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/webglprogram.rs | 4 | ||||
-rw-r--r-- | components/script/dom/webglrenderingcontext.rs | 5 | ||||
-rw-r--r-- | components/script/dom/webidls/WebGLRenderingContext.webidl | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/components/script/dom/webglprogram.rs b/components/script/dom/webglprogram.rs index 543a551ee17..9ac3f4e1ad4 100644 --- a/components/script/dom/webglprogram.rs +++ b/components/script/dom/webglprogram.rs @@ -87,6 +87,10 @@ impl WebGLProgram { } } + pub fn is_deleted(&self) -> bool { + self.is_deleted.get() + } + /// glLinkProgram pub fn link(&self) { self.linked.set(false); diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index d20e55429c4..5ff793527ec 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -1403,6 +1403,11 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { frame_buffer.map_or(false, |buf| buf.target().is_some() && !buf.is_deleted()) } + // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.9 + fn IsProgram(&self, program: Option<&WebGLProgram>) -> bool { + program.map_or(false, |p| !p.is_deleted()) + } + // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.7 fn IsRenderbuffer(&self, render_buffer: Option<&WebGLRenderbuffer>) -> bool { render_buffer.map_or(false, |buf| buf.ever_bound() && !buf.is_deleted()) diff --git a/components/script/dom/webidls/WebGLRenderingContext.webidl b/components/script/dom/webidls/WebGLRenderingContext.webidl index eea550a5bc0..e95ce00e5e5 100644 --- a/components/script/dom/webidls/WebGLRenderingContext.webidl +++ b/components/script/dom/webidls/WebGLRenderingContext.webidl @@ -605,7 +605,7 @@ interface WebGLRenderingContextBase [WebGLHandlesContextLoss] GLboolean isBuffer(WebGLBuffer? buffer); //[WebGLHandlesContextLoss] GLboolean isEnabled(GLenum cap); [WebGLHandlesContextLoss] GLboolean isFramebuffer(WebGLFramebuffer? framebuffer); - //[WebGLHandlesContextLoss] GLboolean isProgram(WebGLProgram? program); + [WebGLHandlesContextLoss] GLboolean isProgram(WebGLProgram? program); [WebGLHandlesContextLoss] GLboolean isRenderbuffer(WebGLRenderbuffer? renderbuffer); [WebGLHandlesContextLoss] GLboolean isShader(WebGLShader? shader); [WebGLHandlesContextLoss] GLboolean isTexture(WebGLTexture? texture); |