aboutsummaryrefslogtreecommitdiffstats
path: root/components/canvas
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2018-10-06 00:40:48 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2018-10-06 01:11:55 +0200
commit784fbb2bc17d311fe3322cc48d2dca8a902161ca (patch)
tree2194d8d1bb0fbb7d7c50f3fbcc83b40bb28b3ea8 /components/canvas
parenta2e3dd4e8636b7125140850dc4bc95433e801e77 (diff)
downloadservo-784fbb2bc17d311fe3322cc48d2dca8a902161ca.tar.gz
servo-784fbb2bc17d311fe3322cc48d2dca8a902161ca.zip
Merge some byte swap/premultiply functions in their own crate
Diffstat (limited to 'components/canvas')
-rw-r--r--components/canvas/Cargo.toml1
-rw-r--r--components/canvas/canvas_paint_thread.rs3
-rw-r--r--components/canvas/lib.rs1
-rw-r--r--components/canvas/webgl_thread.rs4
4 files changed, 6 insertions, 3 deletions
diff --git a/components/canvas/Cargo.toml b/components/canvas/Cargo.toml
index 4006947acf6..de2073a1e28 100644
--- a/components/canvas/Cargo.toml
+++ b/components/canvas/Cargo.toml
@@ -24,6 +24,7 @@ ipc-channel = "0.11"
log = "0.4"
num-traits = "0.2"
offscreen_gl_context = {version = "0.21", features = ["serde", "osmesa"]}
+pixels = {path = "../pixels"}
serde_bytes = "0.10"
servo_config = {path = "../config"}
webrender = {git = "https://github.com/servo/webrender"}
diff --git a/components/canvas/canvas_paint_thread.rs b/components/canvas/canvas_paint_thread.rs
index 90d338e9a4e..91164a47cf0 100644
--- a/components/canvas/canvas_paint_thread.rs
+++ b/components/canvas/canvas_paint_thread.rs
@@ -7,6 +7,7 @@ use canvas_data::*;
use canvas_traits::canvas::*;
use euclid::Size2D;
use ipc_channel::ipc::{self, IpcSender};
+use pixels;
use std::borrow::ToOwned;
use std::collections::HashMap;
use std::thread;
@@ -141,7 +142,7 @@ impl<'a> CanvasPaintThread <'a> {
let data = match imagedata {
None => vec![0; image_size.width as usize * image_size.height as usize * 4],
Some(mut data) => {
- byte_swap(&mut data);
+ pixels::byte_swap_colors_inplace(&mut data);
data.into()
},
};
diff --git a/components/canvas/lib.rs b/components/canvas/lib.rs
index 8da9544de6e..554f598403c 100644
--- a/components/canvas/lib.rs
+++ b/components/canvas/lib.rs
@@ -15,6 +15,7 @@ extern crate ipc_channel;
#[macro_use] extern crate log;
extern crate num_traits;
extern crate offscreen_gl_context;
+extern crate pixels;
extern crate serde_bytes;
extern crate servo_config;
extern crate webrender;
diff --git a/components/canvas/webgl_thread.rs b/components/canvas/webgl_thread.rs
index 413566e7817..cd8dbde18d2 100644
--- a/components/canvas/webgl_thread.rs
+++ b/components/canvas/webgl_thread.rs
@@ -2,13 +2,13 @@
* 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::canvas::byte_swap;
use canvas_traits::webgl::*;
use euclid::Size2D;
use fnv::FnvHashMap;
use gleam::gl;
use ipc_channel::ipc::IpcBytesSender;
use offscreen_gl_context::{GLContext, GLContextAttributes, GLLimits, NativeGLContextMethods};
+use pixels;
use std::thread;
use super::gl_context::{GLContextFactory, GLContextWrapper};
use webrender;
@@ -562,7 +562,7 @@ impl<VR: WebVRRenderHandler + 'static> WebGLThread<VR> {
let src_slice = &orig_pixels[src_start .. src_start + stride];
(&mut pixels[dst_start .. dst_start + stride]).clone_from_slice(&src_slice[..stride]);
}
- byte_swap(&mut pixels);
+ pixels::byte_swap_colors_inplace(&mut pixels);
pixels
}