From 89792bcae9dfed7cc474e2915142f729a52df213 Mon Sep 17 00:00:00 2001 From: VodBox Date: Thu, 19 Mar 2020 23:25:24 +1300 Subject: [PATCH] UI: Remove unnecessary vertices for preview This change reduces the number of triangles drawn using a TRISTRIP while still producing the same shapes for parts of the preview. --- UI/window-basic-main.cpp | 3 +-- UI/window-basic-preview.cpp | 22 ++++++---------------- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 8de00ebf4..591bc59bb 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -1452,9 +1452,8 @@ void OBSBasic::InitPrimitives() gs_render_start(true); gs_vertex2f(0.0f, 0.0f); gs_vertex2f(0.0f, 1.0f); - gs_vertex2f(1.0f, 1.0f); gs_vertex2f(1.0f, 0.0f); - gs_vertex2f(0.0f, 0.0f); + gs_vertex2f(1.0f, 1.0f); box = gs_render_save(); gs_render_start(true); diff --git a/UI/window-basic-preview.cpp b/UI/window-basic-preview.cpp index cc444c2ae..6b278495e 100644 --- a/UI/window-basic-preview.cpp +++ b/UI/window-basic-preview.cpp @@ -1514,10 +1514,9 @@ static void DrawLine(float x1, float y1, float x2, float y2, float thickness, gs_vertex2f(x1, y1); gs_vertex2f(x1 + (xSide * (thickness / scale.x)), y1 + (ySide * (thickness / scale.y))); + gs_vertex2f(x2, y2); gs_vertex2f(x2 + (xSide * (thickness / scale.x)), y2 + (ySide * (thickness / scale.y))); - gs_vertex2f(x2, y2); - gs_vertex2f(x1, y1); gs_vertbuffer_t *line = gs_render_save(); @@ -1532,24 +1531,17 @@ static void DrawRect(float thickness, vec2 scale) gs_vertex2f(0.0f, 0.0f); gs_vertex2f(0.0f + (thickness / scale.x), 0.0f); + gs_vertex2f(0.0f, 1.0f); gs_vertex2f(0.0f + (thickness / scale.x), 1.0f); - gs_vertex2f(0.0f, 1.0f); - gs_vertex2f(0.0f, 0.0f); - gs_vertex2f(0.0f, 1.0f); gs_vertex2f(0.0f, 1.0f - (thickness / scale.y)); + gs_vertex2f(1.0f, 1.0f); gs_vertex2f(1.0f, 1.0f - (thickness / scale.y)); - gs_vertex2f(1.0f, 1.0f); - gs_vertex2f(0.0f, 1.0f); - gs_vertex2f(1.0f, 1.0f); gs_vertex2f(1.0f - (thickness / scale.x), 1.0f); + gs_vertex2f(1.0f, 0.0f); gs_vertex2f(1.0f - (thickness / scale.x), 0.0f); - gs_vertex2f(1.0f, 0.0f); - gs_vertex2f(1.0f, 1.0f); - gs_vertex2f(1.0f, 0.0f); gs_vertex2f(1.0f, 0.0f + (thickness / scale.y)); - gs_vertex2f(0.0f, 0.0f + (thickness / scale.y)); gs_vertex2f(0.0f, 0.0f); - gs_vertex2f(1.0f, 0.0f); + gs_vertex2f(0.0f, 0.0f + (thickness / scale.y)); gs_vertbuffer_t *rect = gs_render_save(); @@ -1897,10 +1889,8 @@ void OBSBasicPreview::DrawSceneEditing() gs_vertex2f(0.0f, 0.0f); gs_vertex2f(1.0f, 0.0f); - gs_vertex2f(1.0f, 1.0f); - gs_vertex2f(1.0f, 1.0f); - gs_vertex2f(0.0f, 0.0f); gs_vertex2f(0.0f, 1.0f); + gs_vertex2f(1.0f, 1.0f); rectFill = gs_render_save(); }