diff --git a/src/rust-stb-image b/src/rust-stb-image index 0216c943781..dcceec8f278 160000 --- a/src/rust-stb-image +++ b/src/rust-stb-image @@ -1 +1 @@ -Subproject commit 0216c94378193c0912159d6436be70481ae76079 +Subproject commit dcceec8f278093390659e4f74e0a4d6e1f10fc37 diff --git a/src/servo/gfx/renderer.rs b/src/servo/gfx/renderer.rs index 538769e1772..6600c83a8cc 100644 --- a/src/servo/gfx/renderer.rs +++ b/src/servo/gfx/renderer.rs @@ -1,7 +1,7 @@ import platform::osmain; import geometry::*; import comm::*; -import image::base::image; +import image::base::Image; import dl = layout::display_list; import azure::*; import azure::bindgen::*; @@ -128,7 +128,7 @@ fn draw_solid_color(draw_target: AzDrawTargetRef, item: dl::display_item, AzReleaseColorPattern(red_pattern); } -fn draw_image(draw_target: AzDrawTargetRef, item: dl::display_item, image: arc<~image>) unsafe { +fn draw_image(draw_target: AzDrawTargetRef, item: dl::display_item, image: arc<~Image>) unsafe { let image = arc::get(&image); let size = Size2D(image.width as i32, image.height as i32); let stride = image.width * 4; diff --git a/src/servo/image/base.rs b/src/servo/image/base.rs index 955d1859b25..1bc22afceca 100644 --- a/src/servo/image/base.rs +++ b/src/servo/image/base.rs @@ -1,15 +1,11 @@ -export ImageBuffer, SharedImageBuffer; -export image; -export load; +export Image; -import stb_image::image::{image, load}; -import core::arc::arc; +export load; +export load_from_memory; + +import stb_image::image::{image, load, load_from_memory}; // FIXME: Images must not be copied every frame. Instead we should atomically // reference count them. -type SharedImageBuffer = arc; - -struct ImageBuffer { - data: ~[u8]; -} +type Image = image; diff --git a/src/servo/layout/base.rs b/src/servo/layout/base.rs index 3caba60d58c..0679a86a0ee 100644 --- a/src/servo/layout/base.rs +++ b/src/servo/layout/base.rs @@ -9,7 +9,7 @@ import gfx::geometry::{au, zero_size_au}; import geom::point::Point2D; import geom::rect::Rect; import geom::size::Size2D; -import image::base::{image, load}; +import image::base::{Image, load}; import util::tree; import util::color::Color; import text::TextBox; @@ -41,7 +41,7 @@ class Appearance { // This will be very unhappy if it is getting run in parallel with // anything trying to read the background image - fn get_image() -> option<~arc<~image>> { + fn get_image() -> option<~arc<~Image>> { let mut image = none; // Do a dance where we swap the ImageHolder out before we can @@ -82,7 +82,7 @@ class ImageHolder { // Invariant: at least one of url and image is not none, except // occasionally while get_image is being called let mut url : option<~str>; - let mut image : option>; + let mut image : option>; new(-url : ~str) { self.url = some(url); @@ -90,7 +90,7 @@ class ImageHolder { } // This function should not be called by two tasks at the same time - fn get_image() -> ~arc<~image> { + fn get_image() -> ~arc<~Image> { // If this is the first time we've called this function, load // the image and store it for the future if self.image.is_none() { diff --git a/src/servo/layout/display_list.rs b/src/servo/layout/display_list.rs index acb8663488d..035eb9010d1 100644 --- a/src/servo/layout/display_list.rs +++ b/src/servo/layout/display_list.rs @@ -1,6 +1,6 @@ import gfx::geometry::*; import geom::rect::Rect; -import image::base::image; +import image::base::Image; import servo_text::text_run::TextRun; import arc::arc; @@ -8,7 +8,7 @@ import dvec::dvec; enum item_type { display_item_solid_color(u8, u8, u8), - display_item_image(~arc<~image>), + display_item_image(~arc<~Image>), display_item_text(TextRun), // FIXME: Shape code does not understand the alignment without this padding(u8, u8, u8, u8) diff --git a/src/servo/resource/image_cache_task.rs b/src/servo/resource/image_cache_task.rs index bb617c32e5f..a130f883fed 100644 --- a/src/servo/resource/image_cache_task.rs +++ b/src/servo/resource/image_cache_task.rs @@ -3,7 +3,7 @@ export ImageResponseMsg, ImageReady, ImageNotReady; export ImageCacheTask; export image_cache_task; -import image::base::{ImageBuffer, SharedImageBuffer}; +import image::base::{Image, load_from_memory}; import std::net::url::url; import util::url::{make_url, UrlMap, url_map}; import comm::{chan, port}; @@ -18,7 +18,7 @@ enum Msg { } enum ImageResponseMsg { - ImageReady(ImageBuffer), + ImageReady(Image), ImageNotReady }