Options
All
  • Public
  • Public/Protected
  • All
Menu

SDF-2D - v0.3.1

Index

Type aliases

CompilingProgram

CompilingProgram: { fragmentShader: ShaderWithSource; program: WebGLProgram; resolvePromise: ((program: WebGLProgram) => void) | null; vertexShader: ShaderWithSource }

Type declaration

ShaderWithSource

ShaderWithSource: WebGLShader & { source: string }

UniversalRenderingContext

UniversalRenderingContext: WebGL2RenderingContext & WebGLRenderingContext & { isWebGL2: boolean }

Variables

Let isEnabled

isEnabled: boolean = false

Const loaderMat3

loaderMat3: mat3 = mat3.create()

Other Functions

Const applyArrayPlugins

  • applyArrayPlugins(): void

Const clamp

  • clamp(value: number, min: number, max: number): number
  • Parameters

    • value: number
    • min: number
    • max: number

    Returns number

Const clamp01

  • clamp01(value: number): number

Const enableContextLostSimulator

  • enableContextLostSimulator(canvas: HTMLCanvasElement): void

Const enableExtension

Const exponentialDecay

  • exponentialDecay(accumulator: number, nextValue: number, biasOfNextValue: number): number

Const getCombinations

Const getUniversalRenderingContext

last

  • last<T>(a: Array<T>): T | null

Const loadUniform

Const mix

  • mix(from: number, to: number, q: number): number
  • Parameters

    • from: number
    • to: number
    • q: number

    Returns number

Const msToString

  • msToString(value: number): string

Const setIndexAlias

  • setIndexAlias(name: string, index: number, type: any): void
  • Parameters

    • name: string
    • index: number
    • type: any

    Returns void

Const tryEnableExtension

Const wait

  • wait(ms: number): Promise<void>

Startup Functions

compile

  • Compiles a new renderer instance. There can multiple renderers on a single page.

    Asynchronous behaviour is required for paralell shader compiling. Trying to draw before the returned promise resolves results in no action taken. Settings can be set before promise resolution and they will be applied later.

    The descriptors of every to-be-drawn objects are required before creating the renderer, allowing the compiler to only create the shaders that will actually be used.

    Example usage:

     import { compile, Circle, CircleLight } from 'sdf-2d';
    
     const canvas = document.querySelector('canvas');
     const renderer = await compile(canvas, [Circle.descriptor, CircleLight.descriptor]);

    Parameters

    • canvas: HTMLCanvasElement

      The returned renderer will only be able to draw to this canvas.

    • descriptors: Array<DrawableDescriptor>

      The descriptor of every single object (and light) that ever needs to be drawn by this renderer has to be given before compiling.

    • Default value settingsOverrides: Partial<StartupSettings> = {}

      Sensible defaults are provided, but these can be overriden.

    Returns Promise<Renderer>

Object literals

Const defaultStartupSettings

defaultStartupSettings: object

ignoreWebGL2

ignoreWebGL2: false = false

paletteSize

paletteSize: number = 256

shadowTraceCount

shadowTraceCount: number = 16

Const settings

settings: object

adjusmentRateInMilliseconds

adjusmentRateInMilliseconds: number = 1000

deltaTimeErrorInMilliseconds

deltaTimeErrorInMilliseconds: number = 3

deltaTimeResponsiveness

deltaTimeResponsiveness: number = 1 / 32

qualityStepDecrese

qualityStepDecrese: number = 0.2

qualityStepIncrease

qualityStepIncrease: number = 0.01

targetDeltaTimeInMilliseconds

targetDeltaTimeInMilliseconds: number = 20

targets

targets: { distanceRenderScale: number; finalRenderScale: number }[] = [{distanceRenderScale: 0.1,finalRenderScale: 0.2,},{distanceRenderScale: 0.1,finalRenderScale: 0.6,},{distanceRenderScale: 0.5,finalRenderScale: 1.0,},{distanceRenderScale: 1.0,finalRenderScale: 1.0,},]