diff options
-rw-r--r-- | src/compositor-drm.c | 58 | ||||
-rw-r--r-- | src/compositor-fbdev.c | 4 | ||||
-rw-r--r-- | src/compositor-headless.c | 4 | ||||
-rw-r--r-- | src/compositor-rdp.c | 12 | ||||
-rw-r--r-- | src/compositor-rpi.c | 4 | ||||
-rw-r--r-- | src/compositor-wayland.c | 4 | ||||
-rw-r--r-- | src/compositor-x11.c | 12 | ||||
-rw-r--r-- | src/compositor.c | 26 | ||||
-rw-r--r-- | src/compositor.h | 8 | ||||
-rw-r--r-- | src/evdev.c | 8 | ||||
-rw-r--r-- | src/gl-renderer.c | 14 | ||||
-rw-r--r-- | src/pixman-renderer.c | 12 | ||||
-rw-r--r-- | src/rpi-renderer.c | 4 | ||||
-rw-r--r-- | src/screenshooter.c | 52 |
14 files changed, 111 insertions, 111 deletions
diff --git a/src/compositor-drm.c b/src/compositor-drm.c index 58697ed3..916fd5f2 100644 --- a/src/compositor-drm.c +++ b/src/compositor-drm.c @@ -450,8 +450,8 @@ drm_output_prepare_scanout_surface(struct weston_output *_output, if (es->geometry.x != output->base.x || es->geometry.y != output->base.y || buffer == NULL || c->gbm == NULL || - buffer->width != output->base.current->width || - buffer->height != output->base.current->height || + buffer->width != output->base.current_mode->width || + buffer->height != output->base.current_mode->height || output->base.transform != es->buffer_transform || es->transform.enabled) return NULL; @@ -581,7 +581,7 @@ drm_output_repaint(struct weston_output *output_base, if (!output->next) return; - mode = container_of(output->base.current, struct drm_mode, base); + mode = container_of(output->base.current_mode, struct drm_mode, base); if (!output->current) { ret = drmModeSetCrtc(compositor->drm.fd, output->crtc_id, output->next->fb_id, 0, 0, @@ -787,7 +787,7 @@ drm_output_prepare_overlay_surface(struct weston_output *output_base, if (es->buffer_transform != output_base->transform) return NULL; - if (es->buffer_scale != output_base->scale) + if (es->buffer_scale != output_base->current_scale) return NULL; if (c->sprites_are_broken) @@ -859,7 +859,7 @@ drm_output_prepare_overlay_surface(struct weston_output *output_base, tbox = weston_transformed_rect(output_base->width, output_base->height, output_base->transform, - output_base->scale, + output_base->current_scale, *box); s->dest_x = tbox.x1; s->dest_y = tbox.y1; @@ -978,8 +978,8 @@ drm_output_set_cursor(struct drm_output *output) } } - x = (es->geometry.x - output->base.x) * output->base.scale; - y = (es->geometry.y - output->base.y) * output->base.scale; + x = (es->geometry.x - output->base.x) * output->base.current_scale; + y = (es->geometry.y - output->base.y) * output->base.current_scale; if (output->cursor_plane.x != x || output->cursor_plane.y != y) { if (drmModeMoveCursor(c->drm.fd, output->crtc_id, x, y)) { weston_log("failed to move cursor: %m\n"); @@ -1100,11 +1100,11 @@ choose_mode (struct drm_output *output, struct weston_mode *target_mode) { struct drm_mode *tmp_mode = NULL, *mode; - if (output->base.current->width == target_mode->width && - output->base.current->height == target_mode->height && - (output->base.current->refresh == target_mode->refresh || + if (output->base.current_mode->width == target_mode->width && + output->base.current_mode->height == target_mode->height && + (output->base.current_mode->refresh == target_mode->refresh || target_mode->refresh == 0)) - return (struct drm_mode *)output->base.current; + return (struct drm_mode *)output->base.current_mode; wl_list_for_each(mode, &output->base.mode_list, base.link) { if (mode->mode_info.hdisplay == target_mode->width && @@ -1151,13 +1151,13 @@ drm_output_switch_mode(struct weston_output *output_base, struct weston_mode *mo return -1; } - if (&drm_mode->base == output->base.current) + if (&drm_mode->base == output->base.current_mode) return 0; - output->base.current->flags = 0; + output->base.current_mode->flags = 0; - output->base.current = &drm_mode->base; - output->base.current->flags = + output->base.current_mode = &drm_mode->base; + output->base.current_mode->flags = WL_OUTPUT_MODE_CURRENT | WL_OUTPUT_MODE_PREFERRED; /* reset rendering stuff. */ @@ -1439,8 +1439,8 @@ drm_output_init_egl(struct drm_output *output, struct drm_compositor *ec) int i, flags; output->surface = gbm_surface_create(ec->gbm, - output->base.current->width, - output->base.current->height, + output->base.current_mode->width, + output->base.current_mode->height, GBM_FORMAT_XRGB8888, GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING); @@ -1477,8 +1477,8 @@ drm_output_init_egl(struct drm_output *output, struct drm_compositor *ec) static int drm_output_init_pixman(struct drm_output *output, struct drm_compositor *c) { - int w = output->base.current->width; - int h = output->base.current->height; + int w = output->base.current_mode->width; + int h = output->base.current_mode->height; unsigned int i; /* FIXME error checking */ @@ -1898,20 +1898,20 @@ create_output_for_connector(struct drm_compositor *ec, configured = current; if (option_current_mode && current) - output->base.current = ¤t->base; + output->base.current_mode = ¤t->base; else if (configured) - output->base.current = &configured->base; + output->base.current_mode = &configured->base; else if (preferred) - output->base.current = &preferred->base; + output->base.current_mode = &preferred->base; else if (current) - output->base.current = ¤t->base; + output->base.current_mode = ¤t->base; - if (output->base.current == NULL) { + if (output->base.current_mode == NULL) { weston_log("no available modes for %s\n", output->base.name); goto err_free; } - output->base.current->flags |= WL_OUTPUT_MODE_CURRENT; + output->base.current_mode->flags |= WL_OUTPUT_MODE_CURRENT; weston_output_init(&output->base, &ec->base, x, y, connector->mmWidth, connector->mmHeight, @@ -1944,7 +1944,7 @@ create_output_for_connector(struct drm_compositor *ec, if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS) output->base.connection_internal = 1; - output->base.origin = output->base.current; + output->base.original_mode = output->base.current_mode; output->base.start_repaint_loop = drm_output_start_repaint_loop; output->base.repaint = drm_output_repaint; output->base.destroy = drm_output_destroy; @@ -2287,7 +2287,7 @@ drm_compositor_set_modes(struct drm_compositor *compositor) continue; } - drm_mode = (struct drm_mode *) output->base.current; + drm_mode = (struct drm_mode *) output->base.current_mode; ret = drmModeSetCrtc(compositor->drm.fd, output->crtc_id, output->current->fb_id, 0, 0, &output->connector_id, 1, @@ -2494,8 +2494,8 @@ recorder_binding(struct weston_seat *seat, uint32_t time, uint32_t key, struct drm_output, base.link); if (!output->recorder) { - width = output->base.current->width; - height = output->base.current->height; + width = output->base.current_mode->width; + height = output->base.current_mode->height; output->recorder = create_recorder(c, width, height, "capture.h264"); diff --git a/src/compositor-fbdev.c b/src/compositor-fbdev.c index 2b483190..e592fe5d 100644 --- a/src/compositor-fbdev.c +++ b/src/compositor-fbdev.c @@ -543,8 +543,8 @@ fbdev_output_create(struct fbdev_compositor *compositor, wl_list_init(&output->base.mode_list); wl_list_insert(&output->base.mode_list, &output->mode.link); - output->base.current = &output->mode; - output->base.origin = &output->mode; + output->base.current_mode = &output->mode; + output->base.original_mode = &output->mode; output->base.subpixel = WL_OUTPUT_SUBPIXEL_UNKNOWN; output->base.make = "unknown"; output->base.model = output->fb_info.id; diff --git a/src/compositor-headless.c b/src/compositor-headless.c index 4a0cc7fb..3761be1b 100644 --- a/src/compositor-headless.c +++ b/src/compositor-headless.c @@ -107,7 +107,7 @@ headless_compositor_create_output(struct headless_compositor *c, wl_list_init(&output->base.mode_list); wl_list_insert(&output->base.mode_list, &output->mode.link); - output->base.current = &output->mode; + output->base.current_mode = &output->mode; weston_output_init(&output->base, &c->base, 0, 0, width, height, WL_OUTPUT_TRANSFORM_NORMAL, 1); @@ -120,7 +120,7 @@ headless_compositor_create_output(struct headless_compositor *c, output->finish_frame_timer = wl_event_loop_add_timer(loop, finish_frame_handler, output); - output->base.origin = output->base.current; + output->base.original_mode = output->base.current_mode; output->base.start_repaint_loop = headless_output_start_repaint_loop; output->base.repaint = headless_output_repaint; output->base.destroy = headless_output_destroy; diff --git a/src/compositor-rdp.c b/src/compositor-rdp.c index 4d369cc5..642a6b72 100644 --- a/src/compositor-rdp.c +++ b/src/compositor-rdp.c @@ -369,12 +369,12 @@ rdp_switch_mode(struct weston_output *output, struct weston_mode *target_mode) { return -ENOENT; } - if(local_mode == output->current) + if(local_mode == output->current_mode) return 0; - output->current->flags = 0; - output->current = local_mode; - output->current->flags = WL_OUTPUT_MODE_CURRENT | WL_OUTPUT_MODE_PREFERRED; + output->current_mode->flags = 0; + output->current_mode = local_mode; + output->current_mode->flags = WL_OUTPUT_MODE_CURRENT | WL_OUTPUT_MODE_PREFERRED; pixman_renderer_output_destroy(output); pixman_renderer_output_create(output); @@ -466,7 +466,7 @@ rdp_compositor_create_output(struct rdp_compositor *c, int width, int height, goto out_free_output_and_modes; } - output->base.current = currentMode; + output->base.current_mode = currentMode; weston_output_init(&output->base, &c->base, 0, 0, width, height, WL_OUTPUT_TRANSFORM_NORMAL, 1); @@ -489,7 +489,7 @@ rdp_compositor_create_output(struct rdp_compositor *c, int width, int height, loop = wl_display_get_event_loop(c->base.wl_display); output->finish_frame_timer = wl_event_loop_add_timer(loop, finish_frame_handler, output); - output->base.origin = output->base.current; + output->base.original_mode = output->base.current_mode; output->base.start_repaint_loop = rdp_output_start_repaint_loop; output->base.repaint = rdp_output_repaint; output->base.destroy = rdp_output_destroy; diff --git a/src/compositor-rpi.c b/src/compositor-rpi.c index 9a507f5b..afca44cc 100644 --- a/src/compositor-rpi.c +++ b/src/compositor-rpi.c @@ -369,8 +369,8 @@ rpi_output_create(struct rpi_compositor *compositor, uint32_t transform) wl_list_init(&output->base.mode_list); wl_list_insert(&output->base.mode_list, &output->mode.link); - output->base.current = &output->mode; - output->base.origin = &output->mode; + output->base.current_mode = &output->mode; + output->base.original_mode = &output->mode; output->base.subpixel = WL_OUTPUT_SUBPIXEL_UNKNOWN; output->base.make = "unknown"; output->base.model = "unknown"; diff --git a/src/compositor-wayland.c b/src/compositor-wayland.c index fbaeb29b..4caad81c 100644 --- a/src/compositor-wayland.c +++ b/src/compositor-wayland.c @@ -261,7 +261,7 @@ wayland_compositor_create_output(struct wayland_compositor *c, wl_list_init(&output->base.mode_list); wl_list_insert(&output->base.mode_list, &output->mode.link); - output->base.current = &output->mode; + output->base.current_mode = &output->mode; weston_output_init(&output->base, &c->base, 0, 0, width, height, WL_OUTPUT_TRANSFORM_NORMAL, 1); @@ -295,7 +295,7 @@ wayland_compositor_create_output(struct wayland_compositor *c, &shell_surface_listener, output); wl_shell_surface_set_toplevel(output->parent.shell_surface); - output->base.origin = output->base.current; + output->base.original_mode = output->base.current_mode; output->base.start_repaint_loop = wayland_output_start_repaint_loop; output->base.repaint = wayland_output_repaint; output->base.destroy = wayland_output_destroy; diff --git a/src/compositor-x11.c b/src/compositor-x11.c index e04ea06b..1dd5037d 100644 --- a/src/compositor-x11.c +++ b/src/compositor-x11.c @@ -420,10 +420,10 @@ set_clip_for_output(struct weston_output *output_base, pixman_region32_t *region break; } - transformed_rect.x1 *= output_base->scale; - transformed_rect.y1 *= output_base->scale; - transformed_rect.x2 *= output_base->scale; - transformed_rect.y2 *= output_base->scale; + transformed_rect.x1 *= output_base->current_scale; + transformed_rect.y1 *= output_base->current_scale; + transformed_rect.x2 *= output_base->current_scale; + transformed_rect.y2 *= output_base->current_scale; output_rects[i].x = transformed_rect.x1; output_rects[i].y = transformed_rect.y1; @@ -891,8 +891,8 @@ x11_compositor_create_output(struct x11_compositor *c, int x, int y, output->base.set_backlight = NULL; output->base.set_dpms = NULL; output->base.switch_mode = NULL; - output->base.current = &output->mode; - output->base.origin = output->base.current; + output->base.current_mode = &output->mode; + output->base.original_mode = output->base.current_mode; output->base.make = "xwayland"; output->base.model = "none"; weston_output_init(&output->base, &c->base, diff --git a/src/compositor.c b/src/compositor.c index 62064800..50ec7392 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -109,13 +109,13 @@ weston_output_switch_mode(struct weston_output *output, struct weston_mode *mode if (ret < 0) return ret; - output->scale = scale; + output->current_scale = scale; pixman_region32_init(&old_output_region); pixman_region32_copy(&old_output_region, &output->region); /* Update output region and transformation matrix */ - weston_output_transform_scale_init(output, output->transform, output->scale); + weston_output_transform_scale_init(output, output->transform, output->current_scale); pixman_region32_init(&output->previous_damage); pixman_region32_init_rect(&output->region, output->x, output->y, @@ -2585,7 +2585,7 @@ bind_output(struct wl_client *client, output->transform); if (version >= 2) wl_output_send_scale(resource, - output->scale); + output->current_scale); wl_list_for_each (mode, &output->mode_list, link) { wl_output_send_mode(resource, @@ -2714,21 +2714,21 @@ weston_output_transform_scale_init(struct weston_output *output, uint32_t transf case WL_OUTPUT_TRANSFORM_FLIPPED_90: case WL_OUTPUT_TRANSFORM_FLIPPED_270: /* Swap width and height */ - output->width = output->current->height; - output->height = output->current->width; + output->width = output->current_mode->height; + output->height = output->current_mode->width; break; case WL_OUTPUT_TRANSFORM_NORMAL: case WL_OUTPUT_TRANSFORM_180: case WL_OUTPUT_TRANSFORM_FLIPPED: case WL_OUTPUT_TRANSFORM_FLIPPED_180: - output->width = output->current->width; - output->height = output->current->height; + output->width = output->current_mode->width; + output->height = output->current_mode->height; break; default: break; } - output->scale = scale; + output->current_scale = scale; output->width /= scale; output->height /= scale; } @@ -2760,7 +2760,7 @@ weston_output_init(struct weston_output *output, struct weston_compositor *c, output->mm_width = mm_width; output->mm_height = mm_height; output->dirty = 1; - output->origin_scale = scale; + output->original_scale = scale; weston_output_transform_scale_init(output, transform, scale); weston_output_init_zoom(output); @@ -2790,8 +2790,8 @@ weston_output_transform_coordinate(struct weston_output *output, wl_fixed_t tx, ty; wl_fixed_t width, height; - width = wl_fixed_from_int(output->width * output->scale - 1); - height = wl_fixed_from_int(output->height * output->scale - 1); + width = wl_fixed_from_int(output->width * output->current_scale - 1); + height = wl_fixed_from_int(output->height * output->current_scale - 1); switch(output->transform) { case WL_OUTPUT_TRANSFORM_NORMAL: @@ -2829,8 +2829,8 @@ weston_output_transform_coordinate(struct weston_output *output, break; } - *x = tx / output->scale + wl_fixed_from_int(output->x); - *y = ty / output->scale + wl_fixed_from_int(output->y); + *x = tx / output->current_scale + wl_fixed_from_int(output->x); + *y = ty / output->current_scale + wl_fixed_from_int(output->y); } static void diff --git a/src/compositor.h b/src/compositor.h index b4c8fce0..a7435bf4 100644 --- a/src/compositor.h +++ b/src/compositor.h @@ -203,11 +203,11 @@ struct weston_output { char *make, *model, *serial_number; uint32_t subpixel; uint32_t transform; - int32_t scale; + int32_t current_scale; - struct weston_mode *current; - struct weston_mode *origin; - int32_t origin_scale; + struct weston_mode *current_mode; + struct weston_mode *original_mode; + int32_t original_scale; struct wl_list mode_list; void (*start_repaint_loop)(struct weston_output *output); diff --git a/src/evdev.c b/src/evdev.c index a3d274a0..2367d56b 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -104,8 +104,8 @@ evdev_process_key(struct evdev_device *device, struct input_event *e, int time) static void evdev_process_touch(struct evdev_device *device, struct input_event *e) { - const int screen_width = device->output->current->width; - const int screen_height = device->output->current->height; + const int screen_width = device->output->current_mode->width; + const int screen_height = device->output->current_mode->height; switch (e->code) { case ABS_MT_SLOT: @@ -136,8 +136,8 @@ static inline void evdev_process_absolute_motion(struct evdev_device *device, struct input_event *e) { - const int screen_width = device->output->current->width; - const int screen_height = device->output->current->height; + const int screen_width = device->output->current_mode->width; + const int screen_height = device->output->current_mode->height; switch (e->code) { case ABS_X: diff --git a/src/gl-renderer.c b/src/gl-renderer.c index 69991210..87162e0c 100644 --- a/src/gl-renderer.c +++ b/src/gl-renderer.c @@ -511,7 +511,7 @@ draw_surface(struct weston_surface *es, struct weston_output *output, use_shader(gr, gs->shader); shader_uniforms(gs->shader, es, output); - if (es->transform.enabled || output->zoom.active || output->scale != es->buffer_scale) + if (es->transform.enabled || output->zoom.active || output->current_scale != es->buffer_scale) filter = GL_LINEAR; else filter = GL_NEAREST; @@ -583,13 +583,13 @@ texture_border(struct weston_output *output) x[0] = -gr->border.left; x[1] = 0; - x[2] = output->current->width; - x[3] = output->current->width + gr->border.right; + x[2] = output->current_mode->width; + x[3] = output->current_mode->width + gr->border.right; y[0] = -gr->border.top; y[1] = 0; - y[2] = output->current->height; - y[3] = output->current->height + gr->border.bottom; + y[2] = output->current_mode->height; + y[3] = output->current_mode->height + gr->border.bottom; u[0] = 0.0; u[1] = (GLfloat) gr->border.left / gr->border.width; @@ -743,9 +743,9 @@ gl_renderer_repaint_output(struct weston_output *output, int32_t width, height; pixman_region32_t buffer_damage, total_damage; - width = output->current->width + + width = output->current_mode->width + output->border.left + output->border.right; - height = output->current->height + + height = output->current_mode->height + output->border.top + output->border.bottom; glViewport(0, 0, width, height); diff --git a/src/pixman-renderer.c b/src/pixman-renderer.c index 31b7e580..987c5393 100644 --- a/src/pixman-renderer.c +++ b/src/pixman-renderer.c @@ -217,7 +217,7 @@ region_global_to_output(struct weston_output *output, pixman_region32_t *region) { pixman_region32_translate(region, -output->x, -output->y); transform_region (region, output->width, output->height, output->transform); - scale_region (region, output->scale); + scale_region (region, output->current_scale); } #define D2F(v) pixman_double_to_fixed((double)v) @@ -271,8 +271,8 @@ repaint_region(struct weston_surface *es, struct weston_output *output, specified buffer transform/scale */ pixman_transform_init_identity(&transform); pixman_transform_scale(&transform, NULL, - pixman_double_to_fixed ((double)1.0/output->scale), - pixman_double_to_fixed ((double)1.0/output->scale)); + pixman_double_to_fixed ((double)1.0/output->current_scale), + pixman_double_to_fixed ((double)1.0/output->current_scale)); fw = pixman_int_to_fixed(output->width); fh = pixman_int_to_fixed(output->height); @@ -385,7 +385,7 @@ repaint_region(struct weston_surface *es, struct weston_output *output, pixman_image_set_transform(ps->image, &transform); - if (es->transform.enabled || output->scale != es->buffer_scale) + if (es->transform.enabled || output->current_scale != es->buffer_scale) pixman_image_set_filter(ps->image, PIXMAN_FILTER_BILINEAR, NULL, 0); else pixman_image_set_filter(ps->image, PIXMAN_FILTER_NEAREST, NULL, 0); @@ -711,8 +711,8 @@ pixman_renderer_output_create(struct weston_output *output) return -1; /* set shadow image transformation */ - w = output->current->width; - h = output->current->height; + w = output->current_mode->width; + h = output->current_mode->height; po->shadow_buffer = malloc(w * h * 4); diff --git a/src/rpi-renderer.c b/src/rpi-renderer.c index be520a6f..3ba5fc4a 100644 --- a/src/rpi-renderer.c +++ b/src/rpi-renderer.c @@ -896,8 +896,8 @@ rpi_renderer_read_pixels(struct weston_output *base, uint32_t i; int ret; - fb_width = base->current->width; - fb_height = base->current->height; + fb_width = base->current_mode->width; + fb_height = base->current_mode->height; DBG("%s(%u, %u, %u, %u), resource %p\n", __func__, x, y, width, height, buffer); diff --git a/src/screenshooter.c b/src/screenshooter.c index a89194ee..645114d0 100644 --- a/src/screenshooter.c +++ b/src/screenshooter.c @@ -136,8 +136,8 @@ screenshooter_frame_notify(struct wl_listener *listener, void *data) compositor->renderer->read_pixels(output, compositor->read_format, pixels, - 0, 0, output->current->width, - output->current->height); + 0, 0, output->current_mode->width, + output->current_mode->height); stride = wl_shm_buffer_get_stride(l->buffer->shm_buffer); @@ -148,16 +148,16 @@ screenshooter_frame_notify(struct wl_listener *listener, void *data) case PIXMAN_a8r8g8b8: case PIXMAN_x8r8g8b8: if (compositor->capabilities & WESTON_CAP_CAPTURE_YFLIP) - copy_bgra_yflip(d, s, output->current->height, stride); + copy_bgra_yflip(d, s, output->current_mode->height, stride); else - copy_bgra(d, pixels, output->current->height, stride); + copy_bgra(d, pixels, output->current_mode->height, stride); break; case PIXMAN_x8b8g8r8: case PIXMAN_a8b8g8r8: if (compositor->capabilities & WESTON_CAP_CAPTURE_YFLIP) - copy_rgba_yflip(d, s, output->current->height, stride); + copy_rgba_yflip(d, s, output->current_mode->height, stride); else - copy_rgba(d, pixels, output->current->height, stride); + copy_rgba(d, pixels, output->current_mode->height, stride); break; default: break; @@ -191,8 +191,8 @@ screenshooter_shoot(struct wl_client *client, buffer->width = wl_shm_buffer_get_width(buffer->shm_buffer); buffer->height = wl_shm_buffer_get_height(buffer->shm_buffer); - if (buffer->width < output->current->width || - buffer->height < output->current->height) + if (buffer->width < output->current_mode->width || + buffer->height < output->current_mode->height) return; l = malloc(sizeof *l); @@ -322,33 +322,33 @@ transform_rect(struct weston_output *output, pixman_box32_t *r) break; case WL_OUTPUT_TRANSFORM_90: case WL_OUTPUT_TRANSFORM_FLIPPED_90: - r->x1 = output->current->width - s.y2; + r->x1 = output->current_mode->width - s.y2; r->y1 = s.x1; - r->x2 = output->current->width - s.y1; + r->x2 = output->current_mode->width - s.y1; r->y2 = s.x2; break; case WL_OUTPUT_TRANSFORM_180: case WL_OUTPUT_TRANSFORM_FLIPPED_180: - r->x1 = output->current->width - s.x2; - r->y1 = output->current->height - s.y2; - r->x2 = output->current->width - s.x1; - r->y2 = output->current->height - s.y1; + r->x1 = output->current_mode->width - s.x2; + r->y1 = output->current_mode->height - s.y2; + r->x2 = output->current_mode->width - s.x1; + r->y2 = output->current_mode->height - s.y1; break; case WL_OUTPUT_TRANSFORM_270: case WL_OUTPUT_TRANSFORM_FLIPPED_270: r->x1 = s.y1; - r->y1 = output->current->height - s.x2; + r->y1 = output->current_mode->height - s.x2; r->x2 = s.y2; - r->y2 = output->current->height - s.x1; + r->y2 = output->current_mode->height - s.x1; break; default: break; } - r->x1 *= output->scale; - r->y1 *= output->scale; - r->x2 *= output->scale; - r->y2 *= output->scale; + r->x1 *= output->current_scale; + r->y1 *= output->current_scale; + r->x2 *= output->current_scale; + r->y2 *= output->current_scale; } static void @@ -396,14 +396,14 @@ weston_recorder_frame_notify(struct wl_listener *listener, void *data) v[1].iov_base = r; v[1].iov_len = n * sizeof *r; recorder->total += writev(recorder->fd, v, 2); - stride = output->current->width; + stride = output->current_mode->width; for (i = 0; i < n; i++) { width = r[i].x2 - r[i].x1; height = r[i].y2 - r[i].y1; if (do_yflip) - y_orig = output->current->height - r[i].y2; + y_orig = output->current_mode->height - r[i].y2; else y_orig = r[i].y1; @@ -467,8 +467,8 @@ weston_recorder_create(struct weston_output *output, const char *filename) recorder = malloc(sizeof *recorder); - stride = output->current->width; - size = stride * 4 * output->current->height; + stride = output->current_mode->width; + size = stride * 4 * output->current_mode->height; recorder->frame = zalloc(size); recorder->rect = malloc(size); recorder->total = 0; @@ -505,8 +505,8 @@ weston_recorder_create(struct weston_output *output, const char *filename) return; } - header.width = output->current->width; - header.height = output->current->height; + header.width = output->current_mode->width; + header.height = output->current_mode->height; recorder->total += write(recorder->fd, &header, sizeof header); recorder->frame_listener.notify = weston_recorder_frame_notify; |