modern-canvas 0.9.4 → 0.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Font, Fonts } from 'modern-font';
2
- import { ObservableEvents, Observable, ReactivableEvents, Reactivable, Color as Color$1, RawWeakMap as RawWeakMap$1, LinearGradient, RadialGradient, NormalizedFill, Fill, NormalizedBackground, Background, NormalizedForeground, Foreground, NormalizedOutline, Outline, NormalizedShadow, Shadow, NormalizedShape, Shape, FullStyle, Text as Text$1, TextContent, Style, ImageFillCropRect } from 'modern-idoc';
2
+ import { ObservableEvents, Observable, ReactivableEvents, Reactivable, Color as Color$1, RawWeakMap as RawWeakMap$1, LinearGradient, RadialGradient, Hex8Color, NormalizedFill, Fill, NormalizedBackground, Background, NormalizedForeground, Foreground, NormalizedOutline, Outline, NormalizedShadow, Shadow, NormalizedShape, Shape, FullStyle, Text as Text$1, TextContent, Style, ImageFillCropRect } from 'modern-idoc';
3
3
  export { Color as ColorValue } from 'modern-idoc';
4
4
  import { AnimationItem } from 'lottie-web';
5
5
  import { Colord, RgbaColor, HslaColor, HsvaColor } from 'colord';
@@ -243,6 +243,7 @@ declare class Input extends Observable {
243
243
  protected _onPointerMove: (nativeEvent: PointerEvent | TouchEvent | MouseEvent) => void;
244
244
  protected _onPointerUp: (nativeEvent: PointerEvent | TouchEvent | MouseEvent) => void;
245
245
  protected _onWheel: (nativeEvent: WheelEvent) => void;
246
+ destroy(): void;
246
247
  }
247
248
 
248
249
  interface CoreObjectEvents extends ReactivableEvents {
@@ -585,6 +586,10 @@ declare class Vector3 extends Vector {
585
586
  interface MainLoopEvents extends CoreObjectEvents {
586
587
  process: (delta: number) => void;
587
588
  }
589
+ interface MainLoopProperties {
590
+ fps: number;
591
+ speed: number;
592
+ }
588
593
  interface MainLoop {
589
594
  on: <K extends keyof MainLoopEvents & string>(event: K, listener: MainLoopEvents[K]) => this;
590
595
  once: <K extends keyof MainLoopEvents & string>(event: K, listener: MainLoopEvents[K]) => this;
@@ -599,10 +604,10 @@ declare class MainLoop extends CoreObject {
599
604
  protected _startedProcess?: (delta: number) => void;
600
605
  get starting(): boolean;
601
606
  get spf(): number;
602
- constructor();
607
+ constructor(properties?: Partial<MainLoopProperties>);
603
608
  start(process: (delta: number) => void): void;
604
609
  stop(): void;
605
- protected _onNextTick(): void;
610
+ protected _onTicker(): void;
606
611
  destroy(): void;
607
612
  }
608
613
 
@@ -680,9 +685,9 @@ declare const PI_2: number;
680
685
  declare function uid(object?: Record<string, any>): number;
681
686
  declare function isPow2(v: number): boolean;
682
687
 
683
- declare abstract class Renderer {
684
- view?: HTMLCanvasElement;
688
+ declare abstract class Renderer extends Reactivable {
685
689
  pixelRatio: number;
690
+ view?: HTMLCanvasElement;
686
691
  readonly screen: {
687
692
  x: number;
688
693
  y: number;
@@ -690,8 +695,10 @@ declare abstract class Renderer {
690
695
  height: number;
691
696
  };
692
697
  readonly related: RawWeakMap<object, any>;
698
+ protected _updateProperty(key: string, newValue: any, oldValue: any): void;
693
699
  getRelated<T>(source: object, createFn?: () => T): T;
694
700
  resize(width: number, height: number, updateStyle?: boolean): void;
701
+ destroy(): void;
695
702
  }
696
703
 
697
704
  type WebGLBufferTarget = 'array_buffer' | 'element_array_buffer';
@@ -742,6 +749,7 @@ interface WebGLFramebufferOptions {
742
749
  width: number;
743
750
  height: number;
744
751
  mipLevel?: number;
752
+ msaa?: boolean;
745
753
  stencil?: boolean;
746
754
  depth?: boolean;
747
755
  depthTexture?: WebGLTexture | null;
@@ -749,8 +757,9 @@ interface WebGLFramebufferOptions {
749
757
  }
750
758
  interface WebGLFramebufferMeta extends Required<WebGLFramebufferOptions> {
751
759
  multisample: number;
752
- stencilBuffer?: WebGLBuffer | null;
753
- msaaBuffer?: WebGLBuffer | null;
760
+ stencilBuffer: WebGLBuffer | null;
761
+ msaaRenderBuffers: WebGLRenderbuffer[];
762
+ framebuffer: WebGLFramebuffer | null;
754
763
  }
755
764
  type Pick<T> = T extends string ? T extends Uppercase<T> ? Lowercase<T> : never : never;
756
765
  type WebGLTarget = Pick<keyof WebGL2RenderingContext>;
@@ -1040,6 +1049,8 @@ declare class WebGLFramebufferModule extends WebGLModule {
1040
1049
  format: number;
1041
1050
  };
1042
1051
  resize(framebuffer: WebGLFramebuffer, width: number, height: number): void;
1052
+ finishRenderPass(framebuffer: WebGLFramebuffer): void;
1053
+ copyToTexture(framebuffer: WebGLFramebuffer, texture: WebGLTexture): void;
1043
1054
  bind(framebuffer: WebGLFramebuffer | null): void;
1044
1055
  forceStencil(): void;
1045
1056
  reset(): void;
@@ -1338,8 +1349,10 @@ interface ImageFrame {
1338
1349
  duration: number;
1339
1350
  }
1340
1351
  declare class AnimatedTexture extends Resource {
1341
- frames: ImageFrame[];
1342
1352
  duration: number;
1353
+ frames: ImageFrame[];
1354
+ frameIndex: number;
1355
+ get currentFrame(): ImageFrame;
1343
1356
  constructor(source: Texture2D | ImageFrame[]);
1344
1357
  updateDuration(): this;
1345
1358
  destroy(): void;
@@ -1515,6 +1528,7 @@ declare class Viewport extends Node implements Rectangulable {
1515
1528
  y: number;
1516
1529
  width: number;
1517
1530
  height: number;
1531
+ msaa: boolean;
1518
1532
  get valid(): boolean;
1519
1533
  get framebuffer(): ViewportFramebuffer;
1520
1534
  get texture(): ViewportTexture;
@@ -1579,6 +1593,7 @@ declare class Timeline extends Node {
1579
1593
  }
1580
1594
 
1581
1595
  declare class Window extends Viewport {
1596
+ msaa: boolean;
1582
1597
  }
1583
1598
 
1584
1599
  interface SceneTreeEvents extends MainLoopEvents {
@@ -1589,6 +1604,13 @@ interface SceneTreeEvents extends MainLoopEvents {
1589
1604
  nodeProcessing: (node: Node) => void;
1590
1605
  nodeProcessed: (node: Node) => void;
1591
1606
  }
1607
+ interface SceneTreeProperties extends MainLoopProperties {
1608
+ backgroundColor: Hex8Color;
1609
+ debug: boolean;
1610
+ processPaused: boolean;
1611
+ fonts: Fonts;
1612
+ timeline: Timeline;
1613
+ }
1592
1614
  interface SceneTree {
1593
1615
  on: <K extends keyof SceneTreeEvents & string>(event: K, listener: SceneTreeEvents[K]) => this;
1594
1616
  once: <K extends keyof SceneTreeEvents & string>(event: K, listener: SceneTreeEvents[K]) => this;
@@ -1596,19 +1618,19 @@ interface SceneTree {
1596
1618
  emit: <K extends keyof SceneTreeEvents & string>(event: K, ...args: Parameters<SceneTreeEvents[K]>) => this;
1597
1619
  }
1598
1620
  declare class SceneTree extends MainLoop {
1599
- processPaused: boolean;
1600
- backgroundColor: Color$1 | undefined;
1621
+ backgroundColor?: Hex8Color;
1601
1622
  debug: boolean;
1602
- fonts?: Fonts;
1623
+ processPaused: boolean;
1624
+ fonts: Fonts;
1625
+ timeline: Timeline;
1603
1626
  readonly input: Input;
1604
1627
  readonly renderStack: RenderStack;
1605
1628
  readonly root: Window;
1606
- readonly timeline: Timeline;
1607
1629
  protected _backgroundColor: Color;
1608
1630
  protected _currentViewport?: Viewport;
1609
1631
  getCurrentViewport(): Viewport | undefined;
1610
1632
  setCurrentViewport(viewport: Viewport | undefined): void;
1611
- constructor(timeline?: Timeline);
1633
+ constructor(properties?: Partial<SceneTreeProperties>);
1612
1634
  protected _updateProperty(key: string, value: any, oldValue: any): void;
1613
1635
  log(...args: any[]): void;
1614
1636
  protected _process(delta?: number): void;
@@ -1783,8 +1805,8 @@ declare class TimelineNode extends Node {
1783
1805
  constructor(properties?: Partial<TimelineNodeProperties>, nodes?: Node[]);
1784
1806
  /** Timeline */
1785
1807
  computedDuration: number;
1786
- protected _currentTime: number;
1787
- protected _startTime: number;
1808
+ _currentTime: number;
1809
+ _startTime: number;
1788
1810
  get timeline(): Timeline | undefined;
1789
1811
  get timelineCurrentTime(): number;
1790
1812
  get parentStartTime(): number;
@@ -1987,14 +2009,17 @@ declare class BaseElement2DFill extends CoreObject {
1987
2009
  tile: NormalizedFill['tile'];
1988
2010
  opacity: NormalizedFill['opacity'];
1989
2011
  protected _texture?: Texture2D;
2012
+ protected _animatedTexture?: AnimatedTexture;
1990
2013
  constructor(parent: BaseElement2D);
1991
2014
  protected _setProperties(properties?: NormalizedFill): this;
1992
2015
  setProperties(properties?: Fill): this;
1993
2016
  protected _updateProperty(key: string, value: any, oldValue: any): void;
1994
- loadTexture(): Promise<Texture2D | undefined>;
2017
+ loadTexture(): Promise<void>;
1995
2018
  protected _updateTexture(): Promise<void>;
1996
2019
  canDraw(): boolean;
1997
2020
  draw(): void;
2021
+ protected _getFrameCurrentTime(): number;
2022
+ updateFrameIndex(): this;
1998
2023
  }
1999
2024
 
2000
2025
  declare class BaseElement2DBackground extends BaseElement2DFill {
@@ -2143,6 +2168,7 @@ declare class BaseElement2D extends Node2D implements Rectangulable {
2143
2168
  constructor(properties?: Partial<BaseElement2DProperties>, nodes?: Node[]);
2144
2169
  setProperties(properties?: Record<string, any>): this;
2145
2170
  protected _updateStyleProperty(key: string, value: any, oldValue: any): void;
2171
+ protected _process(delta: number): void;
2146
2172
  protected _updateMaskImage(): void;
2147
2173
  getTransformOrigin(): Vector2;
2148
2174
  updateTransform(cb?: (transform: Transform2D) => void): void;
@@ -3296,17 +3322,14 @@ declare class CanvasItemEditor extends Control {
3296
3322
  protected _updateScrollbars(): void;
3297
3323
  }
3298
3324
 
3299
- interface EngineOptions extends WebGLContextAttributes {
3300
- debug?: boolean;
3325
+ interface EngineProperties extends WebGLContextAttributes, SceneTreeProperties {
3301
3326
  view?: HTMLCanvasElement | WebGLRenderingContext | WebGL2RenderingContext;
3302
3327
  width?: number;
3303
3328
  height?: number;
3304
3329
  pixelRatio?: number;
3305
- backgroundColor?: Color$1;
3306
- fonts?: Fonts;
3307
- autoResize?: boolean;
3308
- autoStart?: boolean;
3309
- timeline?: Timeline;
3330
+ autoResize: boolean;
3331
+ autoStart: boolean;
3332
+ msaa: boolean;
3310
3333
  }
3311
3334
  interface EngineEvents extends SceneTreeEvents {
3312
3335
  pointerdown: (ev: PointerInputEvent) => void;
@@ -3330,6 +3353,9 @@ interface Engine {
3330
3353
  emit: <K extends keyof EngineEvents>(event: K, ...args: Parameters<EngineEvents[K]>) => this;
3331
3354
  }
3332
3355
  declare class Engine extends SceneTree {
3356
+ msaa: boolean;
3357
+ autoResize: boolean;
3358
+ autoStart: boolean;
3333
3359
  readonly renderer: WebGLRenderer;
3334
3360
  get view(): HTMLCanvasElement | undefined;
3335
3361
  get gl(): WebGLRenderingContext | WebGL2RenderingContext;
@@ -3344,19 +3370,19 @@ declare class Engine extends SceneTree {
3344
3370
  get pixelRatio(): number;
3345
3371
  set pixelRatio(val: number);
3346
3372
  protected _resizeObserver: ResizeObserver | undefined;
3347
- constructor(options?: EngineOptions);
3373
+ constructor(properties?: Partial<EngineProperties>);
3374
+ protected _updateProperty(key: string, value: any, oldValue: any): void;
3348
3375
  protected _setupInput(): this;
3349
- enableAutoResize(enable?: boolean): this;
3350
3376
  resize(width: number, height: number, updateCss?: boolean): this;
3351
3377
  nextTick(): Promise<void>;
3352
3378
  waitUntilLoad(): Promise<void>;
3353
3379
  waitAndRender(delta?: number): Promise<void>;
3354
3380
  render(delta?: number): void;
3355
3381
  start(): Promise<void>;
3356
- destroy(): void;
3357
3382
  toPixels(): Uint8ClampedArray<ArrayBuffer>;
3358
3383
  toImageData(): ImageData;
3359
3384
  toCanvas2D(): HTMLCanvasElement;
3385
+ destroy(): void;
3360
3386
  }
3361
3387
 
3362
3388
  interface RenderOptions {
@@ -3371,4 +3397,4 @@ interface RenderOptions {
3371
3397
  declare function render(options: RenderOptions): Promise<HTMLCanvasElement>;
3372
3398
 
3373
3399
  export { AnimatedTexture, Animation, Assets, Audio, AudioPipeline, AudioProcessor, AudioSpectrum, AudioWaveform, BaseElement2D, BaseElement2DBackground, BaseElement2DFill, BaseElement2DForeground, BaseElement2DOutline, BaseElement2DShadow, BaseElement2DShape, BaseElement2DStyle, BaseElement2DText, Camera2D, CanvasContext, CanvasItem, CanvasItemEditor, CanvasTexture, Color, ColorAdjustEffect, ColorFilterEffect, ColorMatrix, ColorOverlayEffect, ColorRemoveEffect, ColorReplaceEffect, ColorTexture, Control, CoreObject, DEG_TO_RAD, DEVICE_PIXEL_RATIO, DropShadowEffect, Effect, EffectMaterial, Element2D, Element2DStyle, EmbossEffect, Engine, FlexElement2D, FlexElement2DStyle, FlexLayout, FontLoader, GaussianBlurEffect, Geometry, GifLoader, GlitchEffect, GodrayEffect, GradientTexture, HTMLAudio, HTMLAudioContext, HTMLSound, IN_BROWSER, Image2D, ImageTexture, IndexBuffer, Input, InputEvent, JsonLoader, KawaseBlurEffect, KawaseTransition, KeyboardInputEvent, LeftEraseTransition, Loader, Lottie2D, LottieLoader, MainLoop, MaskEffect, Material, Matrix, Matrix2, Matrix3, Matrix4, MouseInputEvent, Node, Node2D, OutlineEffect, PI, PI_2, PixelateEffect, PixelsTexture, PointerInputEvent, Projection2D, QuadGeometry, QuadUvGeometry, RAD_TO_DEG, Range, RawWeakMap, Rect2, RefCounted, Renderer, Resource, Ruler, SUPPORTS_AUDIO_CONTEXT, SUPPORTS_CLICK_EVENTS, SUPPORTS_CREATE_IMAGE_BITMAP, SUPPORTS_IMAGE_BITMAP, SUPPORTS_MOUSE_EVENTS, SUPPORTS_OFFLINE_AUDIO_CONTEXT, SUPPORTS_POINTER_EVENTS, SUPPORTS_RESIZE_OBSERVER, SUPPORTS_TOUCH_EVENTS, SUPPORTS_WEBGL2, SUPPORTS_WEBKIT_AUDIO_CONTEXT, SUPPORTS_WEBKIT_OFFLINE_AUDIO_CONTEXT, SUPPORTS_WEB_AUDIO, SUPPORTS_WHEEL_EVENTS, Scaler, SceneTree, ScrollBar, TextLoader, Texture2D, TextureLoader, TextureRect2D, Ticker, TiltShiftTransition, Timeline, TimelineNode, Transform2D, TransformRect2D, Transition, TwistTransition, UvGeometry, UvMaterial, Vector, Vector2, Vector3, Vector4, VertexAttribute, VertexBuffer, Video2D, VideoLoader, VideoTexture, Viewport, ViewportTexture, WebAudio, WebAudioContext, WebGLBatch2DModule, WebGLBlendMode, WebGLBufferModule, WebGLFramebufferModule, WebGLMaskModule, WebGLModule, WebGLProgramModule, WebGLRenderer, WebGLScissorModule, WebGLState, WebGLStateModule, WebGLStencilModule, WebGLTextureModule, WebGLVertexArrayModule, WebGLViewportModule, WebSound, WheelInputEvent, Window, XScrollBar, YScrollBar, ZoomBlurEffect, alignMap, assets, boxSizingMap, clamp, clampFrag, createHTMLCanvas, createNode, crossOrigin, cubicBezier, curves, customNode, customNodes, defaultOptions, determineCrossOrigin, directionMap, displayMap, ease, easeIn, easeInOut, easeOut, edgeMap, flexDirectionMap, flexWrapMap, frag, getDefaultCssPropertyValue, gutterMap, isCanvasElement, isElementNode, isImageElement, isPow2, isVideoElement, isWebgl2, justifyMap, lerp, linear, log2, mapWebGLBlendModes, nextPow2, nextTick, overflowMap, parseCSSFilter, parseCSSTransform, parseCSSTransformOrigin, parseCssFunctions, parseCssProperty, positionTypeMap, render, timingFunctions, uid };
3374
- export type { AnimationEffectMode, AnimationProperties, AssetHandler, AudioWaveformProperties, BaseElement2DEvents, BaseElement2DProperties, BaseElement2DStyleProperties, Batchable2D, CSSFilterKey, CSSFilters, Camera2DEvents, Camera2DProperties, CanvasBatchable, CanvasItemEvents, CanvasItemProperties, ColorAdjustEffectProperties, ColorFilterEffectProperties, ColorOverlayEffectProperties, ColorRemoveEffectProperties, ColorReplaceEffectProperties, ComputedLayout, ControlEvents, ControlProperties, CoreObjectEvents, CssFunction, CssFunctionArg, Cursor, DropShadowEffectProperties, Easing, EffectContext, EffectMode, EffectProperties, Element2DEvents, Element2DProperties, Element2DStyleProperties, EmbossEffectProperties, EngineOptions, FillDraw, FlexBaseElement2DEvents, FlexElement2DProperties, FlexElement2DStyleProperties, GaussianBlurEffectProperties, GeometryOptions, GlitchEffectProperties, GodrayEffectProperties, IAudioContext, IAudioNode, IPlayOptions, Image2DProperties, ImageFrame, ImageTextureOptions, IndexBufferOptions, InputEventKey, InputEvents, InputMode, InternalMode, KawaseBlurEffectProperties, Keyframe, Lottie2DProperties, MainLoopEvents, MaskColor, MaskData, MaskEffectProperties, MaskObject, MaskRect, Maskable, MaterialOptions, MatrixLike, MatrixOperateOutput, Node2DEvents, Node2DProperties, NodeEvents, NodeProperties, NormalizedKeyframe, OutlineEffectProperties, PixelateEffectProperties, PlatformAudio, PlatformSound, ProcessMode, ProcessSortMode, RangeProperties, Rectangulable, RectangulableEvents, RefCountedEvents, RenderMode, RenderOptions, Renderable, ResourceEvents, RulerProperties, ScalerEvents, ScalerProperties, SceneTreeEvents, ScrollBarProperties, StrokeDraw, Texture2DFilterMode, Texture2DPixelsSource, Texture2DSource, Texture2DWrapMode, TextureRect2DProperties, TimelineEvents, TimelineNodeEvents, TimelineNodeProperties, TimelineProperties, TimingFunctions, TransformObject, TransformRect2DProperties, TransformableObject, TransitionProperties, UvTransform, Vector2Data, VectorLike, VectorOperateOutput, VertTransform, VertexAttributeOptions, VertexBufferOptions, Video2DProperties, VideoTextureOptions, VideoTextureSource, ViewportEvents, ViewportFramebuffer, WebGLBufferMeta, WebGLBufferOptions, WebGLBufferTarget, WebGLBufferUsage, WebGLDrawMode, WebGLDrawOptions, WebGLExtensions, WebGLFramebufferMeta, WebGLFramebufferOptions, WebGLProgramMeta, WebGLProgramOptions, WebGLTarget, WebGLTextureFilterMode, WebGLTextureLocation, WebGLTextureMeta, WebGLTextureOptions, WebGLTextureSource, WebGLTextureTarget, WebGLTextureWrapMode, WebGLVertexArrayObjectMeta, WebGLVertexArrayObjectOptions, WebGLVertexAttrib, WebGLVertexAttribType, WebGLViewport, XScrollBarProperties, YScrollBarProperties, ZoomBlurEffectProperties };
3400
+ export type { AnimationEffectMode, AnimationProperties, AssetHandler, AudioWaveformProperties, BaseElement2DEvents, BaseElement2DProperties, BaseElement2DStyleProperties, Batchable2D, CSSFilterKey, CSSFilters, Camera2DEvents, Camera2DProperties, CanvasBatchable, CanvasItemEvents, CanvasItemProperties, ColorAdjustEffectProperties, ColorFilterEffectProperties, ColorOverlayEffectProperties, ColorRemoveEffectProperties, ColorReplaceEffectProperties, ComputedLayout, ControlEvents, ControlProperties, CoreObjectEvents, CssFunction, CssFunctionArg, Cursor, DropShadowEffectProperties, Easing, EffectContext, EffectMode, EffectProperties, Element2DEvents, Element2DProperties, Element2DStyleProperties, EmbossEffectProperties, EngineProperties, FillDraw, FlexBaseElement2DEvents, FlexElement2DProperties, FlexElement2DStyleProperties, GaussianBlurEffectProperties, GeometryOptions, GlitchEffectProperties, GodrayEffectProperties, IAudioContext, IAudioNode, IPlayOptions, Image2DProperties, ImageFrame, ImageTextureOptions, IndexBufferOptions, InputEventKey, InputEvents, InputMode, InternalMode, KawaseBlurEffectProperties, Keyframe, Lottie2DProperties, MainLoopEvents, MainLoopProperties, MaskColor, MaskData, MaskEffectProperties, MaskObject, MaskRect, Maskable, MaterialOptions, MatrixLike, MatrixOperateOutput, Node2DEvents, Node2DProperties, NodeEvents, NodeProperties, NormalizedKeyframe, OutlineEffectProperties, PixelateEffectProperties, PlatformAudio, PlatformSound, ProcessMode, ProcessSortMode, RangeProperties, Rectangulable, RectangulableEvents, RefCountedEvents, RenderMode, RenderOptions, Renderable, ResourceEvents, RulerProperties, ScalerEvents, ScalerProperties, SceneTreeEvents, SceneTreeProperties, ScrollBarProperties, StrokeDraw, Texture2DFilterMode, Texture2DPixelsSource, Texture2DSource, Texture2DWrapMode, TextureRect2DProperties, TimelineEvents, TimelineNodeEvents, TimelineNodeProperties, TimelineProperties, TimingFunctions, TransformObject, TransformRect2DProperties, TransformableObject, TransitionProperties, UvTransform, Vector2Data, VectorLike, VectorOperateOutput, VertTransform, VertexAttributeOptions, VertexBufferOptions, Video2DProperties, VideoTextureOptions, VideoTextureSource, ViewportEvents, ViewportFramebuffer, WebGLBufferMeta, WebGLBufferOptions, WebGLBufferTarget, WebGLBufferUsage, WebGLDrawMode, WebGLDrawOptions, WebGLExtensions, WebGLFramebufferMeta, WebGLFramebufferOptions, WebGLProgramMeta, WebGLProgramOptions, WebGLTarget, WebGLTextureFilterMode, WebGLTextureLocation, WebGLTextureMeta, WebGLTextureOptions, WebGLTextureSource, WebGLTextureTarget, WebGLTextureWrapMode, WebGLVertexArrayObjectMeta, WebGLVertexArrayObjectOptions, WebGLVertexAttrib, WebGLVertexAttribType, WebGLViewport, XScrollBarProperties, YScrollBarProperties, ZoomBlurEffectProperties };