Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Eisel <eiseljulian@gmail.com>2019-08-06 01:41:49 +0300
committerJulian Eisel <eiseljulian@gmail.com>2019-08-06 01:41:49 +0300
commit02aca1bfb758761ec9b3a1b00bf8652cfcd37a35 (patch)
treed8322351ba93ca4f23a947b0572065ae76873c8c /source/blender/draw/intern
parent6a468602200b68d34eb33d4fc598fb8774447a11 (diff)
parent43d4ac5db64f3bcb9d9238485734d5a5ade90855 (diff)
Merge branch 'temp-concurrent-viewport-theme' into temp-vr-draw-thread
Diffstat (limited to 'source/blender/draw/intern')
-rw-r--r--source/blender/draw/intern/draw_anim_viz.c4
-rw-r--r--source/blender/draw/intern/draw_armature.c58
-rw-r--r--source/blender/draw/intern/draw_cache.c2
-rw-r--r--source/blender/draw/intern/draw_common.c213
-rw-r--r--source/blender/draw/intern/draw_common.h13
-rw-r--r--source/blender/draw/intern/draw_view.c6
6 files changed, 177 insertions, 119 deletions
diff --git a/source/blender/draw/intern/draw_anim_viz.c b/source/blender/draw/intern/draw_anim_viz.c
index 72459309133..e62a6c0e19f 100644
--- a/source/blender/draw/intern/draw_anim_viz.c
+++ b/source/blender/draw/intern/draw_anim_viz.c
@@ -238,8 +238,8 @@ static void MPATH_cache_motion_path(MPATH_PassList *psl,
if ((avs->path_viewflag & (MOTIONPATH_VIEW_FNUMS)) || (show_kf_no && show_keyframes)) {
int i;
uchar col[4], col_kf[4];
- UI_GetThemeColor3ubv(TH_TEXT_HI, col);
- UI_GetThemeColor3ubv(TH_VERTEX_SELECT, col_kf);
+ DRW_theme_color_get_3ubv(TH_TEXT_HI, col);
+ DRW_theme_color_get_3ubv(TH_VERTEX_SELECT, col_kf);
col[3] = col_kf[3] = 255;
bMotionPathVert *mpv;
diff --git a/source/blender/draw/intern/draw_armature.c b/source/blender/draw/intern/draw_armature.c
index 30e51333f0f..96592564632 100644
--- a/source/blender/draw/intern/draw_armature.c
+++ b/source/blender/draw/intern/draw_armature.c
@@ -712,23 +712,23 @@ static bool set_pchan_color(short colCode,
}
else {
if ((boneflag & BONE_DRAW_ACTIVE) && (boneflag & BONE_SELECTED)) {
- UI_GetThemeColor4fv(TH_BONE_POSE_ACTIVE, fcolor);
+ DRW_theme_color_get_4fv(TH_BONE_POSE_ACTIVE, fcolor);
}
else if (boneflag & BONE_DRAW_ACTIVE) {
- UI_GetThemeColorBlendShade4fv(TH_WIRE, TH_BONE_POSE, 0.15f, 0, fcolor);
+ DRW_theme_color_blend_shade_get_4fv(TH_WIRE, TH_BONE_POSE, 0.15f, 0, fcolor);
}
else if (boneflag & BONE_SELECTED) {
- UI_GetThemeColor4fv(TH_BONE_POSE, fcolor);
+ DRW_theme_color_get_4fv(TH_BONE_POSE, fcolor);
}
else {
- UI_GetThemeColor4fv(TH_WIRE, fcolor);
+ DRW_theme_color_get_4fv(TH_WIRE, fcolor);
}
}
return true;
}
case PCHAN_COLOR_SOLID: {
- UI_GetThemeColor4fv(TH_BONE_SOLID, fcolor);
+ DRW_theme_color_get_4fv(TH_BONE_SOLID, fcolor);
if (bcolor) {
float solid_bcolor[3];
@@ -781,13 +781,13 @@ static bool set_pchan_color(short colCode,
}
else {
if (boneflag & BONE_DRAW_ACTIVE) {
- UI_GetThemeColorShade4fv(TH_BONE_POSE, 40, fcolor);
+ DRW_theme_color_shade_get_4fv(TH_BONE_POSE, 40, fcolor);
}
else if (boneflag & BONE_SELECTED) {
- UI_GetThemeColor4fv(TH_BONE_POSE, fcolor);
+ DRW_theme_color_get_4fv(TH_BONE_POSE, fcolor);
}
else {
- UI_GetThemeColor4fv(TH_BONE_SOLID, fcolor);
+ DRW_theme_color_get_4fv(TH_BONE_SOLID, fcolor);
}
}
@@ -814,13 +814,13 @@ static bool set_pchan_color(short colCode,
}
else {
if (boneflag & BONE_DRAW_ACTIVE) {
- UI_GetThemeColorShade4fv(TH_BONE_POSE, 10, fcolor);
+ DRW_theme_color_shade_get_4fv(TH_BONE_POSE, 10, fcolor);
}
else if (boneflag & BONE_SELECTED) {
- UI_GetThemeColorShade4fv(TH_BONE_POSE, -30, fcolor);
+ DRW_theme_color_shade_get_4fv(TH_BONE_POSE, -30, fcolor);
}
else {
- UI_GetThemeColorShade4fv(TH_BONE_SOLID, -30, fcolor);
+ DRW_theme_color_shade_get_4fv(TH_BONE_SOLID, -30, fcolor);
}
}
break;
@@ -842,7 +842,7 @@ static bool set_pchan_color(short colCode,
rgba_char_args_set((char *)cp, 0, 255, 120, 255);
}
else if (constflag) {
- UI_GetThemeColor4ubv(TH_BONE_POSE, cp);
+ DRW_theme_color_get_4ubv(TH_BONE_POSE, cp);
} /* PCHAN_HAS_ACTION */
rgb_uchar_to_float(fcolor, cp);
@@ -854,7 +854,7 @@ static bool set_pchan_color(short colCode,
fcolor[3] = 204.f / 255.f;
}
else {
- UI_GetThemeColorShade4fv(TH_BACK, -30, fcolor);
+ DRW_theme_color_shade_get_4fv(TH_BACK, -30, fcolor);
}
}
@@ -882,22 +882,22 @@ static void update_color(const Object *ob, const float const_color[4])
#define NO_ALPHA(c) (((c)[3] = 1.0f), (c))
- UI_GetThemeColor3fv(TH_SELECT, NO_ALPHA(g_theme.select_color));
- UI_GetThemeColorShade3fv(TH_EDGE_SELECT, 60, NO_ALPHA(g_theme.edge_select_color));
- UI_GetThemeColorShade3fv(TH_EDGE_SELECT, -20, NO_ALPHA(g_theme.bone_select_color));
- UI_GetThemeColor3fv(TH_WIRE, NO_ALPHA(g_theme.wire_color));
- UI_GetThemeColor3fv(TH_WIRE_EDIT, NO_ALPHA(g_theme.wire_edit_color));
- UI_GetThemeColor3fv(TH_BONE_SOLID, NO_ALPHA(g_theme.bone_solid_color));
- UI_GetThemeColorBlendShade3fv(
+ DRW_theme_color_get_3fv(TH_SELECT, NO_ALPHA(g_theme.select_color));
+ DRW_theme_color_shade_get_3fv(TH_EDGE_SELECT, 60, NO_ALPHA(g_theme.edge_select_color));
+ DRW_theme_color_shade_get_3fv(TH_EDGE_SELECT, -20, NO_ALPHA(g_theme.bone_select_color));
+ DRW_theme_color_get_3fv(TH_WIRE, NO_ALPHA(g_theme.wire_color));
+ DRW_theme_color_get_3fv(TH_WIRE_EDIT, NO_ALPHA(g_theme.wire_edit_color));
+ DRW_theme_color_get_3fv(TH_BONE_SOLID, NO_ALPHA(g_theme.bone_solid_color));
+ DRW_theme_color_blend_shade_get_3fv(
TH_WIRE_EDIT, TH_EDGE_SELECT, 0.15f, 0, NO_ALPHA(g_theme.bone_active_unselect_color));
- UI_GetThemeColor3fv(TH_BONE_POSE, NO_ALPHA(g_theme.bone_pose_color));
- UI_GetThemeColor3fv(TH_BONE_POSE_ACTIVE, NO_ALPHA(g_theme.bone_pose_active_color));
- UI_GetThemeColorBlendShade3fv(
+ DRW_theme_color_get_3fv(TH_BONE_POSE, NO_ALPHA(g_theme.bone_pose_color));
+ DRW_theme_color_get_3fv(TH_BONE_POSE_ACTIVE, NO_ALPHA(g_theme.bone_pose_active_color));
+ DRW_theme_color_blend_shade_get_3fv(
TH_WIRE, TH_BONE_POSE, 0.15f, 0, NO_ALPHA(g_theme.bone_pose_active_unselect_color));
- UI_GetThemeColor3fv(TH_TEXT_HI, NO_ALPHA(g_theme.text_hi_color));
- UI_GetThemeColor3fv(TH_TEXT, NO_ALPHA(g_theme.text_color));
- UI_GetThemeColor3fv(TH_VERTEX_SELECT, NO_ALPHA(g_theme.vertex_select_color));
- UI_GetThemeColor3fv(TH_VERTEX, NO_ALPHA(g_theme.vertex_color));
+ DRW_theme_color_get_3fv(TH_TEXT_HI, NO_ALPHA(g_theme.text_hi_color));
+ DRW_theme_color_get_3fv(TH_TEXT, NO_ALPHA(g_theme.text_color));
+ DRW_theme_color_get_3fv(TH_VERTEX_SELECT, NO_ALPHA(g_theme.vertex_select_color));
+ DRW_theme_color_get_3fv(TH_VERTEX, NO_ALPHA(g_theme.vertex_color));
#undef NO_ALPHA
}
@@ -1948,7 +1948,7 @@ static void draw_armature_edit(Object *ob)
/* Draw names of bone */
if (show_text && (arm->flag & ARM_DRAWNAMES)) {
uchar color[4];
- UI_GetThemeColor4ubv((eBone->flag & BONE_SELECTED) ? TH_TEXT_HI : TH_TEXT, color);
+ DRW_theme_color_get_4ubv((eBone->flag & BONE_SELECTED) ? TH_TEXT_HI : TH_TEXT, color);
float vec[3];
mid_v3_v3v3(vec, eBone->head, eBone->tail);
@@ -2094,7 +2094,7 @@ static void draw_armature_pose(Object *ob, const float const_color[4])
/* Draw names of bone */
if (show_text && (arm->flag & ARM_DRAWNAMES)) {
uchar color[4];
- UI_GetThemeColor4ubv(
+ DRW_theme_color_get_4ubv(
(arm->flag & ARM_POSEMODE) && (bone->flag & BONE_SELECTED) ? TH_TEXT_HI : TH_TEXT,
color);
float vec[3];
diff --git a/source/blender/draw/intern/draw_cache.c b/source/blender/draw/intern/draw_cache.c
index e2e98a2db5a..03f9ca3a59c 100644
--- a/source/blender/draw/intern/draw_cache.c
+++ b/source/blender/draw/intern/draw_cache.c
@@ -3951,7 +3951,7 @@ GPUBatch *DRW_cache_cursor_get(bool crosshair_lines)
if (crosshair_lines) {
uchar crosshair_color[3];
- UI_GetThemeColor3ubv(TH_VIEW_OVERLAY, crosshair_color);
+ DRW_theme_color_get_3ubv(TH_VIEW_OVERLAY, crosshair_color);
GPU_indexbuf_add_primitive_restart(&elb);
diff --git a/source/blender/draw/intern/draw_common.c b/source/blender/draw/intern/draw_common.c
index 5a27158bbc0..328c7fa903d 100644
--- a/source/blender/draw/intern/draw_common.c
+++ b/source/blender/draw/intern/draw_common.c
@@ -55,51 +55,37 @@ static struct GPUTexture *DRW_create_weight_colorramp_texture(void);
void DRW_globals_update(void)
{
GlobalsUboStorage *gb = &G_draw.block;
- float tmp1[4], tmp2[4];
-
- /* Explicitly access values of SPACE_VIEW3D here, don't use UI_SetTheme() to change global -
- * thread-unsafe - theme state. */
-
-#define DRW_GetThemeValuef(_id) UI_GetThemeValueTypef(_id, SPACE_VIEW3D)
-#define DRW_GetThemeColor4fv(_id, _col) UI_GetThemeColorType4fv(_id, SPACE_VIEW3D, _col)
-#define DRW_GetThemeColorBlendShade4fv(_id1, _id2, _col, _fac, _ofs) \
- DRW_GetThemeColor4fv(_id1, tmp1); \
- DRW_GetThemeColor4fv(_id2, tmp2); \
- UI_GetColorPtrBlendShade4fv(tmp1, tmp2, _col, _fac, _ofs)
-#define DRW_GetThemeColorShadeAlpha4fv(_id, _col, _ofs, _alphaofs) \
- DRW_GetThemeColor4fv(_id, _col); \
- UI_GetColorPtrShadeAlpha4fv(_col, _col, _ofs, _alphaofs)
-
- DRW_GetThemeColor4fv(TH_WIRE, gb->colorWire);
- DRW_GetThemeColor4fv(TH_WIRE_EDIT, gb->colorWireEdit);
- DRW_GetThemeColor4fv(TH_ACTIVE, gb->colorActive);
- DRW_GetThemeColor4fv(TH_SELECT, gb->colorSelect);
+
+ DRW_theme_color_get_4fv(TH_WIRE, gb->colorWire);
+ DRW_theme_color_get_4fv(TH_WIRE_EDIT, gb->colorWireEdit);
+ DRW_theme_color_get_4fv(TH_ACTIVE, gb->colorActive);
+ DRW_theme_color_get_4fv(TH_SELECT, gb->colorSelect);
UI_COLOR_RGBA_FROM_U8(0x88, 0xFF, 0xFF, 155, gb->colorLibrarySelect);
UI_COLOR_RGBA_FROM_U8(0x55, 0xCC, 0xCC, 155, gb->colorLibrary);
- DRW_GetThemeColor4fv(TH_TRANSFORM, gb->colorTransform);
- DRW_GetThemeColor4fv(TH_LIGHT, gb->colorLight);
- DRW_GetThemeColor4fv(TH_SPEAKER, gb->colorSpeaker);
- DRW_GetThemeColor4fv(TH_CAMERA, gb->colorCamera);
- DRW_GetThemeColor4fv(TH_EMPTY, gb->colorEmpty);
- DRW_GetThemeColor4fv(TH_VERTEX, gb->colorVertex);
- DRW_GetThemeColor4fv(TH_VERTEX_SELECT, gb->colorVertexSelect);
- DRW_GetThemeColor4fv(TH_VERTEX_UNREFERENCED, gb->colorVertexUnreferenced);
+ DRW_theme_color_get_4fv(TH_TRANSFORM, gb->colorTransform);
+ DRW_theme_color_get_4fv(TH_LIGHT, gb->colorLight);
+ DRW_theme_color_get_4fv(TH_SPEAKER, gb->colorSpeaker);
+ DRW_theme_color_get_4fv(TH_CAMERA, gb->colorCamera);
+ DRW_theme_color_get_4fv(TH_EMPTY, gb->colorEmpty);
+ DRW_theme_color_get_4fv(TH_VERTEX, gb->colorVertex);
+ DRW_theme_color_get_4fv(TH_VERTEX_SELECT, gb->colorVertexSelect);
+ DRW_theme_color_get_4fv(TH_VERTEX_UNREFERENCED, gb->colorVertexUnreferenced);
UI_COLOR_RGBA_FROM_U8(0xB0, 0x00, 0xB0, 0xFF, gb->colorVertexMissingData);
- DRW_GetThemeColor4fv(TH_EDITMESH_ACTIVE, gb->colorEditMeshActive);
- DRW_GetThemeColor4fv(TH_EDGE_SELECT, gb->colorEdgeSelect);
-
- DRW_GetThemeColor4fv(TH_EDGE_SEAM, gb->colorEdgeSeam);
- DRW_GetThemeColor4fv(TH_EDGE_SHARP, gb->colorEdgeSharp);
- DRW_GetThemeColor4fv(TH_EDGE_CREASE, gb->colorEdgeCrease);
- DRW_GetThemeColor4fv(TH_EDGE_BEVEL, gb->colorEdgeBWeight);
- DRW_GetThemeColor4fv(TH_EDGE_FACESEL, gb->colorEdgeFaceSelect);
- DRW_GetThemeColor4fv(TH_FACE, gb->colorFace);
- DRW_GetThemeColor4fv(TH_FACE_SELECT, gb->colorFaceSelect);
- DRW_GetThemeColor4fv(TH_NORMAL, gb->colorNormal);
- DRW_GetThemeColor4fv(TH_VNORMAL, gb->colorVNormal);
- DRW_GetThemeColor4fv(TH_LNORMAL, gb->colorLNormal);
- DRW_GetThemeColor4fv(TH_FACE_DOT, gb->colorFaceDot);
- DRW_GetThemeColor4fv(TH_BACK, gb->colorBackground);
+ DRW_theme_color_get_4fv(TH_EDITMESH_ACTIVE, gb->colorEditMeshActive);
+ DRW_theme_color_get_4fv(TH_EDGE_SELECT, gb->colorEdgeSelect);
+
+ DRW_theme_color_get_4fv(TH_EDGE_SEAM, gb->colorEdgeSeam);
+ DRW_theme_color_get_4fv(TH_EDGE_SHARP, gb->colorEdgeSharp);
+ DRW_theme_color_get_4fv(TH_EDGE_CREASE, gb->colorEdgeCrease);
+ DRW_theme_color_get_4fv(TH_EDGE_BEVEL, gb->colorEdgeBWeight);
+ DRW_theme_color_get_4fv(TH_EDGE_FACESEL, gb->colorEdgeFaceSelect);
+ DRW_theme_color_get_4fv(TH_FACE, gb->colorFace);
+ DRW_theme_color_get_4fv(TH_FACE_SELECT, gb->colorFaceSelect);
+ DRW_theme_color_get_4fv(TH_NORMAL, gb->colorNormal);
+ DRW_theme_color_get_4fv(TH_VNORMAL, gb->colorVNormal);
+ DRW_theme_color_get_4fv(TH_LNORMAL, gb->colorLNormal);
+ DRW_theme_color_get_4fv(TH_FACE_DOT, gb->colorFaceDot);
+ DRW_theme_color_get_4fv(TH_BACK, gb->colorBackground);
/* Custom median color to slightly affect the edit mesh colors. */
interp_v4_v4v4(gb->colorEditMeshMiddle, gb->colorVertexSelect, gb->colorWireEdit, 0.35f);
@@ -113,63 +99,61 @@ void DRW_globals_update(void)
interp_v4_v4v4(gb->colorDupli, gb->colorBackground, gb->colorWire, 0.3f);
#ifdef WITH_FREESTYLE
- UI_GetThemeColor4fv(TH_FREESTYLE_EDGE_MARK, gb->colorEdgeFreestyle);
- UI_GetThemeColor4fv(TH_FREESTYLE_FACE_MARK, gb->colorFaceFreestyle);
+ DRW_theme_color_get_4fv(TH_FREESTYLE_EDGE_MARK, gb->colorEdgeFreestyle);
+ DRW_theme_color_get_4fv(TH_FREESTYLE_FACE_MARK, gb->colorFaceFreestyle);
#else
zero_v4(gb->colorEdgeFreestyle);
zero_v4(gb->colorFaceFreestyle);
#endif
/* Curve */
- DRW_GetThemeColor4fv(TH_HANDLE_FREE, gb->colorHandleFree);
- DRW_GetThemeColor4fv(TH_HANDLE_AUTO, gb->colorHandleAuto);
- DRW_GetThemeColor4fv(TH_HANDLE_VECT, gb->colorHandleVect);
- DRW_GetThemeColor4fv(TH_HANDLE_ALIGN, gb->colorHandleAlign);
- DRW_GetThemeColor4fv(TH_HANDLE_AUTOCLAMP, gb->colorHandleAutoclamp);
- DRW_GetThemeColor4fv(TH_HANDLE_SEL_FREE, gb->colorHandleSelFree);
- DRW_GetThemeColor4fv(TH_HANDLE_SEL_AUTO, gb->colorHandleSelAuto);
- DRW_GetThemeColor4fv(TH_HANDLE_SEL_VECT, gb->colorHandleSelVect);
- DRW_GetThemeColor4fv(TH_HANDLE_SEL_ALIGN, gb->colorHandleSelAlign);
- DRW_GetThemeColor4fv(TH_HANDLE_SEL_AUTOCLAMP, gb->colorHandleSelAutoclamp);
- DRW_GetThemeColor4fv(TH_NURB_ULINE, gb->colorNurbUline);
- DRW_GetThemeColor4fv(TH_NURB_VLINE, gb->colorNurbVline);
- DRW_GetThemeColor4fv(TH_NURB_SEL_ULINE, gb->colorNurbSelUline);
- DRW_GetThemeColor4fv(TH_NURB_SEL_VLINE, gb->colorNurbSelVline);
- DRW_GetThemeColor4fv(TH_ACTIVE_SPLINE, gb->colorActiveSpline);
-
- DRW_GetThemeColor4fv(TH_BONE_POSE, gb->colorBonePose);
-
- DRW_GetThemeColor4fv(TH_CFRAME, gb->colorCurrentFrame);
+ DRW_theme_color_get_4fv(TH_HANDLE_FREE, gb->colorHandleFree);
+ DRW_theme_color_get_4fv(TH_HANDLE_AUTO, gb->colorHandleAuto);
+ DRW_theme_color_get_4fv(TH_HANDLE_VECT, gb->colorHandleVect);
+ DRW_theme_color_get_4fv(TH_HANDLE_ALIGN, gb->colorHandleAlign);
+ DRW_theme_color_get_4fv(TH_HANDLE_AUTOCLAMP, gb->colorHandleAutoclamp);
+ DRW_theme_color_get_4fv(TH_HANDLE_SEL_FREE, gb->colorHandleSelFree);
+ DRW_theme_color_get_4fv(TH_HANDLE_SEL_AUTO, gb->colorHandleSelAuto);
+ DRW_theme_color_get_4fv(TH_HANDLE_SEL_VECT, gb->colorHandleSelVect);
+ DRW_theme_color_get_4fv(TH_HANDLE_SEL_ALIGN, gb->colorHandleSelAlign);
+ DRW_theme_color_get_4fv(TH_HANDLE_SEL_AUTOCLAMP, gb->colorHandleSelAutoclamp);
+ DRW_theme_color_get_4fv(TH_NURB_ULINE, gb->colorNurbUline);
+ DRW_theme_color_get_4fv(TH_NURB_VLINE, gb->colorNurbVline);
+ DRW_theme_color_get_4fv(TH_NURB_SEL_ULINE, gb->colorNurbSelUline);
+ DRW_theme_color_get_4fv(TH_NURB_SEL_VLINE, gb->colorNurbSelVline);
+ DRW_theme_color_get_4fv(TH_ACTIVE_SPLINE, gb->colorActiveSpline);
+
+ DRW_theme_color_get_4fv(TH_BONE_POSE, gb->colorBonePose);
+
+ DRW_theme_color_get_4fv(TH_CFRAME, gb->colorCurrentFrame);
/* Grid */
- DRW_GetThemeColor4fv(TH_GRID, tmp1);
- UI_GetColorPtrShadeAlpha4fv(tmp1, gb->colorGrid, 10, 0);
+ DRW_theme_color_shade_get_4fv(TH_GRID, 10, gb->colorGrid);
/* emphasise division lines lighter instead of darker, if background is darker than grid */
- UI_GetColorPtrShadeAlpha4fv(
- tmp1,
- gb->colorGridEmphasise,
+ DRW_theme_color_shade_get_4fv(
+ TH_GRID,
(gb->colorGrid[0] + gb->colorGrid[1] + gb->colorGrid[2] + 0.12f >
gb->colorBackground[0] + gb->colorBackground[1] + gb->colorBackground[2]) ?
20 :
-10,
- 0);
+ gb->colorGridEmphasise);
/* Grid Axis */
- DRW_GetThemeColorBlendShade4fv(TH_GRID, TH_AXIS_X, gb->colorGridAxisX, 0.5f, -10);
- DRW_GetThemeColorBlendShade4fv(TH_GRID, TH_AXIS_Y, gb->colorGridAxisY, 0.5f, -10);
- DRW_GetThemeColorBlendShade4fv(TH_GRID, TH_AXIS_Z, gb->colorGridAxisZ, 0.5f, -10);
+ DRW_theme_color_blend_shade_get_4fv(TH_GRID, TH_AXIS_X, 0.5f, -10, gb->colorGridAxisX);
+ DRW_theme_color_blend_shade_get_4fv(TH_GRID, TH_AXIS_Y, 0.5f, -10, gb->colorGridAxisY);
+ DRW_theme_color_blend_shade_get_4fv(TH_GRID, TH_AXIS_Z, 0.5f, -10, gb->colorGridAxisZ);
- DRW_GetThemeColorShadeAlpha4fv(TH_TRANSFORM, gb->colorDeselect, 0, -80);
- DRW_GetThemeColorShadeAlpha4fv(TH_WIRE, gb->colorOutline, 0, -30);
- DRW_GetThemeColorShadeAlpha4fv(TH_LIGHT, gb->colorLightNoAlpha, 0, 255);
+ DRW_theme_color_shade_alpha_get_4fv(TH_TRANSFORM, 0, -80, gb->colorDeselect);
+ DRW_theme_color_shade_alpha_get_4fv(TH_WIRE, 0, -30, gb->colorOutline);
+ DRW_theme_color_shade_alpha_get_4fv(TH_LIGHT, 0, 255, gb->colorLightNoAlpha);
- gb->sizeLightCenter = (DRW_GetThemeValuef(TH_OBCENTER_DIA) + 1.5f) * U.pixelsize;
+ gb->sizeLightCenter = (DRW_theme_value_get_f(TH_OBCENTER_DIA) + 1.5f) * U.pixelsize;
gb->sizeLightCircle = U.pixelsize * 9.0f;
gb->sizeLightCircleShadow = gb->sizeLightCircle + U.pixelsize * 3.0f;
/* M_SQRT2 to be at least the same size of the old square */
gb->sizeVertex = U.pixelsize *
- (max_ff(1.0f, DRW_GetThemeValuef(TH_VERTEX_SIZE) * (float)M_SQRT2 / 2.0f));
- gb->sizeFaceDot = U.pixelsize * DRW_GetThemeValuef(TH_FACEDOT_SIZE);
+ (max_ff(1.0f, DRW_theme_value_get_f(TH_VERTEX_SIZE) * (float)M_SQRT2 / 2.0f));
+ gb->sizeFaceDot = U.pixelsize * DRW_theme_value_get_f(TH_FACEDOT_SIZE);
gb->sizeEdge = U.pixelsize * (1.0f / 2.0f); /* TODO Theme */
gb->sizeEdgeFix = U.pixelsize * (0.5f + 2.0f * (2.0f * (gb->sizeEdge * (float)M_SQRT1_2)));
@@ -226,11 +210,6 @@ void DRW_globals_update(void)
G_draw.weight_ramp = DRW_create_weight_colorramp_texture();
}
-
-#undef DRW_GetThemeValuef
-#undef DRW_GetThemeColor4fv
-#undef DRW_GetThemeColorBlendShade4fv
-#undef DRW_GetThemeColorShadeAlpha4fv
}
/* ********************************* SHGROUP ************************************* */
@@ -1266,11 +1245,77 @@ float *DRW_color_background_blend_get(int theme_id)
break;
}
- UI_GetThemeColorBlendShade4fv(theme_id, TH_BACK, 0.5, 0, ret);
+ DRW_theme_color_blend_shade_get_4fv(theme_id, TH_BACK, 0.5, 0, ret);
return ret;
}
+/* The following DRW_theme_color_/DRW_theme_value_ functions are wrappers around UI_GetThemeColor
+ * functions that for thread safety, don't rely on UI_SetTheme() being called beforehand. */
+
+int DRW_theme_value_get_i(int colorid)
+{
+ return UI_GetThemeValue(colorid);
+}
+float DRW_theme_value_get_f(int colorid)
+{
+ return UI_GetThemeValuef(colorid);
+}
+void DRW_theme_color_get_4fv(int colorid, float r_col[4])
+{
+ UI_GetThemeColorType4fv(colorid, SPACE_VIEW3D, r_col);
+}
+void DRW_theme_color_get_4ubv(int colorid, uchar r_col[4])
+{
+ UI_GetThemeColorType4ubv(colorid, SPACE_VIEW3D, r_col);
+}
+void DRW_theme_color_get_3fv(int colorid, float r_col[3])
+{
+ UI_GetThemeColorType3fv(colorid, SPACE_VIEW3D, r_col);
+}
+void DRW_theme_color_get_3ubv(int colorid, uchar r_col[3])
+{
+ UI_GetThemeColorType3ubv(colorid, SPACE_VIEW3D, r_col);
+}
+void DRW_theme_color_shade_get_4fv(int colorid, int offset, float r_col[4])
+{
+ float col[4];
+ DRW_theme_color_get_4fv(colorid, col);
+ UI_GetColorPtrShadeAlpha4fv(col, r_col, offset, 0);
+}
+void DRW_theme_color_shade_alpha_get_4fv(int colorid, int offset, int alphaoffset, float r_col[4])
+{
+ float col[4];
+ DRW_theme_color_get_4fv(colorid, col);
+ UI_GetColorPtrShadeAlpha4fv(col, r_col, offset, alphaoffset);
+}
+void DRW_theme_color_shade_get_3fv(int colorid, int offset, float r_col[3])
+{
+ float col[4];
+ DRW_theme_color_get_4fv(colorid, col);
+ UI_GetColorPtrShadeAlpha4fv(col, col, offset, 0);
+ copy_v3_v3(r_col, col);
+}
+void DRW_theme_color_blend_shade_get_4fv(
+ int colorid1, int colorid2, float fac, int offset, float r_col[4])
+{
+ float col1[4], col2[4];
+
+ DRW_theme_color_get_4fv(colorid1, col1);
+ DRW_theme_color_get_4fv(colorid2, col2);
+ UI_GetColorPtrBlendShade4fv(col1, col2, r_col, fac, offset);
+}
+void DRW_theme_color_blend_shade_get_3fv(
+ int colorid1, int colorid2, float fac, int offset, float r_col[3])
+{
+ float col1[4], col2[4], tmp[4];
+
+ DRW_theme_color_get_3fv(colorid1, col1);
+ DRW_theme_color_get_3fv(colorid2, col2);
+ UI_GetColorPtrBlendShade4fv(col1, col2, tmp, fac, offset);
+ copy_v3_v3(r_col, tmp);
+}
+
bool DRW_object_is_flat(Object *ob, int *r_axis)
{
float dim[3];
diff --git a/source/blender/draw/intern/draw_common.h b/source/blender/draw/intern/draw_common.h
index 05d7bafa00d..12f88fb84a6 100644
--- a/source/blender/draw/intern/draw_common.h
+++ b/source/blender/draw/intern/draw_common.h
@@ -219,6 +219,19 @@ struct GPUShader *volume_velocity_shader_get(bool use_needle);
struct DRWView *DRW_view_create_with_zoffset(const RegionView3D *rv3d, float offset);
+int DRW_theme_value_get_i(int colorid);
+float DRW_theme_value_get_f(int colorid);
+void DRW_theme_color_get_4fv(int colorid, float r_col[4]);
+void DRW_theme_color_get_4ubv(int colorid, uchar r_col[4]);
+void DRW_theme_color_get_3fv(int colorid, float r_col[3]);
+void DRW_theme_color_get_3ubv(int colorid, uchar r_col[3]);
+void DRW_theme_color_shade_get_4fv(int colorid, int offset, float r_col[4]);
+void DRW_theme_color_shade_alpha_get_4fv(int colorid, int offset, int alphaoffset, float r_col[4]);
+void DRW_theme_color_shade_get_3fv(int colorid, int offset, float r_col[3]);
+void DRW_theme_color_blend_shade_get_4fv(
+ int colorid1, int colorid2, float fac, int offset, float r_col[4]);
+void DRW_theme_color_blend_shade_get_3fv(
+ int colorid1, int colorid2, float fac, int offset, float r_col[3]);
int DRW_object_wire_theme_get(struct Object *ob, struct ViewLayer *view_layer, float **r_color);
float *DRW_color_background_blend_get(int theme_id);
diff --git a/source/blender/draw/intern/draw_view.c b/source/blender/draw/intern/draw_view.c
index 7aa2e007f79..6c88d9d9057 100644
--- a/source/blender/draw/intern/draw_view.c
+++ b/source/blender/draw/intern/draw_view.c
@@ -84,7 +84,7 @@ void DRW_draw_background(bool do_alpha_checker)
GPU_depth_test(true);
}
- else if (UI_GetThemeValue(TH_SHOW_BACK_GRAD)) {
+ else if (DRW_theme_value_get_i(TH_SHOW_BACK_GRAD)) {
float m[4][4];
unit_m4(m);
@@ -103,8 +103,8 @@ void DRW_draw_background(bool do_alpha_checker)
immBindBuiltinProgram(GPU_SHADER_2D_SMOOTH_COLOR_DITHER);
- UI_GetThemeColor3ubv(TH_BACK_GRAD, col_lo);
- UI_GetThemeColor3ubv(TH_BACK, col_hi);
+ DRW_theme_color_get_3ubv(TH_BACK_GRAD, col_lo);
+ DRW_theme_color_get_3ubv(TH_BACK, col_hi);
immBegin(GPU_PRIM_TRI_FAN, 4);
immAttr3ubv(color, col_lo);