littlejsengine 1.1.2 → 1.1.3
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/README.md +55 -0
- package/build.bat +2 -1
- package/engine/engine.all.js +1320 -930
- package/engine/engine.all.min.js +1 -1
- package/engine/engine.all.release.js +965 -601
- package/engine/engine.js +71 -60
- package/engine/engineAudio.js +80 -22
- package/engine/engineBuild.bat +2 -2
- package/engine/engineDebug.js +65 -36
- package/engine/engineDraw.js +71 -56
- package/engine/engineInput.js +178 -28
- package/engine/engineMedals.js +66 -58
- package/engine/engineObject.js +86 -71
- package/engine/engineParticles.js +101 -63
- package/engine/engineRelease.js +4 -1
- package/engine/engineSettings.js +62 -53
- package/engine/engineTileLayer.js +99 -83
- package/engine/engineUtilities.js +95 -59
- package/engine/engineWebGL.js +53 -48
- package/examples/breakout/game.js +1 -1
- package/examples/breakout/gameObjects.js +2 -2
- package/examples/breakout/index.html +7 -5
- package/examples/platformer/game.js +7 -4
- package/examples/platformer/gameEffects.js +8 -11
- package/examples/platformer/gameLevel.js +15 -8
- package/examples/platformer/gameObjects.js +2 -2
- package/examples/platformer/gamePlayer.js +6 -6
- package/examples/platformer/index.html +10 -8
- package/examples/puzzle/game.js +3 -3
- package/examples/puzzle/index.html +6 -4
- package/examples/stress/index.html +7 -5
- package/game.js +10 -10
- package/index.html +17 -15
- package/package.json +4 -7
- package/tiles.png +0 -0
- package/LittleJS.zip +0 -0
- package/docs/Audio.html +0 -2264
- package/docs/Color.html +0 -2506
- package/docs/Debug.html +0 -2929
- package/docs/Draw.html +0 -3854
- package/docs/EngineObject.html +0 -2506
- package/docs/Input.html +0 -2478
- package/docs/Medal.html +0 -992
- package/docs/Medals.html +0 -624
- package/docs/Music.html +0 -569
- package/docs/Newgrounds.html +0 -1384
- package/docs/Particle.html +0 -567
- package/docs/ParticleEmitter.html +0 -1537
- package/docs/Random.html +0 -1770
- package/docs/Settings.html +0 -2885
- package/docs/Sound.html +0 -998
- package/docs/TileLayer.html +0 -3211
- package/docs/TileLayerData.html +0 -569
- package/docs/Timer.html +0 -1168
- package/docs/Utilities.html +0 -3266
- package/docs/Vector2.html +0 -3956
- package/docs/WebGL.html +0 -1842
- package/docs/engine.js.html +0 -428
- package/docs/engineAudio.js.html +0 -567
- package/docs/engineDebug.js.html +0 -721
- package/docs/engineDraw.js.html +0 -409
- package/docs/engineInput.js.html +0 -397
- package/docs/engineMedals.js.html +0 -445
- package/docs/engineObject.js.html +0 -492
- package/docs/engineParticles.js.html +0 -399
- package/docs/engineSettings.js.html +0 -358
- package/docs/engineTileLayer.js.html +0 -482
- package/docs/engineUtilities.js.html +0 -600
- package/docs/engineWebGL.js.html +0 -507
- package/docs/fonts/MavenPro-Regular.ttf +0 -0
- package/docs/fonts/Montserrat-Regular.ttf +0 -0
- package/docs/fonts/Muli-Black.ttf +0 -0
- package/docs/fonts/OFL-hind.txt +0 -93
- package/docs/fonts/OFL-montserrat.txt +0 -93
- package/docs/global.html +0 -1635
- package/docs/index.html +0 -243
- package/docs/scripts/fix-code-block.js +0 -53
- package/docs/scripts/fix-navbar.js +0 -25
- package/docs/scripts/linenumber.js +0 -25
- package/docs/scripts/misc.js +0 -217
- package/docs/scripts/resize.js +0 -85
- package/docs/scripts/search.js +0 -83
- package/docs/scripts/third-party/Apache-License-2.0.txt +0 -202
- package/docs/scripts/third-party/fuse.js +0 -9
- package/docs/scripts/third-party/lang-css.js +0 -2
- package/docs/scripts/third-party/prettify.js +0 -28
- package/docs/static/favicon.png +0 -0
- package/docs/styles/clean-jsdoc-theme-base.css +0 -393
- package/docs/styles/clean-jsdoc-theme-dark.css +0 -324
- package/docs/styles/clean-jsdoc-theme-light.css +0 -319
- package/docs/styles/reset.css +0 -346
- package/docs/styles/third-party/ionicons.min.css +0 -11
- package/docs/styles/third-party/prettify-jsdoc.css +0 -111
- package/docs/styles/third-party/prettify-tomorrow.css +0 -5
package/docs/engineWebGL.js.html
DELETED
|
@@ -1,507 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
|
|
4
|
-
<head>
|
|
5
|
-
<meta charset="utf-8">
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
-
|
|
8
|
-
<!-- Adding favicon -->
|
|
9
|
-
|
|
10
|
-
<link rel="icon" href="./static/favicon.png" />
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
<!-- Adding meta -->
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
<!-- Adding external script-->
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
<!-- Adding external style-->
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
<!-- Adding scripts-->
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<!-- Adding style-->
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
<!-- Adding overlay script-->
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
<!-- Adding overlay style-->
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
<title>
|
|
36
|
-
engineWebGL.js
|
|
37
|
-
</title>
|
|
38
|
-
|
|
39
|
-
<!--[if lt IE 9]>
|
|
40
|
-
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
|
41
|
-
<![endif]-->
|
|
42
|
-
<link type="text/css" rel="stylesheet" href="styles/third-party/ionicons.min.css">
|
|
43
|
-
<link type="text/css" rel="stylesheet" href="styles/third-party/prettify-tomorrow.css">
|
|
44
|
-
<link type="text/css" rel="stylesheet" href="styles/reset.css">
|
|
45
|
-
<link type="text/css" rel="stylesheet" href="styles/clean-jsdoc-theme-base.css">
|
|
46
|
-
<link type="text/css" rel="stylesheet" href="styles/clean-jsdoc-theme-dark.css">
|
|
47
|
-
|
|
48
|
-
<svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
49
|
-
style="display:none">
|
|
50
|
-
<defs>
|
|
51
|
-
<symbol id="copy-icon" viewbox="0 0 488.3 488.3">
|
|
52
|
-
<g>
|
|
53
|
-
<path
|
|
54
|
-
d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z" />
|
|
55
|
-
<path
|
|
56
|
-
d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z" />
|
|
57
|
-
</g>
|
|
58
|
-
</symbol>
|
|
59
|
-
<symbol id='search-icon' viewBox="0 0 512 512">
|
|
60
|
-
<g>
|
|
61
|
-
<g>
|
|
62
|
-
<path
|
|
63
|
-
d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z" />
|
|
64
|
-
</g>
|
|
65
|
-
</g>
|
|
66
|
-
<g>
|
|
67
|
-
<g>
|
|
68
|
-
<path
|
|
69
|
-
d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z" />
|
|
70
|
-
</g>
|
|
71
|
-
</g>
|
|
72
|
-
</symbol>
|
|
73
|
-
<symbol id="down-icon" viewBox="0 0 16 16">
|
|
74
|
-
<path
|
|
75
|
-
fill-rule="evenodd"
|
|
76
|
-
clip-rule="evenodd"
|
|
77
|
-
d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"
|
|
78
|
-
>
|
|
79
|
-
</path>
|
|
80
|
-
</symbol>
|
|
81
|
-
</defs>
|
|
82
|
-
</svg>
|
|
83
|
-
</head>
|
|
84
|
-
|
|
85
|
-
<body>
|
|
86
|
-
|
|
87
|
-
<nav class="navbar" id="navbar">
|
|
88
|
-
<div class="navbar-heading" id="navbar-heading"><a href="index.html"><h2 class="navbar-heading-text">LittleJS - The Tiny JavaScript Game Engine That Can!</h2></a></div><div class="search-box" id="search-box"><div class="search-box-input-container"><input class="search-box-input" type="text" placeholder="Search..." id="search-box-input" /><svg class="search-icon" alt="search-icon"><use xlink:href="#search-icon"></use></svg></div><div class="search-item-container" id="search-item-container"><ul class="search-item-ul" id="search-item-ul"></ul></div></div><div class="sidebar-main-content" id="sidebar-main-content"><div class="accordion collapsed" id="540523" > <h3 class="accordion-heading">Classes<svg><use xlink:href="#down-icon"></use></svg></h3><ul class="accordion-content"><li class="accordion collapsed child" id=8248353><div class="accordion-heading child"><a href="Color.html">Color</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Color.html#add">add</a></li><li data-type='method'><a href="Color.html#clamp">clamp</a></li><li data-type='method'><a href="Color.html#copy">copy</a></li><li data-type='method'><a href="Color.html#divide">divide</a></li><li data-type='method'><a href="Color.html#lerp">lerp</a></li><li data-type='method'><a href="Color.html#multiply">multiply</a></li><li data-type='method'><a href="Color.html#mutate">mutate</a></li><li data-type='method'><a href="Color.html#rgba">rgba</a></li><li data-type='method'><a href="Color.html#rgbaInt">rgbaInt</a></li><li data-type='method'><a href="Color.html#scale">scale</a></li><li data-type='method'><a href="Color.html#setHSLA">setHSLA</a></li><li data-type='method'><a href="Color.html#subtract">subtract</a></li></ul></li><li class="accordion collapsed child" id=7012587><div class="accordion-heading child"><a href="EngineObject.html">EngineObject</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="EngineObject.html#addChild">addChild</a></li><li data-type='method'><a href="EngineObject.html#applyAcceleration">applyAcceleration</a></li><li data-type='method'><a href="EngineObject.html#applyForce">applyForce</a></li><li data-type='method'><a href="EngineObject.html#collideWithObject">collideWithObject</a></li><li data-type='method'><a href="EngineObject.html#collideWithTile">collideWithTile</a></li><li data-type='method'><a href="EngineObject.html#collideWithTileRaycast">collideWithTileRaycast</a></li><li data-type='method'><a href="EngineObject.html#destroy">destroy</a></li><li data-type='method'><a href="EngineObject.html#getAliveTime">getAliveTime</a></li><li data-type='method'><a href="EngineObject.html#getMirrorSign">getMirrorSign</a></li><li data-type='method'><a href="EngineObject.html#removeChild">removeChild</a></li><li data-type='method'><a href="EngineObject.html#render">render</a></li><li data-type='method'><a href="EngineObject.html#setCollision">setCollision</a></li><li data-type='method'><a href="EngineObject.html#update">update</a></li></ul></li><li class="accordion collapsed child" id=1700789><div class="accordion-heading child"><a href="Medal.html">Medal</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Medal.html#render">render</a></li><li data-type='method'><a href="Medal.html#renderIcon">renderIcon</a></li><li data-type='method'><a href="Medal.html#unlock">unlock</a></li></ul></li><li class="accordion collapsed child" id=8089268><div class="accordion-heading child"><a href="Music.html">Music</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Music.html#play">play</a></li></ul></li><li class="accordion collapsed child" id=4766582><div class="accordion-heading child"><a href="Newgrounds.html">Newgrounds</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Newgrounds.html#call">call</a></li><li data-type='method'><a href="Newgrounds.html#getScores">getScores</a></li><li data-type='method'><a href="Newgrounds.html#logView">logView</a></li><li data-type='method'><a href="Newgrounds.html#postScore">postScore</a></li><li data-type='method'><a href="Newgrounds.html#unlockMedal">unlockMedal</a></li></ul></li><li class="accordion collapsed child" id=6250424><div class="accordion-heading child"><a href="Particle.html">Particle</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Particle.html#render">render</a></li></ul></li><li class="accordion collapsed child" id=7561663><div class="accordion-heading child"><a href="ParticleEmitter.html">ParticleEmitter</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="ParticleEmitter.html#emitParticle">emitParticle</a></li><li data-type='method'><a href="ParticleEmitter.html#update">update</a></li></ul></li><li class="accordion collapsed child" id=6303578><div class="accordion-heading child"><a href="Sound.html">Sound</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Sound.html#play">play</a></li><li data-type='method'><a href="Sound.html#playNote">playNote</a></li></ul></li><li class="accordion collapsed child" id=3741597><div class="accordion-heading child"><a href="TileLayer.html">TileLayer</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="TileLayer.html#.getTileCollisionData">getTileCollisionData</a></li><li data-type='method'><a href="TileLayer.html#.initTileCollision">initTileCollision</a></li><li data-type='method'><a href="TileLayer.html#.setTileCollisionData">setTileCollisionData</a></li><li data-type='method'><a href="TileLayer.html#.tileCollisionRaycast">tileCollisionRaycast</a></li><li data-type='method'><a href="TileLayer.html#.tileCollisionTest">tileCollisionTest</a></li><li data-type='method'><a href="TileLayer.html#destroy">destroy</a></li><li data-type='method'><a href="TileLayer.html#drawAllTileData">drawAllTileData</a></li><li data-type='method'><a href="TileLayer.html#drawCanvas2D">drawCanvas2D</a></li><li data-type='method'><a href="TileLayer.html#drawRect">drawRect</a></li><li data-type='method'><a href="TileLayer.html#drawTile">drawTile</a></li><li data-type='method'><a href="TileLayer.html#drawTileData">drawTileData</a></li><li data-type='method'><a href="TileLayer.html#getData">getData</a></li><li data-type='method'><a href="TileLayer.html#redraw">redraw</a></li><li data-type='method'><a href="TileLayer.html#redrawEnd">redrawEnd</a></li><li data-type='method'><a href="TileLayer.html#redrawStart">redrawStart</a></li><li data-type='method'><a href="TileLayer.html#setData">setData</a></li></ul></li><li class="accordion collapsed child" id=3051435><div class="accordion-heading child"><a href="TileLayerData.html">TileLayerData</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="TileLayerData.html#clear">clear</a></li></ul></li><li class="accordion collapsed child" id=2107764><div class="accordion-heading child"><a href="Timer.html">Timer</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Timer.html#active">active</a></li><li data-type='method'><a href="Timer.html#elapsed">elapsed</a></li><li data-type='method'><a href="Timer.html#get">get</a></li><li data-type='method'><a href="Timer.html#getPercent">getPercent</a></li><li data-type='method'><a href="Timer.html#isSet">isSet</a></li><li data-type='method'><a href="Timer.html#set">set</a></li><li data-type='method'><a href="Timer.html#unset">unset</a></li></ul></li><li class="accordion collapsed child" id=576602><div class="accordion-heading child"><a href="Vector2.html">Vector2</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Vector2.html#add">add</a></li><li data-type='method'><a href="Vector2.html#angle">angle</a></li><li data-type='method'><a href="Vector2.html#area">area</a></li><li data-type='method'><a href="Vector2.html#arrayCheck">arrayCheck</a></li><li data-type='method'><a href="Vector2.html#clampLength">clampLength</a></li><li data-type='method'><a href="Vector2.html#copy">copy</a></li><li data-type='method'><a href="Vector2.html#cross">cross</a></li><li data-type='method'><a href="Vector2.html#direction">direction</a></li><li data-type='method'><a href="Vector2.html#distance">distance</a></li><li data-type='method'><a href="Vector2.html#distanceSquared">distanceSquared</a></li><li data-type='method'><a href="Vector2.html#divide">divide</a></li><li data-type='method'><a href="Vector2.html#dot">dot</a></li><li data-type='method'><a href="Vector2.html#flip">flip</a></li><li data-type='method'><a href="Vector2.html#floor">floor</a></li><li data-type='method'><a href="Vector2.html#invert">invert</a></li><li data-type='method'><a href="Vector2.html#length">length</a></li><li data-type='method'><a href="Vector2.html#lengthSquared">lengthSquared</a></li><li data-type='method'><a href="Vector2.html#lerp">lerp</a></li><li data-type='method'><a href="Vector2.html#multiply">multiply</a></li><li data-type='method'><a href="Vector2.html#normalize">normalize</a></li><li data-type='method'><a href="Vector2.html#rotate">rotate</a></li><li data-type='method'><a href="Vector2.html#scale">scale</a></li><li data-type='method'><a href="Vector2.html#setAngle">setAngle</a></li><li data-type='method'><a href="Vector2.html#subtract">subtract</a></li></ul></li></ul> </div><div class="accordion collapsed" id="917139" > <h3 class="accordion-heading">Namespaces<svg><use xlink:href="#down-icon"></use></svg></h3><ul class="accordion-content"><li class="accordion collapsed child" id=8875598><div class="accordion-heading child"><a href="Audio.html">Audio</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Audio.html#.getNoteFrequency">getNoteFrequency</a></li><li data-type='method'><a href="Audio.html#.playAudioFile">playAudioFile</a></li><li data-type='method'><a href="Audio.html#.playSamples">playSamples</a></li><li data-type='method'><a href="Audio.html#.speak">speak</a></li><li data-type='method'><a href="Audio.html#.stopSpeech">stopSpeech</a></li><li data-type='method'><a href="Audio.html#.zzfx">zzfx</a></li><li data-type='method'><a href="Audio.html#.zzfxG">zzfxG</a></li><li data-type='method'><a href="Audio.html#.zzfxM">zzfxM</a></li></ul></li><li class="accordion collapsed child" id=822126><div class="accordion-heading child"><a href="Debug.html">Debug</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Debug.html#.debugAABB">debugAABB</a></li><li data-type='method'><a href="Debug.html#.debugCircle">debugCircle</a></li><li data-type='method'><a href="Debug.html#.debugClear">debugClear</a></li><li data-type='method'><a href="Debug.html#.debugLine">debugLine</a></li><li data-type='method'><a href="Debug.html#.debugPoint">debugPoint</a></li><li data-type='method'><a href="Debug.html#.debugRect">debugRect</a></li><li data-type='method'><a href="Debug.html#.debugSaveCanvas">debugSaveCanvas</a></li><li data-type='method'><a href="Debug.html#.debugText">debugText</a></li></ul></li><li class="accordion collapsed child" id=1368174><div class="accordion-heading child"><a href="Draw.html">Draw</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Draw.html#.drawCanvas2D">drawCanvas2D</a></li><li data-type='method'><a href="Draw.html#.drawLine">drawLine</a></li><li data-type='method'><a href="Draw.html#.drawRect">drawRect</a></li><li data-type='method'><a href="Draw.html#.drawRectScreenSpace">drawRectScreenSpace</a></li><li data-type='method'><a href="Draw.html#.drawText">drawText</a></li><li data-type='method'><a href="Draw.html#.drawTile">drawTile</a></li><li data-type='method'><a href="Draw.html#.drawTileScreenSpace">drawTileScreenSpace</a></li><li data-type='method'><a href="Draw.html#.isFullscreen">isFullscreen</a></li><li data-type='method'><a href="Draw.html#.screenToWorld">screenToWorld</a></li><li data-type='method'><a href="Draw.html#.setBlendMode">setBlendMode</a></li><li data-type='method'><a href="Draw.html#.toggleFullscreen">toggleFullscreen</a></li><li data-type='method'><a href="Draw.html#.worldToScreen">worldToScreen</a></li></ul></li><li class="accordion collapsed child" id=3585023><div class="accordion-heading child"><a href="Input.html">Input</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Input.html#.clearInput">clearInput</a></li><li data-type='method'><a href="Input.html#.gamepadIsDown">gamepadIsDown</a></li><li data-type='method'><a href="Input.html#.gamepadStick">gamepadStick</a></li><li data-type='method'><a href="Input.html#.gamepadWasPressed">gamepadWasPressed</a></li><li data-type='method'><a href="Input.html#.gamepadWasReleased">gamepadWasReleased</a></li><li data-type='method'><a href="Input.html#.keyIsDown">keyIsDown</a></li><li data-type='method'><a href="Input.html#.keyWasPressed">keyWasPressed</a></li><li data-type='method'><a href="Input.html#.keyWasReleased">keyWasReleased</a></li></ul></li><li class="accordion collapsed child" id=4831683><div class="accordion-heading child"><a href="Medals.html">Medals</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Medals.html#.medalsInit">medalsInit</a></li></ul></li><li class="accordion collapsed child" id=7850872><div class="accordion-heading child"><a href="Random.html">Random</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Random.html#.rand">rand</a></li><li data-type='method'><a href="Random.html#.randColor">randColor</a></li><li data-type='method'><a href="Random.html#.randInCircle">randInCircle</a></li><li data-type='method'><a href="Random.html#.randInt">randInt</a></li><li data-type='method'><a href="Random.html#.randSeeded">randSeeded</a></li><li data-type='method'><a href="Random.html#.randSign">randSign</a></li><li data-type='method'><a href="Random.html#.randVector">randVector</a></li></ul></li><li class="accordion-list" id=""><a href="Settings.html">Settings</a></li><li class="accordion collapsed child" id=1173220><div class="accordion-heading child"><a href="Utilities.html">Utilities</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Utilities.html#.abs">abs</a></li><li data-type='method'><a href="Utilities.html#.clamp">clamp</a></li><li data-type='method'><a href="Utilities.html#.formatTime">formatTime</a></li><li data-type='method'><a href="Utilities.html#.isOverlapping">isOverlapping</a></li><li data-type='method'><a href="Utilities.html#.lerp">lerp</a></li><li data-type='method'><a href="Utilities.html#.max">max</a></li><li data-type='method'><a href="Utilities.html#.min">min</a></li><li data-type='method'><a href="Utilities.html#.mod">mod</a></li><li data-type='method'><a href="Utilities.html#.nearestPowerOfTwo">nearestPowerOfTwo</a></li><li data-type='method'><a href="Utilities.html#.percent">percent</a></li><li data-type='method'><a href="Utilities.html#.sign">sign</a></li><li data-type='method'><a href="Utilities.html#.smoothStep">smoothStep</a></li><li data-type='method'><a href="Utilities.html#.vec2">vec2</a></li><li data-type='method'><a href="Utilities.html#.wave">wave</a></li></ul></li><li class="accordion collapsed child" id=6243735><div class="accordion-heading child"><a href="WebGL.html">WebGL</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="WebGL.html#.glCompileShader">glCompileShader</a></li><li data-type='method'><a href="WebGL.html#.glCopyToContext">glCopyToContext</a></li><li data-type='method'><a href="WebGL.html#.glCreateBuffer">glCreateBuffer</a></li><li data-type='method'><a href="WebGL.html#.glCreateProgram">glCreateProgram</a></li><li data-type='method'><a href="WebGL.html#.glCreateTexture">glCreateTexture</a></li><li data-type='method'><a href="WebGL.html#.glFlush">glFlush</a></li><li data-type='method'><a href="WebGL.html#.glSetBlendMode">glSetBlendMode</a></li><li data-type='method'><a href="WebGL.html#.glSetTexture">glSetTexture</a></li></ul></li></ul> </div><div class="accordion collapsed" id="3154152" > <h3 class="accordion-heading">Global<svg><use xlink:href="#down-icon"></use></svg></h3><ul class="accordion-content"><li class="accordion-list" id=""><a href="global.html#engineCollideObjects">engineCollideObjects</a></li><li class="accordion-list" id=""><a href="global.html#engineInit">engineInit</a></li><li class="accordion-list" id=""><a href="global.html#engineName">engineName</a></li><li class="accordion-list" id=""><a href="global.html#engineObjects">engineObjects</a></li><li class="accordion-list" id=""><a href="global.html#engineObjectsCallback">engineObjectsCallback</a></li><li class="accordion-list" id=""><a href="global.html#engineObjectsDestroy">engineObjectsDestroy</a></li><li class="accordion-list" id=""><a href="global.html#engineObjectsUpdate">engineObjectsUpdate</a></li><li class="accordion-list" id=""><a href="global.html#engineVersion">engineVersion</a></li><li class="accordion-list" id=""><a href="global.html#FPS">FPS</a></li><li class="accordion-list" id=""><a href="global.html#frame">frame</a></li><li class="accordion-list" id=""><a href="global.html#paused">paused</a></li><li class="accordion-list" id=""><a href="global.html#time">time</a></li><li class="accordion-list" id=""><a href="global.html#timeDelta">timeDelta</a></li><li class="accordion-list" id=""><a href="global.html#timeReal">timeReal</a></li></ul> </div></div>
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
</nav>
|
|
92
|
-
<div class="navbar-ham" id="navbar-ham">
|
|
93
|
-
<div>
|
|
94
|
-
<div class="first"></div>
|
|
95
|
-
<div class="second"></div>
|
|
96
|
-
<div class="third"></div>
|
|
97
|
-
</div>
|
|
98
|
-
</div>
|
|
99
|
-
|
|
100
|
-
<div id="main" class="main-content">
|
|
101
|
-
|
|
102
|
-
<h1 id='page-title' class="page-title">
|
|
103
|
-
engineWebGL.js
|
|
104
|
-
</h1>
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
<section>
|
|
113
|
-
<article>
|
|
114
|
-
<pre class="prettyprint source linenums"><code>/**
|
|
115
|
-
* LittleJS WebGL Interface
|
|
116
|
-
* <br> - All webgl used by the engine is wrapped up here
|
|
117
|
-
* <br> - Can be disabled with glEnable to revert to 2D canvas rendering
|
|
118
|
-
* <br> - Batches sprite rendering on GPU for incredibly fast performance
|
|
119
|
-
* <br> - Sprite transform math is done in the shader where possible
|
|
120
|
-
* <br> - For normal stuff you won't need to call any functions in this file
|
|
121
|
-
* <br> - For advanced stuff there are helper functions to create shaders, textures, etc
|
|
122
|
-
* @namespace WebGL
|
|
123
|
-
*/
|
|
124
|
-
|
|
125
|
-
'use strict';
|
|
126
|
-
|
|
127
|
-
/** The WebGL canvas which appears above the main canvas and below the overlay canvas
|
|
128
|
-
* @type {HTMLCanvasElement}
|
|
129
|
-
* @memberof WebGL */
|
|
130
|
-
let glCanvas;
|
|
131
|
-
|
|
132
|
-
/** 2d context for glCanvas
|
|
133
|
-
* @type {WebGLRenderingContext}
|
|
134
|
-
* @memberof WebGL */
|
|
135
|
-
let glContext;
|
|
136
|
-
|
|
137
|
-
/** Main tile sheet texture automatically loaded by engine
|
|
138
|
-
* @type {WebGLTexture}
|
|
139
|
-
* @memberof WebGL */
|
|
140
|
-
let glTileTexture;
|
|
141
|
-
|
|
142
|
-
// WebGL internal variables not exposed to documentation
|
|
143
|
-
let glActiveTexture, glShader, glPositionData, glColorData, glBatchCount, glDirty, glAdditive;
|
|
144
|
-
|
|
145
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
146
|
-
|
|
147
|
-
// Init WebGL, called automatically by the engine
|
|
148
|
-
function glInit()
|
|
149
|
-
{
|
|
150
|
-
if (!glEnable) return;
|
|
151
|
-
|
|
152
|
-
// create the canvas and tile texture
|
|
153
|
-
glCanvas = document.createElement('canvas');
|
|
154
|
-
glContext = glCanvas.getContext('webgl', {antialias:!pixelated});
|
|
155
|
-
glTileTexture = glCreateTexture(tileImage);
|
|
156
|
-
|
|
157
|
-
if (glOverlay)
|
|
158
|
-
{
|
|
159
|
-
// firefox is much faster without copying the gl buffer so we just overlay it with some tradeoffs
|
|
160
|
-
document.body.appendChild(glCanvas);
|
|
161
|
-
glCanvas.style = mainCanvas.style.cssText;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
// setup vertex and fragment shaders
|
|
165
|
-
glShader = glCreateProgram(
|
|
166
|
-
'precision lowp float;'+ // use lowp for better performance
|
|
167
|
-
'uniform mat4 m;'+ // transform matrix
|
|
168
|
-
'attribute float a;'+ // angle
|
|
169
|
-
'attribute vec2 p,s,t;'+ // position, size, uv
|
|
170
|
-
'attribute vec4 c,b;'+ // color, additiveColor
|
|
171
|
-
'varying vec2 v;'+ // return uv
|
|
172
|
-
'varying vec4 d,e;'+ // return color, additiveColor
|
|
173
|
-
'void main(){'+ // shader entry point
|
|
174
|
-
'gl_Position=m*vec4((s*cos(a)-vec2(-s.y,s)*sin(a))*.5+p,1,1);'+// transform position
|
|
175
|
-
'v=t;d=c;e=b;'+ // pass stuff to fragment shader
|
|
176
|
-
'}' // end of shader
|
|
177
|
-
,
|
|
178
|
-
'precision lowp float;'+ // use lowp for better performance
|
|
179
|
-
'varying vec2 v;'+ // uv
|
|
180
|
-
'varying vec4 d,e;'+ // color, additiveColor
|
|
181
|
-
'uniform sampler2D j;'+ // texture
|
|
182
|
-
'void main(){'+ // shader entry point
|
|
183
|
-
'gl_FragColor=texture2D(j,v)*d+e;'+ // modulate texture by color plus additive
|
|
184
|
-
'}' // end of shader
|
|
185
|
-
);
|
|
186
|
-
|
|
187
|
-
// init buffers
|
|
188
|
-
const glVertexData = new ArrayBuffer(gl_MAX_BATCH * gl_VERTICES_PER_QUAD * gl_VERTEX_BYTE_STRIDE);
|
|
189
|
-
glCreateBuffer(gl_ARRAY_BUFFER, glVertexData.byteLength, gl_DYNAMIC_DRAW);
|
|
190
|
-
glPositionData = new Float32Array(glVertexData);
|
|
191
|
-
glColorData = new Uint32Array(glVertexData);
|
|
192
|
-
|
|
193
|
-
// setup the vertex data array
|
|
194
|
-
const initVertexAttribArray = (name, type, typeSize, size, normalize=0)=>
|
|
195
|
-
{
|
|
196
|
-
const location = glContext.getAttribLocation(glShader, name);
|
|
197
|
-
glContext.enableVertexAttribArray(location);
|
|
198
|
-
glContext.vertexAttribPointer(location, size, type, normalize, gl_VERTEX_BYTE_STRIDE, offset);
|
|
199
|
-
offset += size*typeSize;
|
|
200
|
-
}
|
|
201
|
-
let offset = glDirty = glBatchCount = 0;
|
|
202
|
-
initVertexAttribArray('a', gl_FLOAT, 4, 1); // angle
|
|
203
|
-
initVertexAttribArray('p', gl_FLOAT, 4, 2); // position
|
|
204
|
-
initVertexAttribArray('s', gl_FLOAT, 4, 2); // size
|
|
205
|
-
initVertexAttribArray('t', gl_FLOAT, 4, 2); // texture coords
|
|
206
|
-
initVertexAttribArray('c', gl_UNSIGNED_BYTE, 1, 4, 1); // color
|
|
207
|
-
initVertexAttribArray('b', gl_UNSIGNED_BYTE, 1, 4, 1); // additiveColor
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
/** Set the WebGl blend mode, normally you should call setBlendMode instead
|
|
211
|
-
* @param {Boolean} [additive=0]
|
|
212
|
-
* @memberof WebGL */
|
|
213
|
-
function glSetBlendMode(additive)
|
|
214
|
-
{
|
|
215
|
-
if (!glEnable) return;
|
|
216
|
-
|
|
217
|
-
if (additive != glAdditive)
|
|
218
|
-
glFlush();
|
|
219
|
-
|
|
220
|
-
// setup blending
|
|
221
|
-
glAdditive = additive;
|
|
222
|
-
const destBlend = additive ? gl_ONE : gl_ONE_MINUS_SRC_ALPHA;
|
|
223
|
-
glContext.blendFuncSeparate(gl_SRC_ALPHA, destBlend, gl_ONE, destBlend);
|
|
224
|
-
glContext.enable(gl_BLEND);
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
/** Set the WebGl texture, not normally necessary unless multiple tile sheets are used
|
|
228
|
-
* <br> - This may also flush the gl buffer resulting in more draw calls and worse performance
|
|
229
|
-
* @param {WebGLTexture} [texture=glTileTexture]
|
|
230
|
-
* @memberof WebGL */
|
|
231
|
-
function glSetTexture(texture=glTileTexture)
|
|
232
|
-
{
|
|
233
|
-
if (!glEnable) return;
|
|
234
|
-
|
|
235
|
-
if (texture != glActiveTexture)
|
|
236
|
-
glFlush();
|
|
237
|
-
|
|
238
|
-
glContext.bindTexture(gl_TEXTURE_2D, glActiveTexture = texture);
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
/** Compile WebGL shader of the given type, will throw errors if in debug mode
|
|
242
|
-
* @param {String} source
|
|
243
|
-
* @param type
|
|
244
|
-
* @return {WebGLShader}
|
|
245
|
-
* @memberof WebGL */
|
|
246
|
-
function glCompileShader(source, type)
|
|
247
|
-
{
|
|
248
|
-
if (!glEnable) return;
|
|
249
|
-
|
|
250
|
-
// build the shader
|
|
251
|
-
const shader = glContext.createShader(type);
|
|
252
|
-
glContext.shaderSource(shader, source);
|
|
253
|
-
glContext.compileShader(shader);
|
|
254
|
-
|
|
255
|
-
// check for errors
|
|
256
|
-
if (debug && !glContext.getShaderParameter(shader, gl_COMPILE_STATUS))
|
|
257
|
-
throw glContext.getShaderInfoLog(shader);
|
|
258
|
-
return shader;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
/** Create WebGL program with given shaders
|
|
262
|
-
* @param {WebGLShader} vsSource
|
|
263
|
-
* @param {WebGLShader} fsSource
|
|
264
|
-
* @return {WebGLProgram}
|
|
265
|
-
* @memberof WebGL */
|
|
266
|
-
function glCreateProgram(vsSource, fsSource)
|
|
267
|
-
{
|
|
268
|
-
if (!glEnable) return;
|
|
269
|
-
|
|
270
|
-
// build the program
|
|
271
|
-
const program = glContext.createProgram();
|
|
272
|
-
glContext.attachShader(program, glCompileShader(vsSource, gl_VERTEX_SHADER));
|
|
273
|
-
glContext.attachShader(program, glCompileShader(fsSource, gl_FRAGMENT_SHADER));
|
|
274
|
-
glContext.linkProgram(program);
|
|
275
|
-
|
|
276
|
-
// check for errors
|
|
277
|
-
if (debug && !glContext.getProgramParameter(program, gl_LINK_STATUS))
|
|
278
|
-
throw glContext.getProgramInfoLog(program);
|
|
279
|
-
return program;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
/** Create WebGL buffer
|
|
283
|
-
* @param bufferType
|
|
284
|
-
* @param size
|
|
285
|
-
* @param usage
|
|
286
|
-
* @return {WebGLBuffer}
|
|
287
|
-
* @memberof WebGL */
|
|
288
|
-
function glCreateBuffer(bufferType, size, usage)
|
|
289
|
-
{
|
|
290
|
-
if (!glEnable) return;
|
|
291
|
-
|
|
292
|
-
// build the buffer
|
|
293
|
-
const buffer = glContext.createBuffer();
|
|
294
|
-
glContext.bindBuffer(bufferType, buffer);
|
|
295
|
-
glContext.bufferData(bufferType, size, usage);
|
|
296
|
-
return buffer;
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
/** Create WebGL texture from an image
|
|
300
|
-
* @param {Image} image
|
|
301
|
-
* @return {WebGLTexture}
|
|
302
|
-
* @memberof WebGL */
|
|
303
|
-
function glCreateTexture(image)
|
|
304
|
-
{
|
|
305
|
-
if (!glEnable) return;
|
|
306
|
-
|
|
307
|
-
// build the texture
|
|
308
|
-
const texture = glContext.createTexture();
|
|
309
|
-
glContext.bindTexture(gl_TEXTURE_2D, texture);
|
|
310
|
-
glContext.texImage2D(gl_TEXTURE_2D, 0, gl_RGBA, gl_RGBA, gl_UNSIGNED_BYTE, image);
|
|
311
|
-
|
|
312
|
-
// use point filtering for pixelated rendering
|
|
313
|
-
glContext.texParameteri(gl_TEXTURE_2D, gl_TEXTURE_MIN_FILTER, pixelated ? gl_NEAREST : gl_LINEAR);
|
|
314
|
-
glContext.texParameteri(gl_TEXTURE_2D, gl_TEXTURE_MAG_FILTER, pixelated ? gl_NEAREST : gl_LINEAR);
|
|
315
|
-
glContext.texParameteri(gl_TEXTURE_2D, gl_TEXTURE_WRAP_S, gl_CLAMP_TO_EDGE);
|
|
316
|
-
glContext.texParameteri(gl_TEXTURE_2D, gl_TEXTURE_WRAP_T, gl_CLAMP_TO_EDGE);
|
|
317
|
-
return texture;
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
// called automatically by engine before render
|
|
321
|
-
function glPreRender(width, height)
|
|
322
|
-
{
|
|
323
|
-
if (!glEnable) return;
|
|
324
|
-
|
|
325
|
-
// clear and set to same size as main canvas
|
|
326
|
-
glCanvas.width = width;
|
|
327
|
-
glCanvas.height = height;
|
|
328
|
-
glContext.viewport(0, 0, width, height);
|
|
329
|
-
|
|
330
|
-
// set up the shader
|
|
331
|
-
glContext.bindTexture(gl_TEXTURE_2D, glActiveTexture = glTileTexture);
|
|
332
|
-
glContext.useProgram(glShader);
|
|
333
|
-
glSetBlendMode();
|
|
334
|
-
|
|
335
|
-
// build the transform matrix
|
|
336
|
-
const sx = 2 * cameraScale / width;
|
|
337
|
-
const sy = 2 * cameraScale / height;
|
|
338
|
-
glContext.uniformMatrix4fv(glContext.getUniformLocation(glShader, 'm'), 0,
|
|
339
|
-
new Float32Array([
|
|
340
|
-
sx, 0, 0, 0,
|
|
341
|
-
0, sy, 0, 0,
|
|
342
|
-
1, 1, -1, 1,
|
|
343
|
-
-1-sx*cameraPos.x, -1-sy*cameraPos.y, 0, 0
|
|
344
|
-
])
|
|
345
|
-
);
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
/** Draw all sprites and clear out the buffer, called automatically by the system whenever necessary
|
|
349
|
-
* @memberof WebGL */
|
|
350
|
-
function glFlush()
|
|
351
|
-
{
|
|
352
|
-
if (!glEnable || !glBatchCount) return;
|
|
353
|
-
|
|
354
|
-
// draw all the sprites in the batch and reset the buffer
|
|
355
|
-
glContext.bufferSubData(gl_ARRAY_BUFFER, 0,
|
|
356
|
-
glPositionData.subarray(0, glBatchCount * gl_VERTICES_PER_QUAD * gl_INDICIES_PER_VERT));
|
|
357
|
-
glContext.drawArrays(gl_TRIANGLES, 0, glBatchCount * gl_VERTICES_PER_QUAD);
|
|
358
|
-
glBatchCount = 0;
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
/** Draw any sprites still in the buffer, copy to main canvas and clear
|
|
362
|
-
* @param {CanvasRenderingContext2D} context
|
|
363
|
-
* @param {Boolean} [forceDraw=0]
|
|
364
|
-
* @memberof WebGL */
|
|
365
|
-
function glCopyToContext(context, forceDraw)
|
|
366
|
-
{
|
|
367
|
-
if (!glEnable || !glDirty) return;
|
|
368
|
-
|
|
369
|
-
glFlush();
|
|
370
|
-
if (!glOverlay || forceDraw)
|
|
371
|
-
{
|
|
372
|
-
// do not draw/clear in overlay mode because the canvas is visible
|
|
373
|
-
context.drawImage(glCanvas, 0, glAdditive = glDirty = 0);
|
|
374
|
-
glContext.clear(gl_COLOR_BUFFER_BIT);
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
// Draw a sprite with the given parameters, used internally by draw functions
|
|
379
|
-
function glDraw(x, y, sizeX, sizeY, angle=0, uv0X=0, uv0Y=0, uv1X=1, uv1Y=1, rgba=0xffffffff, rgbaAdditive=0x00000000)
|
|
380
|
-
{
|
|
381
|
-
if (!glEnable) return;
|
|
382
|
-
|
|
383
|
-
// flush if there is no room for more verts
|
|
384
|
-
if (glBatchCount == gl_MAX_BATCH)
|
|
385
|
-
glFlush();
|
|
386
|
-
|
|
387
|
-
// setup 2 triangles to form a quad
|
|
388
|
-
let offset = glBatchCount++ * gl_VERTICES_PER_QUAD * gl_INDICIES_PER_VERT;
|
|
389
|
-
glDirty = 1;
|
|
390
|
-
|
|
391
|
-
// vertex 0
|
|
392
|
-
glPositionData[offset++] = angle;
|
|
393
|
-
glPositionData[offset++] = x; glPositionData[offset++] = y;
|
|
394
|
-
glPositionData[offset++] = -sizeX; glPositionData[offset++] = -sizeY;
|
|
395
|
-
glPositionData[offset++] = uv0X; glPositionData[offset++] = uv1Y;
|
|
396
|
-
glColorData[offset++] = rgba; glColorData[offset++] = rgbaAdditive;
|
|
397
|
-
|
|
398
|
-
// vertex 1
|
|
399
|
-
glPositionData[offset++] = angle;
|
|
400
|
-
glPositionData[offset++] = x; glPositionData[offset++] = y;
|
|
401
|
-
glPositionData[offset++] = sizeX; glPositionData[offset++] = sizeY;
|
|
402
|
-
glPositionData[offset++] = uv1X; glPositionData[offset++] = uv0Y;
|
|
403
|
-
glColorData[offset++] = rgba; glColorData[offset++] = rgbaAdditive;
|
|
404
|
-
|
|
405
|
-
// vertex 2
|
|
406
|
-
glPositionData[offset++] = angle;
|
|
407
|
-
glPositionData[offset++] = x; glPositionData[offset++] = y;
|
|
408
|
-
glPositionData[offset++] = -sizeX; glPositionData[offset++] = sizeY;
|
|
409
|
-
glPositionData[offset++] = uv0X; glPositionData[offset++] = uv0Y;
|
|
410
|
-
glColorData[offset++] = rgba; glColorData[offset++] = rgbaAdditive;
|
|
411
|
-
|
|
412
|
-
// vertex 0
|
|
413
|
-
glPositionData[offset++] = angle;
|
|
414
|
-
glPositionData[offset++] = x; glPositionData[offset++] = y;
|
|
415
|
-
glPositionData[offset++] = -sizeX; glPositionData[offset++] = -sizeY;
|
|
416
|
-
glPositionData[offset++] = uv0X; glPositionData[offset++] = uv1Y;
|
|
417
|
-
glColorData[offset++] = rgba; glColorData[offset++] = rgbaAdditive;
|
|
418
|
-
|
|
419
|
-
// vertex 3
|
|
420
|
-
glPositionData[offset++] = angle;
|
|
421
|
-
glPositionData[offset++] = x; glPositionData[offset++] = y;
|
|
422
|
-
glPositionData[offset++] = sizeX; glPositionData[offset++] = -sizeY;
|
|
423
|
-
glPositionData[offset++] = uv1X; glPositionData[offset++] = uv1Y;
|
|
424
|
-
glColorData[offset++] = rgba; glColorData[offset++] = rgbaAdditive;
|
|
425
|
-
|
|
426
|
-
// vertex 1
|
|
427
|
-
glPositionData[offset++] = angle;
|
|
428
|
-
glPositionData[offset++] = x; glPositionData[offset++] = y;
|
|
429
|
-
glPositionData[offset++] = sizeX; glPositionData[offset++] = sizeY;
|
|
430
|
-
glPositionData[offset++] = uv1X; glPositionData[offset++] = uv0Y;
|
|
431
|
-
glColorData[offset++] = rgba; glColorData[offset++] = rgbaAdditive;
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
435
|
-
// store gl constants as integers so their name doesn't use space in minifed
|
|
436
|
-
const
|
|
437
|
-
gl_ONE = 1,
|
|
438
|
-
gl_TRIANGLES = 4,
|
|
439
|
-
gl_SRC_ALPHA = 770,
|
|
440
|
-
gl_ONE_MINUS_SRC_ALPHA = 771,
|
|
441
|
-
gl_BLEND = 3042,
|
|
442
|
-
gl_TEXTURE_2D = 3553,
|
|
443
|
-
gl_UNSIGNED_BYTE = 5121,
|
|
444
|
-
gl_FLOAT = 5126,
|
|
445
|
-
gl_RGBA = 6408,
|
|
446
|
-
gl_NEAREST = 9728,
|
|
447
|
-
gl_LINEAR = 9729,
|
|
448
|
-
gl_TEXTURE_MAG_FILTER = 10240,
|
|
449
|
-
gl_TEXTURE_MIN_FILTER = 10241,
|
|
450
|
-
gl_TEXTURE_WRAP_S = 10242,
|
|
451
|
-
gl_TEXTURE_WRAP_T = 10243,
|
|
452
|
-
gl_COLOR_BUFFER_BIT = 16384,
|
|
453
|
-
gl_CLAMP_TO_EDGE = 33071,
|
|
454
|
-
gl_ARRAY_BUFFER = 34962,
|
|
455
|
-
gl_DYNAMIC_DRAW = 35048,
|
|
456
|
-
gl_FRAGMENT_SHADER = 35632,
|
|
457
|
-
gl_VERTEX_SHADER = 35633,
|
|
458
|
-
gl_COMPILE_STATUS = 35713,
|
|
459
|
-
gl_LINK_STATUS = 35714,
|
|
460
|
-
|
|
461
|
-
// constants for batch rendering
|
|
462
|
-
gl_VERTICES_PER_QUAD = 6,
|
|
463
|
-
gl_INDICIES_PER_VERT = 9,
|
|
464
|
-
gl_MAX_BATCH = 1<<16,
|
|
465
|
-
gl_VERTEX_BYTE_STRIDE = 4 + (4 * 2) * 3 + (4) * 2; // float + vec2 * 3 + (char * 4) * 2</code></pre>
|
|
466
|
-
</article>
|
|
467
|
-
</section>
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
</div>
|
|
473
|
-
|
|
474
|
-
<footer class="footer" id="footer">
|
|
475
|
-
<a href=https://github.com/KilledByAPixel/LittleJS>LittleJS - MIT License - Copyright 2021 Frank Force</a>
|
|
476
|
-
</footer>
|
|
477
|
-
|
|
478
|
-
<script src="scripts/third-party/prettify.js"></script>
|
|
479
|
-
<script src="scripts/third-party/lang-css.js"></script>
|
|
480
|
-
<script type="text/javascript" src="scripts/misc.js"></script>
|
|
481
|
-
|
|
482
|
-
<script>prettyPrint();</script>
|
|
483
|
-
<script src="scripts/linenumber.js"></script>
|
|
484
|
-
<script src="scripts/fix-code-block.js"></script>
|
|
485
|
-
<script src="scripts/fix-navbar.js"></script>
|
|
486
|
-
|
|
487
|
-
<script src="scripts/search.js"></script>
|
|
488
|
-
<script src="scripts/third-party/fuse.js"></script>
|
|
489
|
-
<script>
|
|
490
|
-
var list = [{"title":"Color","link":"<a href=\"Color.html\">Color</a>"},{"title":"Color#add","link":"<a href=\"Color.html#add\">Color ▸ add</a>"},{"title":"Color#clamp","link":"<a href=\"Color.html#clamp\">Color ▸ clamp</a>"},{"title":"Color#copy","link":"<a href=\"Color.html#copy\">Color ▸ copy</a>"},{"title":"Color#divide","link":"<a href=\"Color.html#divide\">Color ▸ divide</a>"},{"title":"Color#lerp","link":"<a href=\"Color.html#lerp\">Color ▸ lerp</a>"},{"title":"Color#multiply","link":"<a href=\"Color.html#multiply\">Color ▸ multiply</a>"},{"title":"Color#mutate","link":"<a href=\"Color.html#mutate\">Color ▸ mutate</a>"},{"title":"Color#rgba","link":"<a href=\"Color.html#rgba\">Color ▸ rgba</a>"},{"title":"Color#rgbaInt","link":"<a href=\"Color.html#rgbaInt\">Color ▸ rgbaInt</a>"},{"title":"Color#scale","link":"<a href=\"Color.html#scale\">Color ▸ scale</a>"},{"title":"Color#setHSLA","link":"<a href=\"Color.html#setHSLA\">Color ▸ setHSLA</a>"},{"title":"Color#subtract","link":"<a href=\"Color.html#subtract\">Color ▸ subtract</a>"},{"title":"EngineObject","link":"<a href=\"EngineObject.html\">EngineObject</a>"},{"title":"EngineObject#addChild","link":"<a href=\"EngineObject.html#addChild\">EngineObject ▸ addChild</a>"},{"title":"EngineObject#applyAcceleration","link":"<a href=\"EngineObject.html#applyAcceleration\">EngineObject ▸ applyAcceleration</a>"},{"title":"EngineObject#applyForce","link":"<a href=\"EngineObject.html#applyForce\">EngineObject ▸ applyForce</a>"},{"title":"EngineObject#collideWithObject","link":"<a href=\"EngineObject.html#collideWithObject\">EngineObject ▸ collideWithObject</a>"},{"title":"EngineObject#collideWithTile","link":"<a href=\"EngineObject.html#collideWithTile\">EngineObject ▸ collideWithTile</a>"},{"title":"EngineObject#collideWithTileRaycast","link":"<a href=\"EngineObject.html#collideWithTileRaycast\">EngineObject ▸ collideWithTileRaycast</a>"},{"title":"EngineObject#destroy","link":"<a href=\"EngineObject.html#destroy\">EngineObject ▸ destroy</a>"},{"title":"EngineObject#getAliveTime","link":"<a href=\"EngineObject.html#getAliveTime\">EngineObject ▸ getAliveTime</a>"},{"title":"EngineObject#getMirrorSign","link":"<a href=\"EngineObject.html#getMirrorSign\">EngineObject ▸ getMirrorSign</a>"},{"title":"EngineObject#removeChild","link":"<a href=\"EngineObject.html#removeChild\">EngineObject ▸ removeChild</a>"},{"title":"EngineObject#render","link":"<a href=\"EngineObject.html#render\">EngineObject ▸ render</a>"},{"title":"EngineObject#setCollision","link":"<a href=\"EngineObject.html#setCollision\">EngineObject ▸ setCollision</a>"},{"title":"EngineObject#update","link":"<a href=\"EngineObject.html#update\">EngineObject ▸ update</a>"},{"title":"Medal","link":"<a href=\"Medal.html\">Medal</a>"},{"title":"Medal#render","link":"<a href=\"Medal.html#render\">Medal ▸ render</a>"},{"title":"Medal#renderIcon","link":"<a href=\"Medal.html#renderIcon\">Medal ▸ renderIcon</a>"},{"title":"Medal#unlock","link":"<a href=\"Medal.html#unlock\">Medal ▸ unlock</a>"},{"title":"Music","link":"<a href=\"Music.html\">Music</a>"},{"title":"Music#play","link":"<a href=\"Music.html#play\">Music ▸ play</a>"},{"title":"Newgrounds","link":"<a href=\"Newgrounds.html\">Newgrounds</a>"},{"title":"Newgrounds#call","link":"<a href=\"Newgrounds.html#call\">Newgrounds ▸ call</a>"},{"title":"Newgrounds#getScores","link":"<a href=\"Newgrounds.html#getScores\">Newgrounds ▸ getScores</a>"},{"title":"Newgrounds#logView","link":"<a href=\"Newgrounds.html#logView\">Newgrounds ▸ logView</a>"},{"title":"Newgrounds#postScore","link":"<a href=\"Newgrounds.html#postScore\">Newgrounds ▸ postScore</a>"},{"title":"Newgrounds#unlockMedal","link":"<a href=\"Newgrounds.html#unlockMedal\">Newgrounds ▸ unlockMedal</a>"},{"title":"Particle","link":"<a href=\"Particle.html\">Particle</a>"},{"title":"Particle#render","link":"<a href=\"Particle.html#render\">Particle ▸ render</a>"},{"title":"ParticleEmitter","link":"<a href=\"ParticleEmitter.html\">ParticleEmitter</a>"},{"title":"ParticleEmitter#emitParticle","link":"<a href=\"ParticleEmitter.html#emitParticle\">ParticleEmitter ▸ emitParticle</a>"},{"title":"ParticleEmitter#update","link":"<a href=\"ParticleEmitter.html#update\">ParticleEmitter ▸ update</a>"},{"title":"Sound","link":"<a href=\"Sound.html\">Sound</a>"},{"title":"Sound#play","link":"<a href=\"Sound.html#play\">Sound ▸ play</a>"},{"title":"Sound#playNote","link":"<a href=\"Sound.html#playNote\">Sound ▸ playNote</a>"},{"title":"TileLayer","link":"<a href=\"TileLayer.html\">TileLayer</a>"},{"title":"TileLayer.getTileCollisionData","link":"<a href=\"TileLayer.html#.getTileCollisionData\">TileLayer.getTileCollisionData ▸ undefined</a>"},{"title":"TileLayer.initTileCollision","link":"<a href=\"TileLayer.html#.initTileCollision\">TileLayer.initTileCollision ▸ undefined</a>"},{"title":"TileLayer.setTileCollisionData","link":"<a href=\"TileLayer.html#.setTileCollisionData\">TileLayer.setTileCollisionData ▸ undefined</a>"},{"title":"TileLayer.tileCollisionRaycast","link":"<a href=\"TileLayer.html#.tileCollisionRaycast\">TileLayer.tileCollisionRaycast ▸ undefined</a>"},{"title":"TileLayer.tileCollisionTest","link":"<a href=\"TileLayer.html#.tileCollisionTest\">TileLayer.tileCollisionTest ▸ undefined</a>"},{"title":"TileLayer#destroy","link":"<a href=\"TileLayer.html#destroy\">TileLayer ▸ destroy</a>"},{"title":"TileLayer#drawAllTileData","link":"<a href=\"TileLayer.html#drawAllTileData\">TileLayer ▸ drawAllTileData</a>"},{"title":"TileLayer#drawCanvas2D","link":"<a href=\"TileLayer.html#drawCanvas2D\">TileLayer ▸ drawCanvas2D</a>"},{"title":"TileLayer#drawRect","link":"<a href=\"TileLayer.html#drawRect\">TileLayer ▸ drawRect</a>"},{"title":"TileLayer#drawTile","link":"<a href=\"TileLayer.html#drawTile\">TileLayer ▸ drawTile</a>"},{"title":"TileLayer#drawTileData","link":"<a href=\"TileLayer.html#drawTileData\">TileLayer ▸ drawTileData</a>"},{"title":"TileLayer#getData","link":"<a href=\"TileLayer.html#getData\">TileLayer ▸ getData</a>"},{"title":"TileLayer#redraw","link":"<a href=\"TileLayer.html#redraw\">TileLayer ▸ redraw</a>"},{"title":"TileLayer#redrawEnd","link":"<a href=\"TileLayer.html#redrawEnd\">TileLayer ▸ redrawEnd</a>"},{"title":"TileLayer#redrawStart","link":"<a href=\"TileLayer.html#redrawStart\">TileLayer ▸ redrawStart</a>"},{"title":"TileLayer#setData","link":"<a href=\"TileLayer.html#setData\">TileLayer ▸ setData</a>"},{"title":"TileLayerData","link":"<a href=\"TileLayerData.html\">TileLayerData</a>"},{"title":"TileLayerData#clear","link":"<a href=\"TileLayerData.html#clear\">TileLayerData ▸ clear</a>"},{"title":"Timer","link":"<a href=\"Timer.html\">Timer</a>"},{"title":"Timer#active","link":"<a href=\"Timer.html#active\">Timer ▸ active</a>"},{"title":"Timer#elapsed","link":"<a href=\"Timer.html#elapsed\">Timer ▸ elapsed</a>"},{"title":"Timer#get","link":"<a href=\"Timer.html#get\">Timer ▸ get</a>"},{"title":"Timer#getPercent","link":"<a href=\"Timer.html#getPercent\">Timer ▸ getPercent</a>"},{"title":"Timer#isSet","link":"<a href=\"Timer.html#isSet\">Timer ▸ isSet</a>"},{"title":"Timer#set","link":"<a href=\"Timer.html#set\">Timer ▸ set</a>"},{"title":"Timer#unset","link":"<a href=\"Timer.html#unset\">Timer ▸ unset</a>"},{"title":"Vector2","link":"<a href=\"Vector2.html\">Vector2</a>"},{"title":"Vector2#add","link":"<a href=\"Vector2.html#add\">Vector2 ▸ add</a>"},{"title":"Vector2#angle","link":"<a href=\"Vector2.html#angle\">Vector2 ▸ angle</a>"},{"title":"Vector2#area","link":"<a href=\"Vector2.html#area\">Vector2 ▸ area</a>"},{"title":"Vector2#arrayCheck","link":"<a href=\"Vector2.html#arrayCheck\">Vector2 ▸ arrayCheck</a>"},{"title":"Vector2#clampLength","link":"<a href=\"Vector2.html#clampLength\">Vector2 ▸ clampLength</a>"},{"title":"Vector2#copy","link":"<a href=\"Vector2.html#copy\">Vector2 ▸ copy</a>"},{"title":"Vector2#cross","link":"<a href=\"Vector2.html#cross\">Vector2 ▸ cross</a>"},{"title":"Vector2#direction","link":"<a href=\"Vector2.html#direction\">Vector2 ▸ direction</a>"},{"title":"Vector2#distance","link":"<a href=\"Vector2.html#distance\">Vector2 ▸ distance</a>"},{"title":"Vector2#distanceSquared","link":"<a href=\"Vector2.html#distanceSquared\">Vector2 ▸ distanceSquared</a>"},{"title":"Vector2#divide","link":"<a href=\"Vector2.html#divide\">Vector2 ▸ divide</a>"},{"title":"Vector2#dot","link":"<a href=\"Vector2.html#dot\">Vector2 ▸ dot</a>"},{"title":"Vector2#flip","link":"<a href=\"Vector2.html#flip\">Vector2 ▸ flip</a>"},{"title":"Vector2#floor","link":"<a href=\"Vector2.html#floor\">Vector2 ▸ floor</a>"},{"title":"Vector2#invert","link":"<a href=\"Vector2.html#invert\">Vector2 ▸ invert</a>"},{"title":"Vector2#length","link":"<a href=\"Vector2.html#length\">Vector2 ▸ length</a>"},{"title":"Vector2#lengthSquared","link":"<a href=\"Vector2.html#lengthSquared\">Vector2 ▸ lengthSquared</a>"},{"title":"Vector2#lerp","link":"<a href=\"Vector2.html#lerp\">Vector2 ▸ lerp</a>"},{"title":"Vector2#multiply","link":"<a href=\"Vector2.html#multiply\">Vector2 ▸ multiply</a>"},{"title":"Vector2#normalize","link":"<a href=\"Vector2.html#normalize\">Vector2 ▸ normalize</a>"},{"title":"Vector2#rotate","link":"<a href=\"Vector2.html#rotate\">Vector2 ▸ rotate</a>"},{"title":"Vector2#scale","link":"<a href=\"Vector2.html#scale\">Vector2 ▸ scale</a>"},{"title":"Vector2#setAngle","link":"<a href=\"Vector2.html#setAngle\">Vector2 ▸ setAngle</a>"},{"title":"Vector2#subtract","link":"<a href=\"Vector2.html#subtract\">Vector2 ▸ subtract</a>"},{"title":"Audio","link":"<a href=\"Audio.html\">Audio</a>"},{"title":"Audio.getNoteFrequency","link":"<a href=\"Audio.html#.getNoteFrequency\">Audio.getNoteFrequency ▸ undefined</a>"},{"title":"Audio.playAudioFile","link":"<a href=\"Audio.html#.playAudioFile\">Audio.playAudioFile ▸ undefined</a>"},{"title":"Audio.playSamples","link":"<a href=\"Audio.html#.playSamples\">Audio.playSamples ▸ undefined</a>"},{"title":"Audio.speak","link":"<a href=\"Audio.html#.speak\">Audio.speak ▸ undefined</a>"},{"title":"Audio.stopSpeech","link":"<a href=\"Audio.html#.stopSpeech\">Audio.stopSpeech ▸ undefined</a>"},{"title":"Audio.zzfx","link":"<a href=\"Audio.html#.zzfx\">Audio.zzfx ▸ undefined</a>"},{"title":"Audio.zzfxG","link":"<a href=\"Audio.html#.zzfxG\">Audio.zzfxG ▸ undefined</a>"},{"title":"Audio.zzfxM","link":"<a href=\"Audio.html#.zzfxM\">Audio.zzfxM ▸ undefined</a>"},{"title":"Debug","link":"<a href=\"Debug.html\">Debug</a>"},{"title":"Debug.debugAABB","link":"<a href=\"Debug.html#.debugAABB\">Debug.debugAABB ▸ undefined</a>"},{"title":"Debug.debugCircle","link":"<a href=\"Debug.html#.debugCircle\">Debug.debugCircle ▸ undefined</a>"},{"title":"Debug.debugClear","link":"<a href=\"Debug.html#.debugClear\">Debug.debugClear ▸ undefined</a>"},{"title":"Debug.debugLine","link":"<a href=\"Debug.html#.debugLine\">Debug.debugLine ▸ undefined</a>"},{"title":"Debug.debugPoint","link":"<a href=\"Debug.html#.debugPoint\">Debug.debugPoint ▸ undefined</a>"},{"title":"Debug.debugRect","link":"<a href=\"Debug.html#.debugRect\">Debug.debugRect ▸ undefined</a>"},{"title":"Debug.debugSaveCanvas","link":"<a href=\"Debug.html#.debugSaveCanvas\">Debug.debugSaveCanvas ▸ undefined</a>"},{"title":"Debug.debugText","link":"<a href=\"Debug.html#.debugText\">Debug.debugText ▸ undefined</a>"},{"title":"Draw","link":"<a href=\"Draw.html\">Draw</a>"},{"title":"Draw.drawCanvas2D","link":"<a href=\"Draw.html#.drawCanvas2D\">Draw.drawCanvas2D ▸ undefined</a>"},{"title":"Draw.drawLine","link":"<a href=\"Draw.html#.drawLine\">Draw.drawLine ▸ undefined</a>"},{"title":"Draw.drawRect","link":"<a href=\"Draw.html#.drawRect\">Draw.drawRect ▸ undefined</a>"},{"title":"Draw.drawRectScreenSpace","link":"<a href=\"Draw.html#.drawRectScreenSpace\">Draw.drawRectScreenSpace ▸ undefined</a>"},{"title":"Draw.drawText","link":"<a href=\"Draw.html#.drawText\">Draw.drawText ▸ undefined</a>"},{"title":"Draw.drawTile","link":"<a href=\"Draw.html#.drawTile\">Draw.drawTile ▸ undefined</a>"},{"title":"Draw.drawTileScreenSpace","link":"<a href=\"Draw.html#.drawTileScreenSpace\">Draw.drawTileScreenSpace ▸ undefined</a>"},{"title":"Draw.isFullscreen","link":"<a href=\"Draw.html#.isFullscreen\">Draw.isFullscreen ▸ undefined</a>"},{"title":"Draw.screenToWorld","link":"<a href=\"Draw.html#.screenToWorld\">Draw.screenToWorld ▸ undefined</a>"},{"title":"Draw.setBlendMode","link":"<a href=\"Draw.html#.setBlendMode\">Draw.setBlendMode ▸ undefined</a>"},{"title":"Draw.toggleFullscreen","link":"<a href=\"Draw.html#.toggleFullscreen\">Draw.toggleFullscreen ▸ undefined</a>"},{"title":"Draw.worldToScreen","link":"<a href=\"Draw.html#.worldToScreen\">Draw.worldToScreen ▸ undefined</a>"},{"title":"Input","link":"<a href=\"Input.html\">Input</a>"},{"title":"Input.clearInput","link":"<a href=\"Input.html#.clearInput\">Input.clearInput ▸ undefined</a>"},{"title":"Input.gamepadIsDown","link":"<a href=\"Input.html#.gamepadIsDown\">Input.gamepadIsDown ▸ undefined</a>"},{"title":"Input.gamepadStick","link":"<a href=\"Input.html#.gamepadStick\">Input.gamepadStick ▸ undefined</a>"},{"title":"Input.gamepadWasPressed","link":"<a href=\"Input.html#.gamepadWasPressed\">Input.gamepadWasPressed ▸ undefined</a>"},{"title":"Input.gamepadWasReleased","link":"<a href=\"Input.html#.gamepadWasReleased\">Input.gamepadWasReleased ▸ undefined</a>"},{"title":"Input.keyIsDown","link":"<a href=\"Input.html#.keyIsDown\">Input.keyIsDown ▸ undefined</a>"},{"title":"Input.keyWasPressed","link":"<a href=\"Input.html#.keyWasPressed\">Input.keyWasPressed ▸ undefined</a>"},{"title":"Input.keyWasReleased","link":"<a href=\"Input.html#.keyWasReleased\">Input.keyWasReleased ▸ undefined</a>"},{"title":"Medals","link":"<a href=\"Medals.html\">Medals</a>"},{"title":"Medals.medalsInit","link":"<a href=\"Medals.html#.medalsInit\">Medals.medalsInit ▸ undefined</a>"},{"title":"Random","link":"<a href=\"Random.html\">Random</a>"},{"title":"Random.rand","link":"<a href=\"Random.html#.rand\">Random.rand ▸ undefined</a>"},{"title":"Random.randColor","link":"<a href=\"Random.html#.randColor\">Random.randColor ▸ undefined</a>"},{"title":"Random.randInCircle","link":"<a href=\"Random.html#.randInCircle\">Random.randInCircle ▸ undefined</a>"},{"title":"Random.randInt","link":"<a href=\"Random.html#.randInt\">Random.randInt ▸ undefined</a>"},{"title":"Random.randSeeded","link":"<a href=\"Random.html#.randSeeded\">Random.randSeeded ▸ undefined</a>"},{"title":"Random.randSign","link":"<a href=\"Random.html#.randSign\">Random.randSign ▸ undefined</a>"},{"title":"Random.randVector","link":"<a href=\"Random.html#.randVector\">Random.randVector ▸ undefined</a>"},{"title":"Settings","link":"<a href=\"Settings.html\">Settings</a>"},{"title":"Utilities","link":"<a href=\"Utilities.html\">Utilities</a>"},{"title":"Utilities.abs","link":"<a href=\"Utilities.html#.abs\">Utilities.abs ▸ undefined</a>"},{"title":"Utilities.clamp","link":"<a href=\"Utilities.html#.clamp\">Utilities.clamp ▸ undefined</a>"},{"title":"Utilities.formatTime","link":"<a href=\"Utilities.html#.formatTime\">Utilities.formatTime ▸ undefined</a>"},{"title":"Utilities.isOverlapping","link":"<a href=\"Utilities.html#.isOverlapping\">Utilities.isOverlapping ▸ undefined</a>"},{"title":"Utilities.lerp","link":"<a href=\"Utilities.html#.lerp\">Utilities.lerp ▸ undefined</a>"},{"title":"Utilities.max","link":"<a href=\"Utilities.html#.max\">Utilities.max ▸ undefined</a>"},{"title":"Utilities.min","link":"<a href=\"Utilities.html#.min\">Utilities.min ▸ undefined</a>"},{"title":"Utilities.mod","link":"<a href=\"Utilities.html#.mod\">Utilities.mod ▸ undefined</a>"},{"title":"Utilities.nearestPowerOfTwo","link":"<a href=\"Utilities.html#.nearestPowerOfTwo\">Utilities.nearestPowerOfTwo ▸ undefined</a>"},{"title":"Utilities.percent","link":"<a href=\"Utilities.html#.percent\">Utilities.percent ▸ undefined</a>"},{"title":"Utilities.sign","link":"<a href=\"Utilities.html#.sign\">Utilities.sign ▸ undefined</a>"},{"title":"Utilities.smoothStep","link":"<a href=\"Utilities.html#.smoothStep\">Utilities.smoothStep ▸ undefined</a>"},{"title":"Utilities.vec2","link":"<a href=\"Utilities.html#.vec2\">Utilities.vec2 ▸ undefined</a>"},{"title":"Utilities.wave","link":"<a href=\"Utilities.html#.wave\">Utilities.wave ▸ undefined</a>"},{"title":"WebGL","link":"<a href=\"WebGL.html\">WebGL</a>"},{"title":"WebGL.glCompileShader","link":"<a href=\"WebGL.html#.glCompileShader\">WebGL.glCompileShader ▸ undefined</a>"},{"title":"WebGL.glCopyToContext","link":"<a href=\"WebGL.html#.glCopyToContext\">WebGL.glCopyToContext ▸ undefined</a>"},{"title":"WebGL.glCreateBuffer","link":"<a href=\"WebGL.html#.glCreateBuffer\">WebGL.glCreateBuffer ▸ undefined</a>"},{"title":"WebGL.glCreateProgram","link":"<a href=\"WebGL.html#.glCreateProgram\">WebGL.glCreateProgram ▸ undefined</a>"},{"title":"WebGL.glCreateTexture","link":"<a href=\"WebGL.html#.glCreateTexture\">WebGL.glCreateTexture ▸ undefined</a>"},{"title":"WebGL.glFlush","link":"<a href=\"WebGL.html#.glFlush\">WebGL.glFlush ▸ undefined</a>"},{"title":"WebGL.glSetBlendMode","link":"<a href=\"WebGL.html#.glSetBlendMode\">WebGL.glSetBlendMode ▸ undefined</a>"},{"title":"WebGL.glSetTexture","link":"<a href=\"WebGL.html#.glSetTexture\">WebGL.glSetTexture ▸ undefined</a>"},{"title":"engineCollideObjects","link":"<a href=\"global.html#engineCollideObjects\">engineCollideObjects</a>"},{"title":"engineInit","link":"<a href=\"global.html#engineInit\">engineInit</a>"},{"title":"engineName","link":"<a href=\"global.html#engineName\">engineName</a>"},{"title":"engineObjects","link":"<a href=\"global.html#engineObjects\">engineObjects</a>"},{"title":"engineObjectsCallback","link":"<a href=\"global.html#engineObjectsCallback\">engineObjectsCallback</a>"},{"title":"engineObjectsDestroy","link":"<a href=\"global.html#engineObjectsDestroy\">engineObjectsDestroy</a>"},{"title":"engineObjectsUpdate","link":"<a href=\"global.html#engineObjectsUpdate\">engineObjectsUpdate</a>"},{"title":"engineVersion","link":"<a href=\"global.html#engineVersion\">engineVersion</a>"},{"title":"FPS","link":"<a href=\"global.html#FPS\">FPS</a>"},{"title":"frame","link":"<a href=\"global.html#frame\">frame</a>"},{"title":"paused","link":"<a href=\"global.html#paused\">paused</a>"},{"title":"time","link":"<a href=\"global.html#time\">time</a>"},{"title":"timeDelta","link":"<a href=\"global.html#timeDelta\">timeDelta</a>"},{"title":"timeReal","link":"<a href=\"global.html#timeReal\">timeReal</a>"}];
|
|
491
|
-
var options =
|
|
492
|
-
setupSearch(list, options)
|
|
493
|
-
</script>
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
</body>
|
|
506
|
-
|
|
507
|
-
</html>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|