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:
Diffstat (limited to 'source/blender/editors/interface/interface_panel.c')
-rw-r--r--source/blender/editors/interface/interface_panel.c109
1 files changed, 71 insertions, 38 deletions
diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c
index 2b170ea546b..3afdf3361d8 100644
--- a/source/blender/editors/interface/interface_panel.c
+++ b/source/blender/editors/interface/interface_panel.c
@@ -50,7 +50,9 @@
#include "BKE_context.h"
#include "BKE_screen.h"
-#include "BIF_gl.h"
+#include "GPU_colors.h"
+#include "GPU_primitives.h"
+
#include "BIF_glutil.h"
#include "WM_api.h"
@@ -330,15 +332,15 @@ static void ui_offset_panel_block(uiBlock *block)
#if 0 /*UNUSED 2.5*/
static void uiPanelPush(uiBlock *block)
{
- glPushMatrix();
+ gpuPushMatrix();
if (block->panel)
- glTranslatef((float)block->panel->ofsx, (float)block->panel->ofsy, 0.0);
+ gpuTranslate((float)block->panel->ofsx, (float)block->panel->ofsy, 0.0);
}
static void uiPanelPop(uiBlock *UNUSED(block))
{
- glPopMatrix();
+ gpuPopMatrix();
}
#endif
@@ -371,18 +373,21 @@ static void ui_draw_tria_rect(const rctf *rect, char dir)
static void ui_draw_anti_x(float x1, float y1, float x2, float y2)
{
-
/* set antialias line */
glEnable(GL_LINE_SMOOTH);
glEnable(GL_BLEND);
glLineWidth(2.0);
-
- fdrawline(x1, y1, x2, y2);
- fdrawline(x1, y2, x2, y1);
-
+
+ gpuImmediateFormat_V2(); // DOODLE: an X, two thick lines, mono
+ gpuBegin(GL_LINES);
+ gpuAppendLinef(x1, y1, x2, y2);
+ gpuAppendLinef(x1, y2, x2, y1);
+ gpuEnd();
+ gpuImmediateUnformat();
+
glLineWidth(1.0);
-
+
glDisable(GL_LINE_SMOOTH);
glDisable(GL_BLEND);
@@ -412,13 +417,21 @@ static void ui_draw_panel_scalewidget(rcti *rect)
dy = 0.5f * (ymax - ymin);
glEnable(GL_BLEND);
- glColor4ub(255, 255, 255, 50);
- fdrawline(xmin, ymin, xmax, ymax);
- fdrawline(xmin + dx, ymin, xmax, ymax - dy);
+
+ gpuImmediateFormat_C4_V2(); // DOODLE: scale widget, fixed number of colored lines
+ gpuBegin(GL_LINES);
+
+ gpuColor4x(CPACK_WHITE, 0.196f);
+ gpuAppendLinef(xmin, ymin, xmax, ymax);
+ gpuAppendLinef(xmin + dx, ymin, xmax, ymax - dy);
- glColor4ub(0, 0, 0, 50);
- fdrawline(xmin, ymin + 1, xmax, ymax + 1);
- fdrawline(xmin + dx, ymin + 1, xmax, ymax - dy + 1);
+ gpuColor4x(CPACK_BLACK, 0.196f);
+ gpuAppendLinef(xmin, ymin + 1, xmax, ymax + 1);
+ gpuAppendLinef(xmin + dx, ymin + 1, xmax, ymax - dy + 1);
+
+ gpuEnd();
+ gpuImmediateUnformat();
+
glDisable(GL_BLEND);
}
@@ -436,15 +449,23 @@ static void ui_draw_panel_dragwidget(const rctf *rect)
dy = 0.333f * (ymax - ymin);
glEnable(GL_BLEND);
- glColor4ub(255, 255, 255, 50);
- fdrawline(xmin, ymax, xmax, ymin);
- fdrawline(xmin + dx, ymax, xmax, ymin + dy);
- fdrawline(xmin + 2 * dx, ymax, xmax, ymin + 2 * dy);
-
- glColor4ub(0, 0, 0, 50);
- fdrawline(xmin, ymax + 1, xmax, ymin + 1);
- fdrawline(xmin + dx, ymax + 1, xmax, ymin + dy + 1);
- fdrawline(xmin + 2 * dx, ymax + 1, xmax, ymin + 2 * dy + 1);
+
+ gpuImmediateFormat_C4_V2(); // DOODLE: draw widge, 6 mono lines
+ gpuBegin(GL_LINES);
+
+ gpuColor4x(CPACK_WHITE, 0.196f);
+ gpuAppendLinef(xmin, ymax, xmax, ymin);
+ gpuAppendLinef(xmin + dx, ymax, xmax, ymin + dy);
+ gpuAppendLinef(xmin + 2 * dx, ymax, xmax, ymin + 2 * dy);
+
+ gpuColor4x(CPACK_BLACK, 0.196f);
+ gpuAppendLinef(xmin, ymax + 1, xmax, ymin + 1);
+ gpuAppendLinef(xmin + dx, ymax + 1, xmax, ymin + dy + 1);
+ gpuAppendLinef(xmin + 2 * dx, ymax + 1, xmax, ymin + 2 * dy + 1);
+
+ gpuEnd();
+ gpuImmediateUnformat();
+
glDisable(GL_BLEND);
}
@@ -519,32 +540,44 @@ void ui_draw_aligned_panel(uiStyle *style, uiBlock *block, rcti *rect)
if (btheme->tui.panel.show_header) {
/* draw with background color */
- glEnable(GL_BLEND);
- glColor4ubv((unsigned char *)btheme->tui.panel.header);
- glRectf(minx, headrect.ymin + 1, maxx, y);
+ gpuCurrentColor4ubv((unsigned char *)btheme->tui.panel.header);
+ gpuSingleFilledRectf(minx, headrect.ymin + 1, maxx, y);
+
+ gpuImmediateFormat_V2(); // DOODLE: 2 lines, mono
+ gpuBegin(GL_LINES);
- fdrawline(minx, y, maxx, y);
- fdrawline(minx, y, maxx, y);
+ gpuAppendLinef(minx, y, maxx, y);
+
+ gpuAppendLinef(minx, y, maxx, y);
+
+ gpuEnd();
+ gpuImmediateUnformat();
}
else if (!(panel->runtime_flag & PNL_FIRST)) {
/* draw embossed separator */
minx += 5.0f / block->aspect;
maxx -= 5.0f / block->aspect;
-
- glColor4f(0.0f, 0.0f, 0.0f, 0.5f);
- fdrawline(minx, y, maxx, y);
- glColor4f(1.0f, 1.0f, 1.0f, 0.25f);
- fdrawline(minx, y - 1, maxx, y - 1);
- glDisable(GL_BLEND);
+
+ gpuImmediateFormat_C4_V2(); // DOODLE: 2 lines, colored
+ gpuBegin(GL_LINES);
+
+ gpuColor4x(CPACK_BLACK, 0.500f);
+ gpuAppendLinef(minx, y, maxx, y);
+
+ gpuColor4x(CPACK_WHITE, 0.250f);
+ gpuAppendLinef(minx, y - 1, maxx, y - 1);
+
+ gpuEnd();
+ gpuImmediateUnformat();
}
glDisable(GL_BLEND);
}
-
+
/* horizontal title */
if (!(panel->flag & PNL_CLOSEDX)) {
ui_draw_aligned_panel_header(style, block, &headrect, 'h');
-
+
/* itemrect smaller */
itemrect.xmax = headrect.xmax - 5.0f / block->aspect;
itemrect.xmin = itemrect.xmax - BLI_rcti_size_y(&headrect);