[Piglit] [PATCH] util/x11: Propagate window resize events to piglit_width/height
Jordan Justen
jordan.l.justen at intel.com
Fri Oct 18 20:21:12 CEST 2013
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
On Fri, 2013-10-18 at 11:12 -0700, Chad Versace wrote:
> When I switched Piglit from GLUT to Waffle, I broke detection of X11
> window resizes. When the user resized the window, Piglit called
> piglit_display() but neglected to update piglit_width/height.
>
> This patch ensures that Piglit updates piglit_width/height correctly.
>
> (It's amazing that it took this long for anyone to fix it. People must
> rarely resize Piglit windows).
>
> CC: Jordan Justen <jordan.l.justen at intel.com>
> Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
> ---
> tests/util/piglit-framework-gl/piglit_x11_framework.c | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/tests/util/piglit-framework-gl/piglit_x11_framework.c b/tests/util/piglit-framework-gl/piglit_x11_framework.c
> index 95c46c4..8b3d3d7 100644
> --- a/tests/util/piglit-framework-gl/piglit_x11_framework.c
> +++ b/tests/util/piglit-framework-gl/piglit_x11_framework.c
> @@ -72,6 +72,23 @@ piglit_x11_framework(struct piglit_gl_framework *gl_fw)
> }
>
> static void
> +get_window_size(struct piglit_x11_framework *x11_fw)
> +{
> + unsigned width, height;
> +
> + Window wjunk;
> + int ijunk;
> + unsigned ujunk;
> +
> + XGetGeometry(x11_fw->display, x11_fw->window,
> + &wjunk, &ijunk, &ijunk,
> + &width, &height, &ujunk, &ujunk);
> +
> + piglit_width = width;
> + piglit_height = height;
> +}
> +
> +static void
> process_next_event(struct piglit_x11_framework *x11_fw)
> {
> struct piglit_winsys_framework *winsys_fw = &x11_fw->winsys_fw;
> @@ -84,9 +101,11 @@ process_next_event(struct piglit_x11_framework *x11_fw)
>
> switch (event.type) {
> case Expose:
> + get_window_size(x11_fw);
> winsys_fw->need_redisplay = true;
> break;
> case ConfigureNotify:
> + get_window_size(x11_fw);
> if (winsys_fw->user_reshape_func)
> winsys_fw->user_reshape_func(event.xconfigure.width,
> event.xconfigure.height);
More information about the Piglit
mailing list