Files
filament/docs/webgl/reference.html
2021-11-29 11:29:22 -08:00

1537 lines
47 KiB
HTML

<!DOCTYPE html>
<html lang="en"><head>
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700|Tangerine:700|Inconsolata" rel="stylesheet">
<link href="main.css" rel="stylesheet" type="text/css">
<style>
li > p { margin: 0 }
li { list-style-type: none }
div.classdoc, div.funcdoc, div.enumdoc {
background: #eee;
padding-left: 10px;
padding-top: 1px;
padding-bottom: 1px;
margin-bottom: 10px;
}
div.classdoc > h2, div.funcdoc > h2, div.enumdoc > h2 { margin-top: 10px; }
.verbiage h3 a, .verbiage h2 a { color: #567 }
</style>
</head>
<body class="verbiage">
<p>All type names in this reference belong to the Filament namespace. For example, <strong><a href="#init">init</a></strong> actually refers to <strong>Filament.init</strong>.</p>
<h3><a id="classes" href="#classes">Classes</a></h3>
<table>
<thead>
<tr>
<th align="left"></th>
<th align="left"></th>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><a href="#BufferDescriptor">BufferDescriptor</a></td>
<td align="left">Low level buffer wrapper.</td>
</tr>
<tr>
<td align="left"><a href="#BufferObject">BufferObject</a></td>
<td align="left">Represents a single GPU buffer.</td>
</tr>
<tr>
<td align="left"><a href="#Camera">Camera</a></td>
<td align="left">Represents the eye through which the scene is viewed.</td>
</tr>
<tr>
<td align="left"><a href="#Engine">Engine</a></td>
<td align="left">Central manager and resource owner.</td>
</tr>
<tr>
<td align="left"><a href="#Entity">Entity</a></td>
<td align="left">Handle to an object consisting of a set of components.</td>
</tr>
<tr>
<td align="left"><a href="#EntityManager">EntityManager</a></td>
<td align="left">Singleton used for constructing entities in Filament's ECS.</td>
</tr>
<tr>
<td align="left"><a href="#Frustum">Frustum</a></td>
<td align="left">Represents the six planes of a truncated viewing pyramid</td>
</tr>
<tr>
<td align="left"><a href="#IcoSphere">IcoSphere</a></td>
<td align="left">Utility class for constructing spheres (requires glMatrix).</td>
</tr>
<tr>
<td align="left"><a href="#IndexBuffer">IndexBuffer</a></td>
<td align="left">Array of 16-bit or 32-bit unsigned integers consumed by the GPU.</td>
</tr>
<tr>
<td align="left"><a href="#KtxBundle">KtxBundle</a></td>
<td align="left">In-memory representation of a KTX file.</td>
</tr>
<tr>
<td align="left"><a href="#KtxInfo">KtxInfo</a></td>
<td align="left">Property accessor for KTX header.</td>
</tr>
<tr>
<td align="left"><a href="#LightManager%24Instance">LightManager$Instance</a></td>
<td align="left">Component instance returned by <a href="#LightManager">LightManager</a></td>
</tr>
<tr>
<td align="left"><a href="#PixelBufferDescriptor">PixelBufferDescriptor</a></td>
<td align="left">Low level pixel buffer wrapper.</td>
</tr>
<tr>
<td align="left"><a href="#RenderableManager">RenderableManager</a></td>
<td align="left">Allows access to properties of drawable objects.</td>
</tr>
<tr>
<td align="left"><a href="#RenderableManager%24Instance">RenderableManager$Instance</a></td>
<td align="left">Component instance returned by <a href="#RenderableManager">RenderableManager</a></td>
</tr>
<tr>
<td align="left"><a href="#Renderer">Renderer</a></td>
<td align="left">Represents the platform's native window.</td>
</tr>
<tr>
<td align="left"><a href="#Scene">Scene</a></td>
<td align="left">Flat container of renderables and lights.</td>
</tr>
<tr>
<td align="left"><a href="#SwapChain">SwapChain</a></td>
<td align="left">Represents the platform's native rendering surface.</td>
</tr>
<tr>
<td align="left"><a href="#Texture">Texture</a></td>
<td align="left">2D image or cubemap that can be sampled by the GPU, possibly mipmapped.</td>
</tr>
<tr>
<td align="left"><a href="#TransformManager">TransformManager</a></td>
<td align="left">Adds transform components to entities.</td>
</tr>
<tr>
<td align="left"><a href="#TransformManager%24Instance">TransformManager$Instance</a></td>
<td align="left">Component instance returned by <a href="#TransformManager">TransformManager</a></td>
</tr>
<tr>
<td align="left"><a href="#VertexBuffer">VertexBuffer</a></td>
<td align="left">Bundle of buffers and associated vertex attributes.</td>
</tr>
<tr>
<td align="left"><a href="#View">View</a></td>
<td align="left">Encompasses all the state needed for rendering a Scene.</td>
</tr>
</tbody>
</table>
<h3><a id="functions" href="#functions">Free Functions</a></h3>
<table>
<thead>
<tr>
<th align="left"></th>
<th align="left"></th>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><a href="#Buffer">Buffer</a></td>
<td align="left">Constructs a <a href="#BufferDescriptor">BufferDescriptor</a> by copying a typed array into the WASM heap.</td>
</tr>
<tr>
<td align="left"><a href="#CompressedPixelBuffer">CompressedPixelBuffer</a></td>
<td align="left">Constructs a <a href="#PixelBufferDescriptor">PixelBufferDescriptor</a> for compressed texture</td>
</tr>
<tr>
<td align="left"><a href="#PixelBuffer">PixelBuffer</a></td>
<td align="left">Constructs a <a href="#PixelBufferDescriptor">PixelBufferDescriptor</a> by copying a typed array into the WASM heap.</td>
</tr>
<tr>
<td align="left"><a href="#fetch">fetch</a></td>
<td align="left">Downloads assets and invokes a callback when done.</td>
</tr>
<tr>
<td align="left"><a href="#getSupportedFormatSuffix">getSupportedFormatSuffix</a></td>
<td align="left">Generate a file suffix according to the texture format.</td>
</tr>
<tr>
<td align="left"><a href="#getSupportedFormats">getSupportedFormats</a></td>
<td align="left">Queries WebGL to check which compressed formats are supported.</td>
</tr>
<tr>
<td align="left"><a href="#init">init</a></td>
<td align="left">Downloads assets, loads the Filament module, and invokes a callback when done.</td>
</tr>
<tr>
<td align="left"><a href="#loadMathExtensions">loadMathExtensions</a></td>
<td align="left">Extends the <a href="http://glmatrix.net/">glMatrix</a> math library.</td>
</tr>
<tr>
<td align="left"><a href="#packSnorm16">packSnorm16</a></td>
<td align="left">Converts a float in [-1, +1] into a half-float.</td>
</tr>
</tbody>
</table>
<h3><a id="enums" href="#enums">Enumerations</a></h3>
<table>
<thead>
<tr>
<th align="left"></th>
<th align="left"></th>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><a href="#BufferObject%24BindingType">BufferObject$BindingType</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#Camera%24Fov">Camera$Fov</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#Camera%24Projection">Camera$Projection</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#ColorGrading%24QualityLevel">ColorGrading$QualityLevel</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#ColorGrading%24ToneMapping">ColorGrading$ToneMapping</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#CompareFunc">CompareFunc</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#CompareMode">CompareMode</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#CompressedPixelDataType">CompressedPixelDataType</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#CullingMode">CullingMode</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#Frustum%24Plane">Frustum$Plane</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#IndexBuffer%24IndexType">IndexBuffer$IndexType</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#LightManager%24Type">LightManager$Type</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#MagFilter">MagFilter</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#MinFilter">MinFilter</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#PixelDataFormat">PixelDataFormat</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#PixelDataType">PixelDataType</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#RenderTarget%24AttachmentPoint">RenderTarget$AttachmentPoint</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#RenderableManager%24PrimitiveType">RenderableManager$PrimitiveType</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#RgbType">RgbType</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#RgbaType">RgbaType</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#Texture%24CubemapFace">Texture$CubemapFace</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#Texture%24InternalFormat">Texture$InternalFormat</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#Texture%24Sampler">Texture$Sampler</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#Texture%24Usage">Texture$Usage</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#VertexAttribute">VertexAttribute</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#VertexBuffer%24AttributeType">VertexBuffer$AttributeType</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#View%24AmbientOcclusion">View$AmbientOcclusion</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#View%24AntiAliasing">View$AntiAliasing</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#View%24BlendMode">View$BlendMode</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#View%24BloomOptions%24BlendMode">View$BloomOptions$BlendMode</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#View%24DepthOfFieldOptions%24Filter">View$DepthOfFieldOptions$Filter</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#View%24QualityLevel">View$QualityLevel</a></td>
<td align="left"></td>
</tr>
<tr>
<td align="left"><a href="#WrapMode">WrapMode</a></td>
<td align="left"></td>
</tr>
</tbody>
</table>
<br>
<div class='classdoc'>
<h2>class <a id='BufferDescriptor' href='#BufferDescriptor'>BufferDescriptor</a></h2>
<p>Low level buffer wrapper.</p>
<ul>
<li><strong>bufferDescriptor.getBytes()</strong>
<ul>
<li>Gets a view of the WASM heap referenced by the buffer descriptor.</li>
<li><em>returns</em> Uint8Array</li>
</ul>
</li>
</ul>
<p>Clients should use the <a href="#Buffer">Buffer</a> helper function to contruct BufferDescriptor objects.</p>
</div>
<div class='classdoc'>
<h2>class <a id='BufferObject' href='#BufferObject'>BufferObject</a></h2>
<p>Represents a single GPU buffer.</p>
<ul>
<li><strong>bufferObject.setBuffer(engine, buffer, byteOffset)</strong>
<ul>
<li><em>engine</em> <a href="#Engine">Engine</a></li>
<li><em>buffer</em> asset string, or Uint8Array, or <a href="#Buffer">Buffer</a></li>
<li><em>byteOffset</em> non-negative integer</li>
</ul>
</li>
</ul>
</div>
<div class='classdoc'>
<h2>class <a id='Camera' href='#Camera'>Camera</a></h2>
<p>Represents the eye through which the scene is viewed.</p>
<p>See also the <a href="#Engine">Engine</a> methods <code>createCamera</code> and <code>destroyCamera</code>.</p>
</div>
<div class='classdoc'>
<h2>class <a id='Engine' href='#Engine'>Engine</a></h2>
<p>Central manager and resource owner.</p>
<ul>
<li><strong>engine.addEntities(entities)</strong>
<ul>
<li><em>entities</em> array of entities</li>
</ul>
</li>
<li><strong>Engine.create(canvas, options)</strong>
<ul>
<li>Creates an Engine instance for the given canvas.</li>
<li><em>canvas</em> the canvas DOM element</li>
<li><em>options</em> optional WebGL 2.0 context configuration</li>
<li><em>returns</em> an instance of <a href="#Engine">Engine</a></li>
</ul>
</li>
<li><strong>engine.createAssetLoader()</strong>
<ul>
<li><em>returns</em> an instance of <a href="#AssetLoader">AssetLoader</a></li>
</ul>
</li>
<li><strong>engine.createCamera(entity)</strong>
<ul>
<li><em>entity</em> the <a href="#Entity">Entity</a> to add the camera component to</li>
<li><em>returns</em> an instance of <a href="#Camera">Camera</a></li>
</ul>
</li>
<li><strong>engine.createIblFromKtx(buffer, options)</strong>
<ul>
<li>Utility that creates an [IndirectLight] from a KTX file.</li>
<li><em>buffer</em> asset string, or Uint8Array, or <a href="#Buffer">Buffer</a> with KTX file contents</li>
<li><em>options</em> Options dictionary.</li>
<li><em>returns</em> <a href="#IndirectLight">IndirectLight</a></li>
</ul>
</li>
<li><strong>engine.createMaterial(package)</strong>
<ul>
<li><em>package</em> asset string, or Uint8Array, or <a href="#Buffer">Buffer</a> with filamat contents</li>
<li><em>returns</em> an instance of <a href="#createMaterial">createMaterial</a></li>
</ul>
</li>
<li><strong>engine.createRenderer()</strong>
<ul>
<li><em>returns</em> an instance of <a href="#Renderer">Renderer</a></li>
</ul>
</li>
<li><strong>engine.createScene()</strong>
<ul>
<li><em>returns</em> an instance of <a href="#Scene">Scene</a></li>
</ul>
</li>
<li><strong>engine.createSkyFromKtx(buffer, options)</strong>
<ul>
<li>Utility function that creates a [Skybox] from a KTX file.</li>
<li><em>buffer</em> asset string, or Uint8Array, or <a href="#Buffer">Buffer</a> with KTX file contents</li>
<li><em>options</em> Options dictionary.</li>
<li><em>returns</em> <a href="#Skybox">Skybox</a></li>
</ul>
</li>
<li><strong>engine.createSwapChain()</strong>
<ul>
<li><em>returns</em> an instance of <a href="#SwapChain">SwapChain</a></li>
</ul>
</li>
<li><strong>engine.createTextureFromJpeg(buffer, options)</strong>
<ul>
<li>Creates a 2D [Texture] from the contents of a JPEG file.</li>
<li><em>buffer</em> asset string, or Uint8Array, or <a href="#Buffer">Buffer</a> with JPEG file contents</li>
<li><em>options</em> JavaScript object with optional <code>srgb</code> and <code>nomips</code> keys.</li>
<li><em>returns</em> <a href="#Texture">Texture</a></li>
</ul>
</li>
<li><strong>engine.createTextureFromKtx(buffer, options)</strong>
<ul>
<li>Utility function that creates a [Texture] from a KTX file.</li>
<li><em>buffer</em> asset string, or Uint8Array, or <a href="#Buffer">Buffer</a> with KTX file contents</li>
<li><em>options</em> Options dictionary.</li>
<li><em>returns</em> <a href="#Texture">Texture</a></li>
</ul>
</li>
<li><strong>engine.createTextureFromPng(buffer, options)</strong>
<ul>
<li>Creates a 2D [Texture] from the raw contents of a PNG file.</li>
<li><em>buffer</em> asset string, or Uint8Array, or <a href="#Buffer">Buffer</a> with PNG file contents</li>
<li><em>options</em> object with optional <code>srgb</code>, <code>noalpha</code>, and <code>nomips</code> keys.</li>
<li><em>returns</em> <a href="#Texture">Texture</a></li>
</ul>
</li>
<li><strong>engine.createView()</strong>
<ul>
<li><em>returns</em> an instance of <a href="#View">View</a></li>
</ul>
</li>
<li><strong>Engine.destroy(engine)</strong>
<ul>
<li>Destroys an engine instance and cleans up resources.</li>
<li><em>engine</em> the instance to destroy</li>
</ul>
</li>
<li><strong>engine.destroyCameraComponent(camera)</strong>
<ul>
<li><em>camera</em> an <a href="#Entity">Entity</a> with a camera component</li>
</ul>
</li>
<li><strong>engine.destroyColorGrading(entity)</strong>
<ul>
<li><em>entity</em> an <a href="#ColorGrading">ColorGrading</a></li>
</ul>
</li>
<li><strong>engine.destroyEntity(entity)</strong>
<ul>
<li><em>entity</em> an <a href="#Entity">Entity</a></li>
</ul>
</li>
<li><strong>engine.destroyIndexBuffer(ib)</strong>
<ul>
<li><em>ib</em> the <a href="#IndexBuffer">IndexBuffer</a> to destroy</li>
</ul>
</li>
<li><strong>engine.destroyIndirectLight(light)</strong>
<ul>
<li><em>light</em> the <a href="#IndirectLight">IndirectLight</a> to destroy</li>
</ul>
</li>
<li><strong>engine.destroyMaterial(material)</strong>
<ul>
<li><em>material</em> an instance of <a href="#Material">Material</a></li>
</ul>
</li>
<li><strong>engine.destroyMaterial(instance)</strong>
<ul>
<li><em>instance</em> the <a href="#MaterialInstance">MaterialInstance</a> to destroy</li>
</ul>
</li>
<li><strong>engine.destroyRenderTarget(rt)</strong>
<ul>
<li><em>rt</em> the <a href="#RenderTarget">RenderTarget</a> to destroy</li>
</ul>
</li>
<li><strong>engine.destroyRenderer(renderer)</strong>
<ul>
<li><em>renderer</em> an instance of <a href="#Renderer">Renderer</a></li>
</ul>
</li>
<li><strong>engine.destroyScene(scene)</strong>
<ul>
<li><em>scene</em> an instance of <a href="#Scene">Scene</a></li>
</ul>
</li>
<li><strong>engine.destroySkybox(skybox)</strong>
<ul>
<li><em>skybox</em> the <a href="#Skybox">Skybox</a> to destroy</li>
</ul>
</li>
<li><strong>engine.destroySwapChain(swapChain)</strong>
<ul>
<li><em>swapChain</em> an instance of <a href="#SwapChain">SwapChain</a></li>
</ul>
</li>
<li><strong>engine.destroyTexture(texture)</strong>
<ul>
<li><em>texture</em> the <a href="#Texture">Texture</a> to destroy</li>
</ul>
</li>
<li><strong>engine.destroyVertexBuffer(vb)</strong>
<ul>
<li><em>vb</em> the <a href="#VertexBuffer">VertexBuffer</a> to destroy</li>
</ul>
</li>
<li><strong>engine.destroyView(view)</strong>
<ul>
<li><em>view</em> an instance of <a href="#View">View</a></li>
</ul>
</li>
<li><strong>engine.getCameraComponent()</strong>
<ul>
<li><em>returns</em> an instance of <a href="#Camera">Camera</a></li>
</ul>
</li>
<li><strong>engine.getEntityManager()</strong></li>
<li><strong>engine.getLightManager()</strong>
<ul>
<li><em>returns</em> an instance of <a href="#LightManager">LightManager</a></li>
</ul>
</li>
<li><strong>engine.getRenderableManager()</strong>
<ul>
<li><em>returns</em> an instance of <a href="#RenderableManager">RenderableManager</a></li>
</ul>
</li>
<li><strong>engine.getTransformManager()</strong>
<ul>
<li><em>returns</em> an instance of <a href="#TransformManager">TransformManager</a></li>
</ul>
</li>
<li><strong>engine.loadFilamesh(buffer, definstance, matinstances)</strong>
<ul>
<li>Consumes the contents of a filamesh file and creates a renderable.</li>
<li><em>buffer</em> asset string, or Uint8Array, or <a href="#Buffer">Buffer</a> with filamesh contents</li>
<li><em>definstance</em> Optional default <a href="#MaterialInstance">MaterialInstance</a></li>
<li><em>matinstances</em> Optional in-out object that gets populated with a name-to-<a href="#MaterialInstance">MaterialInstance</a> mapping. Clients can also optionally provide individual material instances using this argument.</li>
<li><em>returns</em> JavaScript object with keys <code>renderable</code>, <code>vertexBuffer</code>, and <code>indexBuffer</code>. These are of type <a href="#Entity">Entity</a>, <a href="#VertexBuffer">VertexBuffer</a>, and <a href="#IndexBuffer">IndexBuffer</a>.</li>
</ul>
</li>
<li><strong>engine.removeEntities(entities)</strong>
<ul>
<li><em>entities</em> array of entities</li>
</ul>
</li>
<li><strong>engine.setAmbientOcclusionOptions(overrides)</strong>
<ul>
<li><em>overrides</em> Dictionary with one or more of the following properties: radius, power, bias, resolution, intensity, quality.</li>
</ul>
</li>
<li><strong>engine.setBloomOptions(overrides)</strong>
<ul>
<li><em>overrides</em> Dictionary with one or more of the following properties: enabled, strength, resolution, anomorphism, levels, blendMode, threshold, highlight.</li>
</ul>
</li>
<li><strong>engine.setClearOptions(overrides)</strong>
<ul>
<li><em>overrides</em> Dictionary with one or more of the following properties: clearColor, clear, discard.</li>
</ul>
</li>
<li><strong>engine.setDepthOfFieldOptions(overrides)</strong>
<ul>
<li><em>overrides</em> Dictionary with one or more of the following properties: cocScale, maxApertureDiameter, enabled.</li>
</ul>
</li>
<li><strong>engine.setFogOptions(overrides)</strong>
<ul>
<li><em>overrides</em> Dictionary with one or more of the following properties: distance, maximumOpacity, height, heightFalloff, color, density, inScatteringStart,</li>
</ul>
</li>
<li><strong>engine.setMultiSampleAntiAliasingOptions(overrides)</strong>
<ul>
<li><em>overrides</em> Dictionary with one or more of the following properties: enabled, sampleCount, customResolve.</li>
</ul>
</li>
<li><strong>engine.setShadowOptions(instance, overrides)</strong>
<ul>
<li><em>instance</em> Instance of a light component obtained from <code>getInstance</code>.</li>
<li><em>overrides</em> Dictionary with one or more of the following properties: mapSize, shadowCascades, constantBias, normalBias, shadowFar, shadowNearHint, shadowFarHint, stable, polygonOffsetConstant, polygonOffsetSlope, \</li>
</ul>
</li>
<li><strong>engine.setTemporalAntiAliasingOptions(overrides)</strong>
<ul>
<li><em>overrides</em> Dictionary with one or more of the following properties: filterWidth, feedback, enabled.</li>
</ul>
</li>
<li><strong>engine.setVignetteOptions(overrides)</strong>
<ul>
<li><em>overrides</em> Dictionary with one or more of the following properties: midPoint, roundness, feather, color, enabled.</li>
</ul>
</li>
</ul>
</div>
<div class='classdoc'>
<h2>class <a id='Entity' href='#Entity'>Entity</a></h2>
<p>Handle to an object consisting of a set of components.</p>
<ul>
<li><strong>entity.delete()</strong>
<ul>
<li>Frees an entity.</li>
</ul>
</li>
</ul>
<p>To create an entity with no components, use <a href="#EntityManager">EntityManager</a>.
TODO: It would be better to expose these as JS numbers rather than as JS objects.
This would also be more consistent with Filament's Java bindings.</p>
</div>
<div class='classdoc'>
<h2>class <a id='EntityManager' href='#EntityManager'>EntityManager</a></h2>
<p>Singleton used for constructing entities in Filament's ECS.</p>
<ul>
<li><strong>entityManager.create()</strong>
<ul>
<li><em>returns</em> an <a href="#Entity">Entity</a> without any components</li>
</ul>
</li>
<li><strong>EntityManager.get()</strong>
<ul>
<li>Gets the singleton entity manager instance.</li>
<li><em>returns</em> the one and only entity manager</li>
</ul>
</li>
</ul>
</div>
<div class='classdoc'>
<h2>class <a id='Frustum' href='#Frustum'>Frustum</a></h2>
<p>Represents the six planes of a truncated viewing pyramid</p>
</div>
<div class='classdoc'>
<h2>class <a id='IcoSphere' href='#IcoSphere'>IcoSphere</a></h2>
<p>Utility class for constructing spheres (requires glMatrix).</p>
<p>The constructor takes an integer subdivision level, with 0 being an icosahedron.
Exposes three arrays as properties:</p>
<ul>
<li><code>icosphere.vertices</code> Float32Array of XYZ coordinates.</li>
<li><code>icosphere.tangents</code> Uint16Array (interpreted as half-floats) encoding the surface orientation
as quaternions.</li>
<li><code>icosphere.triangles</code> Uint16Array with triangle indices.</li>
</ul>
</div>
<div class='classdoc'>
<h2>class <a id='IndexBuffer' href='#IndexBuffer'>IndexBuffer</a></h2>
<p>Array of 16-bit or 32-bit unsigned integers consumed by the GPU.</p>
<ul>
<li><strong>indexBuffer.setBuffer(engine, buffer, byteOffset)</strong>
<ul>
<li><em>engine</em> <a href="#Engine">Engine</a></li>
<li><em>buffer</em> asset string, or Uint8Array, or <a href="#Buffer">Buffer</a></li>
<li><em>byteOffset</em> non-negative integer</li>
</ul>
</li>
</ul>
</div>
<div class='classdoc'>
<h2>class <a id='KtxBundle' href='#KtxBundle'>KtxBundle</a></h2>
<p>In-memory representation of a KTX file.</p>
<ul>
<li><strong>ktxBundle.getArrayLength()</strong>
<ul>
<li>Obtains length of the texture array.</li>
<li><em>returns</em> The number of elements in the texture array</li>
</ul>
</li>
<li><strong>ktxBundle.getCompressedPixelDataType()</strong>
<ul>
<li><em>returns</em> <a href="#CompressedPixelDataType">CompressedPixelDataType</a></li>
</ul>
</li>
<li><strong>ktxBundle.getInternalFormat(srgb)</strong>
<ul>
<li><em>srgb</em> boolean that forces the resulting format to SRGB if possible.</li>
<li><em>returns</em> <a href="#Texture%24InternalFormat">Texture$InternalFormat</a></li>
</ul>
</li>
<li><strong>ktxBundle.getMetadata(key)</strong>
<ul>
<li>Obtains arbitrary metadata from the KTX file.</li>
<li><em>key</em> string</li>
<li><em>returns</em> string</li>
</ul>
</li>
<li><strong>ktxBundle.getPixelDataFormat()</strong>
<ul>
<li><em>returns</em> <a href="#PixelDataFormat">PixelDataFormat</a></li>
</ul>
</li>
<li><strong>ktxBundle.getPixelDataType()</strong>
<ul>
<li><em>returns</em> <a href="#PixelDataType">PixelDataType</a></li>
</ul>
</li>
<li><strong>ktxBundle.info()</strong>
<ul>
<li>Obtains properties of the KTX header.</li>
<li><em>returns</em> The <a href="#KtxInfo">KtxInfo</a> property accessor object.</li>
</ul>
</li>
<li><strong>ktxBundle.info()</strong>
<ul>
<li>Obtains properties of the KTX header.</li>
<li><em>returns</em> The <a href="#KtxInfo">KtxInfo</a> property accessor object.</li>
</ul>
</li>
<li><strong>ktxBundle.isCompressed()</strong>
<ul>
<li><em>returns</em> boolean</li>
</ul>
</li>
</ul>
<p>Most clients should use one of the <code>create*FromKtx</code> utility methods in the JavaScript <a href="#Engine">Engine</a>
wrapper rather than interacting with <code>KtxBundle</code> directly.</p>
</div>
<div class='classdoc'>
<h2>class <a id='KtxInfo' href='#KtxInfo'>KtxInfo</a></h2>
<p>Property accessor for KTX header.</p>
<ul>
<li><strong>ktxInfo.createAssetFromBinary(buffer)</strong>
<ul>
<li><em>buffer</em> asset string, or Uint8Array, or <a href="#Buffer">Buffer</a></li>
<li><em>returns</em> an instance of <a href="#FilamentAsset">FilamentAsset</a></li>
</ul>
</li>
<li><strong>ktxInfo.createAssetFromJson(buffer)</strong>
<ul>
<li><em>buffer</em> asset string, or Uint8Array, or <a href="#Buffer">Buffer</a></li>
<li><em>returns</em> an instance of <a href="#FilamentAsset">FilamentAsset</a></li>
</ul>
</li>
<li><strong>ktxInfo.createInstancedAsset(buffer)</strong>
<ul>
<li><em>buffer</em> asset string, or Uint8Array, or <a href="#Buffer">Buffer</a></li>
<li><em>returns</em> an instance of <a href="#FilamentAsset">FilamentAsset</a></li>
</ul>
</li>
</ul>
<p>For example, <code>ktxbundle.info().pixelWidth</code>. See the
<a href="https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/">KTX spec</a> for the list of
properties.</p>
</div>
<div class='classdoc'>
<h2>class <a id='LightManager$Instance' href='#LightManager$Instance'>LightManager$Instance</a></h2>
<p>Component instance returned by <a href="#LightManager">LightManager</a></p>
<ul>
<li><strong>lightManager$Instance.delete()</strong>
<ul>
<li>Frees an instance obtained via <code>getInstance</code></li>
</ul>
</li>
</ul>
<p>Be sure to call the instance's <code>delete</code> method when you're done with it.</p>
</div>
<div class='classdoc'>
<h2>class <a id='PixelBufferDescriptor' href='#PixelBufferDescriptor'>PixelBufferDescriptor</a></h2>
<p>Low level pixel buffer wrapper.</p>
<ul>
<li><strong>pixelBufferDescriptor.getBytes()</strong>
<ul>
<li>Gets a view of the WASM heap referenced by the buffer descriptor.</li>
<li><em>returns</em> Uint8Array</li>
</ul>
</li>
</ul>
<p>Clients should use the <a href="#PixelBuffer">PixelBuffer</a> helper function to contruct PixelBufferDescriptor objects.</p>
</div>
<div class='classdoc'>
<h2>class <a id='RenderableManager' href='#RenderableManager'>RenderableManager</a></h2>
<p>Allows access to properties of drawable objects.</p>
<ul>
<li><strong>renderableManager.getInstance(entity)</strong>
<ul>
<li>Gets an instance of the renderable component for an entity.</li>
<li><em>entity</em> an <a href="#Entity">Entity</a></li>
<li><em>returns</em> a renderable component</li>
</ul>
</li>
</ul>
</div>
<div class='classdoc'>
<h2>class <a id='RenderableManager$Instance' href='#RenderableManager$Instance'>RenderableManager$Instance</a></h2>
<p>Component instance returned by <a href="#RenderableManager">RenderableManager</a></p>
<ul>
<li><strong>renderableManager$Instance.delete()</strong>
<ul>
<li>Frees an instance obtained via <code>getInstance</code></li>
</ul>
</li>
</ul>
<p>Be sure to call the instance's <code>delete</code> method when you're done with it.</p>
</div>
<div class='classdoc'>
<h2>class <a id='Renderer' href='#Renderer'>Renderer</a></h2>
<p>Represents the platform's native window.</p>
<ul>
<li><strong>renderer.render(swapChain, view)</strong>
<ul>
<li>requests rendering for a single frame on the given [View]</li>
<li><em>swapChain</em> the <a href="#SwapChain">SwapChain</a> corresponding to the canvas</li>
<li><em>view</em> the <a href="#View">View</a> corresponding to the canvas</li>
</ul>
</li>
</ul>
<p>See also the <a href="#Engine">Engine</a> methods <code>createRenderer</code> and <code>destroyRenderer</code>.</p>
</div>
<div class='classdoc'>
<h2>class <a id='Scene' href='#Scene'>Scene</a></h2>
<p>Flat container of renderables and lights.</p>
<p>See also the <a href="#Engine">Engine</a> methods <code>createScene</code> and <code>destroyScene</code>.</p>
</div>
<div class='classdoc'>
<h2>class <a id='SwapChain' href='#SwapChain'>SwapChain</a></h2>
<p>Represents the platform's native rendering surface.</p>
<p>See also the <a href="#Engine">Engine</a> methods <code>createSwapChain</code> and <code>destroySwapChain</code>.</p>
</div>
<div class='classdoc'>
<h2>class <a id='Texture' href='#Texture'>Texture</a></h2>
<p>2D image or cubemap that can be sampled by the GPU, possibly mipmapped.</p>
</div>
<div class='classdoc'>
<h2>class <a id='TransformManager' href='#TransformManager'>TransformManager</a></h2>
<p>Adds transform components to entities.</p>
<ul>
<li><strong>transformManager.getInstance(entity)</strong>
<ul>
<li>Gets an instance representing the transform component for an entity.</li>
<li><em>entity</em> an <a href="#Entity">Entity</a></li>
<li><em>returns</em> a transform component that can be passed to <code>setTransform</code>.</li>
</ul>
</li>
<li><strong>transformManager.setTransform(instance, matrix)</strong>
<ul>
<li>Sets the mat4 value of a transform component.</li>
<li><em>instance</em> The transform instance of entity, obtained via <code>getInstance</code>.</li>
<li><em>matrix</em> Array of 16 numbers (mat4)</li>
</ul>
</li>
</ul>
</div>
<div class='classdoc'>
<h2>class <a id='TransformManager$Instance' href='#TransformManager$Instance'>TransformManager$Instance</a></h2>
<p>Component instance returned by <a href="#TransformManager">TransformManager</a></p>
<ul>
<li><strong>transformManager$Instance.delete()</strong>
<ul>
<li>Frees an instance obtained via <code>getInstance</code></li>
</ul>
</li>
<li><strong>transformManager$Instance.getInstance(entity)</strong>
<ul>
<li>Gets an instance of the light component for an entity.</li>
<li><em>entity</em> an <a href="#Entity">Entity</a></li>
<li><em>returns</em> a light source component</li>
</ul>
</li>
</ul>
<p>Be sure to call the instance's <code>delete</code> method when you're done with it.</p>
</div>
<div class='classdoc'>
<h2>class <a id='VertexBuffer' href='#VertexBuffer'>VertexBuffer</a></h2>
<p>Bundle of buffers and associated vertex attributes.</p>
<ul>
<li><strong>vertexBuffer.setBufferAt(engine, bufferIndex, buffer, byteOffset)</strong>
<ul>
<li><em>engine</em> <a href="#Engine">Engine</a></li>
<li><em>bufferIndex</em> non-negative integer</li>
<li><em>buffer</em> asset string, or Uint8Array, or <a href="#Buffer">Buffer</a></li>
<li><em>byteOffset</em> non-negative integer</li>
</ul>
</li>
</ul>
</div>
<div class='classdoc'>
<h2>class <a id='View' href='#View'>View</a></h2>
<p>Encompasses all the state needed for rendering a Scene.</p>
<p>A view is associated with a particular <a href="#Scene">Scene</a>, <a href="#Camera">Camera</a>, and viewport.
See also the <a href="#Engine">Engine</a> methods <code>createView</code> and <code>destroyView</code>.</p>
</div>
<div class='funcdoc'>
<h2>function <a id='Buffer' href='#Buffer'>Buffer</a>(typedarray)</h2>
<p>Constructs a <a href="#BufferDescriptor">BufferDescriptor</a> by copying a typed array into the WASM heap.</p>
<ul>
<li><strong>typedarray</strong>
<ul>
<li>Data to consume (e.g. Uint8Array, Uint16Array, Float32Array)</li>
</ul>
</li>
<li><strong>returns</strong>
<ul>
<li><a href="#BufferDescriptor">BufferDescriptor</a></li>
</ul>
</li>
</ul>
</div>
<div class='funcdoc'>
<h2>function <a id='CompressedPixelBuffer' href='#CompressedPixelBuffer'>CompressedPixelBuffer</a>(typedarray, cdatatype, faceSize)</h2>
<p>Constructs a <a href="#PixelBufferDescriptor">PixelBufferDescriptor</a> for compressed texture</p>
<ul>
<li><strong>typedarray</strong>
<ul>
<li>Data to consume (e.g. Uint8Array, Uint16Array, Float32Array)</li>
</ul>
</li>
<li><strong>cdatatype</strong>
<ul>
<li><a href="#CompressedPixelDataType">CompressedPixelDataType</a></li>
</ul>
</li>
<li><strong>faceSize</strong>
<ul>
<li>Number of bytes in each face (cubemaps only)</li>
</ul>
</li>
<li><strong>returns</strong>
<ul>
<li><a href="#PixelBufferDescriptor">PixelBufferDescriptor</a></li>
</ul>
</li>
</ul>
<p>data by copying a typed array into the WASM heap.</p>
</div>
<div class='funcdoc'>
<h2>function <a id='PixelBuffer' href='#PixelBuffer'>PixelBuffer</a>(typedarray, format, datatype)</h2>
<p>Constructs a <a href="#PixelBufferDescriptor">PixelBufferDescriptor</a> by copying a typed array into the WASM heap.</p>
<ul>
<li><strong>typedarray</strong>
<ul>
<li>Data to consume (e.g. Uint8Array, Uint16Array, Float32Array)</li>
</ul>
</li>
<li><strong>format</strong>
<ul>
<li><a href="#PixelDataFormat">PixelDataFormat</a></li>
</ul>
</li>
<li><strong>datatype</strong>
<ul>
<li><a href="#PixelDataType">PixelDataType</a></li>
</ul>
</li>
<li><strong>returns</strong>
<ul>
<li><a href="#PixelBufferDescriptor">PixelBufferDescriptor</a></li>
</ul>
</li>
</ul>
</div>
<div class='funcdoc'>
<h2>function <a id='fetch' href='#fetch'>fetch</a>(assets, onDone, onFetched)</h2>
<p>Downloads assets and invokes a callback when done.</p>
<ul>
<li><strong>assets</strong>
<ul>
<li>Array of strings containing URL's of required assets.</li>
</ul>
</li>
<li><strong>onDone</strong>
<ul>
<li>callback that gets invoked after all assets have been downloaded.</li>
</ul>
</li>
<li><strong>onFetched</strong>
<ul>
<li>optional callback that's invoked after each asset is downloaded.</li>
</ul>
</li>
</ul>
<p>This utility consumes an array of URI strings and invokes callbacks after each asset is
downloaded. Additionally, each downloaded asset becomes available in the <code>Filament.assets</code>
global object, which is a mapping from URI strings to <code>Uint8Array</code>. If desired, clients can
pre-populate entries in <code>Filament.assets</code> to circumvent HTTP requests (this should be done after
calling <code>Filament.init</code>).
This function is used internally by <code>Filament.init</code> and <code>gltfio$FilamentAsset.loadResources</code>.</p>
</div>
<div class='funcdoc'>
<h2>function <a id='getSupportedFormatSuffix' href='#getSupportedFormatSuffix'>getSupportedFormatSuffix</a>(desiredFormats)</h2>
<p>Generate a file suffix according to the texture format.</p>
<ul>
<li><strong>desiredFormats</strong>
<ul>
<li>space-delimited string of desired formats</li>
</ul>
</li>
<li><strong>returns</strong>
<ul>
<li>empty string if there is no intersection of supported and desired formats.</li>
</ul>
</li>
</ul>
<p>Consumes a string describing desired formats and produces a file suffix depending on
which (if any) of the formats are actually supported by the WebGL implementation. This is
useful for compressed textures. For example, some platforms accept ETC and others accept S3TC.</p>
</div>
<div class='funcdoc'>
<h2>function <a id='getSupportedFormats' href='#getSupportedFormats'>getSupportedFormats</a>()</h2>
<p>Queries WebGL to check which compressed formats are supported.</p>
<ul>
<li><strong>returns</strong>
<ul>
<li>object with boolean values and the following keys: s3tc, astc, etc</li>
</ul>
</li>
</ul>
</div>
<div class='funcdoc'>
<h2>function <a id='init' href='#init'>init</a>(assets, onready)</h2>
<p>Downloads assets, loads the Filament module, and invokes a callback when done.</p>
<ul>
<li><strong>assets</strong>
<ul>
<li>Array of strings containing URL's of required assets.</li>
</ul>
</li>
<li><strong>onready</strong>
<ul>
<li>callback that gets invoked after all assets have been downloaded and the Filament WebAssembly module has been loaded.</li>
</ul>
</li>
</ul>
<p>All JavaScript clients must call the init function, passing in a list of asset URL's and a
callback. This callback gets invoked only after all assets have been downloaded and the Filament
WebAssembly module has been loaded. Clients should only pass asset URL's that absolutely must
be ready at initialization time.
When the callback is called, each downloaded asset is available in the <code>Filament.assets</code> global
object, which contains a mapping from URL's to Uint8Array objects.</p>
</div>
<div class='funcdoc'>
<h2>function <a id='loadMathExtensions' href='#loadMathExtensions'>loadMathExtensions</a>()</h2>
<p>Extends the <a href="http://glmatrix.net/">glMatrix</a> math library.</p>
<p>Filament does not require its clients to use glMatrix, but if its usage is detected then
the <a href="#init">init</a> function will automatically call <code>loadMathExtensions</code>.
This defines the following functions:</p>
<ul>
<li><strong>vec4.packSnorm16</strong> can be used to create half-floats (see <a href="#packSnorm16">packSnorm16</a>)</li>
<li><strong>mat3.fromRotation</strong> now takes an arbitrary axis</li>
</ul>
</div>
<div class='funcdoc'>
<h2>function <a id='packSnorm16' href='#packSnorm16'>packSnorm16</a>(value)</h2>
<p>Converts a float in [-1, +1] into a half-float.</p>
<ul>
<li><strong>value</strong>
<ul>
<li>float</li>
</ul>
</li>
<li><strong>returns</strong>
<ul>
<li>half-float</li>
</ul>
</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='BufferObject$BindingType' href='#BufferObject$BindingType'>BufferObject$BindingType</a></h2>
<ul>
<li>VERTEX</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='Camera$Fov' href='#Camera$Fov'>Camera$Fov</a></h2>
<ul>
<li>VERTICAL</li>
<li>HORIZONTAL</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='Camera$Projection' href='#Camera$Projection'>Camera$Projection</a></h2>
<ul>
<li>PERSPECTIVE</li>
<li>ORTHO</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='ColorGrading$QualityLevel' href='#ColorGrading$QualityLevel'>ColorGrading$QualityLevel</a></h2>
<ul>
<li>LOW</li>
<li>MEDIUM</li>
<li>HIGH</li>
<li>ULTRA</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='ColorGrading$ToneMapping' href='#ColorGrading$ToneMapping'>ColorGrading$ToneMapping</a></h2>
<ul>
<li>LINEAR</li>
<li>ACES_LEGACY</li>
<li>ACES</li>
<li>FILMIC</li>
<li>DISPLAY_RANGE</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='CompareFunc' href='#CompareFunc'>CompareFunc</a></h2>
<ul>
<li>LESS_EQUAL</li>
<li>GREATER_EQUAL</li>
<li>LESS</li>
<li>GREATER</li>
<li>EQUAL</li>
<li>NOT_EQUAL</li>
<li>ALWAYS</li>
<li>NEVER</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='CompareMode' href='#CompareMode'>CompareMode</a></h2>
<ul>
<li>NONE</li>
<li>COMPARE_TO_TEXTURE</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='CompressedPixelDataType' href='#CompressedPixelDataType'>CompressedPixelDataType</a></h2>
<ul>
<li>EAC_R11</li>
<li>EAC_R11_SIGNED</li>
<li>EAC_RG11</li>
<li>EAC_RG11_SIGNED</li>
<li>ETC2_RGB8</li>
<li>ETC2_SRGB8</li>
<li>ETC2_RGB8_A1</li>
<li>ETC2_SRGB8_A1</li>
<li>ETC2_EAC_RGBA8</li>
<li>ETC2_EAC_SRGBA8</li>
<li>DXT1_RGB</li>
<li>DXT1_RGBA</li>
<li>DXT3_RGBA</li>
<li>DXT5_RGBA</li>
<li>RGBA_ASTC_4x4</li>
<li>RGBA_ASTC_5x4</li>
<li>RGBA_ASTC_5x5</li>
<li>RGBA_ASTC_6x5</li>
<li>RGBA_ASTC_6x6</li>
<li>RGBA_ASTC_8x5</li>
<li>RGBA_ASTC_8x6</li>
<li>RGBA_ASTC_8x8</li>
<li>RGBA_ASTC_10x5</li>
<li>RGBA_ASTC_10x6</li>
<li>RGBA_ASTC_10x8</li>
<li>RGBA_ASTC_10x10</li>
<li>RGBA_ASTC_12x10</li>
<li>RGBA_ASTC_12x12</li>
<li>SRGB8_ALPHA8_ASTC_4x4</li>
<li>SRGB8_ALPHA8_ASTC_5x4</li>
<li>SRGB8_ALPHA8_ASTC_5x5</li>
<li>SRGB8_ALPHA8_ASTC_6x5</li>
<li>SRGB8_ALPHA8_ASTC_6x6</li>
<li>SRGB8_ALPHA8_ASTC_8x5</li>
<li>SRGB8_ALPHA8_ASTC_8x6</li>
<li>SRGB8_ALPHA8_ASTC_8x8</li>
<li>SRGB8_ALPHA8_ASTC_10x5</li>
<li>SRGB8_ALPHA8_ASTC_10x6</li>
<li>SRGB8_ALPHA8_ASTC_10x8</li>
<li>SRGB8_ALPHA8_ASTC_10x10</li>
<li>SRGB8_ALPHA8_ASTC_12x10</li>
<li>SRGB8_ALPHA8_ASTC_12x12</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='CullingMode' href='#CullingMode'>CullingMode</a></h2>
<ul>
<li>NONE</li>
<li>FRONT</li>
<li>BACK</li>
<li>FRONT_AND_BACK</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='Frustum$Plane' href='#Frustum$Plane'>Frustum$Plane</a></h2>
<ul>
<li>LEFT</li>
<li>RIGHT</li>
<li>BOTTOM</li>
<li>TOP</li>
<li>FAR</li>
<li>NEAR</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='IndexBuffer$IndexType' href='#IndexBuffer$IndexType'>IndexBuffer$IndexType</a></h2>
<ul>
<li>USHORT</li>
<li>UINT</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='LightManager$Type' href='#LightManager$Type'>LightManager$Type</a></h2>
<ul>
<li>SUN</li>
<li>DIRECTIONAL</li>
<li>POINT</li>
<li>FOCUSED_SPOT</li>
<li>SPOT</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='MagFilter' href='#MagFilter'>MagFilter</a></h2>
<ul>
<li>NEAREST</li>
<li>LINEAR</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='MinFilter' href='#MinFilter'>MinFilter</a></h2>
<ul>
<li>NEAREST</li>
<li>LINEAR</li>
<li>NEAREST_MIPMAP_NEAREST</li>
<li>LINEAR_MIPMAP_NEAREST</li>
<li>NEAREST_MIPMAP_LINEAR</li>
<li>LINEAR_MIPMAP_LINEAR</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='PixelDataFormat' href='#PixelDataFormat'>PixelDataFormat</a></h2>
<ul>
<li>R</li>
<li>R_INTEGER</li>
<li>RG</li>
<li>RG_INTEGER</li>
<li>RGB</li>
<li>RGB_INTEGER</li>
<li>RGBA</li>
<li>RGBA_INTEGER</li>
<li>DEPTH_COMPONENT</li>
<li>DEPTH_STENCIL</li>
<li>ALPHA</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='PixelDataType' href='#PixelDataType'>PixelDataType</a></h2>
<ul>
<li>UBYTE</li>
<li>BYTE</li>
<li>USHORT</li>
<li>SHORT</li>
<li>UINT</li>
<li>INT</li>
<li>HALF</li>
<li>FLOAT</li>
<li>UINT_10F_11F_11F_REV</li>
<li>USHORT_565</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='RenderTarget$AttachmentPoint' href='#RenderTarget$AttachmentPoint'>RenderTarget$AttachmentPoint</a></h2>
<ul>
<li>COLOR0</li>
<li>COLOR1</li>
<li>COLOR2</li>
<li>COLOR3</li>
<li>COLOR</li>
<li>DEPTH</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='RenderableManager$PrimitiveType' href='#RenderableManager$PrimitiveType'>RenderableManager$PrimitiveType</a></h2>
<ul>
<li>POINTS</li>
<li>LINES</li>
<li>TRIANGLES</li>
<li>NONE</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='RgbType' href='#RgbType'>RgbType</a></h2>
<ul>
<li>sRGB</li>
<li>LINEAR</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='RgbaType' href='#RgbaType'>RgbaType</a></h2>
<ul>
<li>sRGB</li>
<li>LINEAR</li>
<li>PREMULTIPLIED_sRGB</li>
<li>PREMULTIPLIED_LINEAR</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='Texture$CubemapFace' href='#Texture$CubemapFace'>Texture$CubemapFace</a></h2>
<ul>
<li>POSITIVE_X</li>
<li>NEGATIVE_X</li>
<li>POSITIVE_Y</li>
<li>NEGATIVE_Y</li>
<li>POSITIVE_Z</li>
<li>NEGATIVE_Z</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='Texture$InternalFormat' href='#Texture$InternalFormat'>Texture$InternalFormat</a></h2>
<ul>
<li>R8</li>
<li>R8_SNORM</li>
<li>R8UI</li>
<li>R8I</li>
<li>STENCIL8</li>
<li>R16F</li>
<li>R16UI</li>
<li>R16I</li>
<li>RG8</li>
<li>RG8_SNORM</li>
<li>RG8UI</li>
<li>RG8I</li>
<li>RGB565</li>
<li>RGB9_E5</li>
<li>RGB5_A1</li>
<li>RGBA4</li>
<li>DEPTH16</li>
<li>RGB8</li>
<li>SRGB8</li>
<li>RGB8_SNORM</li>
<li>RGB8UI</li>
<li>RGB8I</li>
<li>DEPTH24</li>
<li>R32F</li>
<li>R32UI</li>
<li>R32I</li>
<li>RG16F</li>
<li>RG16UI</li>
<li>RG16I</li>
<li>R11F_G11F_B10F</li>
<li>RGBA8</li>
<li>SRGB8_A8</li>
<li>RGBA8_SNORM</li>
<li>UNUSED</li>
<li>RGB10_A2</li>
<li>RGBA8UI</li>
<li>RGBA8I</li>
<li>DEPTH32F</li>
<li>DEPTH24_STENCIL8</li>
<li>DEPTH32F_STENCIL8</li>
<li>RGB16F</li>
<li>RGB16UI</li>
<li>RGB16I</li>
<li>RG32F</li>
<li>RG32UI</li>
<li>RG32I</li>
<li>RGBA16F</li>
<li>RGBA16UI</li>
<li>RGBA16I</li>
<li>RGB32F</li>
<li>RGB32UI</li>
<li>RGB32I</li>
<li>RGBA32F</li>
<li>RGBA32UI</li>
<li>RGBA32I</li>
<li>EAC_R11</li>
<li>EAC_R11_SIGNED</li>
<li>EAC_RG11</li>
<li>EAC_RG11_SIGNED</li>
<li>ETC2_RGB8</li>
<li>ETC2_SRGB8</li>
<li>ETC2_RGB8_A1</li>
<li>ETC2_SRGB8_A1</li>
<li>ETC2_EAC_RGBA8</li>
<li>ETC2_EAC_SRGBA8</li>
<li>DXT1_RGB</li>
<li>DXT1_RGBA</li>
<li>DXT3_RGBA</li>
<li>DXT5_RGBA</li>
<li>RGBA_ASTC_4x4</li>
<li>RGBA_ASTC_5x4</li>
<li>RGBA_ASTC_5x5</li>
<li>RGBA_ASTC_6x5</li>
<li>RGBA_ASTC_6x6</li>
<li>RGBA_ASTC_8x5</li>
<li>RGBA_ASTC_8x6</li>
<li>RGBA_ASTC_8x8</li>
<li>RGBA_ASTC_10x5</li>
<li>RGBA_ASTC_10x6</li>
<li>RGBA_ASTC_10x8</li>
<li>RGBA_ASTC_10x10</li>
<li>RGBA_ASTC_12x10</li>
<li>RGBA_ASTC_12x12</li>
<li>SRGB8_ALPHA8_ASTC_4x4</li>
<li>SRGB8_ALPHA8_ASTC_5x4</li>
<li>SRGB8_ALPHA8_ASTC_5x5</li>
<li>SRGB8_ALPHA8_ASTC_6x5</li>
<li>SRGB8_ALPHA8_ASTC_6x6</li>
<li>SRGB8_ALPHA8_ASTC_8x5</li>
<li>SRGB8_ALPHA8_ASTC_8x6</li>
<li>SRGB8_ALPHA8_ASTC_8x8</li>
<li>SRGB8_ALPHA8_ASTC_10x5</li>
<li>SRGB8_ALPHA8_ASTC_10x6</li>
<li>SRGB8_ALPHA8_ASTC_10x8</li>
<li>SRGB8_ALPHA8_ASTC_10x10</li>
<li>SRGB8_ALPHA8_ASTC_12x10</li>
<li>SRGB8_ALPHA8_ASTC_12x12</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='Texture$Sampler' href='#Texture$Sampler'>Texture$Sampler</a></h2>
<ul>
<li>SAMPLER_2D</li>
<li>SAMPLER_CUBEMAP</li>
<li>SAMPLER_EXTERNAL</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='Texture$Usage' href='#Texture$Usage'>Texture$Usage</a></h2>
<ul>
<li>DEFAULT</li>
<li>COLOR_ATTACHMENT</li>
<li>DEPTH_ATTACHMENT</li>
<li>STENCIL_ATTACHMENT</li>
<li>UPLOADABLE</li>
<li>SAMPLEABLE</li>
<li>SUBPASS_INPUT</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='VertexAttribute' href='#VertexAttribute'>VertexAttribute</a></h2>
<ul>
<li>POSITION</li>
<li>TANGENTS</li>
<li>COLOR</li>
<li>UV0</li>
<li>UV1</li>
<li>BONE_INDICES</li>
<li>BONE_WEIGHTS</li>
<li>CUSTOM0</li>
<li>CUSTOM1</li>
<li>CUSTOM2</li>
<li>CUSTOM3</li>
<li>CUSTOM4</li>
<li>CUSTOM5</li>
<li>CUSTOM6</li>
<li>CUSTOM7</li>
<li>MORPH_POSITION_0</li>
<li>MORPH_POSITION_1</li>
<li>MORPH_POSITION_2</li>
<li>MORPH_POSITION_3</li>
<li>MORPH_TANGENTS_0</li>
<li>MORPH_TANGENTS_1</li>
<li>MORPH_TANGENTS_2</li>
<li>MORPH_TANGENTS_3</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='VertexBuffer$AttributeType' href='#VertexBuffer$AttributeType'>VertexBuffer$AttributeType</a></h2>
<ul>
<li>BYTE</li>
<li>BYTE2</li>
<li>BYTE3</li>
<li>BYTE4</li>
<li>UBYTE</li>
<li>UBYTE2</li>
<li>UBYTE3</li>
<li>UBYTE4</li>
<li>SHORT</li>
<li>SHORT2</li>
<li>SHORT3</li>
<li>SHORT4</li>
<li>USHORT</li>
<li>USHORT2</li>
<li>USHORT3</li>
<li>USHORT4</li>
<li>INT</li>
<li>UINT</li>
<li>FLOAT</li>
<li>FLOAT2</li>
<li>FLOAT3</li>
<li>FLOAT4</li>
<li>HALF</li>
<li>HALF2</li>
<li>HALF3</li>
<li>HALF4</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='View$AmbientOcclusion' href='#View$AmbientOcclusion'>View$AmbientOcclusion</a></h2>
<ul>
<li>NONE</li>
<li>SSAO</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='View$AntiAliasing' href='#View$AntiAliasing'>View$AntiAliasing</a></h2>
<ul>
<li>NONE</li>
<li>FXAA</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='View$BlendMode' href='#View$BlendMode'>View$BlendMode</a></h2>
<ul>
<li>OPAQUE</li>
<li>TRANSLUCENT</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='View$BloomOptions$BlendMode' href='#View$BloomOptions$BlendMode'>View$BloomOptions$BlendMode</a></h2>
<ul>
<li>ADD</li>
<li>INTERPOLATE</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='View$DepthOfFieldOptions$Filter' href='#View$DepthOfFieldOptions$Filter'>View$DepthOfFieldOptions$Filter</a></h2>
<ul>
<li>NONE</li>
<li>MEDIAN</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='View$QualityLevel' href='#View$QualityLevel'>View$QualityLevel</a></h2>
<ul>
<li>LOW</li>
<li>MEDIUM</li>
<li>HIGH</li>
<li>ULTRA</li>
</ul>
</div>
<div class='enumdoc'>
<h2>enum <a id='WrapMode' href='#WrapMode'>WrapMode</a></h2>
<ul>
<li>CLAMP_TO_EDGE</li>
<li>REPEAT</li>
<li>MIRRORED_REPEAT</li>
</ul>
</div>
</body>
</html>