diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2018-11-06 00:04:43 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-06 00:04:43 -0500 |
commit | 7a3daac613c3d87782ef5cf2062ca7cfd8606bdc (patch) | |
tree | 15e53a744868e800f9dd10ee9f39f1e9c08484d0 /components/script/dom/webglrenderingcontext.rs | |
parent | c86b183d5d1b8f3f1362a0c37701fa44b78ff4e0 (diff) | |
parent | e31462c37c2305a8e88e5d27901299ff76d7a853 (diff) | |
download | servo-7a3daac613c3d87782ef5cf2062ca7cfd8606bdc.tar.gz servo-7a3daac613c3d87782ef5cf2062ca7cfd8606bdc.zip |
Auto merge of #22112 - servo:webgl, r=jdm
Implement WEBGL_color_buffer_float and EXT_color_buffer_half_float
<!-- 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/22112)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/webglrenderingcontext.rs')
-rw-r--r-- | components/script/dom/webglrenderingcontext.rs | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index 123e3e490be..786e3f71c33 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -808,7 +808,7 @@ impl WebGLRenderingContext { width as i32, height as i32, format, - data_type, + self.extension_manager.effective_type(data_type), receiver, )); sender.send(&pixels).unwrap(); @@ -1180,6 +1180,10 @@ impl WebGLRenderingContext { pub fn bound_framebuffer(&self) -> Option<DomRoot<WebGLFramebuffer>> { self.bound_framebuffer.get() } + + pub fn extension_manager(&self) -> &WebGLExtensions { + &self.extension_manager + } } #[cfg(not(feature = "webgl_backtrace"))] @@ -4059,18 +4063,13 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { return self.webgl_error(InvalidValue); } - match self.bound_renderbuffer.get() { - Some(rb) => { - handle_potential_webgl_error!(self, rb.storage(internal_format, width, height)); - if let Some(fb) = self.bound_framebuffer.get() { - fb.invalidate_renderbuffer(&*rb); - } - }, - None => self.webgl_error(InvalidOperation), - }; + let rb = handle_potential_webgl_error!(self, self.bound_renderbuffer.get().ok_or(InvalidOperation), return); + handle_potential_webgl_error!(self, rb.storage(internal_format, width, height)); + if let Some(fb) = self.bound_framebuffer.get() { + fb.invalidate_renderbuffer(&*rb); + } - // FIXME: We need to clear the renderbuffer before it can be - // accessed. See https://github.com/servo/servo/issues/13710 + // FIXME: https://github.com/servo/servo/issues/13710 } // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.6 |