UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

13 lines (12 loc) 1.3 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import{AlignPixel as e}from"./AlignPixel.glsl.js";import{HUDRenderStyle as r}from"./HUDRenderStyle.js";import{Float4BindUniform as o}from"../../shaderModules/Float4BindUniform.js";import{FloatBindUniform as i}from"../../shaderModules/FloatBindUniform.js";import{glsl as l}from"../../shaderModules/glsl.js";import{Texture2DBindUniform as t}from"../../shaderModules/Texture2DBindUniform.js";function n(n){n.vertex.uniforms.add(new i("renderTransparentlyOccludedHUD",(e=>e.hudRenderStyle===r.Occluded?1:e.hudRenderStyle===r.NotOccluded?0:.75)),new o("viewport",(e=>e.camera.fullViewport)),new t("hudVisibilityTexture",(e=>e.hudVisibility?.getTexture()))),n.vertex.include(e),n.vertex.code.add(l`bool testHUDVisibility(vec4 posProj) { vec4 posProjCenter = alignToPixelCenter(posProj, viewport.zw); vec4 occlusionPixel = texture(hudVisibilityTexture, .5 + .5 * posProjCenter.xy / posProjCenter.w); if (renderTransparentlyOccludedHUD > 0.5) { return occlusionPixel.r * occlusionPixel.g > 0.0 && occlusionPixel.g * renderTransparentlyOccludedHUD < 1.0; } return occlusionPixel.r * occlusionPixel.g > 0.0 && occlusionPixel.g == 1.0; }`)}export{n as HUDVisibility};