BW2EZIIAEAWT5MYAEMTMHOIIQXGZR7FHGU4KO7Q6IEHUF3WZLZRAC PWBVW7HTUCT24NN3OLMFJ45AX54LO4XXEC6ELEC2LVCON4WDOULAC P3BVYOM6YV7M33KYMI5XNLZ6F44BBAP3I6NXPNTTCUAAPVPJ3PVQC QM6BQVVQOKLO6AYHJ272NTAOXJTVKN4FX7BU6J6YQKWBKEJDDFXQC 7B74AT3BXYB7PVW4F6SGQNPMHOU5TEV5TZ54CG6VSQI46XSEKWXQC J6OSBEBQXZR5JZ5TOCCUPELBPUVEQULGCXURXLPY7WFYTDEQOU2AC PLJJLNS7E2UXW2YARGBSV6IHZEBGL5EW354IMMHPDATY5DQD77DAC 4QUF4MKRSB5LYYS5FSYTCDSIEMYIERI2BQZLRGJ3GIGVYCPJVEPAC LQPHYO7IIMLXHUD5IK657BO4BE3SGT5HYDRJDU5OFDF5YUXKIRTAC wl_list_for_each(layersurface, layer_surfaces, link)wlr_surface_for_each_surface(layersurface->layer_surface->surface,renderlayersurface, layersurface);}voidrenderlayersurface(struct wlr_surface *surface, int sx, int sy, void *data){LayerSurface *layersurface = data;struct wlr_texture *texture = wlr_surface_get_texture(surface);struct wlr_output *output;double ox = 0, oy = 0;enum wl_output_transform transform;struct wlr_box box;float matrix[9];struct timespec now;
wl_list_for_each(layersurface, layer_surfaces, link) {rdata.output = layersurface->layer_surface->output;rdata.when = now;rdata.x = layersurface->geo.x;rdata.y = layersurface->geo.y;
output = layersurface->layer_surface->output;wlr_output_layout_output_coords(output_layout, output, &ox, &oy);ox += layersurface->geo.x + sx, oy += layersurface->geo.y + sy;transform = wlr_output_transform_invert(surface->current.transform);memcpy(&box, &layersurface->geo, sizeof(struct wlr_box));wlr_matrix_project_box(matrix, &box, transform, 0,output->transform_matrix);wlr_render_texture_with_matrix(drw, texture, matrix, 1);clock_gettime(CLOCK_MONOTONIC, &now);wlr_surface_send_frame_done(surface, &now);
renderlayer(m, &m->layers[ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND]);renderlayer(m, &m->layers[ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM]);
renderlayer(&m->layers[ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND], &now);renderlayer(&m->layers[ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM], &now);