notashelf /
3d4974a128fc9167a9295333b6092ace716d7b9b
chroma
publicLightweight wallpaper daemon for Wayland
clone
ssh://git@git.notashelf.dev:33/notashelf/chroma.gitCommit 3d4974a128fc
tarballunverified1 files changed+9-2
@@ -96,6 +96,7 @@ static int assign_wallpaper_to_output(chroma_state_t *state, bool image_changed = (output->image != image); if (image_changed && output->image) { chroma_output_invalidate_texture(output);+ output->vbo_dirty = true; // VBO needs update for new image chroma_log("DEBUG", "Image changed for output %u, invalidated texture", output->id); }@@ -103,6 +104,11 @@ static int assign_wallpaper_to_output(chroma_state_t *state, // Assign image to output output->image = image; + // Mark VBO as dirty if image changed+ if (image_changed) {+ output->vbo_dirty = true;+ }+ // Store old configuration values for comparison chroma_scale_mode_t old_scale_mode = output->scale_mode; chroma_filter_quality_t old_filter_quality = output->filter_quality;@@ -120,6 +126,7 @@ static int assign_wallpaper_to_output(chroma_state_t *state, if (had_config && (old_scale_mode != output->scale_mode || old_filter_quality != output->filter_quality)) { chroma_output_invalidate_texture(output);+ output->vbo_dirty = true; // VBO needs update for new scale mode chroma_log("DEBUG", "Configuration changed for output %u, invalidated texture", output->id);@@ -273,14 +280,14 @@ int chroma_run(chroma_state_t *state) { break; } - // Use select() to wait for events with timeout+ // Use `select()` to wait for events with longer timeout to reduce CPU usage fd_set readfds; struct timeval timeout; FD_ZERO(&readfds); FD_SET(fd, &readfds); - timeout.tv_sec = 1; // 1s timeout+ timeout.tv_sec = 10; timeout.tv_usec = 0; int select_result = select(fd + 1, &readfds, NULL, NULL, &timeout);