Assorted polish fixes for keyframe theme settings patch
* Version patching fixes for theme settings * Added missing support for NLA (needed for the keyframes drawn in the action lines) * Fix for a lack of contrast between selected and unselected extreme keyframe type (restoring it back to the pre-patch color scheme) * Fix for keyframes on protected channels not being drawn with partial opacity
This commit is contained in:
@@ -595,42 +595,56 @@ void draw_keyframe_shape(float x, float y, float xscale, float hsize, short sel,
|
||||
|
||||
/* draw! */
|
||||
if (ELEM(mode, KEYFRAME_SHAPE_INSIDE, KEYFRAME_SHAPE_BOTH)) {
|
||||
/* interior - hardcoded colors (for selected and unselected only) */
|
||||
float inner_col[4];
|
||||
|
||||
/* get interior colors from theme (for selected and unselected only) */
|
||||
switch (key_type) {
|
||||
case BEZT_KEYTYPE_BREAKDOWN: /* bluish frames for now */
|
||||
case BEZT_KEYTYPE_BREAKDOWN: /* bluish frames (default theme) */
|
||||
{
|
||||
if (sel) UI_ThemeColor(TH_KEYTYPE_BREAKDOWN_SELECT);
|
||||
else UI_ThemeColor(TH_KEYTYPE_BREAKDOWN);
|
||||
if (sel) UI_GetThemeColor4fv(TH_KEYTYPE_BREAKDOWN_SELECT, inner_col);
|
||||
else UI_GetThemeColor4fv(TH_KEYTYPE_BREAKDOWN, inner_col);
|
||||
break;
|
||||
}
|
||||
case BEZT_KEYTYPE_EXTREME: /* redish frames for now */
|
||||
case BEZT_KEYTYPE_EXTREME: /* reddish frames (default theme) */
|
||||
{
|
||||
if (sel) UI_ThemeColor(TH_KEYTYPE_EXTREME_SELECT);
|
||||
else UI_ThemeColor(TH_KEYTYPE_EXTREME);
|
||||
if (sel) UI_GetThemeColor4fv(TH_KEYTYPE_EXTREME_SELECT, inner_col);
|
||||
else UI_GetThemeColor4fv(TH_KEYTYPE_EXTREME, inner_col);
|
||||
break;
|
||||
}
|
||||
case BEZT_KEYTYPE_JITTER: /* greenish frames for now? */
|
||||
case BEZT_KEYTYPE_JITTER: /* greenish frames (default theme) */
|
||||
{
|
||||
if (sel) UI_ThemeColor(TH_KEYTYPE_JITTER_SELECT);
|
||||
else UI_ThemeColor(TH_KEYTYPE_JITTER);
|
||||
if (sel) UI_GetThemeColor4fv(TH_KEYTYPE_JITTER_SELECT, inner_col);
|
||||
else UI_GetThemeColor4fv(TH_KEYTYPE_JITTER, inner_col);
|
||||
break;
|
||||
}
|
||||
case BEZT_KEYTYPE_KEYFRAME: /* traditional yellowish frames for now */
|
||||
case BEZT_KEYTYPE_KEYFRAME: /* traditional yellowish frames (default theme) */
|
||||
default:
|
||||
{
|
||||
if (sel) UI_ThemeColor(TH_KEYTYPE_KEYFRAME_SELECT);
|
||||
else UI_ThemeColor(TH_KEYTYPE_KEYFRAME);
|
||||
if (sel) UI_GetThemeColor4fv(TH_KEYTYPE_KEYFRAME_SELECT, inner_col);
|
||||
else UI_GetThemeColor4fv(TH_KEYTYPE_KEYFRAME, inner_col);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* NOTE: we don't use the straight alpha from the theme, or else effects such as
|
||||
* greying out protected/muted channels doesn't work correctly!
|
||||
*/
|
||||
inner_col[3] *= alpha;
|
||||
glColor4fv(inner_col);
|
||||
|
||||
/* draw the "filled in" interior poly now */
|
||||
glCallList(displist2);
|
||||
}
|
||||
|
||||
if (ELEM(mode, KEYFRAME_SHAPE_FRAME, KEYFRAME_SHAPE_BOTH)) {
|
||||
float border_col[4];
|
||||
|
||||
/* exterior - black frame */
|
||||
if (sel) UI_ThemeColor4(TH_KEYBORDER_SELECT);
|
||||
else UI_ThemeColor4(TH_KEYBORDER);
|
||||
if (sel) UI_GetThemeColor4fv(TH_KEYBORDER_SELECT, border_col);
|
||||
else UI_GetThemeColor4fv(TH_KEYBORDER, border_col);
|
||||
|
||||
border_col[3] *= alpha;
|
||||
glColor4fv(border_col);
|
||||
|
||||
glCallList(displist1);
|
||||
}
|
||||
|
||||
@@ -915,12 +915,12 @@ void ui_theme_init_default(void)
|
||||
|
||||
rgba_char_args_set(btheme->tact.keytype_keyframe, 232, 232, 232, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_keyframe_select, 255, 190, 50, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_extreme, 237, 178, 204, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_extreme_select, 242, 127, 127, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_breakdown, 178, 219, 232, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_extreme, 232, 179, 204, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_extreme_select, 242, 128, 128, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_breakdown, 179, 219, 232, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_breakdown_select, 84, 191, 237, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_jitter, 148, 229, 117, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_jitter_select, 97, 191, 066, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_jitter_select, 97, 192, 66, 255);
|
||||
|
||||
rgba_char_args_set(btheme->tact.keyborder, 0, 0, 0, 255);
|
||||
rgba_char_args_set(btheme->tact.keyborder_select, 0, 0, 0, 255);
|
||||
@@ -941,6 +941,9 @@ void ui_theme_init_default(void)
|
||||
rgba_char_args_set(btheme->tnla.nla_sound, 43, 61, 61, 255);
|
||||
rgba_char_args_set(btheme->tnla.nla_sound_sel, 31, 122, 122, 255);
|
||||
|
||||
rgba_char_args_set(btheme->tnla.keyborder, 0, 0, 0, 255);
|
||||
rgba_char_args_set(btheme->tnla.keyborder_select, 0, 0, 0, 255);
|
||||
|
||||
/* space file */
|
||||
/* to have something initialized */
|
||||
btheme->tfile = btheme->tv3d;
|
||||
@@ -2343,12 +2346,35 @@ void init_userdef_do_versions(void)
|
||||
rgba_char_args_test_set(btheme->tinfo.info_debug_text, 0, 0, 0, 255);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (U.versionfile < 269 || (U.versionfile == 269 && U.subversionfile < 9)) {
|
||||
bTheme *btheme;
|
||||
|
||||
U.tw_size = U.tw_size * 5.0f;
|
||||
}
|
||||
|
||||
if (U.versionfile < 270) {
|
||||
|
||||
/* Action Editor (and NLA Editor) - Keyframe Colors */
|
||||
for (btheme = U.themes.first; btheme; btheme = btheme->next) {
|
||||
/* Action Editor ................. */
|
||||
/* key types */
|
||||
rgba_char_args_set(btheme->tact.keytype_keyframe, 232, 232, 232, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_keyframe_select, 255, 190, 50, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_extreme, 232, 179, 204, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_extreme_select, 242, 128, 128, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_breakdown, 179, 219, 232, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_breakdown_select, 84, 191, 237, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_jitter, 148, 229, 117, 255);
|
||||
rgba_char_args_set(btheme->tact.keytype_jitter_select, 97, 192, 66, 255);
|
||||
|
||||
/* key border */
|
||||
rgba_char_args_set(btheme->tact.keyborder, 0, 0, 0, 255);
|
||||
rgba_char_args_set(btheme->tact.keyborder_select, 0, 0, 0, 255);
|
||||
|
||||
/* NLA ............................ */
|
||||
/* key border */
|
||||
rgba_char_args_set(btheme->tnla.keyborder, 0, 0, 0, 255);
|
||||
rgba_char_args_set(btheme->tnla.keyborder_select, 0, 0, 0, 255);
|
||||
}
|
||||
|
||||
/* grease pencil - new layer color */
|
||||
if (U.gpencil_new_layer_col[3] < 0.1f) {
|
||||
/* defaults to black, but must at least be visible! */
|
||||
|
||||
@@ -2469,55 +2469,55 @@ static void rna_def_userdef_theme_space_action(BlenderRNA *brna)
|
||||
prop = RNA_def_property(srna, "keyframe_selected", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "keytype_keyframe_select");
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Keyframe Selected", "Color of Keyframe Selected");
|
||||
RNA_def_property_ui_text(prop, "Keyframe Selected", "Color of selected keyframe");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "keyframe_extreme", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "keytype_extreme");
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Extreme Keyframe", "Color of Extreme Keyframe");
|
||||
RNA_def_property_ui_text(prop, "Extreme Keyframe", "Color of extreme keyframe");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "keyframe_extreme_selected", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "keytype_extreme_select");
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Extreme Keyframe Selected", "Color of Extreme Keyframe selected");
|
||||
RNA_def_property_ui_text(prop, "Extreme Keyframe Selected", "Color of selected extreme keyframe");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "keyframe_breakdown", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "keytype_breakdown");
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Breakdown Keyframe", "Color of Breakdown keyframe");
|
||||
RNA_def_property_ui_text(prop, "Breakdown Keyframe", "Color of breakdown keyframe");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "keyframe_breakdown_selected", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "keytype_breakdown_select");
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Breakdown Keyframe Selected", "Color of Breakdown Keyframe selected");
|
||||
RNA_def_property_ui_text(prop, "Breakdown Keyframe Selected", "Color of selected breakdown keyframe");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "keyframe_jitter", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "keytype_jitter");
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Jitter Keyframe", "Color of Jitter Keyframe");
|
||||
RNA_def_property_ui_text(prop, "Jitter Keyframe", "Color of jitter keyframe");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "keyframe_jitter_selected", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "keytype_jitter_select");
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Jitter Keyframe Selected", "Color of Jitter Keyframe selected");
|
||||
RNA_def_property_ui_text(prop, "Jitter Keyframe Selected", "Color of selected jitter keyframe");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "keyframe_border", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "keyborder");
|
||||
RNA_def_property_array(prop, 4);
|
||||
RNA_def_property_ui_text(prop, "Keyframe Border", "Color of Keyframe border");
|
||||
RNA_def_property_ui_text(prop, "Keyframe Border", "Color of keyframe border");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "keyframe_border_selected", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "keyborder_select");
|
||||
RNA_def_property_array(prop, 4);
|
||||
RNA_def_property_ui_text(prop, "Keyframe Border Selected", "Color of Key Border Selected");
|
||||
RNA_def_property_ui_text(prop, "Keyframe Border Selected", "Color of selected keyframe border");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "summary", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
@@ -2627,7 +2627,19 @@ static void rna_def_userdef_theme_space_nla(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Tweak Duplicate Flag",
|
||||
"Warning/error indicator color for strips referencing the strip being tweaked");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
|
||||
prop = RNA_def_property(srna, "keyframe_border", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "keyborder");
|
||||
RNA_def_property_array(prop, 4);
|
||||
RNA_def_property_ui_text(prop, "Keyframe Border", "Color of keyframe border");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "keyframe_border_selected", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "keyborder_select");
|
||||
RNA_def_property_array(prop, 4);
|
||||
RNA_def_property_ui_text(prop, "Keyframe Border Selected", "Color of selected keyframe border");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "frame_current", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "cframe");
|
||||
RNA_def_property_array(prop, 3);
|
||||
|
||||
Reference in New Issue
Block a user