diff options
-rw-r--r-- | source/blender/editors/space_node/drawnode.cc | 4 | ||||
-rw-r--r-- | source/blender/gpu/GPU_shader_shared.h | 4 | ||||
-rw-r--r-- | source/blender/gpu/shaders/gpu_shader_2D_nodelink_vert.glsl | 8 |
3 files changed, 9 insertions, 7 deletions
diff --git a/source/blender/editors/space_node/drawnode.cc b/source/blender/editors/space_node/drawnode.cc index 9f0bc5cacef..8474192ca23 100644 --- a/source/blender/editors/space_node/drawnode.cc +++ b/source/blender/editors/space_node/drawnode.cc @@ -2073,7 +2073,7 @@ void node_draw_link_bezier(const bContext &C, 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]); + copy_v4_v4(node_link_data.colors[i], colors[i]); } node_link_data.doArrow = drawarrow; node_link_data.doMuted = drawmuted; @@ -2086,7 +2086,7 @@ void node_draw_link_bezier(const bContext &C, GPUBatch *batch = g_batch_link.batch_single; GPUUniformBuf *ubo = GPU_uniformbuf_create_ex( - sizeof(node_link_data), &node_link_data, __func__); + sizeof(NodeLinkData), &node_link_data, __func__); GPU_batch_program_set_builtin(batch, GPU_SHADER_2D_NODELINK); GPU_batch_uniformbuf_bind(batch, "node_link_data", ubo); diff --git a/source/blender/gpu/GPU_shader_shared.h b/source/blender/gpu/GPU_shader_shared.h index f400e151487..334b974acd8 100644 --- a/source/blender/gpu/GPU_shader_shared.h +++ b/source/blender/gpu/GPU_shader_shared.h @@ -34,7 +34,9 @@ using blender::float4x4; struct NodeLinkData { float4 colors[3]; - float2 bezierPts[4]; + /* bezierPts Is actually a float2, but due to std140 each element needs to be aligned to 16 + * bytes. */ + float4 bezierPts[4]; bool1 doArrow; bool1 doMuted; float dim_factor; diff --git a/source/blender/gpu/shaders/gpu_shader_2D_nodelink_vert.glsl b/source/blender/gpu/shaders/gpu_shader_2D_nodelink_vert.glsl index 3d3a042de65..b83ea59a692 100644 --- a/source/blender/gpu/shaders/gpu_shader_2D_nodelink_vert.glsl +++ b/source/blender/gpu/shaders/gpu_shader_2D_nodelink_vert.glsl @@ -64,10 +64,10 @@ flat out int isMainLine; # define doMuted (domuted[0] != 0) #else -# define P0 node_link_data.bezierPts[0] -# define P1 node_link_data.bezierPts[1] -# define P2 node_link_data.bezierPts[2] -# define P3 node_link_data.bezierPts[3] +# define P0 node_link_data.bezierPts[0].xy +# define P1 node_link_data.bezierPts[1].xy +# define P2 node_link_data.bezierPts[2].xy +# define P3 node_link_data.bezierPts[3].xy # define cols node_link_data.colors # define doArrow node_link_data.doArrow # define doMuted node_link_data.doMuted |