UI: Custom Face Orientation Colors
Adds theme settings to allow change of front and back faces of the Face Orientation overlay Differential Revision: https://developer.blender.org/D6262 Reviewed by Jeroen Bakker
This commit is contained in:
parent
958d0d4236
commit
9c1134015c
|
@ -327,6 +327,8 @@ const bTheme U_theme_default = {
|
|||
.face = RGBA(0xffffff12),
|
||||
.face_select = RGBA(0xffa5526c),
|
||||
.face_dot = RGBA(0xff8a00ff),
|
||||
.face_back = RGBA(0xff0000b3),
|
||||
.face_front = RGBA(0x0000ffb3),
|
||||
.extra_edge_len = RGBA(0x150806ff),
|
||||
.extra_edge_angle = RGBA(0x4d4d00ff),
|
||||
.extra_face_angle = RGBA(0x0000ccff),
|
||||
|
|
|
@ -163,6 +163,8 @@ static void do_versions_theme(const UserDef *userdef, bTheme *btheme)
|
|||
FROM_DEFAULT_V4_UCHAR(space_sequencer.anim_preview_range);
|
||||
FROM_DEFAULT_V4_UCHAR(space_text.line_numbers);
|
||||
FROM_DEFAULT_V4_UCHAR(tui.widget_text_cursor);
|
||||
FROM_DEFAULT_V4_UCHAR(space_view3d.face_back);
|
||||
FROM_DEFAULT_V4_UCHAR(space_view3d.face_front);
|
||||
}
|
||||
|
||||
#undef FROM_DEFAULT_V4_UCHAR
|
||||
|
|
|
@ -38,6 +38,7 @@ void OVERLAY_facing_cache_init(OVERLAY_Data *vedata)
|
|||
|
||||
GPUShader *sh = OVERLAY_shader_facing();
|
||||
pd->facing_grp = DRW_shgroup_create(sh, psl->facing_ps);
|
||||
DRW_shgroup_uniform_block_persistent(pd->facing_grp, "globalsBlock", G_draw.block_ubo);
|
||||
}
|
||||
|
||||
void OVERLAY_facing_cache_populate(OVERLAY_Data *vedata, Object *ob)
|
||||
|
|
|
@ -845,7 +845,7 @@ GPUShader *OVERLAY_shader_facing(void)
|
|||
datatoc_common_view_lib_glsl,
|
||||
datatoc_facing_vert_glsl,
|
||||
NULL},
|
||||
.frag = (const char *[]){datatoc_facing_frag_glsl, NULL},
|
||||
.frag = (const char *[]){datatoc_common_globals_lib_glsl, datatoc_facing_frag_glsl, NULL},
|
||||
.defs = (const char *[]){sh_cfg->def, NULL},
|
||||
});
|
||||
}
|
||||
|
@ -1314,4 +1314,4 @@ void OVERLAY_shader_free(void)
|
|||
for (int i = 0; i < sizeof(g_formats) / sizeof(void *); i++, format++) {
|
||||
MEM_SAFE_FREE(*format);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
uniform vec3 color_towards = vec3(0.0, 0.0, 1.0);
|
||||
uniform vec3 color_outwards = vec3(1.0, 0.0, 0.0);
|
||||
|
||||
out vec4 fragColor;
|
||||
|
||||
void main()
|
||||
{
|
||||
fragColor = vec4(gl_FrontFacing ? color_towards : color_outwards, 0.7);
|
||||
fragColor = gl_FrontFacing ? colorFaceFront : colorFaceBack;
|
||||
}
|
||||
|
|
|
@ -80,6 +80,8 @@ void DRW_globals_update(void)
|
|||
UI_GetThemeColor4fv(TH_EDGE_FACESEL, gb->colorEdgeFaceSelect);
|
||||
UI_GetThemeColor4fv(TH_FACE, gb->colorFace);
|
||||
UI_GetThemeColor4fv(TH_FACE_SELECT, gb->colorFaceSelect);
|
||||
UI_GetThemeColor4fv(TH_FACE_BACK, gb->colorFaceBack);
|
||||
UI_GetThemeColor4fv(TH_FACE_FRONT, gb->colorFaceFront);
|
||||
UI_GetThemeColor4fv(TH_NORMAL, gb->colorNormal);
|
||||
UI_GetThemeColor4fv(TH_VNORMAL, gb->colorVNormal);
|
||||
UI_GetThemeColor4fv(TH_LNORMAL, gb->colorLNormal);
|
||||
|
|
|
@ -34,7 +34,7 @@ struct ParticleSystem;
|
|||
struct ViewLayer;
|
||||
|
||||
#define UBO_FIRST_COLOR colorWire
|
||||
#define UBO_LAST_COLOR colorGridAxisZ
|
||||
#define UBO_LAST_COLOR colorFaceFront
|
||||
|
||||
/* Used as ubo but colors can be directly referenced as well */
|
||||
/* Keep in sync with: common_globals_lib.glsl (globalsBlock) */
|
||||
|
@ -109,6 +109,9 @@ typedef struct GlobalsUboStorage {
|
|||
float colorGridAxisY[4];
|
||||
float colorGridAxisZ[4];
|
||||
|
||||
float colorFaceBack[4];
|
||||
float colorFaceFront[4];
|
||||
|
||||
/* NOTE! Put all color before UBO_LAST_COLOR */
|
||||
float screenVecs[2][4]; /* padded as vec4 */
|
||||
float sizeViewport[2], sizeViewportInv[2]; /* packed as vec4 in glsl */
|
||||
|
|
|
@ -70,6 +70,9 @@ layout(std140) uniform globalsBlock
|
|||
vec4 colorGridAxisY;
|
||||
vec4 colorGridAxisZ;
|
||||
|
||||
vec4 colorFaceBack;
|
||||
vec4 colorFaceFront;
|
||||
|
||||
vec4 screenVecs[2];
|
||||
vec4 sizeViewport; /* Inverted size in zw. */
|
||||
|
||||
|
|
|
@ -99,6 +99,8 @@ typedef enum ThemeColorID {
|
|||
TH_EDGE_FACESEL,
|
||||
TH_FACE,
|
||||
TH_FACE_SELECT,
|
||||
TH_FACE_BACK,
|
||||
TH_FACE_FRONT,
|
||||
TH_NORMAL,
|
||||
TH_VNORMAL,
|
||||
TH_LNORMAL,
|
||||
|
|
|
@ -401,6 +401,12 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
|
|||
case TH_FACE_SELECT:
|
||||
cp = ts->face_select;
|
||||
break;
|
||||
case TH_FACE_BACK:
|
||||
cp = ts->face_back;
|
||||
break;
|
||||
case TH_FACE_FRONT:
|
||||
cp = ts->face_front;
|
||||
break;
|
||||
case TH_FACE_DOT:
|
||||
cp = ts->face_dot;
|
||||
break;
|
||||
|
|
|
@ -276,7 +276,7 @@ typedef struct ThemeSpace {
|
|||
unsigned char edge[4], edge_select[4];
|
||||
unsigned char edge_seam[4], edge_sharp[4], edge_facesel[4], edge_crease[4], edge_bevel[4];
|
||||
/** Solid faces. */
|
||||
unsigned char face[4], face_select[4];
|
||||
unsigned char face[4], face_select[4], face_back[4], face_front[4];
|
||||
/** selected color. */
|
||||
unsigned char face_dot[4];
|
||||
unsigned char extra_edge_len[4], extra_edge_angle[4], extra_face_angle[4], extra_face_area[4];
|
||||
|
|
|
@ -1900,6 +1900,16 @@ static void rna_def_userdef_theme_spaces_face(StructRNA *srna)
|
|||
RNA_def_property_array(prop, 4);
|
||||
RNA_def_property_ui_text(prop, "Freestyle Face Mark", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
|
||||
|
||||
prop = RNA_def_property(srna, "face_back", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 4);
|
||||
RNA_def_property_ui_text(prop, "Face Orientation Back", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
|
||||
|
||||
prop = RNA_def_property(srna, "face_front", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 4);
|
||||
RNA_def_property_ui_text(prop, "Face Orientation Front", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
|
||||
}
|
||||
|
||||
static void rna_def_userdef_theme_spaces_paint_curves(StructRNA *srna)
|
||||
|
|
Loading…
Reference in New Issue