aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/webglrenderingcontext.rs
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2018-08-24 13:43:32 -0400
committerJosh Matthews <josh@joshmatthews.net>2018-09-10 16:31:29 -0400
commit1b08dd523274b1fb346b413cb986cd47409f3aa7 (patch)
treed0ce47aa92454438e98b8b1ac0f29906c0c994a2 /components/script/dom/webglrenderingcontext.rs
parentdf8e36aa783b9f6a50a5a16a39f7dcbd65ffde76 (diff)
downloadservo-1b08dd523274b1fb346b413cb986cd47409f3aa7.tar.gz
servo-1b08dd523274b1fb346b413cb986cd47409f3aa7.zip
webgl: Move framebuffer initialization logic to WebGL thread.
Diffstat (limited to 'components/script/dom/webglrenderingcontext.rs')
-rw-r--r--components/script/dom/webglrenderingcontext.rs17
1 files changed, 15 insertions, 2 deletions
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs
index db0fabf452d..6ca010a0b6e 100644
--- a/components/script/dom/webglrenderingcontext.rs
+++ b/components/script/dom/webglrenderingcontext.rs
@@ -1061,6 +1061,17 @@ impl WebGLRenderingContext {
_ => Err(InvalidEnum),
}
}
+
+ pub fn initialize_framebuffer(&self, clear_bits: u32) {
+ if clear_bits == 0 {
+ return;
+ }
+ self.send_command(WebGLCommand::InitializeFramebuffer {
+ color: clear_bits & constants::COLOR_BUFFER_BIT != 0,
+ depth: clear_bits & constants::DEPTH_BUFFER_BIT != 0,
+ stencil: clear_bits & constants::STENCIL_BUFFER_BIT != 0,
+ });
+ }
}
impl Drop for WebGLRenderingContext {
@@ -2727,10 +2738,12 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3
fn StencilMaskSeparate(&self, face: u32, mask: u32) {
match face {
- constants::FRONT | constants::BACK | constants::FRONT_AND_BACK =>
+ constants::FRONT |
+ constants::BACK |
+ constants::FRONT_AND_BACK =>
self.send_command(WebGLCommand::StencilMaskSeparate(face, mask)),
_ => return self.webgl_error(InvalidEnum),
- }
+ };
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3