{render,config}: allow specifying wallpaper anchor position

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iee73e9d149e85d2c00eaba4be25d42bd6a6a6964
This commit is contained in:
raf 2026-04-13 14:25:47 +03:00
commit a82b986ac6
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF
4 changed files with 189 additions and 29 deletions

View file

@ -112,19 +112,21 @@ static int assign_wallpaper_to_output(chroma_state_t *state,
// 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;
chroma_anchor_t old_anchor = output->anchor;
bool had_config = output->config_loaded;
// Load configuration for this output (scale mode and filter quality)
// Load configuration for this output (scale mode, filter quality, anchor)
if (chroma_config_get_mapping_for_output(
&state->config, output->name ? output->name : "unknown",
&output->scale_mode, &output->filter_quality) == CHROMA_OK) {
&output->scale_mode, &output->filter_quality, &output->anchor) == CHROMA_OK) {
output->config_loaded = true;
chroma_log("DEBUG", "Loaded config for output %u: scale=%d, filter=%d",
output->id, output->scale_mode, output->filter_quality);
chroma_log("DEBUG", "Loaded config for output %u: scale=%d, filter=%d, anchor=%d",
output->id, output->scale_mode, output->filter_quality, output->anchor);
// Check if configuration changed and invalidate texture if needed
if (had_config && (old_scale_mode != output->scale_mode ||
old_filter_quality != output->filter_quality)) {
old_filter_quality != output->filter_quality ||
old_anchor != output->anchor)) {
chroma_output_invalidate_texture(output);
output->vbo_dirty = true; // VBO needs update for new scale mode
chroma_log("DEBUG",