{render,config}: allow specifying wallpaper anchor position
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: Iee73e9d149e85d2c00eaba4be25d42bd6a6a6964
This commit is contained in:
parent
dd0252fe7b
commit
a82b986ac6
4 changed files with 189 additions and 29 deletions
19
include/chroma.h
vendored
19
include/chroma.h
vendored
|
|
@ -44,6 +44,19 @@ typedef enum {
|
|||
CHROMA_SCALE_CENTER = 3 // center image at original size
|
||||
} chroma_scale_mode_t;
|
||||
|
||||
// Anchor positions for wallpaper placement
|
||||
typedef enum {
|
||||
CHROMA_ANCHOR_CENTER = 0, // center of the output (default)
|
||||
CHROMA_ANCHOR_TOP = 1, // top edge, centered horizontally
|
||||
CHROMA_ANCHOR_BOTTOM = 2, // bottom edge, centered horizontally
|
||||
CHROMA_ANCHOR_LEFT = 3, // left edge, centered vertically
|
||||
CHROMA_ANCHOR_RIGHT = 4, // right edge, centered vertically
|
||||
CHROMA_ANCHOR_TOP_LEFT = 5, // top-left corner
|
||||
CHROMA_ANCHOR_TOP_RIGHT = 6, // top-right corner
|
||||
CHROMA_ANCHOR_BOTTOM_LEFT = 7, // bottom-left corner
|
||||
CHROMA_ANCHOR_BOTTOM_RIGHT = 8 // bottom-right corner
|
||||
} chroma_anchor_t;
|
||||
|
||||
// Image filtering quality settings
|
||||
typedef enum {
|
||||
CHROMA_FILTER_NEAREST = 0, // nearest neighbor filtering (pixelated)
|
||||
|
|
@ -90,6 +103,7 @@ typedef struct {
|
|||
// Configuration for this output
|
||||
chroma_scale_mode_t scale_mode;
|
||||
chroma_filter_quality_t filter_quality;
|
||||
chroma_anchor_t anchor;
|
||||
bool config_loaded;
|
||||
|
||||
// OpenGL resource cache
|
||||
|
|
@ -108,6 +122,7 @@ typedef struct {
|
|||
char image_path[MAX_PATH_LEN];
|
||||
chroma_scale_mode_t scale_mode;
|
||||
chroma_filter_quality_t filter_quality;
|
||||
chroma_anchor_t anchor;
|
||||
} chroma_config_mapping_t;
|
||||
|
||||
// Application configuration
|
||||
|
|
@ -120,6 +135,7 @@ typedef struct {
|
|||
// Global scaling and filtering settings (used as defaults)
|
||||
chroma_scale_mode_t default_scale_mode;
|
||||
chroma_filter_quality_t default_filter_quality;
|
||||
chroma_anchor_t default_anchor;
|
||||
|
||||
// Image downsampling settings
|
||||
bool enable_downsampling; // enable automatic downsampling
|
||||
|
|
@ -231,7 +247,8 @@ const char *chroma_config_get_image_for_output(chroma_config_t *config,
|
|||
const char *output_name);
|
||||
int chroma_config_get_mapping_for_output(
|
||||
chroma_config_t *config, const char *output_name,
|
||||
chroma_scale_mode_t *scale_mode, chroma_filter_quality_t *filter_quality);
|
||||
chroma_scale_mode_t *scale_mode, chroma_filter_quality_t *filter_quality,
|
||||
chroma_anchor_t *anchor);
|
||||
|
||||
void chroma_config_print(const chroma_config_t *config);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue