Rename current, origin, scale, origin_scale

This patch renames that fields to have consistent names.
dev
Hardening 12 years ago committed by Kristian Høgsberg
parent a2df51c19f
commit ff39efa5c0
  1. 58
      src/compositor-drm.c
  2. 4
      src/compositor-fbdev.c
  3. 4
      src/compositor-headless.c
  4. 12
      src/compositor-rdp.c
  5. 4
      src/compositor-rpi.c
  6. 4
      src/compositor-wayland.c
  7. 12
      src/compositor-x11.c
  8. 26
      src/compositor.c
  9. 8
      src/compositor.h
  10. 8
      src/evdev.c
  11. 14
      src/gl-renderer.c
  12. 12
      src/pixman-renderer.c
  13. 4
      src/rpi-renderer.c
  14. 52
      src/screenshooter.c

@ -450,8 +450,8 @@ drm_output_prepare_scanout_surface(struct weston_output *_output,
if (es->geometry.x != output->base.x || if (es->geometry.x != output->base.x ||
es->geometry.y != output->base.y || es->geometry.y != output->base.y ||
buffer == NULL || c->gbm == NULL || buffer == NULL || c->gbm == NULL ||
buffer->width != output->base.current->width || buffer->width != output->base.current_mode->width ||
buffer->height != output->base.current->height || buffer->height != output->base.current_mode->height ||
output->base.transform != es->buffer_transform || output->base.transform != es->buffer_transform ||
es->transform.enabled) es->transform.enabled)
return NULL; return NULL;
@ -581,7 +581,7 @@ drm_output_repaint(struct weston_output *output_base,
if (!output->next) if (!output->next)
return; 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) { if (!output->current) {
ret = drmModeSetCrtc(compositor->drm.fd, output->crtc_id, ret = drmModeSetCrtc(compositor->drm.fd, output->crtc_id,
output->next->fb_id, 0, 0, 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) if (es->buffer_transform != output_base->transform)
return NULL; return NULL;
if (es->buffer_scale != output_base->scale) if (es->buffer_scale != output_base->current_scale)
return NULL; return NULL;
if (c->sprites_are_broken) 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, tbox = weston_transformed_rect(output_base->width,
output_base->height, output_base->height,
output_base->transform, output_base->transform,
output_base->scale, output_base->current_scale,
*box); *box);
s->dest_x = tbox.x1; s->dest_x = tbox.x1;
s->dest_y = tbox.y1; 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; x = (es->geometry.x - output->base.x) * output->base.current_scale;
y = (es->geometry.y - output->base.y) * output->base.scale; y = (es->geometry.y - output->base.y) * output->base.current_scale;
if (output->cursor_plane.x != x || output->cursor_plane.y != y) { if (output->cursor_plane.x != x || output->cursor_plane.y != y) {
if (drmModeMoveCursor(c->drm.fd, output->crtc_id, x, y)) { if (drmModeMoveCursor(c->drm.fd, output->crtc_id, x, y)) {
weston_log("failed to move cursor: %m\n"); 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; struct drm_mode *tmp_mode = NULL, *mode;
if (output->base.current->width == target_mode->width && if (output->base.current_mode->width == target_mode->width &&
output->base.current->height == target_mode->height && output->base.current_mode->height == target_mode->height &&
(output->base.current->refresh == target_mode->refresh || (output->base.current_mode->refresh == target_mode->refresh ||
target_mode->refresh == 0)) 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) { wl_list_for_each(mode, &output->base.mode_list, base.link) {
if (mode->mode_info.hdisplay == target_mode->width && 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; return -1;
} }
if (&drm_mode->base == output->base.current) if (&drm_mode->base == output->base.current_mode)
return 0; return 0;
output->base.current->flags = 0; output->base.current_mode->flags = 0;
output->base.current = &drm_mode->base; output->base.current_mode = &drm_mode->base;
output->base.current->flags = output->base.current_mode->flags =
WL_OUTPUT_MODE_CURRENT | WL_OUTPUT_MODE_PREFERRED; WL_OUTPUT_MODE_CURRENT | WL_OUTPUT_MODE_PREFERRED;
/* reset rendering stuff. */ /* reset rendering stuff. */
@ -1439,8 +1439,8 @@ drm_output_init_egl(struct drm_output *output, struct drm_compositor *ec)
int i, flags; int i, flags;
output->surface = gbm_surface_create(ec->gbm, output->surface = gbm_surface_create(ec->gbm,
output->base.current->width, output->base.current_mode->width,
output->base.current->height, output->base.current_mode->height,
GBM_FORMAT_XRGB8888, GBM_FORMAT_XRGB8888,
GBM_BO_USE_SCANOUT | GBM_BO_USE_SCANOUT |
GBM_BO_USE_RENDERING); GBM_BO_USE_RENDERING);
@ -1477,8 +1477,8 @@ drm_output_init_egl(struct drm_output *output, struct drm_compositor *ec)
static int static int
drm_output_init_pixman(struct drm_output *output, struct drm_compositor *c) drm_output_init_pixman(struct drm_output *output, struct drm_compositor *c)
{ {
int w = output->base.current->width; int w = output->base.current_mode->width;
int h = output->base.current->height; int h = output->base.current_mode->height;
unsigned int i; unsigned int i;
/* FIXME error checking */ /* FIXME error checking */
@ -1898,20 +1898,20 @@ create_output_for_connector(struct drm_compositor *ec,
configured = current; configured = current;
if (option_current_mode && current) if (option_current_mode && current)
output->base.current = &current->base; output->base.current_mode = &current->base;
else if (configured) else if (configured)
output->base.current = &configured->base; output->base.current_mode = &configured->base;
else if (preferred) else if (preferred)
output->base.current = &preferred->base; output->base.current_mode = &preferred->base;
else if (current) else if (current)
output->base.current = &current->base; output->base.current_mode = &current->base;
if (output->base.current == NULL) { if (output->base.current_mode == NULL) {
weston_log("no available modes for %s\n", output->base.name); weston_log("no available modes for %s\n", output->base.name);
goto err_free; 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, weston_output_init(&output->base, &ec->base, x, y,
connector->mmWidth, connector->mmHeight, connector->mmWidth, connector->mmHeight,
@ -1944,7 +1944,7 @@ create_output_for_connector(struct drm_compositor *ec,
if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS) if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)
output->base.connection_internal = 1; 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.start_repaint_loop = drm_output_start_repaint_loop;
output->base.repaint = drm_output_repaint; output->base.repaint = drm_output_repaint;
output->base.destroy = drm_output_destroy; output->base.destroy = drm_output_destroy;
@ -2287,7 +2287,7 @@ drm_compositor_set_modes(struct drm_compositor *compositor)
continue; 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, ret = drmModeSetCrtc(compositor->drm.fd, output->crtc_id,
output->current->fb_id, 0, 0, output->current->fb_id, 0, 0,
&output->connector_id, 1, &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); struct drm_output, base.link);
if (!output->recorder) { if (!output->recorder) {
width = output->base.current->width; width = output->base.current_mode->width;
height = output->base.current->height; height = output->base.current_mode->height;
output->recorder = output->recorder =
create_recorder(c, width, height, "capture.h264"); create_recorder(c, width, height, "capture.h264");

@ -543,8 +543,8 @@ fbdev_output_create(struct fbdev_compositor *compositor,
wl_list_init(&output->base.mode_list); wl_list_init(&output->base.mode_list);
wl_list_insert(&output->base.mode_list, &output->mode.link); wl_list_insert(&output->base.mode_list, &output->mode.link);
output->base.current = &output->mode; output->base.current_mode = &output->mode;
output->base.origin = &output->mode; output->base.original_mode = &output->mode;
output->base.subpixel = WL_OUTPUT_SUBPIXEL_UNKNOWN; output->base.subpixel = WL_OUTPUT_SUBPIXEL_UNKNOWN;
output->base.make = "unknown"; output->base.make = "unknown";
output->base.model = output->fb_info.id; output->base.model = output->fb_info.id;

@ -107,7 +107,7 @@ headless_compositor_create_output(struct headless_compositor *c,
wl_list_init(&output->base.mode_list); wl_list_init(&output->base.mode_list);
wl_list_insert(&output->base.mode_list, &output->mode.link); 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, weston_output_init(&output->base, &c->base, 0, 0, width, height,
WL_OUTPUT_TRANSFORM_NORMAL, 1); WL_OUTPUT_TRANSFORM_NORMAL, 1);
@ -120,7 +120,7 @@ headless_compositor_create_output(struct headless_compositor *c,
output->finish_frame_timer = output->finish_frame_timer =
wl_event_loop_add_timer(loop, finish_frame_handler, output); 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.start_repaint_loop = headless_output_start_repaint_loop;
output->base.repaint = headless_output_repaint; output->base.repaint = headless_output_repaint;
output->base.destroy = headless_output_destroy; output->base.destroy = headless_output_destroy;

@ -369,12 +369,12 @@ rdp_switch_mode(struct weston_output *output, struct weston_mode *target_mode) {
return -ENOENT; return -ENOENT;
} }
if(local_mode == output->current) if(local_mode == output->current_mode)
return 0; return 0;
output->current->flags = 0; output->current_mode->flags = 0;
output->current = local_mode; output->current_mode = local_mode;
output->current->flags = WL_OUTPUT_MODE_CURRENT | WL_OUTPUT_MODE_PREFERRED; output->current_mode->flags = WL_OUTPUT_MODE_CURRENT | WL_OUTPUT_MODE_PREFERRED;
pixman_renderer_output_destroy(output); pixman_renderer_output_destroy(output);
pixman_renderer_output_create(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; 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, weston_output_init(&output->base, &c->base, 0, 0, width, height,
WL_OUTPUT_TRANSFORM_NORMAL, 1); 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); 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->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.start_repaint_loop = rdp_output_start_repaint_loop;
output->base.repaint = rdp_output_repaint; output->base.repaint = rdp_output_repaint;
output->base.destroy = rdp_output_destroy; output->base.destroy = rdp_output_destroy;

@ -369,8 +369,8 @@ rpi_output_create(struct rpi_compositor *compositor, uint32_t transform)
wl_list_init(&output->base.mode_list); wl_list_init(&output->base.mode_list);
wl_list_insert(&output->base.mode_list, &output->mode.link); wl_list_insert(&output->base.mode_list, &output->mode.link);
output->base.current = &output->mode; output->base.current_mode = &output->mode;
output->base.origin = &output->mode; output->base.original_mode = &output->mode;
output->base.subpixel = WL_OUTPUT_SUBPIXEL_UNKNOWN; output->base.subpixel = WL_OUTPUT_SUBPIXEL_UNKNOWN;
output->base.make = "unknown"; output->base.make = "unknown";
output->base.model = "unknown"; output->base.model = "unknown";

@ -261,7 +261,7 @@ wayland_compositor_create_output(struct wayland_compositor *c,
wl_list_init(&output->base.mode_list); wl_list_init(&output->base.mode_list);
wl_list_insert(&output->base.mode_list, &output->mode.link); 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, weston_output_init(&output->base, &c->base, 0, 0, width, height,
WL_OUTPUT_TRANSFORM_NORMAL, 1); WL_OUTPUT_TRANSFORM_NORMAL, 1);
@ -295,7 +295,7 @@ wayland_compositor_create_output(struct wayland_compositor *c,
&shell_surface_listener, output); &shell_surface_listener, output);
wl_shell_surface_set_toplevel(output->parent.shell_surface); 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.start_repaint_loop = wayland_output_start_repaint_loop;
output->base.repaint = wayland_output_repaint; output->base.repaint = wayland_output_repaint;
output->base.destroy = wayland_output_destroy; output->base.destroy = wayland_output_destroy;

@ -420,10 +420,10 @@ set_clip_for_output(struct weston_output *output_base, pixman_region32_t *region
break; break;
} }
transformed_rect.x1 *= output_base->scale; transformed_rect.x1 *= output_base->current_scale;
transformed_rect.y1 *= output_base->scale; transformed_rect.y1 *= output_base->current_scale;
transformed_rect.x2 *= output_base->scale; transformed_rect.x2 *= output_base->current_scale;
transformed_rect.y2 *= output_base->scale; transformed_rect.y2 *= output_base->current_scale;
output_rects[i].x = transformed_rect.x1; output_rects[i].x = transformed_rect.x1;
output_rects[i].y = transformed_rect.y1; 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_backlight = NULL;
output->base.set_dpms = NULL; output->base.set_dpms = NULL;
output->base.switch_mode = NULL; output->base.switch_mode = NULL;
output->base.current = &output->mode; output->base.current_mode = &output->mode;
output->base.origin = output->base.current; output->base.original_mode = output->base.current_mode;
output->base.make = "xwayland"; output->base.make = "xwayland";
output->base.model = "none"; output->base.model = "none";
weston_output_init(&output->base, &c->base, weston_output_init(&output->base, &c->base,

@ -109,13 +109,13 @@ weston_output_switch_mode(struct weston_output *output, struct weston_mode *mode
if (ret < 0) if (ret < 0)
return ret; return ret;
output->scale = scale; output->current_scale = scale;
pixman_region32_init(&old_output_region); pixman_region32_init(&old_output_region);
pixman_region32_copy(&old_output_region, &output->region); pixman_region32_copy(&old_output_region, &output->region);
/* Update output region and transformation matrix */ /* 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(&output->previous_damage);
pixman_region32_init_rect(&output->region, output->x, output->y, pixman_region32_init_rect(&output->region, output->x, output->y,
@ -2585,7 +2585,7 @@ bind_output(struct wl_client *client,
output->transform); output->transform);
if (version >= 2) if (version >= 2)
wl_output_send_scale(resource, wl_output_send_scale(resource,
output->scale); output->current_scale);
wl_list_for_each (mode, &output->mode_list, link) { wl_list_for_each (mode, &output->mode_list, link) {
wl_output_send_mode(resource, 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_90:
case WL_OUTPUT_TRANSFORM_FLIPPED_270: case WL_OUTPUT_TRANSFORM_FLIPPED_270:
/* Swap width and height */ /* Swap width and height */
output->width = output->current->height; output->width = output->current_mode->height;
output->height = output->current->width; output->height = output->current_mode->width;
break; break;
case WL_OUTPUT_TRANSFORM_NORMAL: case WL_OUTPUT_TRANSFORM_NORMAL:
case WL_OUTPUT_TRANSFORM_180: case WL_OUTPUT_TRANSFORM_180:
case WL_OUTPUT_TRANSFORM_FLIPPED: case WL_OUTPUT_TRANSFORM_FLIPPED:
case WL_OUTPUT_TRANSFORM_FLIPPED_180: case WL_OUTPUT_TRANSFORM_FLIPPED_180:
output->width = output->current->width; output->width = output->current_mode->width;
output->height = output->current->height; output->height = output->current_mode->height;
break; break;
default: default:
break; break;
} }
output->scale = scale; output->current_scale = scale;
output->width /= scale; output->width /= scale;
output->height /= 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_width = mm_width;
output->mm_height = mm_height; output->mm_height = mm_height;
output->dirty = 1; output->dirty = 1;
output->origin_scale = scale; output->original_scale = scale;
weston_output_transform_scale_init(output, transform, scale); weston_output_transform_scale_init(output, transform, scale);
weston_output_init_zoom(output); 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 tx, ty;
wl_fixed_t width, height; wl_fixed_t width, height;
width = wl_fixed_from_int(output->width * output->scale - 1); width = wl_fixed_from_int(output->width * output->current_scale - 1);
height = wl_fixed_from_int(output->height * output->scale - 1); height = wl_fixed_from_int(output->height * output->current_scale - 1);
switch(output->transform) { switch(output->transform) {
case WL_OUTPUT_TRANSFORM_NORMAL: case WL_OUTPUT_TRANSFORM_NORMAL:
@ -2829,8 +2829,8 @@ weston_output_transform_coordinate(struct weston_output *output,
break; break;
} }
*x = tx / output->scale + wl_fixed_from_int(output->x); *x = tx / output->current_scale + wl_fixed_from_int(output->x);
*y = ty / output->scale + wl_fixed_from_int(output->y); *y = ty / output->current_scale + wl_fixed_from_int(output->y);
} }
static void static void

@ -203,11 +203,11 @@ struct weston_output {
char *make, *model, *serial_number; char *make, *model, *serial_number;
uint32_t subpixel; uint32_t subpixel;
uint32_t transform; uint32_t transform;
int32_t scale; int32_t current_scale;
struct weston_mode *current; struct weston_mode *current_mode;
struct weston_mode *origin; struct weston_mode *original_mode;
int32_t origin_scale; int32_t original_scale;
struct wl_list mode_list; struct wl_list mode_list;
void (*start_repaint_loop)(struct weston_output *output); void (*start_repaint_loop)(struct weston_output *output);

@ -104,8 +104,8 @@ evdev_process_key(struct evdev_device *device, struct input_event *e, int time)
static void static void
evdev_process_touch(struct evdev_device *device, struct input_event *e) evdev_process_touch(struct evdev_device *device, struct input_event *e)
{ {
const int screen_width = device->output->current->width; const int screen_width = device->output->current_mode->width;
const int screen_height = device->output->current->height; const int screen_height = device->output->current_mode->height;
switch (e->code) { switch (e->code) {
case ABS_MT_SLOT: case ABS_MT_SLOT:
@ -136,8 +136,8 @@ static inline void
evdev_process_absolute_motion(struct evdev_device *device, evdev_process_absolute_motion(struct evdev_device *device,
struct input_event *e) struct input_event *e)
{ {
const int screen_width = device->output->current->width; const int screen_width = device->output->current_mode->width;
const int screen_height = device->output->current->height; const int screen_height = device->output->current_mode->height;
switch (e->code) { switch (e->code) {
case ABS_X: case ABS_X:

@ -511,7 +511,7 @@ draw_surface(struct weston_surface *es, struct weston_output *output,
use_shader(gr, gs->shader); use_shader(gr, gs->shader);
shader_uniforms(gs->shader, es, output); 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; filter = GL_LINEAR;
else else
filter = GL_NEAREST; filter = GL_NEAREST;
@ -583,13 +583,13 @@ texture_border(struct weston_output *output)
x[0] = -gr->border.left; x[0] = -gr->border.left;
x[1] = 0; x[1] = 0;
x[2] = output->current->width; x[2] = output->current_mode->width;
x[3] = output->current->width + gr->border.right; x[3] = output->current_mode->width + gr->border.right;
y[0] = -gr->border.top; y[0] = -gr->border.top;
y[1] = 0; y[1] = 0;
y[2] = output->current->height; y[2] = output->current_mode->height;
y[3] = output->current->height + gr->border.bottom; y[3] = output->current_mode->height + gr->border.bottom;
u[0] = 0.0; u[0] = 0.0;
u[1] = (GLfloat) gr->border.left / gr->border.width; 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; int32_t width, height;
pixman_region32_t buffer_damage, total_damage; pixman_region32_t buffer_damage, total_damage;
width = output->current->width + width = output->current_mode->width +
output->border.left + output->border.right; output->border.left + output->border.right;
height = output->current->height + height = output->current_mode->height +
output->border.top + output->border.bottom; output->border.top + output->border.bottom;
glViewport(0, 0, width, height); glViewport(0, 0, width, height);

@ -217,7 +217,7 @@ region_global_to_output(struct weston_output *output, pixman_region32_t *region)
{ {
pixman_region32_translate(region, -output->x, -output->y); pixman_region32_translate(region, -output->x, -output->y);
transform_region (region, output->width, output->height, output->transform); 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) #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 */ specified buffer transform/scale */
pixman_transform_init_identity(&transform); pixman_transform_init_identity(&transform);
pixman_transform_scale(&transform, NULL, pixman_transform_scale(&transform, NULL,
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->scale)); pixman_double_to_fixed ((double)1.0/output->current_scale));
fw = pixman_int_to_fixed(output->width); fw = pixman_int_to_fixed(output->width);
fh = pixman_int_to_fixed(output->height); 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); 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); pixman_image_set_filter(ps->image, PIXMAN_FILTER_BILINEAR, NULL, 0);
else else
pixman_image_set_filter(ps->image, PIXMAN_FILTER_NEAREST, NULL, 0); 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; return -1;
/* set shadow image transformation */ /* set shadow image transformation */
w = output->current->width; w = output->current_mode->width;
h = output->current->height; h = output->current_mode->height;
po->shadow_buffer = malloc(w * h * 4); po->shadow_buffer = malloc(w * h * 4);

@ -896,8 +896,8 @@ rpi_renderer_read_pixels(struct weston_output *base,
uint32_t i; uint32_t i;
int ret; int ret;
fb_width = base->current->width; fb_width = base->current_mode->width;
fb_height = base->current->height; fb_height = base->current_mode->height;
DBG("%s(%u, %u, %u, %u), resource %p\n", __func__, DBG("%s(%u, %u, %u, %u), resource %p\n", __func__,
x, y, width, height, buffer); x, y, width, height, buffer);

@ -136,8 +136,8 @@ screenshooter_frame_notify(struct wl_listener *listener, void *data)
compositor->renderer->read_pixels(output, compositor->renderer->read_pixels(output,
compositor->read_format, pixels, compositor->read_format, pixels,
0, 0, output->current->width, 0, 0, output->current_mode->width,
output->current->height); output->current_mode->height);
stride = wl_shm_buffer_get_stride(l->buffer->shm_buffer); 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_a8r8g8b8:
case PIXMAN_x8r8g8b8: case PIXMAN_x8r8g8b8:
if (compositor->capabilities & WESTON_CAP_CAPTURE_YFLIP) 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 else
copy_bgra(d, pixels, output->current->height, stride); copy_bgra(d, pixels, output->current_mode->height, stride);
break; break;
case PIXMAN_x8b8g8r8: case PIXMAN_x8b8g8r8:
case PIXMAN_a8b8g8r8: case PIXMAN_a8b8g8r8:
if (compositor->capabilities & WESTON_CAP_CAPTURE_YFLIP) 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 else
copy_rgba(d, pixels, output->current->height, stride); copy_rgba(d, pixels, output->current_mode->height, stride);
break; break;
default: default:
break; break;
@ -191,8 +191,8 @@ screenshooter_shoot(struct wl_client *client,
buffer->width = wl_shm_buffer_get_width(buffer->shm_buffer); buffer->width = wl_shm_buffer_get_width(buffer->shm_buffer);
buffer->height = wl_shm_buffer_get_height(buffer->shm_buffer); buffer->height = wl_shm_buffer_get_height(buffer->shm_buffer);
if (buffer->width < output->current->width || if (buffer->width < output->current_mode->width ||
buffer->height < output->current->height) buffer->height < output->current_mode->height)
return; return;
l = malloc(sizeof *l); l = malloc(sizeof *l);
@ -322,33 +322,33 @@ transform_rect(struct weston_output *output, pixman_box32_t *r)
break; break;
case WL_OUTPUT_TRANSFORM_90: case WL_OUTPUT_TRANSFORM_90:
case WL_OUTPUT_TRANSFORM_FLIPPED_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->y1 = s.x1;
r->x2 = output->current->width - s.y1; r->x2 = output->current_mode->width - s.y1;
r->y2 = s.x2; r->y2 = s.x2;
break; break;
case WL_OUTPUT_TRANSFORM_180: case WL_OUTPUT_TRANSFORM_180:
case WL_OUTPUT_TRANSFORM_FLIPPED_180: case WL_OUTPUT_TRANSFORM_FLIPPED_180:
r->x1 = output->current->width - s.x2; r->x1 = output->current_mode->width - s.x2;
r->y1 = output->current->height - s.y2; r->y1 = output->current_mode->height - s.y2;
r->x2 = output->current->width - s.x1; r->x2 = output->current_mode->width - s.x1;
r->y2 = output->current->height - s.y1; r->y2 = output->current_mode->height - s.y1;
break; break;
case WL_OUTPUT_TRANSFORM_270: case WL_OUTPUT_TRANSFORM_270:
case WL_OUTPUT_TRANSFORM_FLIPPED_270: case WL_OUTPUT_TRANSFORM_FLIPPED_270:
r->x1 = s.y1; r->x1 = s.y1;
r->y1 = output->current->height - s.x2; r->y1 = output->current_mode->height - s.x2;
r->x2 = s.y2; r->x2 = s.y2;
r->y2 = output->current->height - s.x1; r->y2 = output->current_mode->height - s.x1;
break; break;
default: default:
break; break;
} }
r->x1 *= output->scale; r->x1 *= output->current_scale;
r->y1 *= output->scale; r->y1 *= output->current_scale;
r->x2 *= output->scale; r->x2 *= output->current_scale;
r->y2 *= output->scale; r->y2 *= output->current_scale;
} }
static void static void
@ -396,14 +396,14 @@ weston_recorder_frame_notify(struct wl_listener *listener, void *data)
v[1].iov_base = r; v[1].iov_base = r;
v[1].iov_len = n * sizeof *r; v[1].iov_len = n * sizeof *r;
recorder->total += writev(recorder->fd, v, 2); recorder->total += writev(recorder->fd, v, 2);
stride = output->current->width; stride = output->current_mode->width;
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
width = r[i].x2 - r[i].x1; width = r[i].x2 - r[i].x1;
height = r[i].y2 - r[i].y1; height = r[i].y2 - r[i].y1;
if (do_yflip) if (do_yflip)
y_orig = output->current->height - r[i].y2; y_orig = output->current_mode->height - r[i].y2;
else else
y_orig = r[i].y1; y_orig = r[i].y1;
@ -467,8 +467,8 @@ weston_recorder_create(struct weston_output *output, const char *filename)
recorder = malloc(sizeof *recorder); recorder = malloc(sizeof *recorder);
stride = output->current->width; stride = output->current_mode->width;
size = stride * 4 * output->current->height; size = stride * 4 * output->current_mode->height;
recorder->frame = zalloc(size); recorder->frame = zalloc(size);
recorder->rect = malloc(size); recorder->rect = malloc(size);
recorder->total = 0; recorder->total = 0;
@ -505,8 +505,8 @@ weston_recorder_create(struct weston_output *output, const char *filename)
return; return;
} }
header.width = output->current->width; header.width = output->current_mode->width;
header.height = output->current->height; header.height = output->current_mode->height;
recorder->total += write(recorder->fd, &header, sizeof header); recorder->total += write(recorder->fd, &header, sizeof header);
recorder->frame_listener.notify = weston_recorder_frame_notify; recorder->frame_listener.notify = weston_recorder_frame_notify;

Loading…
Cancel
Save