Module Mesh-PIXI
class type _t = { ... }type t= Js.t(_t);Base mesh class. This class empowers you to have maximum flexibility to render any kind of WebGL visuals you can think of. This class assumes a certain level of WebGL knowledge. If you know a bit this should abstract enough away to make you life easier! Pretty much ALL WebGL can be broken down into the following:
Geometry - The structure and data for the mesh. This can include anything from positions, uvs, normals, colors etc.. Shader - This is the shader that PixiJS will render the geometry with (attributes in the shader must match the geometry) State - This is the state of WebGL required to render the mesh. Through a combination of the above elements you can render anything you want, 2D or 3D!
module Impl: { ... };include PIXI.EventEmitter.Impl;
let create: unit => PIXI.EventEmitter.t;let eventNames: Js.t(PIXI.EventEmitter._t) => array(string);let listeners: Js.t(PIXI.EventEmitter._t) => event:[ `String(string) | `Symbol(PIXI.Symbol.t) ] => array((Js.t({.. }) => unit));let listenerCount: Js.t(PIXI.EventEmitter._t) => event:[ `String(string) | `Symbol(PIXI.Symbol.t) ] => int;let emit: Js.t(PIXI.EventEmitter._t) => event:[ `String(string) | `Symbol(PIXI.Symbol.t) ] => bool;let on: Js.t(PIXI.EventEmitter._t as 'd) => event:[ `String(string) | `Symbol(PIXI.Symbol.t) ] => fn:('b => unit) => ?context:'c => unit => Js.t('d);let addListener: Js.t(PIXI.EventEmitter._t as 'd) => event:[ `String(string) | `Symbol(PIXI.Symbol.t) ] => fn:('b => unit) => ?context:'c => unit => Js.t('d);let once: Js.t(PIXI.EventEmitter._t as 'd) => event:[ `String(string) | `Symbol(PIXI.Symbol.t) ] => fn:('b => unit) => ?context:'c => unit => Js.t('d);let removeListener: Js.t(PIXI.EventEmitter._t as 'b) => event:[ `String(string) | `Symbol(PIXI.Symbol.t) ] => ?fn:(Js.t({.. }) => unit) => ?context:Js.t({.. }) => ?once:bool => unit => Js.t('b);let off: Js.t(PIXI.EventEmitter._t as 'b) => event:[ `String(string) | `Symbol(PIXI.Symbol.t) ] => ?fn:(Js.t({.. }) => unit) => ?context:Js.t({.. }) => ?once:bool => unit => Js.t('b);let removeAllListeners: Js.t(PIXI.EventEmitter._t as 'b) => ?event:[ `String(string) | `Symbol(PIXI.Symbol.t) ] => unit => Js.t('b);
include PIXI.DisplayObject.Impl;
let create: unit => PIXI.DisplayObject.t;let getAccessible: Js.t(PIXI.C.displayObject) => bool;let setAccessible: Js.t(PIXI.C.displayObject) => bool => unit;let getAccessibleChildren: Js.t(PIXI.C.displayObject) => bool;let setAccessibleChildren: Js.t(PIXI.C.displayObject) => bool => unit;let getAccessibleHint: Js.t(PIXI.C.displayObject) => string;let setAccessibleHint: Js.t(PIXI.C.displayObject) => string => unit;let getAccessibleTitle: Js.t(PIXI.C.displayObject) => Js.Nullable.t(string);let setAccessibleTitle: Js.t(PIXI.C.displayObject) => Js.Nullable.t(string) => unit;let getAccessibleType: Js.t(PIXI.C.displayObject) => string;let setAccessibleType: Js.t(PIXI.C.displayObject) => string => unit;let getAlpha: Js.t(PIXI.C.displayObject) => float;let setAlpha: Js.t(PIXI.C.displayObject) => float => unit;let getAngle: Js.t(PIXI.C.displayObject) => float;let setAngle: Js.t(PIXI.C.displayObject) => float => unit;let getButtonMode: Js.t(PIXI.C.displayObject) => bool;let setButtonMode: Js.t(PIXI.C.displayObject) => bool => unit;let getCacheAsBitmap: Js.t(PIXI.C.displayObject) => bool;let setCacheAsBitmap: Js.t(PIXI.C.displayObject) => bool => unit;let getCursor: Js.t(PIXI.C.displayObject) => string;let setCursor: Js.t(PIXI.C.displayObject) => string => unit;let getFilterArea: Js.t(PIXI.C.displayObject) => Js.Nullable.t(Js.t(PIXI.Rectangle._t));let setFilterArea: Js.t(PIXI.C.displayObject) => Js.Nullable.t(Js.t(PIXI.Rectangle._t)) => unit;let getFilters: Js.t(PIXI.C.displayObject) => Js.Nullable.t(array(PIXI.Filter.t));let setFilters: Js.t(PIXI.C.displayObject) => Js.Nullable.t(array(PIXI.Filter.t)) => unit;let getHitArea: Js.t(PIXI.C.displayObject) => 'hitArea;let setHitArea: Js.t(PIXI.C.displayObject) => 'hitArea => unit;let getInteractive: Js.t(PIXI.C.displayObject) => bool;let setInteractive: Js.t(PIXI.C.displayObject) => bool => unit;let getIsMask: Js.t(PIXI.C.displayObject) => bool;let getIsSprite: Js.t(PIXI.C.displayObject) => bool;let getLocalTransform: Js.t(PIXI.C.displayObject) => Js.t(PIXI.Matrix._t);let getMask: Js.t(PIXI.C.displayObject) => 'mask;let setMask: Js.t(PIXI.C.displayObject) => 'mask => unit;let getName: Js.t(PIXI.C.displayObject) => Js.Nullable.t(string);let setName: Js.t(PIXI.C.displayObject) => Js.Nullable.t(string) => unit;let getParent: Js.t(PIXI.C.displayObject) => Js.Nullable.t(PIXI.C.container);let getPivot: Js.t(PIXI.C.displayObject) => Js.t(PIXI.ObservablePoint._t);let setPivot: Js.t(PIXI.C.displayObject) => Js.t(PIXI.ObservablePoint._t) => unit;let getPosition: Js.t(PIXI.C.displayObject) => Js.t(PIXI.ObservablePoint._t);let setPosition: Js.t(PIXI.C.displayObject) => Js.t(PIXI.ObservablePoint._t) => unit;let getRenderable: Js.t(PIXI.C.displayObject) => bool;let setRenderable: Js.t(PIXI.C.displayObject) => bool => unit;let getRotation: Js.t(PIXI.C.displayObject) => float;let setRotation: Js.t(PIXI.C.displayObject) => float => unit;let getScale: Js.t(PIXI.C.displayObject) => Js.t(PIXI.ObservablePoint._t);let setScale: Js.t(PIXI.C.displayObject) => Js.t(PIXI.ObservablePoint._t) => unit;let getSkew: Js.t(PIXI.C.displayObject) => Js.t(PIXI.ObservablePoint._t);let setSkew: Js.t(PIXI.C.displayObject) => Js.t(PIXI.ObservablePoint._t) => unit;let getTransform: Js.t(PIXI.C.displayObject) => Js.t(PIXI.Transform._t);let getVisible: Js.t(PIXI.C.displayObject) => bool;let setVisible: Js.t(PIXI.C.displayObject) => bool => unit;let getWorldAlpha: Js.t(PIXI.C.displayObject) => float;let getWorldTransform: Js.t(PIXI.C.displayObject) => Js.t(PIXI.Matrix._t);let getWorldVisible: Js.t(PIXI.C.displayObject) => bool;let getX: Js.t(PIXI.C.displayObject) => float;let setX: Js.t(PIXI.C.displayObject) => float => unit;let getY: Js.t(PIXI.C.displayObject) => float;let setY: Js.t(PIXI.C.displayObject) => float => unit;let getZIndex: Js.t(PIXI.C.displayObject) => float;let setZIndex: Js.t(PIXI.C.displayObject) => float => unit;let _recursivePostUpdateTransform: Js.t(PIXI.C.displayObject) => unit;let destroy: Js.t(PIXI.C.displayObject) => unit;let getBounds: Js.t(PIXI.C.displayObject) => ?skipUpdate:bool => ?rect:Js.t(PIXI.Rectangle._t) => unit => Js.t(PIXI.Rectangle._t);let getGlobalPosition: Js.t(PIXI.C.displayObject) => ?point:Js.t(PIXI.Point._t) => ?skipUpdate:bool => unit => Js.t(PIXI.Point._t);let getLocalBounds: Js.t(PIXI.C.displayObject) => ?rectangle:Js.t(PIXI.Rectangle._t) => unit => Js.t(PIXI.Rectangle._t);let setContainer: Js.t(PIXI.C.displayObject) => Js.t(PIXI.C.container as 'b) => Js.t('b);let setTransform: Js.t(PIXI.C.displayObject) => ?x:float => ?y:float => ?scaleX:float => ?scaleY:float => ?rotation:float => ?skewX:float => ?skewY:float => ?pivotX:float => ?pivotY:float => unit => PIXI.DisplayObject.t;let toGlobal: Js.t(PIXI.C.displayObject) => position:[ `ObservablePoint(PIXI.ObservablePoint.t) | `Point(PIXI.Point.t) ] => ?point:PIXI.Point.t => ?skipUpdate:bool => unit => PIXI.Point.t;let toLocal: Js.t(PIXI.C.displayObject) => position:[ `ObservablePoint(PIXI.ObservablePoint.t) | `Point(PIXI.Point.t) ] => ?from:PIXI.DisplayObject.t => ?point:PIXI.Point.t => ?skipUpdate:bool => unit => PIXI.Point.t;let updateTransform: Js.t(PIXI.C.displayObject) => unit;
include PIXI.Container.Impl;
let create: unit => PIXI.Container.t;let createDestroyOptions: ?children:bool => ?texture:bool => ?baseTexture:bool => unit => Js.t({. baseTexture: Js.undefined(bool), children: Js.undefined(bool), texture: Js.undefined(bool), });let getChildren: Js.t(PIXI.C.container) => array(Js.t(PIXI.C.displayObject));let getHeight: Js.t(PIXI.C.container) => float;let setHeight: Js.t(PIXI.C.container) => float => unit;let getInteractiveChildren: Js.t(PIXI.C.container) => bool;let setInteractiveChildren: Js.t(PIXI.C.container) => bool => unit;let getSortableChildren: Js.t(PIXI.C.container) => bool;let setSortableChildren: Js.t(PIXI.C.container) => bool => unit;let getSortDirty: Js.t(PIXI.C.container) => bool;let setSortDirty: Js.t(PIXI.C.container) => bool => unit;let getWidth: Js.t(PIXI.C.container) => float;let setWidth: Js.t(PIXI.C.container) => float => unit;let addChild: Js.t(PIXI.C.container) => Js.t(PIXI.C.displayObject as 'b) => Js.t('b);let addChildAt: Js.t(PIXI.C.container) => Js.t(PIXI.C.displayObject as 'b) => index:int => Js.t('b);let calculateBounds: Js.t(PIXI.C.container) => unit;let _destroy: Js.t(PIXI.C.container) => ?options:'a => unit => unit;
let destroy: Js.t(PIXI.C.container) => ?options:Js.t({. baseTexture: Js.undefined(bool), children: Js.undefined(bool), texture: Js.undefined(bool), }) => unit => unit;
let getChildAt: Js.t(PIXI.C.container) => int => Js.t(PIXI.C.displayObject);let getChildByName: Js.t(PIXI.C.container) => string => Js.t(PIXI.C.displayObject);let getChildIndex: Js.t(PIXI.C.container) => Js.t(PIXI.C.displayObject) => int;let removeChild: Js.t(PIXI.C.container) => Js.t(PIXI.C.displayObject as 'b) => Js.t('b);let removeChildAt: Js.t(PIXI.C.container) => int => Js.t(PIXI.C.displayObject);let removeChildren: Js.t(PIXI.C.container) => ?beginIndex:int => ?endIndex:int => unit => array(Js.t(PIXI.C.displayObject));let renderCanvas: Js.t(PIXI.C.container) => Js.t(PIXI.AbstractRenderer._t) => unit;let setChildIndex: Js.t(PIXI.C.container) => int => unit;let sortChildren: Js.t(PIXI.C.container) => unit;let swapChildren: Js.t(PIXI.C.container) => Js.t(PIXI.C.displayObject) => Js.t(PIXI.C.displayObject) => unit;
include Impl;
let _create: geometry:PIXI.Geometry.t => shader:[ `Shader(PIXI.Shader.t) | `MeshMaterial(PIXI.MeshMaterial.t) ] => ?state:PIXI.State.t => ?drawMode:int => unit => Js.t(_t);
let create: geometry:PIXI.Geometry.t => shader:[ `MeshMaterial(PIXI.MeshMaterial.t) | `Shader(PIXI.Shader.t) ] => ?state:PIXI.State.t => ?drawMode:PIXI.DRAW_MODES.t => unit => Js.t(_t);creates a new mesh instance
- parameter geometry
the geometry the mesh will use
- parameter shader
the shader the mesh will use
- parameter state
the state that the WebGL context is required to be in to render the mesh if no state is provided, uses PIXI.State.for2d to create a 2D state for PixiJS.
- parameter drawMode
the drawMode, can be any of the PIXI.DRAW_MODES consts
let batchableSize: int;The maximum number of vertices to consider batchable. Generally, the complexity of the geometry.
let getBlendMode: Js.t(_t) => PIXI.BLEND_MODES.t;The maximum number of vertices to consider batchable. Generally, the complexity of the geometry.
let getDrawMode: Js.t(_t) => PIXI.DRAW_MODES.t;The way the Mesh should be drawn, can be any of the PIXI.DRAW_MODES constants.
let setBlendMode: Js.t(_t) => PIXI.BLEND_MODES.t => unit;The blend mode to be applied to the Mesh. Apply a value of PIXI.BLEND_MODES.NORMAL to reset the blend mode.
let setDrawMode: Js.t(_t) => PIXI.DRAW_MODES.t => unit;The blend mode to be applied to the Mesh. Apply a value of PIXI.BLEND_MODES.NORMAL to reset the blend mode
let getGeometry: Js.t(_t) => Js.t(PIXI.Geometry.#_t);Includes vertex positions, face indices, normals, colors, UVs, and custom attributes within buffers, reducing the cost of passing all this data to the GPU. Can be shared between multiple Mesh objects.
let getMaterial: Js.t(_t) => Js.t(PIXI.MeshMaterial.#_t);Alias for PIXI.Mesh#shader.
let setMaterial: Js.t(_t) => Js.t(PIXI.MeshMaterial.#_t) => unit;Alias for PIXI.Mesh#shader.
let getRoundPixels: Js.t(_t) => bool;If true PixiJS will Math.floor() x/y values when rendering, stopping pixel interpolation. Advantages can include sharper image quality (like text) and faster rendering on canvas. The main disadvantage is movement of objects may appear less smooth. To set the global default, change PIXI.settings.ROUND_PIXELS
let setRoundPixels: Js.t(_t) => bool => unit;If true PixiJS will Math.floor() x/y values when rendering, stopping pixel interpolation. Advantages can include sharper image quality (like text) and faster rendering on canvas. The main disadvantage is movement of objects may appear less smooth. To set the global default, change PIXI.settings.ROUND_PIXELS
let getShader: Js.t(_t) => Js.t(PIXI.Shader.#_t);Represents the vertex and fragment shaders that processes the geometry and runs on the GPU. Can be shared between multiple Mesh objects.
let setShader: Js.t(_t) => Js.t(PIXI.Shader.#_t) => unit;Represents the vertex and fragment shaders that processes the geometry and runs on the GPU. Can be shared between multiple Mesh objects.
let getSize: Js.t(_t) => float;How much of the geometry to draw, by default 0 renders everything.
let setSize: Js.t(_t) => float => unit;How much of the geometry to draw, by default 0 renders everything.
let getStart: Js.t(_t) => int;Typically the index of the IndexBuffer where to start drawing.
let setStart: Js.t(_t) => int => unit;Typically the index of the IndexBuffer where to start drawing.
let getState: Js.t(_t) => Js.t(PIXI.State.#_t);Represents the WebGL state the Mesh required to render, excludes shader and geometry. E.g., blend mode, culling, depth testing, direction of rendering triangles, backface, etc.
let setState: Js.t(_t) => Js.t(PIXI.State.#_t) => unit;Represents the WebGL state the Mesh required to render, excludes shader and geometry. E.g., blend mode, culling, depth testing, direction of rendering triangles, backface, etc.
let getTexture: Js.t(_t) => Js.t(PIXI.Texture.#_t);The texture that the Mesh uses.
let setTexture: Js.t(_t) => Js.t(PIXI.Texture.#_t) => unit;The texture that the Mesh uses.
let getTint: Js.t(_t) => int;The multiply tint applied to the Mesh. This is a hex value. A value of 0xFFFFFF will remove any tint effect.
let setTint: Js.t(_t) => int => unit;The multiply tint applied to the Mesh. This is a hex value. A value of 0xFFFFFF will remove any tint effect.
let getUvBuffer: Js.t(_t) => Js.t(PIXI.Buffer.#_t);To change mesh uv's, change its uvBuffer data and increment its _updateID.
let getVerticesBuffer: Js.t(_t) => Js.t(PIXI.Buffer.#_t);To change mesh vertices, change its uvBuffer data and increment its _updateID. Incrementing _updateID is optional because most of Mesh objects do it anyway.
let calculateUvs: Js.t(_t) => unit;Updates uv field based on from geometry uv's or batchUvs
let calculateVertices: Js.t(_t) => unit;Updates vertexData field based on transform and vertices
let containsPoint: Js.t(_t) => point:PIXI.Point.t => bool;Tests if a point is inside this mesh. Works only for PIXI.DRAW_MODES.TRIANGLES.
let destroy: Js.t(_t) => ?options:Js.t({. children: bool, }) => unit => unit;Destroys the Mesh object.