aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/webglrenderingcontext.rs
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2018-11-06 00:04:43 -0500
committerGitHub <noreply@github.com>2018-11-06 00:04:43 -0500
commit7a3daac613c3d87782ef5cf2062ca7cfd8606bdc (patch)
tree15e53a744868e800f9dd10ee9f39f1e9c08484d0 /components/script/dom/webglrenderingcontext.rs
parentc86b183d5d1b8f3f1362a0c37701fa44b78ff4e0 (diff)
parente31462c37c2305a8e88e5d27901299ff76d7a853 (diff)
downloadservo-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.rs23
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