From 8e75ac6b8cb07d5e81a7e5aebd3f1086837891ec Mon Sep 17 00:00:00 2001 From: Yuxuan Shui Date: Thu, 10 Oct 2024 12:20:57 +0100 Subject: [PATCH] transition: avoid opacity change for fly-out/slide-out presets Set opacity to window-raw-opacity-before instead of to 1. Signed-off-by: Yuxuan Shui --- data/animation_presets.conf | 19 ++- src/transition/generated/script_templates.c | 152 ++++++++++++-------- 2 files changed, 107 insertions(+), 64 deletions(-) diff --git a/data/animation_presets.conf b/data/animation_presets.conf index 3e099743b1..b305ae9ff2 100644 --- a/data/animation_presets.conf +++ b/data/animation_presets.conf @@ -71,7 +71,11 @@ slide-out = { crop-y = "window-y"; crop-width = "window-width"; crop-height = "window-height"; - opacity = 1; + opacity = { + start = "window-raw-opacity-before"; + end = "window-raw-opacity-before"; + duration = "placeholder0"; + }; blur-opacity = "opacity"; shadow-opacity = "opacity"; *knobs = { @@ -124,9 +128,13 @@ fly-out = { offset-y = "v-timing * (1 - placeholder3)"; shadow-offset-x = "offset-x"; shadow-offset-y = "offset-y"; - opacity = 1; - shadow-opacity = 1; - blur-opacity = 1; + opacity = { + start = "window-raw-opacity-before"; + end = "window-raw-opacity-before"; + duration = "placeholder0"; + }; + shadow-opacity = "opacity"; + blur-opacity = "opacity"; *knobs = { duration = 0.2; direction = (0, ["up", "down", "left", "right"]); @@ -151,9 +159,6 @@ fly-in = { offset-y = "v-timing * (1 - placeholder3)"; shadow-offset-x = "offset-x"; shadow-offset-y = "offset-y"; - opacity = 1; - shadow-opacity = 1; - blur-opacity = 1; *knobs = { duration = 0.2; direction = (0, ["up", "down", "left", "right"]); diff --git a/src/transition/generated/script_templates.c b/src/transition/generated/script_templates.c index 2a34f39377..73133c504f 100644 --- a/src/transition/generated/script_templates.c +++ b/src/transition/generated/script_templates.c @@ -445,7 +445,7 @@ static bool win_script_preset__appear(struct win_script *output, config_setting_ } static struct script *script_template__slide_out(int *output_slots) { static const struct instruction instrs[] = { - {.type = INST_BRANCH_ONCE, .rel = 42}, + {.type = INST_BRANCH_ONCE, .rel = 55}, {.type = INST_LOAD, .slot = 15}, {.type = INST_LOAD, .slot = 14}, {.type = INST_OP, .op = OP_SUB}, @@ -490,11 +490,27 @@ static struct script *script_template__slide_out(int *output_slots) { {.type = INST_STORE, .slot = 7}, {.type = INST_LOAD_CTX, .ctx = 24}, {.type = INST_STORE, .slot = 8}, + {.type = INST_LOAD, .slot = 18}, + {.type = INST_LOAD, .slot = 17}, + {.type = INST_OP, .op = OP_SUB}, + {.type = INST_LOAD, .slot = 12}, + {.type = INST_IMM, .imm = 0x0p+0}, + {.type = INST_OP, .op = OP_SUB}, + {.type = INST_LOAD, .slot = 19}, + {.type = INST_OP, .op = OP_DIV}, + { + .type = INST_CURVE, + .curve = {.type = CURVE_LINEAR}, + }, + {.type = INST_OP, .op = OP_MUL}, + {.type = INST_LOAD, .slot = 17}, + {.type = INST_OP, .op = OP_ADD}, + {.type = INST_STORE, .slot = 9}, {.type = INST_LOAD, .slot = 9}, {.type = INST_STORE, .slot = 10}, {.type = INST_LOAD, .slot = 9}, {.type = INST_STORE, .slot = 11}, - {.type = INST_BRANCH_ONCE, .rel = 17}, + {.type = INST_BRANCH_ONCE, .rel = 21}, {.type = INST_HALT}, {.type = INST_IMM, .imm = 0x0p+0}, {.type = INST_STORE_OVER_NAN, .slot = 14}, @@ -508,9 +524,13 @@ static struct script *script_template__slide_out(int *output_slots) { {.type = INST_OP, .op = OP_MUL}, {.type = INST_OP, .op = OP_ADD}, {.type = INST_STORE, .slot = 15}, - {.type = INST_IMM, .imm = 0x1p+0}, - {.type = INST_STORE, .slot = 9}, - {.type = INST_BRANCH, .rel = -55}, + {.type = INST_LOAD_CTX, .ctx = 64}, + {.type = INST_STORE_OVER_NAN, .slot = 17}, + {.type = INST_LOAD_CTX, .ctx = 1073741824}, + {.type = INST_STORE, .slot = 19}, + {.type = INST_LOAD_CTX, .ctx = 64}, + {.type = INST_STORE, .slot = 18}, + {.type = INST_BRANCH, .rel = -72}, {.type = INST_IMM, .imm = 0x0p+0}, {.type = INST_STORE, .slot = 13}, {.type = INST_LOAD, .slot = 16}, @@ -519,12 +539,18 @@ static struct script *script_template__slide_out(int *output_slots) { {.type = INST_LOAD, .slot = 13}, {.type = INST_OP, .op = OP_MAX}, {.type = INST_STORE, .slot = 13}, + {.type = INST_LOAD, .slot = 19}, + {.type = INST_IMM, .imm = 0x0p+0}, + {.type = INST_OP, .op = OP_ADD}, + {.type = INST_LOAD, .slot = 13}, + {.type = INST_OP, .op = OP_MAX}, + {.type = INST_STORE, .slot = 13}, {.type = INST_HALT}, }; struct script *ret = malloc(offsetof(struct script, instrs) + sizeof(instrs)); ret->len = ARR_SIZE(instrs); ret->elapsed_slot = 12; - ret->n_slots = 17; + ret->n_slots = 20; ret->stack_size = 3; ret->vars = NULL; ret->overrides = NULL; @@ -606,6 +632,11 @@ static struct script *script_template__slide_out(int *output_slots) { *override = (struct overridable_slot){.name = strdup("v-timing"), .slot = 14}; HASH_ADD_STR(ret->overrides, name, override); } + { + struct overridable_slot *override = malloc(sizeof(*override)); + *override = (struct overridable_slot){.name = strdup("opacity"), .slot = 17}; + HASH_ADD_STR(ret->overrides, name, override); + } output_slots[0] = 1; output_slots[1] = 2; output_slots[2] = 3; @@ -872,7 +903,7 @@ static bool win_script_preset__slide_in(struct win_script *output, config_settin } static struct script *script_template__fly_out(int *output_slots) { static const struct instruction instrs[] = { - {.type = INST_BRANCH_ONCE, .rel = 30}, + {.type = INST_BRANCH_ONCE, .rel = 47}, {.type = INST_LOAD, .slot = 11}, {.type = INST_LOAD, .slot = 10}, {.type = INST_OP, .op = OP_SUB}, @@ -909,6 +940,26 @@ static struct script *script_template__fly_out(int *output_slots) { {.type = INST_STORE, .slot = 3}, {.type = INST_LOAD, .slot = 2}, {.type = INST_STORE, .slot = 4}, + {.type = INST_LOAD, .slot = 14}, + {.type = INST_LOAD, .slot = 13}, + {.type = INST_OP, .op = OP_SUB}, + {.type = INST_LOAD, .slot = 8}, + {.type = INST_IMM, .imm = 0x0p+0}, + {.type = INST_OP, .op = OP_SUB}, + {.type = INST_LOAD, .slot = 15}, + {.type = INST_OP, .op = OP_DIV}, + { + .type = INST_CURVE, + .curve = {.type = CURVE_LINEAR}, + }, + {.type = INST_OP, .op = OP_MUL}, + {.type = INST_LOAD, .slot = 13}, + {.type = INST_OP, .op = OP_ADD}, + {.type = INST_STORE, .slot = 5}, + {.type = INST_LOAD, .slot = 5}, + {.type = INST_STORE, .slot = 6}, + {.type = INST_LOAD, .slot = 5}, + {.type = INST_STORE, .slot = 7}, {.type = INST_BRANCH_ONCE, .rel = 29}, {.type = INST_HALT}, {.type = INST_IMM, .imm = 0x0p+0}, @@ -931,13 +982,13 @@ static struct script *script_template__fly_out(int *output_slots) { {.type = INST_OP, .op = OP_MUL}, {.type = INST_OP, .op = OP_ADD}, {.type = INST_STORE, .slot = 11}, - {.type = INST_IMM, .imm = 0x1p+0}, - {.type = INST_STORE, .slot = 5}, - {.type = INST_IMM, .imm = 0x1p+0}, - {.type = INST_STORE, .slot = 6}, - {.type = INST_IMM, .imm = 0x1p+0}, - {.type = INST_STORE, .slot = 7}, - {.type = INST_BRANCH, .rel = -55}, + {.type = INST_LOAD_CTX, .ctx = 64}, + {.type = INST_STORE_OVER_NAN, .slot = 13}, + {.type = INST_LOAD_CTX, .ctx = 1073741824}, + {.type = INST_STORE, .slot = 15}, + {.type = INST_LOAD_CTX, .ctx = 64}, + {.type = INST_STORE, .slot = 14}, + {.type = INST_BRANCH, .rel = -72}, {.type = INST_IMM, .imm = 0x0p+0}, {.type = INST_STORE, .slot = 9}, {.type = INST_LOAD, .slot = 12}, @@ -946,12 +997,18 @@ static struct script *script_template__fly_out(int *output_slots) { {.type = INST_LOAD, .slot = 9}, {.type = INST_OP, .op = OP_MAX}, {.type = INST_STORE, .slot = 9}, + {.type = INST_LOAD, .slot = 15}, + {.type = INST_IMM, .imm = 0x0p+0}, + {.type = INST_OP, .op = OP_ADD}, + {.type = INST_LOAD, .slot = 9}, + {.type = INST_OP, .op = OP_MAX}, + {.type = INST_STORE, .slot = 9}, {.type = INST_HALT}, }; struct script *ret = malloc(offsetof(struct script, instrs) + sizeof(instrs)); ret->len = ARR_SIZE(instrs); ret->elapsed_slot = 8; - ret->n_slots = 13; + ret->n_slots = 16; ret->stack_size = 3; ret->vars = NULL; ret->overrides = NULL; @@ -1009,6 +1066,11 @@ static struct script *script_template__fly_out(int *output_slots) { *override = (struct overridable_slot){.name = strdup("v-timing"), .slot = 10}; HASH_ADD_STR(ret->overrides, name, override); } + { + struct overridable_slot *override = malloc(sizeof(*override)); + *override = (struct overridable_slot){.name = strdup("opacity"), .slot = 13}; + HASH_ADD_STR(ret->overrides, name, override); + } output_slots[0] = 1; output_slots[1] = 2; output_slots[2] = 3; @@ -1088,12 +1150,12 @@ static struct script *script_template__fly_in(int *output_slots) { static const struct instruction instrs[] = { {.type = INST_BRANCH_ONCE, .rel = 30}, {.type = INST_IMM, .imm = 0x0p+0}, - {.type = INST_LOAD, .slot = 10}, + {.type = INST_LOAD, .slot = 7}, {.type = INST_OP, .op = OP_SUB}, - {.type = INST_LOAD, .slot = 8}, + {.type = INST_LOAD, .slot = 5}, {.type = INST_IMM, .imm = 0x0p+0}, {.type = INST_OP, .op = OP_SUB}, - {.type = INST_LOAD, .slot = 11}, + {.type = INST_LOAD, .slot = 8}, {.type = INST_OP, .op = OP_DIV}, { .type = INST_CURVE, @@ -1106,7 +1168,7 @@ static struct script *script_template__fly_in(int *output_slots) { .cy = 0x1.0147ae147ae16p+1}}, }, {.type = INST_OP, .op = OP_MUL}, - {.type = INST_LOAD, .slot = 10}, + {.type = INST_LOAD, .slot = 7}, {.type = INST_OP, .op = OP_ADD}, {.type = INST_STORE, .slot = 0}, {.type = INST_LOAD, .slot = 0}, @@ -1123,7 +1185,7 @@ static struct script *script_template__fly_in(int *output_slots) { {.type = INST_STORE, .slot = 3}, {.type = INST_LOAD, .slot = 2}, {.type = INST_STORE, .slot = 4}, - {.type = INST_BRANCH_ONCE, .rel = 27}, + {.type = INST_BRANCH_ONCE, .rel = 21}, {.type = INST_HALT}, {.type = INST_LOAD_CTX, .ctx = 24}, {.type = INST_LOAD_CTX, .ctx = 1073741832}, @@ -1140,30 +1202,24 @@ static struct script *script_template__fly_in(int *output_slots) { {.type = INST_LOAD_CTX, .ctx = 1073741840}, {.type = INST_OP, .op = OP_MUL}, {.type = INST_OP, .op = OP_ADD}, - {.type = INST_STORE_OVER_NAN, .slot = 10}, + {.type = INST_STORE_OVER_NAN, .slot = 7}, {.type = INST_LOAD_CTX, .ctx = 1073741824}, - {.type = INST_STORE, .slot = 11}, - {.type = INST_IMM, .imm = 0x1p+0}, - {.type = INST_STORE, .slot = 5}, - {.type = INST_IMM, .imm = 0x1p+0}, - {.type = INST_STORE, .slot = 6}, - {.type = INST_IMM, .imm = 0x1p+0}, - {.type = INST_STORE, .slot = 7}, - {.type = INST_BRANCH, .rel = -53}, + {.type = INST_STORE, .slot = 8}, + {.type = INST_BRANCH, .rel = -47}, {.type = INST_IMM, .imm = 0x0p+0}, - {.type = INST_STORE, .slot = 9}, - {.type = INST_LOAD, .slot = 11}, + {.type = INST_STORE, .slot = 6}, + {.type = INST_LOAD, .slot = 8}, {.type = INST_IMM, .imm = 0x0p+0}, {.type = INST_OP, .op = OP_ADD}, - {.type = INST_LOAD, .slot = 9}, + {.type = INST_LOAD, .slot = 6}, {.type = INST_OP, .op = OP_MAX}, - {.type = INST_STORE, .slot = 9}, + {.type = INST_STORE, .slot = 6}, {.type = INST_HALT}, }; struct script *ret = malloc(offsetof(struct script, instrs) + sizeof(instrs)); ret->len = ARR_SIZE(instrs); - ret->elapsed_slot = 8; - ret->n_slots = 12; + ret->elapsed_slot = 5; + ret->n_slots = 9; ret->stack_size = 3; ret->vars = NULL; ret->overrides = NULL; @@ -1198,36 +1254,18 @@ static struct script *script_template__fly_in(int *output_slots) { .name = strdup("shadow-offset-y"), .slot = 4, .index = 4}; HASH_ADD_STR(ret->vars, name, var); } - { - struct variable_allocation *var = malloc(sizeof(*var)); - *var = (struct variable_allocation){ - .name = strdup("opacity"), .slot = 5, .index = 5}; - HASH_ADD_STR(ret->vars, name, var); - } - { - struct variable_allocation *var = malloc(sizeof(*var)); - *var = (struct variable_allocation){ - .name = strdup("shadow-opacity"), .slot = 6, .index = 6}; - HASH_ADD_STR(ret->vars, name, var); - } - { - struct variable_allocation *var = malloc(sizeof(*var)); - *var = (struct variable_allocation){ - .name = strdup("blur-opacity"), .slot = 7, .index = 7}; - HASH_ADD_STR(ret->vars, name, var); - } { struct overridable_slot *override = malloc(sizeof(*override)); - *override = (struct overridable_slot){.name = strdup("v-timing"), .slot = 10}; + *override = (struct overridable_slot){.name = strdup("v-timing"), .slot = 7}; HASH_ADD_STR(ret->overrides, name, override); } output_slots[0] = 1; output_slots[1] = 2; output_slots[2] = 3; output_slots[3] = 4; - output_slots[4] = 5; - output_slots[5] = 7; - output_slots[6] = 6; + output_slots[4] = -1; + output_slots[5] = -1; + output_slots[6] = -1; output_slots[7] = -1; output_slots[8] = -1; output_slots[9] = -1;