export declare const assign_material_color = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n    #if defined(dMarkerType_uniform)\n        float marker = uMarker;\n    #elif defined(dMarkerType_groupInstance)\n        float marker = vMarker;\n    #endif\n    marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n#endif\n\n#if defined(dRenderVariant_color)\n    #if defined(dUsePalette)\n        vec4 material = vec4(texture2D(tPalette, vec2(vPaletteV, 0.5)).rgb, uAlpha);\n    #elif defined(dColorType_uniform)\n        vec4 material = vec4(uColor, uAlpha);\n    #elif defined(dColorType_varying)\n        vec4 material = vec4(vColor.rgb, uAlpha);\n    #endif\n\n    // mix material with overpaint\n    #if defined(dOverpaint)\n        material.rgb = mix(material.rgb, vOverpaint.rgb, vOverpaint.a);\n    #endif\n#elif defined(dRenderVariant_pick)\n    vec4 material = vColor;\n#elif defined(dRenderVariant_depth)\n    #ifdef enabledFragDepth\n        vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n    #else\n        vec4 material = packDepthToRGBA(gl_FragCoord.z);\n    #endif\n#elif defined(dRenderVariant_markingDepth)\n    if (marker > 0.0)\n        discard;\n    #ifdef enabledFragDepth\n        vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n    #else\n        vec4 material = packDepthToRGBA(gl_FragCoord.z);\n    #endif\n#elif defined(dRenderVariant_markingMask)\n    if (marker == 0.0)\n        discard;\n    float depthTest = 1.0;\n    if (uMarkingDepthTest) {\n        depthTest = (fragmentDepth >= getDepth(gl_FragCoord.xy / uDrawingBufferSize)) ? 1.0 : 0.0;\n    }\n    bool isHighlight = intMod(marker, 2.0) > 0.1;\n    float viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\n    float fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\n    if (fogFactor == 1.0)\n        discard;\n    vec4 material = vec4(0.0, depthTest, isHighlight ? 1.0 : 0.0, 1.0 - fogFactor);\n#endif\n\n// apply screendoor transparency\n#if defined(dTransparency)\n    float ta = 1.0 - vTransparency;\n\n    #if defined(dRenderVariant_pick)\n        if (ta < uPickingAlphaThreshold)\n            discard; // ignore so the element below can be picked\n    #else\n        #if defined(dRenderVariant_colorBlended)\n            float at = 0.0;\n\n            // shift by view-offset during multi-sample rendering to allow for blending\n            vec2 coord = gl_FragCoord.xy + uViewOffset * 0.25;\n\n            const mat4 thresholdMatrix = mat4(\n                1.0 / 17.0,  9.0 / 17.0,  3.0 / 17.0, 11.0 / 17.0,\n                13.0 / 17.0,  5.0 / 17.0, 15.0 / 17.0,  7.0 / 17.0,\n                4.0 / 17.0, 12.0 / 17.0,  2.0 / 17.0, 10.0 / 17.0,\n                16.0 / 17.0,  8.0 / 17.0, 14.0 / 17.0,  6.0 / 17.0\n            );\n            int ci = int(intMod(coord.x, 4.0));\n            int ri = int(intMod(coord.y, 4.0));\n            #if __VERSION__ == 100\n                vec4 i = vec4(float(ci * 4 + ri));\n                vec4 v = thresholdMatrix[0] * vec4(equal(i, vec4(0.0, 1.0, 2.0, 3.0))) +\n                    thresholdMatrix[1] * vec4(equal(i, vec4(4.0, 5.0, 6.0, 7.0))) +\n                    thresholdMatrix[2] * vec4(equal(i, vec4(8.0, 9.0, 10.0, 11.0))) +\n                    thresholdMatrix[3] * vec4(equal(i, vec4(12.0, 13.0, 14.0, 15.0)));\n                at = v.x + v.y + v.z + v.w;\n            #else\n                at = thresholdMatrix[ci][ri];\n            #endif\n\n            if (ta < 0.99 && (ta < 0.01 || ta < at)) {\n                discard;\n            }\n        #elif defined(dRenderVariant_colorWboit)\n            material.a *= ta;\n        #endif\n    #endif\n#endif\n";
