UI: Add Look Developer Balls Size option

Note: Some adjustments were made compared to the diff mainly for code
readability and made the default ball size 150px.

Reviewed By: fclem

Differential Revision: http://developer.blender.org/D4793
This commit is contained in:
George Vogiatzis 2019-05-04 14:03:51 +02:00 committed by Clément Foucault
parent e474549da5
commit b8d806caf7
Notes: blender-bot 2023-02-14 07:45:38 +01:00
Referenced by issue #64093, Look Dev Preview's balls are huge!
5 changed files with 22 additions and 3 deletions

View File

@ -579,7 +579,9 @@ class USERPREF_PT_viewport_display(PreferencePanel, Panel):
flow = layout.grid_flow(row_major=False, columns=0, even_columns=True, even_rows=False, align=False)
flow.prop(view, "gizmo_size", text="Gizmo Size")
col = flow.column()
col.prop(view, "gizmo_size")
col.prop(view, "lookdev_ball_size")
flow.separator()

View File

@ -551,6 +551,10 @@ void BLO_version_defaults_userpref_blend(Main *bmain, UserDef *userdef)
userdef->vbocollectrate = 60;
userdef->vbotimeout = 120;
}
if (userdef->lookdev_ball_size == 0) {
userdef->lookdev_ball_size = 150;
}
}
if (userdef->pixelsize == 0.0f) {

View File

@ -76,7 +76,11 @@ void EEVEE_lookdev_cache_init(EEVEE_Data *vedata,
rcti rect;
ED_region_visible_rect(draw_ctx->ar, &rect);
const int ball_size = max_ii(BLI_rcti_size_x(&rect) * 0.1f, 100.0f) * U.dpi_fac;
/* Make the viewport width scale the lookdev balls a bit.
* Scale between 1000px and 2000px. */
const float viewport_scale = clamp_f(
BLI_rcti_size_x(&rect) / (2000.0f * U.dpi_fac), 0.5f, 1.0f);
const int ball_size = U.lookdev_ball_size * U.dpi_fac * viewport_scale;
if (ball_size != effects->ball_size || rect.xmax != effects->anchor[0] ||
rect.ymin != effects->anchor[1]) {

View File

@ -643,7 +643,7 @@ typedef struct UserDef {
char _pad3[4];
short gizmo_flag, gizmo_size;
short edit_studio_light;
char _pad6[2];
short lookdev_ball_size;
short vbotimeout, vbocollectrate;
short textimeout, texcollectrate;
int memcachelimit;

View File

@ -4108,6 +4108,15 @@ static void rna_def_userdef_view(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Gizmo Size", "Diameter of the gizmo");
RNA_def_property_update(prop, 0, "rna_userdef_update");
/* Lookdev */
prop = RNA_def_property(srna, "lookdev_ball_size", PROP_INT, PROP_PIXEL);
RNA_def_property_int_sdna(prop, NULL, "lookdev_ball_size");
RNA_def_property_range(prop, 50, 400);
RNA_def_property_int_default(prop, 150);
RNA_def_property_ui_text(
prop, "LookDev Balls Size", "Maximum diameter of the LookDev balls size");
RNA_def_property_update(prop, 0, "rna_userdef_update");
/* View2D Grid Displays */
prop = RNA_def_property(srna, "view2d_grid_spacing_min", PROP_INT, PROP_PIXEL);
RNA_def_property_int_sdna(prop, NULL, "v2d_min_gridsize");