Overlay: Split theme colors and sizes into different structs
Centralize processing of each and allow more semanticaly correct references.
This commit is contained in:
committed by
Clément Foucault
parent
17d8650d2d
commit
27a8c00157
@@ -235,180 +235,187 @@ void Resources::update_clip_planes(const State &state)
|
||||
void Resources::update_theme_settings(const DRWContext *ctx, const State &state)
|
||||
{
|
||||
using namespace math;
|
||||
GlobalsUboStorage *gb = &theme_settings;
|
||||
GlobalsUboStorage &gb = theme;
|
||||
|
||||
auto rgba_uchar_to_float = [](uchar r, uchar b, uchar g, uchar a) {
|
||||
return float4(r, g, b, a) / 255.0f;
|
||||
};
|
||||
|
||||
UI_GetThemeColor4fv(TH_WIRE, gb->color_wire);
|
||||
UI_GetThemeColor4fv(TH_WIRE_EDIT, gb->color_wire_edit);
|
||||
UI_GetThemeColor4fv(TH_ACTIVE, gb->color_active);
|
||||
UI_GetThemeColor4fv(TH_SELECT, gb->color_select);
|
||||
gb->color_library_select = rgba_uchar_to_float(0x88, 0xFF, 0xFF, 155);
|
||||
gb->color_library = rgba_uchar_to_float(0x55, 0xCC, 0xCC, 155);
|
||||
UI_GetThemeColor4fv(TH_TRANSFORM, gb->color_transform);
|
||||
UI_GetThemeColor4fv(TH_LIGHT, gb->color_light);
|
||||
UI_GetThemeColor4fv(TH_SPEAKER, gb->color_speaker);
|
||||
UI_GetThemeColor4fv(TH_CAMERA, gb->color_camera);
|
||||
UI_GetThemeColor4fv(TH_CAMERA_PATH, gb->color_camera_path);
|
||||
UI_GetThemeColor4fv(TH_EMPTY, gb->color_empty);
|
||||
UI_GetThemeColor4fv(TH_VERTEX, gb->color_vertex);
|
||||
UI_GetThemeColor4fv(TH_VERTEX_SELECT, gb->color_vertex_select);
|
||||
UI_GetThemeColor4fv(TH_VERTEX_UNREFERENCED, gb->color_vertex_unreferenced);
|
||||
gb->color_vertex_missing_data = rgba_uchar_to_float(0xB0, 0x00, 0xB0, 0xFF);
|
||||
UI_GetThemeColor4fv(TH_EDITMESH_ACTIVE, gb->color_edit_mesh_active);
|
||||
UI_GetThemeColor4fv(TH_EDGE_SELECT, gb->color_edge_select);
|
||||
UI_GetThemeColor4fv(TH_EDGE_MODE_SELECT, gb->color_edge_mode_select);
|
||||
UI_GetThemeColor4fv(TH_GP_VERTEX, gb->color_gpencil_vertex);
|
||||
UI_GetThemeColor4fv(TH_GP_VERTEX_SELECT, gb->color_gpencil_vertex_select);
|
||||
UI_GetThemeColor4fv(TH_WIRE, gb.colors.wire);
|
||||
UI_GetThemeColor4fv(TH_WIRE_EDIT, gb.colors.wire_edit);
|
||||
UI_GetThemeColor4fv(TH_ACTIVE, gb.colors.active);
|
||||
UI_GetThemeColor4fv(TH_SELECT, gb.colors.select);
|
||||
gb.colors.library_select = rgba_uchar_to_float(0x88, 0xFF, 0xFF, 155);
|
||||
gb.colors.library = rgba_uchar_to_float(0x55, 0xCC, 0xCC, 155);
|
||||
UI_GetThemeColor4fv(TH_TRANSFORM, gb.colors.transform);
|
||||
UI_GetThemeColor4fv(TH_LIGHT, gb.colors.light);
|
||||
UI_GetThemeColor4fv(TH_SPEAKER, gb.colors.speaker);
|
||||
UI_GetThemeColor4fv(TH_CAMERA, gb.colors.camera);
|
||||
UI_GetThemeColor4fv(TH_CAMERA_PATH, gb.colors.camera_path);
|
||||
UI_GetThemeColor4fv(TH_EMPTY, gb.colors.empty);
|
||||
UI_GetThemeColor4fv(TH_VERTEX, gb.colors.vert);
|
||||
UI_GetThemeColor4fv(TH_VERTEX_SELECT, gb.colors.vert_select);
|
||||
UI_GetThemeColor4fv(TH_VERTEX_UNREFERENCED, gb.colors.vert_unreferenced);
|
||||
gb.colors.vert_missing_data = rgba_uchar_to_float(0xB0, 0x00, 0xB0, 0xFF);
|
||||
UI_GetThemeColor4fv(TH_EDITMESH_ACTIVE, gb.colors.edit_mesh_active);
|
||||
UI_GetThemeColor4fv(TH_EDGE_SELECT, gb.colors.edge_select);
|
||||
UI_GetThemeColor4fv(TH_EDGE_MODE_SELECT, gb.colors.edge_mode_select);
|
||||
UI_GetThemeColor4fv(TH_GP_VERTEX, gb.colors.gpencil_vertex);
|
||||
UI_GetThemeColor4fv(TH_GP_VERTEX_SELECT, gb.colors.gpencil_vertex_select);
|
||||
|
||||
UI_GetThemeColor4fv(TH_EDGE_SEAM, gb->color_edge_seam);
|
||||
UI_GetThemeColor4fv(TH_EDGE_SHARP, gb->color_edge_sharp);
|
||||
UI_GetThemeColor4fv(TH_EDGE_CREASE, gb->color_edge_crease);
|
||||
UI_GetThemeColor4fv(TH_EDGE_BEVEL, gb->color_edge_bweight);
|
||||
UI_GetThemeColor4fv(TH_EDGE_FACESEL, gb->color_edge_face_select);
|
||||
UI_GetThemeColor4fv(TH_FACE, gb->color_face);
|
||||
UI_GetThemeColor4fv(TH_FACE_SELECT, gb->color_face_select);
|
||||
UI_GetThemeColor4fv(TH_FACE_MODE_SELECT, gb->color_face_mode_select);
|
||||
UI_GetThemeColor4fv(TH_FACE_RETOPOLOGY, gb->color_face_retopology);
|
||||
UI_GetThemeColor4fv(TH_FACE_BACK, gb->color_face_back);
|
||||
UI_GetThemeColor4fv(TH_FACE_FRONT, gb->color_face_front);
|
||||
UI_GetThemeColor4fv(TH_NORMAL, gb->color_normal);
|
||||
UI_GetThemeColor4fv(TH_VNORMAL, gb->color_vnormal);
|
||||
UI_GetThemeColor4fv(TH_LNORMAL, gb->color_lnormal);
|
||||
UI_GetThemeColor4fv(TH_FACE_DOT, gb->color_facedot);
|
||||
UI_GetThemeColor4fv(TH_SKIN_ROOT, gb->color_skinroot);
|
||||
UI_GetThemeColor4fv(TH_BACK, gb->color_background);
|
||||
UI_GetThemeColor4fv(TH_BACK_GRAD, gb->color_background_gradient);
|
||||
UI_GetThemeColor4fv(TH_TRANSPARENT_CHECKER_PRIMARY, gb->color_checker_primary);
|
||||
UI_GetThemeColor4fv(TH_TRANSPARENT_CHECKER_SECONDARY, gb->color_checker_secondary);
|
||||
gb->size_checker = UI_GetThemeValuef(TH_TRANSPARENT_CHECKER_SIZE);
|
||||
gb->fresnel_mix_edit = ((U.gpu_flag & USER_GPU_FLAG_FRESNEL_EDIT) == 0) ? 0.0f : 1.0f;
|
||||
UI_GetThemeColor4fv(TH_V3D_CLIPPING_BORDER, gb->color_clipping_border);
|
||||
UI_GetThemeColor4fv(TH_EDGE_SEAM, gb.colors.edge_seam);
|
||||
UI_GetThemeColor4fv(TH_EDGE_SHARP, gb.colors.edge_sharp);
|
||||
UI_GetThemeColor4fv(TH_EDGE_CREASE, gb.colors.edge_crease);
|
||||
UI_GetThemeColor4fv(TH_EDGE_BEVEL, gb.colors.edge_bweight);
|
||||
UI_GetThemeColor4fv(TH_EDGE_FACESEL, gb.colors.edge_face_select);
|
||||
UI_GetThemeColor4fv(TH_FACE, gb.colors.face);
|
||||
UI_GetThemeColor4fv(TH_FACE_SELECT, gb.colors.face_select);
|
||||
UI_GetThemeColor4fv(TH_FACE_MODE_SELECT, gb.colors.face_mode_select);
|
||||
UI_GetThemeColor4fv(TH_FACE_RETOPOLOGY, gb.colors.face_retopology);
|
||||
UI_GetThemeColor4fv(TH_FACE_BACK, gb.colors.face_back);
|
||||
UI_GetThemeColor4fv(TH_FACE_FRONT, gb.colors.face_front);
|
||||
UI_GetThemeColor4fv(TH_NORMAL, gb.colors.normal);
|
||||
UI_GetThemeColor4fv(TH_VNORMAL, gb.colors.vnormal);
|
||||
UI_GetThemeColor4fv(TH_LNORMAL, gb.colors.lnormal);
|
||||
UI_GetThemeColor4fv(TH_FACE_DOT, gb.colors.facedot);
|
||||
UI_GetThemeColor4fv(TH_SKIN_ROOT, gb.colors.skinroot);
|
||||
UI_GetThemeColor4fv(TH_BACK, gb.colors.background);
|
||||
UI_GetThemeColor4fv(TH_BACK_GRAD, gb.colors.background_gradient);
|
||||
UI_GetThemeColor4fv(TH_TRANSPARENT_CHECKER_PRIMARY, gb.colors.checker_primary);
|
||||
UI_GetThemeColor4fv(TH_TRANSPARENT_CHECKER_SECONDARY, gb.colors.checker_secondary);
|
||||
gb.sizes.checker = UI_GetThemeValuef(TH_TRANSPARENT_CHECKER_SIZE);
|
||||
gb.fresnel_mix_edit = ((U.gpu_flag & USER_GPU_FLAG_FRESNEL_EDIT) == 0) ? 0.0f : 1.0f;
|
||||
UI_GetThemeColor4fv(TH_V3D_CLIPPING_BORDER, gb.colors.clipping_border);
|
||||
|
||||
/* Custom median color to slightly affect the edit mesh colors. */
|
||||
gb->color_edit_mesh_middle = interpolate(gb->color_vertex_select, gb->color_wire_edit, 0.35f);
|
||||
gb.colors.edit_mesh_middle = interpolate(gb.colors.vert_select, gb.colors.wire_edit, 0.35f);
|
||||
/* Desaturate. */
|
||||
gb->color_edit_mesh_middle = float4(
|
||||
float3(dot(gb->color_edit_mesh_middle.xyz(), float3(0.3333f))),
|
||||
gb->color_edit_mesh_middle.w);
|
||||
gb.colors.edit_mesh_middle = float4(
|
||||
float3(dot(gb.colors.edit_mesh_middle.xyz(), float3(0.3333f))),
|
||||
gb.colors.edit_mesh_middle.w);
|
||||
|
||||
#ifdef WITH_FREESTYLE
|
||||
UI_GetThemeColor4fv(TH_FREESTYLE_EDGE_MARK, gb->color_edge_freestyle);
|
||||
UI_GetThemeColor4fv(TH_FREESTYLE_FACE_MARK, gb->color_face_freestyle);
|
||||
UI_GetThemeColor4fv(TH_FREESTYLE_EDGE_MARK, gb.colors.edge_freestyle);
|
||||
UI_GetThemeColor4fv(TH_FREESTYLE_FACE_MARK, gb.colors.face_freestyle);
|
||||
#else
|
||||
gb->color_edge_freestyle = float4(0.0f);
|
||||
gb->color_face_freestyle = float4(0.0f);
|
||||
gb.colors.edge_freestyle = float4(0.0f);
|
||||
gb.colors.face_freestyle = float4(0.0f);
|
||||
#endif
|
||||
|
||||
UI_GetThemeColor4fv(TH_TEXT, gb->color_text);
|
||||
UI_GetThemeColor4fv(TH_TEXT_HI, gb->color_text_hi);
|
||||
UI_GetThemeColor4fv(TH_TEXT, gb.colors.text);
|
||||
UI_GetThemeColor4fv(TH_TEXT_HI, gb.colors.text_hi);
|
||||
|
||||
/* Bone colors */
|
||||
UI_GetThemeColor4fv(TH_BONE_POSE, gb->color_bone_pose);
|
||||
UI_GetThemeColor4fv(TH_BONE_POSE_ACTIVE, gb->color_bone_pose_active);
|
||||
UI_GetThemeColorShade4fv(TH_EDGE_SELECT, 60, gb->color_bone_active);
|
||||
UI_GetThemeColorShade4fv(TH_EDGE_SELECT, -20, gb->color_bone_select);
|
||||
UI_GetThemeColorBlendShade4fv(TH_WIRE, TH_BONE_POSE, 0.15f, 0, gb->color_bone_pose_active_unsel);
|
||||
UI_GetThemeColor4fv(TH_BONE_POSE, gb.colors.bone_pose);
|
||||
UI_GetThemeColor4fv(TH_BONE_POSE_ACTIVE, gb.colors.bone_pose_active);
|
||||
UI_GetThemeColorShade4fv(TH_EDGE_SELECT, 60, gb.colors.bone_active);
|
||||
UI_GetThemeColorShade4fv(TH_EDGE_SELECT, -20, gb.colors.bone_select);
|
||||
UI_GetThemeColorBlendShade4fv(TH_WIRE, TH_BONE_POSE, 0.15f, 0, gb.colors.bone_pose_active_unsel);
|
||||
UI_GetThemeColorBlendShade3fv(
|
||||
TH_WIRE_EDIT, TH_EDGE_SELECT, 0.15f, 0, gb->color_bone_active_unsel);
|
||||
gb->color_bone_pose_no_target = rgba_uchar_to_float(255, 150, 0, 80);
|
||||
gb->color_bone_pose_ik = rgba_uchar_to_float(255, 255, 0, 80);
|
||||
gb->color_bone_pose_spline_ik = rgba_uchar_to_float(200, 255, 0, 80);
|
||||
gb->color_bone_pose_constraint = rgba_uchar_to_float(0, 255, 120, 80);
|
||||
UI_GetThemeColor4fv(TH_BONE_SOLID, gb->color_bone_solid);
|
||||
UI_GetThemeColor4fv(TH_BONE_LOCKED_WEIGHT, gb->color_bone_locked);
|
||||
gb->color_bone_ik_line = float4(0.8f, 0.8f, 0.0f, 1.0f);
|
||||
gb->color_bone_ik_line_no_target = float4(0.8f, 0.5f, 0.2f, 1.0f);
|
||||
gb->color_bone_ik_line_spline = float4(0.8f, 0.8f, 0.2f, 1.0f);
|
||||
TH_WIRE_EDIT, TH_EDGE_SELECT, 0.15f, 0, gb.colors.bone_active_unsel);
|
||||
gb.colors.bone_pose_no_target = rgba_uchar_to_float(255, 150, 0, 80);
|
||||
gb.colors.bone_pose_ik = rgba_uchar_to_float(255, 255, 0, 80);
|
||||
gb.colors.bone_pose_spline_ik = rgba_uchar_to_float(200, 255, 0, 80);
|
||||
gb.colors.bone_pose_constraint = rgba_uchar_to_float(0, 255, 120, 80);
|
||||
UI_GetThemeColor4fv(TH_BONE_SOLID, gb.colors.bone_solid);
|
||||
UI_GetThemeColor4fv(TH_BONE_LOCKED_WEIGHT, gb.colors.bone_locked);
|
||||
gb.colors.bone_ik_line = float4(0.8f, 0.8f, 0.0f, 1.0f);
|
||||
gb.colors.bone_ik_line_no_target = float4(0.8f, 0.5f, 0.2f, 1.0f);
|
||||
gb.colors.bone_ik_line_spline = float4(0.8f, 0.8f, 0.2f, 1.0f);
|
||||
|
||||
/* Curve */
|
||||
UI_GetThemeColor4fv(TH_HANDLE_FREE, gb->color_handle_free);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_AUTO, gb->color_handle_auto);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_VECT, gb->color_handle_vect);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_ALIGN, gb->color_handle_align);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_AUTOCLAMP, gb->color_handle_autoclamp);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_SEL_FREE, gb->color_handle_sel_free);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_SEL_AUTO, gb->color_handle_sel_auto);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_SEL_VECT, gb->color_handle_sel_vect);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_SEL_ALIGN, gb->color_handle_sel_align);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_SEL_AUTOCLAMP, gb->color_handle_sel_autoclamp);
|
||||
UI_GetThemeColor4fv(TH_NURB_ULINE, gb->color_nurb_uline);
|
||||
UI_GetThemeColor4fv(TH_NURB_VLINE, gb->color_nurb_vline);
|
||||
UI_GetThemeColor4fv(TH_NURB_SEL_ULINE, gb->color_nurb_sel_uline);
|
||||
UI_GetThemeColor4fv(TH_NURB_SEL_VLINE, gb->color_nurb_sel_vline);
|
||||
UI_GetThemeColor4fv(TH_ACTIVE_SPLINE, gb->color_active_spline);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_FREE, gb.colors.handle_free);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_AUTO, gb.colors.handle_auto);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_VECT, gb.colors.handle_vect);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_ALIGN, gb.colors.handle_align);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_AUTOCLAMP, gb.colors.handle_autoclamp);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_SEL_FREE, gb.colors.handle_sel_free);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_SEL_AUTO, gb.colors.handle_sel_auto);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_SEL_VECT, gb.colors.handle_sel_vect);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_SEL_ALIGN, gb.colors.handle_sel_align);
|
||||
UI_GetThemeColor4fv(TH_HANDLE_SEL_AUTOCLAMP, gb.colors.handle_sel_autoclamp);
|
||||
UI_GetThemeColor4fv(TH_NURB_ULINE, gb.colors.nurb_uline);
|
||||
UI_GetThemeColor4fv(TH_NURB_VLINE, gb.colors.nurb_vline);
|
||||
UI_GetThemeColor4fv(TH_NURB_SEL_ULINE, gb.colors.nurb_sel_uline);
|
||||
UI_GetThemeColor4fv(TH_NURB_SEL_VLINE, gb.colors.nurb_sel_vline);
|
||||
UI_GetThemeColor4fv(TH_ACTIVE_SPLINE, gb.colors.active_spline);
|
||||
|
||||
UI_GetThemeColor4fv(TH_CFRAME, gb->color_current_frame);
|
||||
UI_GetThemeColor4fv(TH_FRAME_BEFORE, gb->color_before_frame);
|
||||
UI_GetThemeColor4fv(TH_FRAME_AFTER, gb->color_after_frame);
|
||||
UI_GetThemeColor4fv(TH_CFRAME, gb.colors.current_frame);
|
||||
UI_GetThemeColor4fv(TH_FRAME_BEFORE, gb.colors.before_frame);
|
||||
UI_GetThemeColor4fv(TH_FRAME_AFTER, gb.colors.after_frame);
|
||||
|
||||
/* Meta-ball. */
|
||||
gb->color_mball_radius = rgba_uchar_to_float(0xA0, 0x30, 0x30, 0xFF);
|
||||
gb->color_mball_radius_select = rgba_uchar_to_float(0xF0, 0xA0, 0xA0, 0xFF);
|
||||
gb->color_mball_stiffness = rgba_uchar_to_float(0x30, 0xA0, 0x30, 0xFF);
|
||||
gb->color_mball_stiffness_select = rgba_uchar_to_float(0xA0, 0xF0, 0xA0, 0xFF);
|
||||
gb.colors.mball_radius = rgba_uchar_to_float(0xA0, 0x30, 0x30, 0xFF);
|
||||
gb.colors.mball_radius_select = rgba_uchar_to_float(0xF0, 0xA0, 0xA0, 0xFF);
|
||||
gb.colors.mball_stiffness = rgba_uchar_to_float(0x30, 0xA0, 0x30, 0xFF);
|
||||
gb.colors.mball_stiffness_select = rgba_uchar_to_float(0xA0, 0xF0, 0xA0, 0xFF);
|
||||
|
||||
/* Grid */
|
||||
UI_GetThemeColorShade4fv(TH_GRID, 10, gb->color_grid);
|
||||
UI_GetThemeColorShade4fv(TH_GRID, 10, gb.colors.grid);
|
||||
/* Emphasize division lines lighter instead of darker, if background is darker than grid. */
|
||||
const bool is_bg_darker = reduce_add(gb->color_grid.xyz()) + 0.12f >
|
||||
reduce_add(gb->color_background.xyz());
|
||||
UI_GetThemeColorShade4fv(TH_GRID, (is_bg_darker) ? 20 : -10, gb->color_grid_emphasis);
|
||||
const bool is_bg_darker = reduce_add(gb.colors.grid.xyz()) + 0.12f >
|
||||
reduce_add(gb.colors.background.xyz());
|
||||
UI_GetThemeColorShade4fv(TH_GRID, (is_bg_darker) ? 20 : -10, gb.colors.grid_emphasis);
|
||||
/* Grid Axis */
|
||||
UI_GetThemeColorBlendShade4fv(TH_GRID, TH_AXIS_X, 0.5f, -10, gb->color_grid_axis_x);
|
||||
UI_GetThemeColorBlendShade4fv(TH_GRID, TH_AXIS_Y, 0.5f, -10, gb->color_grid_axis_y);
|
||||
UI_GetThemeColorBlendShade4fv(TH_GRID, TH_AXIS_Z, 0.5f, -10, gb->color_grid_axis_z);
|
||||
UI_GetThemeColorBlendShade4fv(TH_GRID, TH_AXIS_X, 0.5f, -10, gb.colors.grid_axis_x);
|
||||
UI_GetThemeColorBlendShade4fv(TH_GRID, TH_AXIS_Y, 0.5f, -10, gb.colors.grid_axis_y);
|
||||
UI_GetThemeColorBlendShade4fv(TH_GRID, TH_AXIS_Z, 0.5f, -10, gb.colors.grid_axis_z);
|
||||
|
||||
UI_GetThemeColorShadeAlpha4fv(TH_TRANSFORM, 0, -80, gb->color_deselect);
|
||||
UI_GetThemeColorShadeAlpha4fv(TH_WIRE, 0, -30, gb->color_outline);
|
||||
UI_GetThemeColorShadeAlpha4fv(TH_LIGHT, 0, 255, gb->color_light_no_alpha);
|
||||
UI_GetThemeColorShadeAlpha4fv(TH_TRANSFORM, 0, -80, gb.colors.deselect);
|
||||
UI_GetThemeColorShadeAlpha4fv(TH_WIRE, 0, -30, gb.colors.outline);
|
||||
UI_GetThemeColorShadeAlpha4fv(TH_LIGHT, 0, 255, gb.colors.light_no_alpha);
|
||||
|
||||
/* UV colors */
|
||||
UI_GetThemeColor4fv(TH_UV_SHADOW, gb->color_uv_shadow);
|
||||
|
||||
gb->size_pixel = U.pixelsize;
|
||||
gb->size_object_center = (UI_GetThemeValuef(TH_OBCENTER_DIA) + 1.0f) * U.pixelsize;
|
||||
gb->size_light_center = (UI_GetThemeValuef(TH_OBCENTER_DIA) + 1.5f) * U.pixelsize;
|
||||
gb->size_light_circle = U.pixelsize * 9.0f;
|
||||
gb->size_light_circle_shadow = gb->size_light_circle + U.pixelsize * 3.0f;
|
||||
|
||||
/* M_SQRT2 to be at least the same size of the old square */
|
||||
gb->size_vertex = vertex_size_get();
|
||||
gb->size_vertex_gpencil = U.pixelsize * UI_GetThemeValuef(TH_GP_VERTEX_SIZE);
|
||||
gb->size_face_dot = U.pixelsize * UI_GetThemeValuef(TH_FACEDOT_SIZE);
|
||||
gb->size_edge = U.pixelsize * max_ff(1.0f, UI_GetThemeValuef(TH_EDGE_WIDTH)) / 2.0f;
|
||||
gb->size_edge_fix = U.pixelsize * (0.5f + 2.0f * (1.0f * (gb->size_edge * float(M_SQRT1_2))));
|
||||
|
||||
gb->pixel_fac = (state.rv3d) ? state.rv3d->pixsize : 1.0f;
|
||||
|
||||
gb->size_viewport = float4(ctx->viewport_size_get(), 1.0f / ctx->viewport_size_get());
|
||||
UI_GetThemeColor4fv(TH_UV_SHADOW, gb.colors.uv_shadow);
|
||||
|
||||
/* Color management. */
|
||||
{
|
||||
float *color = gb->UBO_FIRST_COLOR;
|
||||
float4 *color = reinterpret_cast<float4 *>(&gb.colors);
|
||||
float4 *color_end = color + (sizeof(gb.colors) / sizeof(float4));
|
||||
do {
|
||||
/* TODO: more accurate transform. */
|
||||
srgb_to_linearrgb_v4(color, color);
|
||||
color += 4;
|
||||
} while (color <= gb->UBO_LAST_COLOR);
|
||||
srgb_to_linearrgb_v4(&color->x, &color->x);
|
||||
} while (++color <= color_end);
|
||||
}
|
||||
|
||||
gb.sizes.pixel = 1.0f;
|
||||
gb.sizes.object_center = UI_GetThemeValuef(TH_OBCENTER_DIA) + 1.0f;
|
||||
gb.sizes.light_center = UI_GetThemeValuef(TH_OBCENTER_DIA) + 1.5f;
|
||||
gb.sizes.light_circle = 9.0f;
|
||||
gb.sizes.light_circle_shadow = (gb.sizes.light_circle + 3.0f);
|
||||
|
||||
/* M_SQRT2 to be at least the same size of the old square */
|
||||
gb.sizes.vert = vertex_size_get();
|
||||
gb.sizes.vertex_gpencil = UI_GetThemeValuef(TH_GP_VERTEX_SIZE);
|
||||
gb.sizes.face_dot = UI_GetThemeValuef(TH_FACEDOT_SIZE);
|
||||
gb.sizes.edge = max_ff(1.0f, UI_GetThemeValuef(TH_EDGE_WIDTH)) / 2.0f;
|
||||
|
||||
/* Pixel size. */
|
||||
{
|
||||
float *size = reinterpret_cast<float *>(&gb.sizes);
|
||||
float *size_end = size + (sizeof(gb.sizes) / sizeof(float));
|
||||
do {
|
||||
*size *= U.pixelsize;
|
||||
} while (++size <= size_end);
|
||||
}
|
||||
|
||||
gb.pixel_fac = (state.rv3d) ? state.rv3d->pixsize : 1.0f;
|
||||
gb.size_viewport = float4(ctx->viewport_size_get(), 1.0f / ctx->viewport_size_get());
|
||||
|
||||
if (state.v3d) {
|
||||
const View3DShading &shading = state.v3d->shading;
|
||||
gb->backface_culling = (shading.type == OB_SOLID) &&
|
||||
(shading.flag & V3D_SHADING_BACKFACE_CULLING);
|
||||
gb.backface_culling = (shading.type == OB_SOLID) &&
|
||||
(shading.flag & V3D_SHADING_BACKFACE_CULLING);
|
||||
|
||||
if (is_selection() || state.is_depth_only_drawing) {
|
||||
/* This is bad as this makes a solid mode setting affect material preview / render mode
|
||||
* selection and auto-depth. But users are relying on this to work in scene using backface
|
||||
* culling in shading (see #136335 and #136418). */
|
||||
gb->backface_culling = (shading.flag & V3D_SHADING_BACKFACE_CULLING);
|
||||
gb.backface_culling = (shading.flag & V3D_SHADING_BACKFACE_CULLING);
|
||||
}
|
||||
}
|
||||
else {
|
||||
gb->backface_culling = false;
|
||||
gb.backface_culling = false;
|
||||
}
|
||||
|
||||
globals_buf.push_update();
|
||||
|
||||
Reference in New Issue
Block a user