int dispatch_remreq_buffer_get_data(struct client_list_entry* client, struct remreq_buffer_get_data* message) { struct client_buffer* target = MAP_DEREF(uint32_t, struct client_buffer*, buffermap, &client->screen->buffers, message->buffer); if(target->remote_texture_layout_may_differ) return texture_get_data(client, message, target); else return buffer_get_data(client, message, target); }
void texture_save_to_file(const texture_t *tex, const char *path) { uint8_t *data; int w, h; LOG_I("save texture to %s", path); w = tex->tex_w; h = tex->tex_h; data = calloc(w * h, 4); texture_get_data(tex, w, h, 4, data); img_write(data, w, h, 4, path); free(data); }