[wip, win32, canvas] Correctly setup path index in segment_setup.glsl

This commit is contained in:
martinfouilleul 2023-07-03 11:02:04 +02:00
parent b61d8868d3
commit 899ad4c030
3 changed files with 9 additions and 8 deletions

View File

@ -116,6 +116,10 @@ int main()
mg_close_path();
mg_set_color_rgba(0, 1, 0, 1);
mg_fill();
mg_set_color_rgba(0, 1, 1, 1);
mg_rectangle_fill(120, 120, 200, 200);
/*
mg_move_to(400, 400);
mg_quadratic_to(600, 601, 800, 400);

View File

@ -150,9 +150,6 @@ void main()
while(opIndex >= 0)
{
// imageStore(outTexture, ivec2(sampleCoord), vec4(0, 1, 1, 1));
// return;
mg_gl_tile_op op = tileOpBuffer.elements[opIndex];
opIndex = op.next;

View File

@ -42,7 +42,7 @@ layout(binding = 6) restrict buffer tileOpBufferSSBO
layout(location = 0) uniform float scale;
layout(location = 1) uniform uint tileSize;
int push_segment(in vec2 p[4], int kind)
int push_segment(in vec2 p[4], int kind, int pathIndex)
{
int segIndex = atomicAdd(segmentCountBuffer.elements[0], 1);
@ -59,7 +59,7 @@ int push_segment(in vec2 p[4], int kind)
max(s.y, e.y));
segmentBuffer.elements[segIndex].kind = kind;
segmentBuffer.elements[segIndex].pathIndex = 0; ///
segmentBuffer.elements[segIndex].pathIndex = pathIndex;
segmentBuffer.elements[segIndex].windingIncrement = goingUp ? 1 : -1;
segmentBuffer.elements[segIndex].box = box;
@ -288,9 +288,9 @@ void bin_to_tiles(int segIndex)
}
}
void line_setup(vec2 p[4])
void line_setup(vec2 p[4], int pathIndex)
{
int segIndex = push_segment(p, MG_GL_LINE);
int segIndex = push_segment(p, MG_GL_LINE, pathIndex);
segmentBuffer.elements[segIndex].hullVertex = p[0];
bin_to_tiles(segIndex);
@ -307,7 +307,7 @@ void main()
case MG_GL_LINE:
{
vec2 p[4] = {elt.p[0]*scale, elt.p[1]*scale, vec2(0), vec2(0)};
line_setup(p);
line_setup(p, elt.pathIndex);
} break;
default: