UI: Make spacing helpers DPI aware
Addition tomaster76ae9cbc
which was made independently of the spacing helpers introduced in2d6a9c9c
parent
a46cc43e6f
commit
3233c455d1
|
@ -2286,7 +2286,7 @@ OBSBasicPreview *OBSBasicPreview::Get()
|
|||
return OBSBasic::Get()->ui->preview;
|
||||
}
|
||||
|
||||
static obs_source_t *CreateLabel()
|
||||
static obs_source_t *CreateLabel(float pixelRatio)
|
||||
{
|
||||
OBSDataAutoRelease settings = obs_data_create();
|
||||
OBSDataAutoRelease font = obs_data_create();
|
||||
|
@ -2299,7 +2299,7 @@ static obs_source_t *CreateLabel()
|
|||
obs_data_set_string(font, "face", "Monospace");
|
||||
#endif
|
||||
obs_data_set_int(font, "flags", 1); // Bold text
|
||||
obs_data_set_int(font, "size", 16);
|
||||
obs_data_set_int(font, "size", 16 * pixelRatio);
|
||||
|
||||
obs_data_set_obj(settings, "font", font);
|
||||
obs_data_set_bool(settings, "outline", true);
|
||||
|
@ -2350,7 +2350,8 @@ static void DrawLabel(OBSSource source, vec3 &pos, vec3 &viewport)
|
|||
gs_matrix_pop();
|
||||
}
|
||||
|
||||
static void DrawSpacingLine(vec3 &start, vec3 &end, vec3 &viewport)
|
||||
static void DrawSpacingLine(vec3 &start, vec3 &end, vec3 &viewport,
|
||||
float pixelRatio)
|
||||
{
|
||||
matrix4 transform;
|
||||
matrix4_identity(&transform);
|
||||
|
@ -2373,7 +2374,8 @@ static void DrawSpacingLine(vec3 &start, vec3 &end, vec3 &viewport)
|
|||
vec2 scale;
|
||||
vec2_set(&scale, viewport.x, viewport.y);
|
||||
|
||||
DrawLine(start.x, start.y, end.x, end.y, HANDLE_RADIUS / 2, scale);
|
||||
DrawLine(start.x, start.y, end.x, end.y,
|
||||
pixelRatio * (HANDLE_RADIUS / 2), scale);
|
||||
|
||||
gs_matrix_pop();
|
||||
|
||||
|
@ -2384,7 +2386,7 @@ static void DrawSpacingLine(vec3 &start, vec3 &end, vec3 &viewport)
|
|||
}
|
||||
|
||||
static void RenderSpacingHelper(int sourceIndex, vec3 &start, vec3 &end,
|
||||
vec3 &viewport)
|
||||
vec3 &viewport, float pixelRatio)
|
||||
{
|
||||
bool horizontal = (sourceIndex == 2 || sourceIndex == 3);
|
||||
|
||||
|
@ -2418,7 +2420,8 @@ static void RenderSpacingHelper(int sourceIndex, vec3 &start, vec3 &end,
|
|||
vec3_div(&labelSize, &labelSize, &viewport);
|
||||
|
||||
vec3 labelMargin;
|
||||
vec3_set(&labelMargin, SPACER_LABEL_MARGIN, SPACER_LABEL_MARGIN, 1.0f);
|
||||
vec3_set(&labelMargin, SPACER_LABEL_MARGIN * pixelRatio,
|
||||
SPACER_LABEL_MARGIN * pixelRatio, 1.0f);
|
||||
vec3_div(&labelMargin, &labelMargin, &viewport);
|
||||
|
||||
vec3_set(&labelPos, end.x, end.y, end.z);
|
||||
|
@ -2433,7 +2436,7 @@ static void RenderSpacingHelper(int sourceIndex, vec3 &start, vec3 &end,
|
|||
labelPos.x += labelMargin.x;
|
||||
}
|
||||
|
||||
DrawSpacingLine(start, end, viewport);
|
||||
DrawSpacingLine(start, end, viewport, pixelRatio);
|
||||
SetLabelText(sourceIndex, (int)px);
|
||||
DrawLabel(source, labelPos, viewport);
|
||||
}
|
||||
|
@ -2559,24 +2562,25 @@ void OBSBasicPreview::DrawSpacingHelpers()
|
|||
// Draw spacer lines and labels
|
||||
vec3 start, end;
|
||||
|
||||
float pixelRatio = main->GetDevicePixelRatio();
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (!spacerLabel[i])
|
||||
spacerLabel[i] = CreateLabel();
|
||||
spacerLabel[i] = CreateLabel(pixelRatio);
|
||||
}
|
||||
|
||||
vec3_set(&start, top.x, 0.0f, 1.0f);
|
||||
vec3_set(&end, top.x, top.y, 1.0f);
|
||||
RenderSpacingHelper(0, start, end, viewport);
|
||||
RenderSpacingHelper(0, start, end, viewport, pixelRatio);
|
||||
|
||||
vec3_set(&start, bottom.x, 1.0f - bottom.y, 1.0f);
|
||||
vec3_set(&end, bottom.x, 1.0f, 1.0f);
|
||||
RenderSpacingHelper(1, start, end, viewport);
|
||||
RenderSpacingHelper(1, start, end, viewport, pixelRatio);
|
||||
|
||||
vec3_set(&start, 0.0f, left.y, 1.0f);
|
||||
vec3_set(&end, left.x, left.y, 1.0f);
|
||||
RenderSpacingHelper(2, start, end, viewport);
|
||||
RenderSpacingHelper(2, start, end, viewport, pixelRatio);
|
||||
|
||||
vec3_set(&start, 1.0f - right.x, right.y, 1.0f);
|
||||
vec3_set(&end, 1.0f, right.y, 1.0f);
|
||||
RenderSpacingHelper(3, start, end, viewport);
|
||||
RenderSpacingHelper(3, start, end, viewport, pixelRatio);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue