UNPKG

molstar

Version:

A comprehensive macromolecular library.

86 lines (73 loc) 2.46 kB
"use strict"; /** * Copyright (c) 2019-2024 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ Object.defineProperty(exports, "__esModule", { value: true }); exports.text_frag = void 0; exports.text_frag = ` precision highp float; precision highp int; #include common #include common_frag_params #include color_frag_params #include common_clip uniform sampler2D tFont; uniform vec3 uBorderColor; uniform float uBorderWidth; uniform vec3 uBackgroundColor; uniform float uBackgroundOpacity; varying vec2 vTexCoord; void main(){ #include fade_lod #include clip_pixel float fragmentDepth = gl_FragCoord.z; #include assign_material_color if (vTexCoord.x > 1.0) { #if defined(dRenderVariant_color) || defined(dRenderVariant_tracing) material = vec4(uBackgroundColor, uBackgroundOpacity * material.a); #endif } else { // retrieve signed distance float sdf = texture2D(tFont, vTexCoord).a + uBorderWidth; if (sdf < 0.5) discard; #if defined(dRenderVariant_color) || defined(dRenderVariant_tracing) // add border float t = 0.5 + uBorderWidth; if (uBorderWidth > 0.0 && sdf < t) { material.xyz = uBorderColor; } #endif } #include check_transparency #if defined(dRenderVariant_pick) #include check_picking_alpha #ifdef requiredDrawBuffers gl_FragColor = vObject; gl_FragData[1] = vInstance; gl_FragData[2] = vGroup; gl_FragData[3] = packDepthToRGBA(fragmentDepth); #else gl_FragColor = vColor; #endif #elif defined(dRenderVariant_depth) gl_FragColor = material; #elif defined(dRenderVariant_marking) gl_FragColor = material; #elif defined(dRenderVariant_emissive) gl_FragColor = material; #elif defined(dRenderVariant_color) || defined(dRenderVariant_tracing) gl_FragColor = material; #include apply_marker_color #if defined(dRenderVariant_color) #include apply_fog #include wboit_write #include dpoit_write #elif defined(dRenderVariant_tracing) gl_FragData[1] = vec4(-normalize(vViewPosition), emissive); gl_FragData[2] = vec4(material.rgb, uDensity); #endif #endif } `;