     }
 
     write_alpha_select(style);
-    write_color(color, style, color_flip);
+    write_color0(color, style, color_flip);
+    write_color1(color, style, color_flip);
 
 #ifdef WR_FEATURE_TRANSFORM
     TransformVertexInfo vi = write_transform_vertex(segment_rect,

    }
}

void write_color(vec4 color, float style, bool flip) {
    vec2 modulate;

    switch (int(style)) {

    }

    vColor0 = vec4(color.rgb * modulate.x, color.a);
}

void write_color1(vec4 color, float style, bool flip) {
    vec2 modulate;

    switch (int(style)) {
        case BORDER_STYLE_GROOVE:
        {
            modulate = flip ? vec2(1.3, 0.7) : vec2(0.7, 1.3);
            break;
        }
        case BORDER_STYLE_RIDGE:
        {
            modulate = flip ? vec2(0.7, 1.3) : vec2(1.3, 0.7);
            break;
        }
        default:
            modulate = vec2(1.0);
            break;
    }

    vColor1 = vec4(color.rgb * modulate.y, color.a);
}

