@itwin/core-frontend
Version:
iTwin.js frontend components
18 lines • 1.7 kB
TypeScript
/** @packageDocumentation
* @module WebGL
*/
import { ProgramBuilder } from "../ShaderBuilder";
import { IsAnimated, IsClassified, IsInstanced, IsThematic, PositionType, TechniqueFlags } from "../TechniqueFlags";
/** @internal */
export declare function createSurfaceHiliter(instanced: IsInstanced, classified: IsClassified, posType: PositionType): ProgramBuilder;
/** @internal */
export declare const octDecodeNormal = "\nvec3 octDecodeNormal(vec2 e) {\n e = e / 255.0 * 2.0 - 1.0;\n vec3 n = vec3(e.x, e.y, 1.0 - abs(e.x) - abs(e.y));\n if (n.z < 0.0) {\n vec2 signNotZero = vec2(n.x >= 0.0 ? 1.0 : -1.0, n.y >= 0.0 ? 1.0 : -1.0);\n n.xy = (1.0 - abs(n.yx)) * signNotZero;\n }\n\n return normalize(n);\n}\n";
/** @internal */
export declare function addSurfaceFlags(builder: ProgramBuilder, withFeatureOverrides: boolean, withFeatureColor: boolean): void;
/** @internal */
export declare function addTexture(builder: ProgramBuilder, animated: IsAnimated, isThematic: IsThematic, isPointCloud: boolean, isHilite: boolean, isMaplayer: boolean): void;
export declare const discardClassifiedByAlpha = "\n if (u_no_classifier_discard)\n return false;\n\n bool hasAlpha = alpha <= s_maxAlpha;\n bool isOpaquePass = (kRenderPass_OpaqueLinear <= u_renderPass && kRenderPass_OpaqueGeneral >= u_renderPass);\n bool isTranslucentPass = kRenderPass_Translucent == u_renderPass;\n return (isOpaquePass && hasAlpha) || (isTranslucentPass && !hasAlpha);\n";
/** @internal */
export declare function createSurfaceBuilder(flags: TechniqueFlags): ProgramBuilder;
export declare function addClassificationTranslucencyDiscard(builder: ProgramBuilder): void;
//# sourceMappingURL=Surface.d.ts.map