Merge pull request #1441 from Timidger/box-parameter-standardize

Standardize the wlr_box input paramaters
This commit is contained in:
Drew DeVault 2018-12-22 08:51:08 -05:00 committed by GitHub
commit b6b1bf9490
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 34 additions and 36 deletions

View File

@ -637,8 +637,9 @@ static bool drm_connector_set_cursor(struct wlr_output *output,
plane->surf.height, output->transform); plane->surf.height, output->transform);
struct wlr_box hotspot = { .x = hotspot_x, .y = hotspot_y }; struct wlr_box hotspot = { .x = hotspot_x, .y = hotspot_y };
wlr_box_transform(&hotspot, wlr_output_transform_invert(output->transform), wlr_box_transform(&hotspot, &hotspot,
plane->surf.width, plane->surf.height, &hotspot); wlr_output_transform_invert(output->transform),
plane->surf.width, plane->surf.height);
if (plane->cursor_hotspot_x != hotspot.x || if (plane->cursor_hotspot_x != hotspot.x ||
plane->cursor_hotspot_y != hotspot.y) { plane->cursor_hotspot_y != hotspot.y) {
@ -737,7 +738,7 @@ static bool drm_connector_move_cursor(struct wlr_output *output,
enum wl_output_transform transform = enum wl_output_transform transform =
wlr_output_transform_invert(output->transform); wlr_output_transform_invert(output->transform);
wlr_box_transform(&box, transform, width, height, &box); wlr_box_transform(&box, &box, transform, width, height);
if (plane != NULL) { if (plane != NULL) {
box.x -= plane->cursor_hotspot_x; box.x -= plane->cursor_hotspot_x;

View File

@ -93,9 +93,9 @@ static bool output_set_cursor(struct wlr_output *wlr_output,
struct wlr_wl_backend *backend = output->backend; struct wlr_wl_backend *backend = output->backend;
struct wlr_box hotspot = { .x = hotspot_x, .y = hotspot_y }; struct wlr_box hotspot = { .x = hotspot_x, .y = hotspot_y };
wlr_box_transform(&hotspot, wlr_box_transform(&hotspot, &hotspot,
wlr_output_transform_invert(wlr_output->transform), wlr_output_transform_invert(wlr_output->transform),
output->cursor.width, output->cursor.height, &hotspot); output->cursor.width, output->cursor.height);
// TODO: use output->wlr_output.transform to transform pixels and hotpot // TODO: use output->wlr_output.transform to transform pixels and hotpot
output->cursor.hotspot_x = hotspot.x; output->cursor.hotspot_x = hotspot.x;

View File

@ -21,8 +21,8 @@ struct wlr_box {
void wlr_box_closest_point(const struct wlr_box *box, double x, double y, void wlr_box_closest_point(const struct wlr_box *box, double x, double y,
double *dest_x, double *dest_y); double *dest_x, double *dest_y);
bool wlr_box_intersection(const struct wlr_box *box_a, bool wlr_box_intersection(struct wlr_box *dest, const struct wlr_box *box_a,
const struct wlr_box *box_b, struct wlr_box *dest); const struct wlr_box *box_b);
bool wlr_box_contains_point(const struct wlr_box *box, double x, double y); bool wlr_box_contains_point(const struct wlr_box *box, double x, double y);
@ -31,16 +31,14 @@ bool wlr_box_empty(const struct wlr_box *box);
/** /**
* Transforms a box inside a `width` x `height` box. * Transforms a box inside a `width` x `height` box.
*/ */
void wlr_box_transform(const struct wlr_box *box, void wlr_box_transform(struct wlr_box *dest, const struct wlr_box *box,
enum wl_output_transform transform, int width, int height, enum wl_output_transform transform, int width, int height);
struct wlr_box *dest);
/** /**
* Creates the smallest box that contains the box rotated about its center. * Creates the smallest box that contains the box rotated about its center.
*/ */
void wlr_box_rotated_bounds(const struct wlr_box *box, float rotation, void wlr_box_rotated_bounds(struct wlr_box *dest, const struct wlr_box *box, float rotation);
struct wlr_box *dest);
void wlr_box_from_pixman_box32(const pixman_box32_t box, struct wlr_box *dest); void wlr_box_from_pixman_box32(struct wlr_box *dest, const pixman_box32_t box);
#endif #endif

View File

@ -73,8 +73,8 @@ static void gles2_scissor(struct wlr_renderer *wlr_renderer,
PUSH_GLES2_DEBUG; PUSH_GLES2_DEBUG;
if (box != NULL) { if (box != NULL) {
struct wlr_box gl_box; struct wlr_box gl_box;
wlr_box_transform(box, WL_OUTPUT_TRANSFORM_FLIPPED_180, wlr_box_transform(&gl_box, box, WL_OUTPUT_TRANSFORM_FLIPPED_180,
renderer->viewport_width, renderer->viewport_height, &gl_box); renderer->viewport_width, renderer->viewport_height);
glScissor(gl_box.x, gl_box.y, gl_box.width, gl_box.height); glScissor(gl_box.x, gl_box.y, gl_box.width, gl_box.height);
glEnable(GL_SCISSOR_TEST); glEnable(GL_SCISSOR_TEST);

View File

@ -217,7 +217,7 @@ static bool surface_intersect_output(struct wlr_surface *surface,
.x = lx, .y = ly, .x = lx, .y = ly,
.width = surface->current.width, .height = surface->current.height, .width = surface->current.width, .height = surface->current.height,
}; };
wlr_box_rotated_bounds(&layout_box, rotation, &layout_box); wlr_box_rotated_bounds(&layout_box, &layout_box, rotation);
return wlr_output_layout_intersects(output_layout, wlr_output, &layout_box); return wlr_output_layout_intersects(output_layout, wlr_output, &layout_box);
} }
@ -238,7 +238,7 @@ static void scissor_output(struct roots_output *output, pixman_box32_t *rect) {
enum wl_output_transform transform = enum wl_output_transform transform =
wlr_output_transform_invert(wlr_output->transform); wlr_output_transform_invert(wlr_output->transform);
wlr_box_transform(&box, transform, ow, oh, &box); wlr_box_transform(&box, &box, transform, ow, oh);
wlr_renderer_scissor(renderer, &box); wlr_renderer_scissor(renderer, &box);
} }
@ -269,7 +269,7 @@ static void render_surface(struct wlr_surface *surface, int sx, int sy,
} }
struct wlr_box rotated; struct wlr_box rotated;
wlr_box_rotated_bounds(&box, rotation, &rotated); wlr_box_rotated_bounds(&rotated, &box, rotation);
pixman_region32_t damage; pixman_region32_t damage;
pixman_region32_init(&damage); pixman_region32_init(&damage);
@ -335,7 +335,7 @@ static void render_decorations(struct roots_view *view,
get_decoration_box(view, output, &box); get_decoration_box(view, output, &box);
struct wlr_box rotated; struct wlr_box rotated;
wlr_box_rotated_bounds(&box, view->rotation, &rotated); wlr_box_rotated_bounds(&rotated, &box, view->rotation);
pixman_region32_t damage; pixman_region32_t damage;
pixman_region32_init(&damage); pixman_region32_init(&damage);
@ -605,7 +605,7 @@ static void damage_whole_surface(struct wlr_surface *surface, int sx, int sy,
return; return;
} }
wlr_box_rotated_bounds(&box, rotation, &box); wlr_box_rotated_bounds(&box, &box, rotation);
wlr_output_damage_add_box(output->damage, &box); wlr_output_damage_add_box(output->damage, &box);
} }
@ -628,7 +628,7 @@ static void damage_whole_decoration(struct roots_view *view,
struct wlr_box box; struct wlr_box box;
get_decoration_box(view, output, &box); get_decoration_box(view, output, &box);
wlr_box_rotated_bounds(&box, view->rotation, &box); wlr_box_rotated_bounds(&box, &box, view->rotation);
wlr_output_damage_add_box(output->damage, &box); wlr_output_damage_add_box(output->damage, &box);
} }

View File

@ -31,8 +31,8 @@ bool wlr_box_empty(const struct wlr_box *box) {
return box == NULL || box->width <= 0 || box->height <= 0; return box == NULL || box->width <= 0 || box->height <= 0;
} }
bool wlr_box_intersection(const struct wlr_box *box_a, bool wlr_box_intersection(struct wlr_box *dest, const struct wlr_box *box_a,
const struct wlr_box *box_b, struct wlr_box *dest) { const struct wlr_box *box_b) {
bool a_empty = wlr_box_empty(box_a); bool a_empty = wlr_box_empty(box_a);
bool b_empty = wlr_box_empty(box_b); bool b_empty = wlr_box_empty(box_b);
@ -66,9 +66,8 @@ bool wlr_box_contains_point(const struct wlr_box *box, double x, double y) {
} }
} }
void wlr_box_transform(const struct wlr_box *box, void wlr_box_transform(struct wlr_box *dest, const struct wlr_box *box,
enum wl_output_transform transform, int width, int height, enum wl_output_transform transform, int width, int height) {
struct wlr_box *dest) {
struct wlr_box src = *box; struct wlr_box src = *box;
if (transform % 2 == 0) { if (transform % 2 == 0) {
@ -115,8 +114,8 @@ void wlr_box_transform(const struct wlr_box *box,
} }
} }
void wlr_box_rotated_bounds(const struct wlr_box *box, float rotation, void wlr_box_rotated_bounds(struct wlr_box *dest, const struct wlr_box *box,
struct wlr_box *dest) { float rotation) {
if (rotation == 0) { if (rotation == 0) {
*dest = *box; *dest = *box;
return; return;
@ -144,7 +143,7 @@ void wlr_box_rotated_bounds(const struct wlr_box *box, float rotation,
dest->height = ceil(fmax(y1, y2) - fmin(y1, y2)); dest->height = ceil(fmax(y1, y2) - fmin(y1, y2));
} }
void wlr_box_from_pixman_box32(const pixman_box32_t box, struct wlr_box *dest) { void wlr_box_from_pixman_box32(struct wlr_box *dest, const pixman_box32_t box) {
*dest = (struct wlr_box){ *dest = (struct wlr_box){
.x = box.x1, .x = box.x1,
.y = box.y1, .y = box.y1,

View File

@ -545,7 +545,7 @@ static void output_scissor(struct wlr_output *output, pixman_box32_t *rect) {
enum wl_output_transform transform = enum wl_output_transform transform =
wlr_output_transform_invert(output->transform); wlr_output_transform_invert(output->transform);
wlr_box_transform(&box, transform, ow, oh, &box); wlr_box_transform(&box, &box, transform, ow, oh);
wlr_renderer_scissor(renderer, &box); wlr_renderer_scissor(renderer, &box);
} }
@ -665,7 +665,7 @@ static void output_cursor_update_visible(struct wlr_output_cursor *cursor) {
struct wlr_box intersection; struct wlr_box intersection;
bool visible = bool visible =
wlr_box_intersection(&output_box, &cursor_box, &intersection); wlr_box_intersection(&intersection, &output_box, &cursor_box);
if (cursor->surface != NULL) { if (cursor->surface != NULL) {
if (cursor->visible && !visible) { if (cursor->visible && !visible) {

View File

@ -256,7 +256,7 @@ bool wlr_output_layout_intersects(struct wlr_output_layout *layout,
wl_list_for_each(l_output, &layout->outputs, link) { wl_list_for_each(l_output, &layout->outputs, link) {
struct wlr_box *output_box = struct wlr_box *output_box =
output_layout_output_get_box(l_output); output_layout_output_get_box(l_output);
if (wlr_box_intersection(output_box, target_lbox, &out_box)) { if (wlr_box_intersection(&out_box, output_box, target_lbox)) {
return true; return true;
} }
} }
@ -269,7 +269,7 @@ bool wlr_output_layout_intersects(struct wlr_output_layout *layout,
} }
struct wlr_box *output_box = output_layout_output_get_box(l_output); struct wlr_box *output_box = output_layout_output_get_box(l_output);
return wlr_box_intersection(output_box, target_lbox, &out_box); return wlr_box_intersection(&out_box, output_box, target_lbox);
} }
} }

View File

@ -184,7 +184,7 @@ static void capture_output(struct wl_client *client,
buffer_box = *box; buffer_box = *box;
wlr_box_transform(&buffer_box, output->transform, ow, oh, &buffer_box); wlr_box_transform(&buffer_box, &buffer_box, output->transform, ow, oh);
buffer_box.x *= output->scale; buffer_box.x *= output->scale;
buffer_box.y *= output->scale; buffer_box.y *= output->scale;
buffer_box.width *= output->scale; buffer_box.width *= output->scale;

View File

@ -647,5 +647,5 @@ void wlr_xdg_surface_get_geometry(struct wlr_xdg_surface *surface,
return; return;
} }
wlr_box_intersection(&surface->geometry, box, box); wlr_box_intersection(box, &surface->geometry, box);
} }

View File

@ -598,5 +598,5 @@ void wlr_xdg_surface_v6_get_geometry(struct wlr_xdg_surface_v6 *surface, struct
return; return;
} }
wlr_box_intersection(&surface->geometry, box, box); wlr_box_intersection(box, &surface->geometry, box);
} }