swaylock/include
Manuel Stoeckl 10ab8b2740 Estimate buffer size in advance for render_frame
The size of the surface used to draw the indicator depends on
the extents of the text being drawn on and under the indicator.

This commit refactors the `render_frame` function so that the surface
size is computed before drawing; before, `render_frame` drew onto a
buffer, estimated the size the buffer should have had, and recursively
called itself to try again with the estimated size, if necessary. This
was done because Cairo's methods to estimate font and text size
require that a cairo_t context object and an associated cairo_surface
already have been set up. Since the surface size depends on the text
size, the natural way to use Cairo would have a circular dependency.

In order to compute sizes _before_ the buffer is created, this commit
adds a 1x1 surface and a matching `test_cairo` context which is set to
the same font and drawing parameters as the buffer that will be
created. Font/text extent measurements should give the same results as
for the final buffer.
2023-01-27 12:19:32 +01:00
..
background-image.h Convert swaylock into standalone project 2019-01-13 21:16:47 -05:00
cairo.h cairo.h: remove redundant prototype 2022-03-20 22:54:39 +01:00
comm.h Check password without blocking 2019-01-17 12:42:13 +01:00
log.h Implement logging and remove wlroots dependency 2019-01-14 23:30:54 -05:00
loop.h Convert swaylock into standalone project 2019-01-13 21:16:47 -05:00
meson.build Convert swaylock into standalone project 2019-01-13 21:16:47 -05:00
password-buffer.h Use mlock for password buffer 2022-06-15 10:49:32 +02:00
pool-buffer.h Remove references to pango 2019-01-23 12:20:24 +00:00
seat.h Implement key repeat 2020-06-19 23:02:23 +02:00
swaylock.h Estimate buffer size in advance for render_frame 2023-01-27 12:19:32 +01:00
unicode.h Delete whole utf8 character on backspace 2022-03-22 22:11:27 +01:00