aboutsummaryrefslogtreecommitdiffstats
path: root/components/net/image_cache_thread.rs
diff options
context:
space:
mode:
authorGlenn Watson <github@intuitionlibrary.com>2016-10-12 10:13:27 +1000
committerGlenn Watson <github@intuitionlibrary.com>2016-10-18 10:21:27 +1000
commitacfdfd2fa98562c9f891fbee2dbc3424803c1a3c (patch)
treebc66667bab89db2ab6a1c4d4113525190fb82d3a /components/net/image_cache_thread.rs
parent4af21e3ae1676f943a9a01688fef854487bcddfc (diff)
downloadservo-acfdfd2fa98562c9f891fbee2dbc3424803c1a3c.tar.gz
servo-acfdfd2fa98562c9f891fbee2dbc3424803c1a3c.zip
Remove old rendering backend.
This removes paint threads, rust-layers dependency, and changes optional webrender types to be required. The use_webrender option has been removed, however I've left the "-w" command line option in place so that wpt runner can continue to pass that. Once it's removed from there we can also remove the -w option. Once this stage is complete, it should be fine to change the display list building code to generate webrender display lists directly and avoid the conversion step.
Diffstat (limited to 'components/net/image_cache_thread.rs')
-rw-r--r--components/net/image_cache_thread.rs37
1 files changed, 17 insertions, 20 deletions
diff --git a/components/net/image_cache_thread.rs b/components/net/image_cache_thread.rs
index 92c0aa0fd83..8925e6198ca 100644
--- a/components/net/image_cache_thread.rs
+++ b/components/net/image_cache_thread.rs
@@ -252,8 +252,8 @@ struct ImageCache {
// The placeholder image used when an image fails to load
placeholder_image: Option<Arc<Image>>,
- // Webrender API instance, if enabled.
- webrender_api: Option<webrender_traits::RenderApi>,
+ // Webrender API instance.
+ webrender_api: webrender_traits::RenderApi,
}
/// Message that the decoder worker threads send to main image cache thread.
@@ -318,24 +318,23 @@ impl LoadOrigin for ImageCacheOrigin {
}
}
-fn get_placeholder_image(webrender_api: &Option<webrender_traits::RenderApi>) -> io::Result<Arc<Image>> {
+fn get_placeholder_image(webrender_api: &webrender_traits::RenderApi) -> io::Result<Arc<Image>> {
let mut placeholder_path = try!(resources_dir_path());
placeholder_path.push("rippy.png");
let mut file = try!(File::open(&placeholder_path));
let mut image_data = vec![];
try!(file.read_to_end(&mut image_data));
let mut image = load_from_memory(&image_data).unwrap();
- if let Some(ref webrender_api) = *webrender_api {
- let format = convert_format(image.format);
- let mut bytes = Vec::new();
- bytes.extend_from_slice(&*image.bytes);
- image.id = Some(webrender_api.add_image(image.width, image.height, format, bytes));
- }
+ let format = convert_format(image.format);
+ let mut bytes = Vec::new();
+ bytes.extend_from_slice(&*image.bytes);
+ image.id = Some(webrender_api.add_image(image.width, image.height, format, bytes));
Ok(Arc::new(image))
}
+
impl ImageCache {
fn run(core_resource_thread: CoreResourceThread,
- webrender_api: Option<webrender_traits::RenderApi>,
+ webrender_api: webrender_traits::RenderApi,
ipc_command_receiver: IpcReceiver<ImageCacheCommand>) {
// Preload the placeholder image, used when images fail to load.
let placeholder_image = get_placeholder_image(&webrender_api).ok();
@@ -479,16 +478,14 @@ impl ImageCache {
fn complete_load(&mut self, key: LoadKey, mut load_result: LoadResult) {
let pending_load = self.pending_loads.remove(&key).unwrap();
- if let Some(ref webrender_api) = self.webrender_api {
- match load_result {
- LoadResult::Loaded(ref mut image) => {
- let format = convert_format(image.format);
- let mut bytes = Vec::new();
- bytes.extend_from_slice(&*image.bytes);
- image.id = Some(webrender_api.add_image(image.width, image.height, format, bytes));
- }
- LoadResult::PlaceholderLoaded(..) | LoadResult::None => {}
+ match load_result {
+ LoadResult::Loaded(ref mut image) => {
+ let format = convert_format(image.format);
+ let mut bytes = Vec::new();
+ bytes.extend_from_slice(&*image.bytes);
+ image.id = Some(self.webrender_api.add_image(image.width, image.height, format, bytes));
}
+ LoadResult::PlaceholderLoaded(..) | LoadResult::None => {}
}
let image_response = match load_result {
@@ -627,7 +624,7 @@ impl ImageCache {
/// Create a new image cache.
pub fn new_image_cache_thread(core_resource_thread: CoreResourceThread,
- webrender_api: Option<webrender_traits::RenderApi>) -> ImageCacheThread {
+ webrender_api: webrender_traits::RenderApi) -> ImageCacheThread {
let (ipc_command_sender, ipc_command_receiver) = ipc::channel().unwrap();
spawn_named("ImageCacheThread".to_owned(), move || {