diff options
author | Juan A. Suarez Romero <[email protected]> | 2018-06-06 10:13:05 +0000 |
---|---|---|
committer | Juan A. Suarez Romero <[email protected]> | 2018-08-08 18:29:58 +0200 |
commit | a9fb331ea7d1a78936ea8d8385e44cfd66f835c1 (patch) | |
tree | 664458d42ab8bc59049fdbe612d0150d354ee396 /src/util/u_atomic.h | |
parent | 1fe7cbdf05b90034577dac4e4aa6157031d80521 (diff) |
wayland/egl: update surface size on window resize
According to EGL 1.5 spec, section 3.10.1.1 ("Native Window Resizing"):
"If the native window corresponding to _surface_ has been resized
prior to the swap, _surface_ must be resized to match. _surface_ will
normally be resized by the EGL implementation at the time the native
window is resized. If the implementation cannot do this transparently
to the client, then *eglSwapBuffers* must detect the change and
resize surface prior to copying its pixels to the native window."
So far, resizing a native window in Wayland/EGL was interpreted in Mesa
as a request to resize, which is not executed until the first draw call.
And hence, surface size is not updated until executing it. Thus,
querying the surface size with eglQuerySurface() after a window resize
still returns the old values.
This commit updates the surface size values as soon as the resize is
done, even when the real resize is done in the draw call. This makes the
semantics that any native window resize request take effect inmediately,
and if user calls eglQuerySurface() it will return the new resized
values.
v2: update surface size if there isn't a back surface (Daniel)
CC: Daniel Stone <[email protected]>
CC: [email protected]
Reviewed-by: Daniel Stone <[email protected]>
Diffstat (limited to 'src/util/u_atomic.h')
0 files changed, 0 insertions, 0 deletions