mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-01 22:58:38 -04:00
Implement shm buffer surface attach interface
Implement surface_attach method. This is called when a client attaches an shm buffer with wl_surface_attach(). Implement the GLES2 interface for attaching shm buffers. This creates an opengl texture with the shm buffer contents for the surface. This commit also includes some working code to render the surfaces onto the screen for demonstration purposes.
This commit is contained in:
parent
555914a13b
commit
6610aa7ca7
4 changed files with 49 additions and 4 deletions
|
|
@ -28,7 +28,18 @@ void handle_output_frame(struct output_state *output, struct timespec *ts) {
|
|||
|
||||
wlr_output_make_current(wlr_output);
|
||||
wlr_renderer_begin(sample->renderer, wlr_output);
|
||||
// TODO: render surfaces
|
||||
|
||||
struct wl_resource *_res;
|
||||
float matrix[16];
|
||||
wl_list_for_each(_res, &sample->compositor.surfaces, link) {
|
||||
struct wlr_surface *surface = wl_resource_get_user_data(_res);
|
||||
if (surface->valid) {
|
||||
wlr_surface_get_matrix(surface, &matrix,
|
||||
&wlr_output->transform_matrix, 200, 200);
|
||||
wlr_render_with_matrix(sample->renderer, surface, &matrix);
|
||||
}
|
||||
}
|
||||
|
||||
wlr_renderer_end(sample->renderer);
|
||||
wlr_output_swap_buffers(wlr_output);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue