1
0
Fork 0
mirror of https://github.com/yshui/picom.git synced 2025-02-17 15:56:21 -05:00

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 <yshuiv7@gmail.com>
This commit is contained in:
Yuxuan Shui 2024-10-10 12:20:57 +01:00
parent d829ad00c3
commit 88110e1086
No known key found for this signature in database
GPG key ID: D3A4405BE6CC17F4
2 changed files with 107 additions and 64 deletions

View file

@ -71,7 +71,11 @@ slide-out = {
crop-y = "window-y"; crop-y = "window-y";
crop-width = "window-width"; crop-width = "window-width";
crop-height = "window-height"; crop-height = "window-height";
opacity = 1; opacity = {
start = "window-raw-opacity-before";
end = "window-raw-opacity-before";
duration = "placeholder0";
};
blur-opacity = "opacity"; blur-opacity = "opacity";
shadow-opacity = "opacity"; shadow-opacity = "opacity";
*knobs = { *knobs = {
@ -124,9 +128,13 @@ fly-out = {
offset-y = "v-timing * (1 - placeholder3)"; offset-y = "v-timing * (1 - placeholder3)";
shadow-offset-x = "offset-x"; shadow-offset-x = "offset-x";
shadow-offset-y = "offset-y"; shadow-offset-y = "offset-y";
opacity = 1; opacity = {
shadow-opacity = 1; start = "window-raw-opacity-before";
blur-opacity = 1; end = "window-raw-opacity-before";
duration = "placeholder0";
};
shadow-opacity = "opacity";
blur-opacity = "opacity";
*knobs = { *knobs = {
duration = 0.2; duration = 0.2;
direction = (0, ["up", "down", "left", "right"]); direction = (0, ["up", "down", "left", "right"]);
@ -151,9 +159,6 @@ fly-in = {
offset-y = "v-timing * (1 - placeholder3)"; offset-y = "v-timing * (1 - placeholder3)";
shadow-offset-x = "offset-x"; shadow-offset-x = "offset-x";
shadow-offset-y = "offset-y"; shadow-offset-y = "offset-y";
opacity = 1;
shadow-opacity = 1;
blur-opacity = 1;
*knobs = { *knobs = {
duration = 0.2; duration = 0.2;
direction = (0, ["up", "down", "left", "right"]); direction = (0, ["up", "down", "left", "right"]);

View file

@ -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 struct script *script_template__slide_out(int *output_slots) {
static const struct instruction instrs[] = { 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 = 15},
{.type = INST_LOAD, .slot = 14}, {.type = INST_LOAD, .slot = 14},
{.type = INST_OP, .op = OP_SUB}, {.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_STORE, .slot = 7},
{.type = INST_LOAD_CTX, .ctx = 24}, {.type = INST_LOAD_CTX, .ctx = 24},
{.type = INST_STORE, .slot = 8}, {.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_LOAD, .slot = 9},
{.type = INST_STORE, .slot = 10}, {.type = INST_STORE, .slot = 10},
{.type = INST_LOAD, .slot = 9}, {.type = INST_LOAD, .slot = 9},
{.type = INST_STORE, .slot = 11}, {.type = INST_STORE, .slot = 11},
{.type = INST_BRANCH_ONCE, .rel = 17}, {.type = INST_BRANCH_ONCE, .rel = 21},
{.type = INST_HALT}, {.type = INST_HALT},
{.type = INST_IMM, .imm = 0x0p+0}, {.type = INST_IMM, .imm = 0x0p+0},
{.type = INST_STORE_OVER_NAN, .slot = 14}, {.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_MUL},
{.type = INST_OP, .op = OP_ADD}, {.type = INST_OP, .op = OP_ADD},
{.type = INST_STORE, .slot = 15}, {.type = INST_STORE, .slot = 15},
{.type = INST_IMM, .imm = 0x1p+0}, {.type = INST_LOAD_CTX, .ctx = 64},
{.type = INST_STORE, .slot = 9}, {.type = INST_STORE_OVER_NAN, .slot = 17},
{.type = INST_BRANCH, .rel = -55}, {.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_IMM, .imm = 0x0p+0},
{.type = INST_STORE, .slot = 13}, {.type = INST_STORE, .slot = 13},
{.type = INST_LOAD, .slot = 16}, {.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_LOAD, .slot = 13},
{.type = INST_OP, .op = OP_MAX}, {.type = INST_OP, .op = OP_MAX},
{.type = INST_STORE, .slot = 13}, {.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}, {.type = INST_HALT},
}; };
struct script *ret = malloc(offsetof(struct script, instrs) + sizeof(instrs)); struct script *ret = malloc(offsetof(struct script, instrs) + sizeof(instrs));
ret->len = ARR_SIZE(instrs); ret->len = ARR_SIZE(instrs);
ret->elapsed_slot = 12; ret->elapsed_slot = 12;
ret->n_slots = 17; ret->n_slots = 20;
ret->stack_size = 3; ret->stack_size = 3;
ret->vars = NULL; ret->vars = NULL;
ret->overrides = 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}; *override = (struct overridable_slot){.name = strdup("v-timing"), .slot = 14};
HASH_ADD_STR(ret->overrides, name, override); 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[0] = 1;
output_slots[1] = 2; output_slots[1] = 2;
output_slots[2] = 3; 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 struct script *script_template__fly_out(int *output_slots) {
static const struct instruction instrs[] = { 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 = 11},
{.type = INST_LOAD, .slot = 10}, {.type = INST_LOAD, .slot = 10},
{.type = INST_OP, .op = OP_SUB}, {.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_STORE, .slot = 3},
{.type = INST_LOAD, .slot = 2}, {.type = INST_LOAD, .slot = 2},
{.type = INST_STORE, .slot = 4}, {.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_BRANCH_ONCE, .rel = 29},
{.type = INST_HALT}, {.type = INST_HALT},
{.type = INST_IMM, .imm = 0x0p+0}, {.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_MUL},
{.type = INST_OP, .op = OP_ADD}, {.type = INST_OP, .op = OP_ADD},
{.type = INST_STORE, .slot = 11}, {.type = INST_STORE, .slot = 11},
{.type = INST_IMM, .imm = 0x1p+0}, {.type = INST_LOAD_CTX, .ctx = 64},
{.type = INST_STORE, .slot = 5}, {.type = INST_STORE_OVER_NAN, .slot = 13},
{.type = INST_IMM, .imm = 0x1p+0}, {.type = INST_LOAD_CTX, .ctx = 1073741824},
{.type = INST_STORE, .slot = 6}, {.type = INST_STORE, .slot = 15},
{.type = INST_IMM, .imm = 0x1p+0}, {.type = INST_LOAD_CTX, .ctx = 64},
{.type = INST_STORE, .slot = 7}, {.type = INST_STORE, .slot = 14},
{.type = INST_BRANCH, .rel = -55}, {.type = INST_BRANCH, .rel = -72},
{.type = INST_IMM, .imm = 0x0p+0}, {.type = INST_IMM, .imm = 0x0p+0},
{.type = INST_STORE, .slot = 9}, {.type = INST_STORE, .slot = 9},
{.type = INST_LOAD, .slot = 12}, {.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_LOAD, .slot = 9},
{.type = INST_OP, .op = OP_MAX}, {.type = INST_OP, .op = OP_MAX},
{.type = INST_STORE, .slot = 9}, {.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}, {.type = INST_HALT},
}; };
struct script *ret = malloc(offsetof(struct script, instrs) + sizeof(instrs)); struct script *ret = malloc(offsetof(struct script, instrs) + sizeof(instrs));
ret->len = ARR_SIZE(instrs); ret->len = ARR_SIZE(instrs);
ret->elapsed_slot = 8; ret->elapsed_slot = 8;
ret->n_slots = 13; ret->n_slots = 16;
ret->stack_size = 3; ret->stack_size = 3;
ret->vars = NULL; ret->vars = NULL;
ret->overrides = 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}; *override = (struct overridable_slot){.name = strdup("v-timing"), .slot = 10};
HASH_ADD_STR(ret->overrides, name, override); 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[0] = 1;
output_slots[1] = 2; output_slots[1] = 2;
output_slots[2] = 3; output_slots[2] = 3;
@ -1088,12 +1150,12 @@ static struct script *script_template__fly_in(int *output_slots) {
static const struct instruction instrs[] = { static const struct instruction instrs[] = {
{.type = INST_BRANCH_ONCE, .rel = 30}, {.type = INST_BRANCH_ONCE, .rel = 30},
{.type = INST_IMM, .imm = 0x0p+0}, {.type = INST_IMM, .imm = 0x0p+0},
{.type = INST_LOAD, .slot = 10}, {.type = INST_LOAD, .slot = 7},
{.type = INST_OP, .op = OP_SUB}, {.type = INST_OP, .op = OP_SUB},
{.type = INST_LOAD, .slot = 8}, {.type = INST_LOAD, .slot = 5},
{.type = INST_IMM, .imm = 0x0p+0}, {.type = INST_IMM, .imm = 0x0p+0},
{.type = INST_OP, .op = OP_SUB}, {.type = INST_OP, .op = OP_SUB},
{.type = INST_LOAD, .slot = 11}, {.type = INST_LOAD, .slot = 8},
{.type = INST_OP, .op = OP_DIV}, {.type = INST_OP, .op = OP_DIV},
{ {
.type = INST_CURVE, .type = INST_CURVE,
@ -1106,7 +1168,7 @@ static struct script *script_template__fly_in(int *output_slots) {
.cy = 0x1.0147ae147ae16p+1}}, .cy = 0x1.0147ae147ae16p+1}},
}, },
{.type = INST_OP, .op = OP_MUL}, {.type = INST_OP, .op = OP_MUL},
{.type = INST_LOAD, .slot = 10}, {.type = INST_LOAD, .slot = 7},
{.type = INST_OP, .op = OP_ADD}, {.type = INST_OP, .op = OP_ADD},
{.type = INST_STORE, .slot = 0}, {.type = INST_STORE, .slot = 0},
{.type = INST_LOAD, .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_STORE, .slot = 3},
{.type = INST_LOAD, .slot = 2}, {.type = INST_LOAD, .slot = 2},
{.type = INST_STORE, .slot = 4}, {.type = INST_STORE, .slot = 4},
{.type = INST_BRANCH_ONCE, .rel = 27}, {.type = INST_BRANCH_ONCE, .rel = 21},
{.type = INST_HALT}, {.type = INST_HALT},
{.type = INST_LOAD_CTX, .ctx = 24}, {.type = INST_LOAD_CTX, .ctx = 24},
{.type = INST_LOAD_CTX, .ctx = 1073741832}, {.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_LOAD_CTX, .ctx = 1073741840},
{.type = INST_OP, .op = OP_MUL}, {.type = INST_OP, .op = OP_MUL},
{.type = INST_OP, .op = OP_ADD}, {.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_LOAD_CTX, .ctx = 1073741824},
{.type = INST_STORE, .slot = 11}, {.type = INST_STORE, .slot = 8},
{.type = INST_IMM, .imm = 0x1p+0}, {.type = INST_BRANCH, .rel = -47},
{.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_IMM, .imm = 0x0p+0}, {.type = INST_IMM, .imm = 0x0p+0},
{.type = INST_STORE, .slot = 9}, {.type = INST_STORE, .slot = 6},
{.type = INST_LOAD, .slot = 11}, {.type = INST_LOAD, .slot = 8},
{.type = INST_IMM, .imm = 0x0p+0}, {.type = INST_IMM, .imm = 0x0p+0},
{.type = INST_OP, .op = OP_ADD}, {.type = INST_OP, .op = OP_ADD},
{.type = INST_LOAD, .slot = 9}, {.type = INST_LOAD, .slot = 6},
{.type = INST_OP, .op = OP_MAX}, {.type = INST_OP, .op = OP_MAX},
{.type = INST_STORE, .slot = 9}, {.type = INST_STORE, .slot = 6},
{.type = INST_HALT}, {.type = INST_HALT},
}; };
struct script *ret = malloc(offsetof(struct script, instrs) + sizeof(instrs)); struct script *ret = malloc(offsetof(struct script, instrs) + sizeof(instrs));
ret->len = ARR_SIZE(instrs); ret->len = ARR_SIZE(instrs);
ret->elapsed_slot = 8; ret->elapsed_slot = 5;
ret->n_slots = 12; ret->n_slots = 9;
ret->stack_size = 3; ret->stack_size = 3;
ret->vars = NULL; ret->vars = NULL;
ret->overrides = 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}; .name = strdup("shadow-offset-y"), .slot = 4, .index = 4};
HASH_ADD_STR(ret->vars, name, var); 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)); 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); HASH_ADD_STR(ret->overrides, name, override);
} }
output_slots[0] = 1; output_slots[0] = 1;
output_slots[1] = 2; output_slots[1] = 2;
output_slots[2] = 3; output_slots[2] = 3;
output_slots[3] = 4; output_slots[3] = 4;
output_slots[4] = 5; output_slots[4] = -1;
output_slots[5] = 7; output_slots[5] = -1;
output_slots[6] = 6; output_slots[6] = -1;
output_slots[7] = -1; output_slots[7] = -1;
output_slots[8] = -1; output_slots[8] = -1;
output_slots[9] = -1; output_slots[9] = -1;