aboutsummaryrefslogtreecommitdiffstats
path: root/third_party/webrender/webrender/src/screen_capture.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/webrender/webrender/src/screen_capture.rs')
-rw-r--r--third_party/webrender/webrender/src/screen_capture.rs16
1 files changed, 7 insertions, 9 deletions
diff --git a/third_party/webrender/webrender/src/screen_capture.rs b/third_party/webrender/webrender/src/screen_capture.rs
index 9da2db2397e..56fdf458674 100644
--- a/third_party/webrender/webrender/src/screen_capture.rs
+++ b/third_party/webrender/webrender/src/screen_capture.rs
@@ -6,7 +6,7 @@
use std::collections::HashMap;
-use api::{ImageFormat, ImageBufferKind};
+use api::{ImageFormat, TextureTarget};
use api::units::*;
use gleam::gl::GlType;
@@ -115,9 +115,6 @@ impl AsyncScreenshotGrabber {
) -> (AsyncScreenshotHandle, DeviceIntSize) {
let screenshot_size = match self.mode {
AsyncScreenshotGrabberMode::ProfilerScreenshots => {
- assert_ne!(window_rect.size.width, 0);
- assert_ne!(window_rect.size.height, 0);
-
let scale = (buffer_size.width as f32 / window_rect.size.width as f32)
.min(buffer_size.height as f32 / window_rect.size.height as f32);
@@ -144,7 +141,7 @@ impl AsyncScreenshotGrabber {
let read_size = match self.mode {
AsyncScreenshotGrabberMode::ProfilerScreenshots => {
let stride = (screenshot_size.width * image_format.bytes_per_pixel()) as usize;
- let rounded = round_up_to_multiple(stride, device.required_pbo_stride().num_bytes(image_format));
+ let rounded = round_up_to_multiple(stride, device.optimal_pbo_stride().num_bytes(image_format));
let optimal_width = rounded as i32 / image_format.bytes_per_pixel();
DeviceIntSize::new(
@@ -185,7 +182,7 @@ impl AsyncScreenshotGrabber {
0,
);
- ReadTarget::from_texture(&self.scaling_textures[0])
+ ReadTarget::from_texture(&self.scaling_textures[0], 0)
}
AsyncScreenshotGrabberMode::CompositionRecorder => ReadTarget::Default,
@@ -251,12 +248,13 @@ impl AsyncScreenshotGrabber {
// texture is the wrong size, then create a new one.
if level == self.scaling_textures.len() || self.scaling_textures[level].get_dimensions() != texture_size {
let texture = device.create_texture(
- ImageBufferKind::Texture2D,
+ TextureTarget::Default,
image_format,
texture_size.width,
texture_size.height,
TextureFilter::Linear,
Some(RenderTargetInfo { has_depth: false }),
+ 1,
);
if level == self.scaling_textures.len() {
self.scaling_textures.push(texture);
@@ -280,14 +278,14 @@ impl AsyncScreenshotGrabber {
);
(
- ReadTarget::from_texture(&self.scaling_textures[level + 1]),
+ ReadTarget::from_texture(&self.scaling_textures[level + 1], 0),
DeviceIntRect::new(DeviceIntPoint::new(0, 0), dest_size * 2),
)
} else {
(read_target, read_target_rect)
};
- let draw_target = DrawTarget::from_texture(&self.scaling_textures[level], false);
+ let draw_target = DrawTarget::from_texture(&self.scaling_textures[level], 0 as _, false);
let draw_target_rect = draw_target
.to_framebuffer_rect(DeviceIntRect::new(DeviceIntPoint::new(0, 0), dest_size));