diff options
Diffstat (limited to 'src/loader')
-rw-r--r-- | src/loader/loader_dri3_helper.c | 23 | ||||
-rw-r--r-- | src/loader/loader_dri3_helper.h | 2 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c index 6e5d1b8843e..493a7f5218c 100644 --- a/src/loader/loader_dri3_helper.c +++ b/src/loader/loader_dri3_helper.c @@ -1408,3 +1408,26 @@ loader_dri3_get_buffers(__DRIdrawable *driDrawable, return true; } + +/** loader_dri3_update_drawable_geometry + * + * Get the current drawable geometry. + */ +void +loader_dri3_update_drawable_geometry(struct loader_dri3_drawable *draw) +{ + xcb_get_geometry_cookie_t geom_cookie; + xcb_get_geometry_reply_t *geom_reply; + + geom_cookie = xcb_get_geometry(draw->conn, draw->drawable); + + geom_reply = xcb_get_geometry_reply(draw->conn, geom_cookie, NULL); + + if (geom_reply) { + draw->width = geom_reply->width; + draw->height = geom_reply->height; + draw->vtable->set_drawable_size(draw, draw->width, draw->height); + + free(geom_reply); + } +} diff --git a/src/loader/loader_dri3_helper.h b/src/loader/loader_dri3_helper.h index 1d1f15ebb9a..a865e463559 100644 --- a/src/loader/loader_dri3_helper.h +++ b/src/loader/loader_dri3_helper.h @@ -239,4 +239,6 @@ loader_dri3_get_buffers(__DRIdrawable *driDrawable, uint32_t buffer_mask, struct __DRIimageList *buffers); +void +loader_dri3_update_drawable_geometry(struct loader_dri3_drawable *draw); #endif |