void scaled_scene_buffer_request_update(struct scaled_scene_buffer *self,
int width, int height);
+/**
+ * scaled_scene_buffer_invalidate_sharing - clear the list of entire cached
+ * scaled_scene_buffers used to share visually dupliated buffers. This should
+ * be called on Reconfigure to force updates of newly created
+ * scaled_scene_buffers rather than reusing ones created before Reconfigure.
+ */
+void scaled_scene_buffer_invalidate_sharing(void);
+
/* Private */
struct scaled_scene_buffer_cache_entry {
struct wl_list link; /* struct scaled_scene_buffer.cache */
_update_buffer(self, self->active_scale);
}
}
+
+void
+scaled_scene_buffer_invalidate_sharing(void)
+{
+ struct scaled_scene_buffer *scene_buffer, *tmp;
+ wl_list_for_each_safe(scene_buffer, tmp, &all_scaled_buffers, link) {
+ wl_list_remove(&scene_buffer->link);
+ wl_list_init(&scene_buffer->link);
+ }
+}
#include "drm-lease-v1-protocol.h"
#include "common/macros.h"
+#include "common/scaled-scene-buffer.h"
#include "config/rcxml.h"
#include "config/session.h"
#include "decorations.h"
static void
reload_config_and_theme(struct server *server)
{
+ scaled_scene_buffer_invalidate_sharing();
rcxml_finish();
rcxml_read(rc.config_file);
theme_finish(server->theme);