{
    "QEP": {
        "QQEM": "0.43",
        "connections": [
            {
                "fromId": 0,
                "toId": 3
            },
            {
                "fromId": 3,
                "toId": 1
            }
        ],
        "exportDirectory": ".",
        "exportFlags": 2,
        "exportName": "tickershader",
        "nodes": [
            {
                "fragmentCode": [
                    "void main() {",
                    "    @nodes",
                    "    fragColor = fragColor * qt_Opacity;",
                    "}"
                ],
                "name": "Main",
                "nodeId": 0,
                "type": 0,
                "vertexCode": [
                    "void main() {",
                    "    texCoord = qt_MultiTexCoord0;",
                    "    if (origo == 0)",
                    "        fragCoord = vec2(qt_Vertex.x, iResolution.y - qt_Vertex.y);",
                    "    else if (origo == 1)",
                    "        fragCoord = qt_Vertex.xy;",
                    "    else if (origo == 2)",
                    "        fragCoord = vec2(iResolution.x - qt_Vertex.x, qt_Vertex.y);",
                    "    else",
                    "        fragCoord = vec2(iResolution.x - qt_Vertex.x, iResolution.y - qt_Vertex.y);",
                    "#if (HORIZONTAL == 1)",
                    "    fragCoord.x += displacement;",
                    "#else",
                    "    fragCoord.y += displacement;",
                    "#endif",
                    "    vec2 vertCoord = qt_Vertex.xy;",
                    "    @nodes",
                    "    gl_Position = qt_Matrix * vec4(vertCoord, 0.0, 1.0);",
                    "}"
                ],
                "x": 140,
                "y": 35.400001525878906
            },
            {
                "name": "Output",
                "nodeId": 1,
                "type": 1,
                "x": 140,
                "y": 592.5999755859375
            },
            {
                "description": "This is an empty node for creating custom effects.",
                "fragmentCode": [
                    "float createBars(float coord, float spacing, float strokeWidth) {",
                    "    float sbar = 1.0 / spacing;// * 0.5;",
                    "    float barWidth = strokeWidth / spacing;// * 0.5;",
                    "    float firstPos = -((tickLineWidth / spacing) * 0.5);",
                    "    float p = firstPos + coord * sbar;",
                    "    //float p = (coord - 0.5) * sbar;",
                    "    float bar = abs(2.0 * fract(p) - 1.0);",
                    "    float barSmoothness = smoothing / spacing;",
                    "    bar = smoothstep(1.0 - barWidth - barSmoothness, 1.0 - barWidth + barSmoothness, bar);",
                    "    return bar;",
                    "}",
                    "",
                    "@main",
                    "{",
                    "    float subLines = 0.0;",
                    "    float lines = 0.0;",
                    "#if (HORIZONTAL == 1)",
                    "    // sublines",
                    "    if (subTicksVisible) {",
                    "        if (flipped && fragCoord.y < iResolution.y * subTickLength)",
                    "            subLines += createBars(fragCoord.x, spacing * subTickScale, subTickLineWidth);",
                    "        if (!flipped && fragCoord.y > iResolution.y * (1.0 - subTickLength))",
                    "            subLines += createBars(fragCoord.x, spacing * subTickScale, subTickLineWidth);",
                    "    }",
                    "    // major lines",
                    "    lines += createBars(fragCoord.x, spacing, tickLineWidth);",
                    "#else",
                    "    // sublines",
                    "    if (subTicksVisible) {",
                    "        if (flipped && fragCoord.x < iResolution.x * subTickLength)",
                    "            subLines += createBars(fragCoord.y, spacing * subTickScale, subTickLineWidth);",
                    "        if (!flipped && fragCoord.x > iResolution.x * (1.0 - subTickLength))",
                    "            subLines += createBars(fragCoord.y, spacing * subTickScale, subTickLineWidth);",
                    "    }",
                    "    // major lines",
                    "    lines += createBars(fragCoord.y, spacing, tickLineWidth);",
                    "#endif",
                    "    // Combine lines, subLines below",
                    "    vec3 lineColor = vec3(0.0);",
                    "    float tickColorAlpha = lines * tickColor.a;",
                    "    float subTickColorAlpha = subLines * subTickColor.a;",
                    "    lineColor = mix(lineColor, subTickColor.rgb, subTickColorAlpha);",
                    "    lineColor = mix(lineColor, tickColor.rgb, tickColorAlpha);",
                    "    fragColor = vec4(lineColor, min(1.0, subTickColorAlpha + tickColorAlpha));",
                    "}"
                ],
                "name": "Grids",
                "nodeId": 3,
                "properties": [
                    {
                        "defaultValue": "0",
                        "name": "HORIZONTAL",
                        "type": "define",
                        "value": "0"
                    },
                    {
                        "defaultValue": "0",
                        "maxValue": "3",
                        "minValue": "0",
                        "name": "origo",
                        "type": "int",
                        "value": "0"
                    },
                    {
                        "defaultValue": "true",
                        "name": "subTicksVisible",
                        "type": "bool",
                        "value": "true"
                    },
                    {
                        "defaultValue": "50",
                        "maxValue": "100",
                        "minValue": "10",
                        "name": "spacing",
                        "type": "float",
                        "value": "50"
                    },
                    {
                        "defaultValue": "0.5",
                        "maxValue": "1",
                        "minValue": "0.1",
                        "name": "subTickLength",
                        "type": "float",
                        "value": "0.5"
                    },
                    {
                        "defaultValue": "0",
                        "maxValue": "500",
                        "minValue": "-500",
                        "name": "displacement",
                        "type": "float",
                        "value": "0"
                    },
                    {
                        "defaultValue": "0.5, 0.5, 0.5, 1",
                        "name": "subTickColor",
                        "type": "color",
                        "value": "0.5, 0.5, 0.5, 1"
                    },
                    {
                        "defaultValue": "1, 1, 1, 1",
                        "name": "tickColor",
                        "type": "color",
                        "value": "1, 1, 1, 1"
                    },
                    {
                        "defaultValue": "1",
                        "maxValue": "5",
                        "minValue": "0",
                        "name": "subTickLineWidth",
                        "type": "float",
                        "value": "1"
                    },
                    {
                        "defaultValue": "2",
                        "maxValue": "5",
                        "minValue": "0",
                        "name": "tickLineWidth",
                        "type": "float",
                        "value": "2"
                    },
                    {
                        "defaultValue": "1",
                        "maxValue": "5",
                        "minValue": "0",
                        "name": "smoothing",
                        "type": "float",
                        "value": "1"
                    },
                    {
                        "defaultValue": "0.2",
                        "maxValue": "1",
                        "minValue": "0",
                        "name": "subTickScale",
                        "type": "float",
                        "value": "0.2"
                    },
                    {
                        "defaultValue": "false",
                        "name": "flipped",
                        "type": "bool",
                        "value": "false"
                    }
                ],
                "type": 2,
                "x": 105,
                "y": 129.55999755859375
            }
        ],
        "version": 1
    }
}
