diff options
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/gpencil/drawgpencil.c | 29 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_draw.c | 11 | ||||
-rw-r--r-- | source/blender/editors/space_node/drawnode.cc | 59 |
3 files changed, 30 insertions, 69 deletions
diff --git a/source/blender/editors/gpencil/drawgpencil.c b/source/blender/editors/gpencil/drawgpencil.c index 23b579b94f1..6f63529298c 100644 --- a/source/blender/editors/gpencil/drawgpencil.c +++ b/source/blender/editors/gpencil/drawgpencil.c @@ -61,12 +61,9 @@ #include "WM_api.h" -#include "GPU_batch.h" #include "GPU_immediate.h" #include "GPU_matrix.h" -#include "GPU_shader_shared.h" #include "GPU_state.h" -#include "GPU_uniform_buffer.h" #include "ED_gpencil.h" #include "ED_screen.h" @@ -192,27 +189,21 @@ static void gpencil_draw_stroke_3d(tGPDdraw *tgpw, }; immBindBuiltinProgram(GPU_SHADER_GPENCIL_STROKE); - + immUniform2fv("Viewport", viewport); + immUniform1f("pixsize", tgpw->rv3d->pixsize); float obj_scale = tgpw->ob ? (tgpw->ob->scale[0] + tgpw->ob->scale[1] + tgpw->ob->scale[2]) / 3.0f : 1.0f; - struct GPencilStrokeData gpencil_stroke_data; - copy_v2_v2(gpencil_stroke_data.viewport, viewport); - gpencil_stroke_data.pixsize = tgpw->rv3d->pixsize; - gpencil_stroke_data.objscale = obj_scale; + immUniform1f("objscale", obj_scale); int keep_size = (int)((tgpw->gpd) && (tgpw->gpd->flag & GP_DATA_STROKE_KEEPTHICKNESS)); - gpencil_stroke_data.keep_size = keep_size; - gpencil_stroke_data.pixfactor = tgpw->gpd->pixfactor; + immUniform1i("keep_size", keep_size); + immUniform1f("pixfactor", tgpw->gpd->pixfactor); /* xray mode always to 3D space to avoid wrong zdepth calculation (T60051) */ - gpencil_stroke_data.xraymode = GP_XRAY_3DSPACE; - gpencil_stroke_data.caps_start = tgpw->gps->caps[0]; - gpencil_stroke_data.caps_end = tgpw->gps->caps[1]; - gpencil_stroke_data.fill_stroke = tgpw->is_fill_stroke; - - GPUUniformBuf *ubo = GPU_uniformbuf_create_ex( - sizeof(struct GPencilStrokeData), &gpencil_stroke_data, __func__); - immBindUniformBuf("gpencil_stroke_data", ubo); + immUniform1i("xraymode", GP_XRAY_3DSPACE); + immUniform1i("caps_start", (int)tgpw->gps->caps[0]); + immUniform1i("caps_end", (int)tgpw->gps->caps[1]); + immUniform1i("fill_stroke", (int)tgpw->is_fill_stroke); /* draw stroke curve */ immBeginAtMost(GPU_PRIM_LINE_STRIP_ADJ, totpoints + cyclic_add + 2); @@ -264,8 +255,6 @@ static void gpencil_draw_stroke_3d(tGPDdraw *tgpw, immEnd(); immUnbindProgram(); - - GPU_uniformbuf_free(ubo); } /* ----- Strokes Drawing ------ */ diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c index f2fa375aa09..285c82b0fb3 100644 --- a/source/blender/editors/interface/interface_draw.c +++ b/source/blender/editors/interface/interface_draw.c @@ -57,7 +57,6 @@ #include "GPU_immediate.h" #include "GPU_immediate_util.h" #include "GPU_matrix.h" -#include "GPU_shader_shared.h" #include "GPU_state.h" #include "UI_interface.h" @@ -1385,16 +1384,10 @@ void ui_draw_but_UNITVEC(uiBut *but, GPU_matrix_scale_1f(size); GPUBatch *sphere = GPU_batch_preset_sphere(2); - struct SimpleLightingData simple_lighting_data; - copy_v4_fl4(simple_lighting_data.color, diffuse[0], diffuse[1], diffuse[2], 1.0f); - copy_v3_v3(simple_lighting_data.light, light); - GPUUniformBuf *ubo = GPU_uniformbuf_create_ex( - sizeof(struct SimpleLightingData), &simple_lighting_data, __func__); - GPU_batch_program_set_builtin(sphere, GPU_SHADER_SIMPLE_LIGHTING); - GPU_batch_uniformbuf_bind(sphere, "simple_lighting_data", ubo); + GPU_batch_uniform_4f(sphere, "color", diffuse[0], diffuse[1], diffuse[2], 1.0f); + GPU_batch_uniform_3fv(sphere, "light", light); GPU_batch_draw(sphere); - GPU_uniformbuf_free(ubo); /* Restore. */ GPU_face_culling(GPU_CULL_NONE); diff --git a/source/blender/editors/space_node/drawnode.cc b/source/blender/editors/space_node/drawnode.cc index 9f0bc5cacef..ba1c0b41a98 100644 --- a/source/blender/editors/space_node/drawnode.cc +++ b/source/blender/editors/space_node/drawnode.cc @@ -51,9 +51,7 @@ #include "GPU_immediate.h" #include "GPU_matrix.h" #include "GPU_platform.h" -#include "GPU_shader_shared.h" #include "GPU_state.h" -#include "GPU_uniform_buffer.h" #include "DRW_engine.h" @@ -1875,29 +1873,23 @@ static void nodelink_batch_draw(const SpaceNode &snode) } GPU_blend(GPU_BLEND_ALPHA); - NodeLinkInstanceData node_link_data; - UI_GetThemeColor4fv(TH_WIRE_INNER, node_link_data.colors[nodelink_get_color_id(TH_WIRE_INNER)]); - UI_GetThemeColor4fv(TH_WIRE, node_link_data.colors[nodelink_get_color_id(TH_WIRE)]); - UI_GetThemeColor4fv(TH_ACTIVE, node_link_data.colors[nodelink_get_color_id(TH_ACTIVE)]); - UI_GetThemeColor4fv(TH_EDGE_SELECT, - node_link_data.colors[nodelink_get_color_id(TH_EDGE_SELECT)]); - UI_GetThemeColor4fv(TH_REDALERT, node_link_data.colors[nodelink_get_color_id(TH_REDALERT)]); - node_link_data.expandSize = snode.runtime->aspect * LINK_WIDTH; - node_link_data.arrowSize = ARROW_SIZE; - - GPUUniformBuf *ubo = GPU_uniformbuf_create_ex(sizeof(node_link_data), &node_link_data, __func__); + float colors[6][4] = {{0.0f}}; + UI_GetThemeColor4fv(TH_WIRE_INNER, colors[nodelink_get_color_id(TH_WIRE_INNER)]); + UI_GetThemeColor4fv(TH_WIRE, colors[nodelink_get_color_id(TH_WIRE)]); + UI_GetThemeColor4fv(TH_ACTIVE, colors[nodelink_get_color_id(TH_ACTIVE)]); + UI_GetThemeColor4fv(TH_EDGE_SELECT, colors[nodelink_get_color_id(TH_EDGE_SELECT)]); + UI_GetThemeColor4fv(TH_REDALERT, colors[nodelink_get_color_id(TH_REDALERT)]); GPU_vertbuf_data_len_set(g_batch_link.inst_vbo, g_batch_link.count); GPU_vertbuf_use(g_batch_link.inst_vbo); /* force update. */ GPU_batch_program_set_builtin(g_batch_link.batch, GPU_SHADER_2D_NODELINK_INST); - GPU_batch_uniformbuf_bind(g_batch_link.batch, "node_link_data", ubo); + GPU_batch_uniform_4fv_array(g_batch_link.batch, "colors", 6, colors); + GPU_batch_uniform_1f(g_batch_link.batch, "expandSize", snode.runtime->aspect * LINK_WIDTH); + GPU_batch_uniform_1f(g_batch_link.batch, "arrowSize", ARROW_SIZE); GPU_batch_draw(g_batch_link.batch); - GPU_uniformbuf_unbind(ubo); - GPU_uniformbuf_free(ubo); - nodelink_batch_reset(); GPU_blend(GPU_BLEND_NONE); @@ -2068,32 +2060,19 @@ void node_draw_link_bezier(const bContext &C, copy_v4_v4(colors[2], link_preselection_highlight_color); } - NodeLinkData node_link_data; - for (int i = 0; i < 4; i++) { - copy_v2_v2(node_link_data.bezierPts[i], vec[i]); - } - for (int i = 0; i < 3; i++) { - copy_v2_v2(node_link_data.colors[i], colors[i]); - } - node_link_data.doArrow = drawarrow; - node_link_data.doMuted = drawmuted; - node_link_data.dim_factor = dim_factor; - node_link_data.thickness = thickness; - node_link_data.dash_factor = dash_factor; - node_link_data.dash_alpha = dash_alpha; - node_link_data.expandSize = snode.runtime->aspect * LINK_WIDTH; - node_link_data.arrowSize = ARROW_SIZE; - GPUBatch *batch = g_batch_link.batch_single; - GPUUniformBuf *ubo = GPU_uniformbuf_create_ex( - sizeof(node_link_data), &node_link_data, __func__); - GPU_batch_program_set_builtin(batch, GPU_SHADER_2D_NODELINK); - GPU_batch_uniformbuf_bind(batch, "node_link_data", ubo); + GPU_batch_uniform_2fv_array(batch, "bezierPts", 4, vec); + GPU_batch_uniform_4fv_array(batch, "colors", 3, colors); + GPU_batch_uniform_1f(batch, "expandSize", snode.runtime->aspect * LINK_WIDTH); + GPU_batch_uniform_1f(batch, "arrowSize", ARROW_SIZE); + GPU_batch_uniform_1i(batch, "doArrow", drawarrow); + GPU_batch_uniform_1i(batch, "doMuted", drawmuted); + GPU_batch_uniform_1f(batch, "dim_factor", dim_factor); + GPU_batch_uniform_1f(batch, "thickness", thickness); + GPU_batch_uniform_1f(batch, "dash_factor", dash_factor); + GPU_batch_uniform_1f(batch, "dash_alpha", dash_alpha); GPU_batch_draw(batch); - - GPU_uniformbuf_unbind(ubo); - GPU_uniformbuf_free(ubo); } } } |