diff options
author | ecoal95 <ecoal95@gmail.com> | 2015-06-15 00:22:15 +0200 |
---|---|---|
committer | ecoal95 <ecoal95@gmail.com> | 2015-07-06 19:54:06 +0200 |
commit | 42bd43a696939c3259284a01b8ef64aa13a9939c (patch) | |
tree | 254952a1f89c690b12667f2a101f970c3a29551c /components/canvas/webgl_paint_task.rs | |
parent | b1765c68821d12a21cd304f7dffaa3bdc8f101e4 (diff) | |
download | servo-42bd43a696939c3259284a01b8ef64aa13a9939c.tar.gz servo-42bd43a696939c3259284a01b8ef64aa13a9939c.zip |
webgl: Make bind* calls more spec-compliant
Diffstat (limited to 'components/canvas/webgl_paint_task.rs')
-rw-r--r-- | components/canvas/webgl_paint_task.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/components/canvas/webgl_paint_task.rs b/components/canvas/webgl_paint_task.rs index 4f6e0605dd8..6aecf0eba33 100644 --- a/components/canvas/webgl_paint_task.rs +++ b/components/canvas/webgl_paint_task.rs @@ -2,7 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -use canvas_traits::{CanvasMsg, CanvasWebGLMsg, CanvasCommonMsg}; +use canvas_traits::{CanvasMsg, CanvasWebGLMsg, CanvasCommonMsg, WebGLShaderParameter, WebGLFramebufferBindingRequest}; use euclid::size::Size2D; use core::nonzero::NonZero; use gleam::gl; @@ -109,8 +109,8 @@ impl WebGLPaintTask { self.delete_shader(id), CanvasWebGLMsg::BindBuffer(target, id) => self.bind_buffer(target, id), - CanvasWebGLMsg::BindFramebuffer(target, id) => - self.bind_framebuffer(target, id), + CanvasWebGLMsg::BindFramebuffer(target, request) => + self.bind_framebuffer(target, request), CanvasWebGLMsg::BindRenderbuffer(target, id) => self.bind_renderbuffer(target, id), CanvasWebGLMsg::BindTexture(target, id) => @@ -329,7 +329,13 @@ impl WebGLPaintTask { } #[inline] - fn bind_framebuffer(&self, target: u32, id: u32) { + fn bind_framebuffer(&self, target: u32, request: WebGLFramebufferBindingRequest) { + let id = match request { + WebGLFramebufferBindingRequest::Explicit(id) => id, + WebGLFramebufferBindingRequest::Default => + self.gl_context.borrow_draw_buffer().unwrap().get_framebuffer(), + }; + gl::bind_framebuffer(target, id); } |