mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Auto merge of #15749 - glennw:update-wr-tiling, r=nox
Update WR (image tiling, inset box shadow fixes, new key api). <!-- Reviewable:start --> This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15749) <!-- Reviewable:end -->
This commit is contained in:
commit
c025a794dd
6 changed files with 43 additions and 33 deletions
|
@ -106,7 +106,7 @@ impl<'a> CanvasPaintThread<'a> {
|
|||
let draw_target = CanvasPaintThread::create(size);
|
||||
let path_builder = draw_target.create_path_builder();
|
||||
let webrender_api = webrender_api_sender.create_api();
|
||||
let webrender_image_key = webrender_api.alloc_image();
|
||||
let webrender_image_key = webrender_api.generate_image_key();
|
||||
CanvasPaintThread {
|
||||
drawtarget: draw_target,
|
||||
path_builder: path_builder,
|
||||
|
@ -564,6 +564,7 @@ impl<'a> CanvasPaintThread<'a> {
|
|||
height: size.height as u32,
|
||||
stride: None,
|
||||
format: webrender_traits::ImageFormat::RGBA8,
|
||||
offset: 0,
|
||||
is_opaque: false,
|
||||
},
|
||||
element.into());
|
||||
|
|
|
@ -101,7 +101,7 @@ fn create_readback_painter(size: Size2D<i32>,
|
|||
-> Result<(WebGLPaintThread, GLLimits), String> {
|
||||
let context = try!(GLContextWrapper::new(size, attrs));
|
||||
let limits = context.get_limits();
|
||||
let image_key = webrender_api.alloc_image();
|
||||
let image_key = webrender_api.generate_image_key();
|
||||
let painter = WebGLPaintThread {
|
||||
size: size,
|
||||
data: WebGLPaintTaskData::Readback(context, webrender_api, image_key)
|
||||
|
@ -241,6 +241,7 @@ impl WebGLPaintThread {
|
|||
height: height as u32,
|
||||
stride: None,
|
||||
format: webrender_traits::ImageFormat::RGBA8,
|
||||
offset: 0,
|
||||
is_opaque: false,
|
||||
},
|
||||
pixels.clone());
|
||||
|
|
|
@ -346,11 +346,13 @@ impl FontCache {
|
|||
if let Some(ref webrender_api) = self.webrender_api {
|
||||
let webrender_fonts = &mut self.webrender_fonts;
|
||||
font_key = Some(*webrender_fonts.entry(template.identifier.clone()).or_insert_with(|| {
|
||||
let font_key = webrender_api.generate_font_key();
|
||||
match (template.bytes_if_in_memory(), template.native_font()) {
|
||||
(Some(bytes), _) => webrender_api.add_raw_font(bytes),
|
||||
(None, Some(native_font)) => webrender_api.add_native_font(native_font),
|
||||
(None, None) => webrender_api.add_raw_font(template.bytes().clone()),
|
||||
(Some(bytes), _) => webrender_api.add_raw_font(font_key, bytes),
|
||||
(None, Some(native_font)) => webrender_api.add_native_font(font_key, native_font),
|
||||
(None, None) => webrender_api.add_raw_font(font_key, template.bytes().clone()),
|
||||
}
|
||||
font_key
|
||||
}));
|
||||
}
|
||||
|
||||
|
|
|
@ -934,7 +934,7 @@ impl LayoutThread {
|
|||
Some(get_root_flow_background_color(layout_root)),
|
||||
webrender_traits::Epoch(epoch_number),
|
||||
viewport_size,
|
||||
builder,
|
||||
builder.finalize(),
|
||||
true);
|
||||
self.webrender_api.generate_frame(None);
|
||||
});
|
||||
|
|
|
@ -326,10 +326,13 @@ fn get_placeholder_image(webrender_api: &webrender_traits::RenderApi) -> io::Res
|
|||
height: image.height,
|
||||
stride: None,
|
||||
format: format,
|
||||
offset: 0,
|
||||
is_opaque: is_image_opaque(format, &bytes),
|
||||
};
|
||||
let data = webrender_traits::ImageData::new(bytes);
|
||||
image.id = Some(webrender_api.add_image(descriptor, data));
|
||||
let image_key = webrender_api.generate_image_key();
|
||||
webrender_api.add_image(image_key, descriptor, data, None);
|
||||
image.id = Some(image_key);
|
||||
Ok(Arc::new(image))
|
||||
}
|
||||
|
||||
|
@ -486,10 +489,13 @@ impl ImageCache {
|
|||
height: image.height,
|
||||
stride: None,
|
||||
format: format,
|
||||
offset: 0,
|
||||
is_opaque: is_image_opaque(format, &bytes),
|
||||
};
|
||||
let data = webrender_traits::ImageData::new(bytes);
|
||||
image.id = Some(self.webrender_api.add_image(descriptor, data));
|
||||
let image_key = self.webrender_api.generate_image_key();
|
||||
self.webrender_api.add_image(image_key, descriptor, data, None);
|
||||
image.id = Some(image_key);
|
||||
}
|
||||
LoadResult::PlaceholderLoaded(..) | LoadResult::None => {}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue