@oliversalzburg/js-utils 0.0.15 → 0.0.16

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.
Files changed (127) hide show
  1. package/_site/assets/highlight.css +92 -8
  2. package/_site/assets/navigation.js +1 -1
  3. package/_site/assets/search.js +1 -1
  4. package/_site/classes/AbstractError.html +8 -8
  5. package/_site/classes/Canvas.html +36 -25
  6. package/_site/classes/CanvasSandbox.html +36 -21
  7. package/_site/classes/Euler.html +44 -44
  8. package/_site/classes/InternalError.html +9 -9
  9. package/_site/classes/InvalidArgumentError.html +8 -8
  10. package/_site/classes/InvalidOperationError.html +8 -8
  11. package/_site/classes/Matrix3.html +41 -41
  12. package/_site/classes/NotImplementedError.html +8 -8
  13. package/_site/classes/PermissionViolationError.html +8 -8
  14. package/_site/classes/Quaternion.html +46 -46
  15. package/_site/classes/Random.html +17 -17
  16. package/_site/classes/RenderLoop.html +21 -21
  17. package/_site/classes/ResourceConflictError.html +8 -8
  18. package/_site/classes/Transformation.html +8 -8
  19. package/_site/classes/UnexpectedNilError.html +6 -6
  20. package/_site/classes/UnknownError.html +8 -8
  21. package/_site/classes/Vector2.html +33 -33
  22. package/_site/classes/Vector3.html +43 -43
  23. package/_site/classes/Vector4.html +33 -33
  24. package/_site/functions/addVector2.html +4 -4
  25. package/_site/functions/addVector3.html +4 -4
  26. package/_site/functions/blend.html +4 -4
  27. package/_site/functions/blendAdditive.html +4 -4
  28. package/_site/functions/blendSubtractive.html +4 -4
  29. package/_site/functions/clamp.html +4 -4
  30. package/_site/functions/coalesceOnRejection.html +8 -5
  31. package/_site/functions/cosDeg.html +4 -4
  32. package/_site/functions/crossVector3.html +4 -4
  33. package/_site/functions/deg2rad.html +4 -4
  34. package/_site/functions/difference.html +4 -4
  35. package/_site/functions/distance.html +4 -4
  36. package/_site/functions/dotVector3.html +4 -4
  37. package/_site/functions/errorToJSON.html +4 -4
  38. package/_site/functions/errorToRecord.html +4 -4
  39. package/_site/functions/errorToSimpleSerializable.html +4 -4
  40. package/_site/functions/filterType.html +4 -4
  41. package/_site/functions/formatString.html +5 -5
  42. package/_site/functions/formatStringTemplate.html +5 -5
  43. package/_site/functions/fromRGB.html +4 -4
  44. package/_site/functions/fromRGBA.html +4 -4
  45. package/_site/functions/getA.html +4 -4
  46. package/_site/functions/getB.html +4 -4
  47. package/_site/functions/getDocumentElementTypeById.html +6 -8
  48. package/_site/functions/getDocumentElementTypeByIdStrict.html +48 -0
  49. package/_site/functions/getG.html +4 -4
  50. package/_site/functions/getR.html +4 -4
  51. package/_site/functions/intersect.html +4 -4
  52. package/_site/functions/is.html +4 -4
  53. package/_site/functions/isError.html +4 -4
  54. package/_site/functions/isInteger.html +4 -4
  55. package/_site/functions/isNil.html +4 -4
  56. package/_site/functions/isqrt.html +4 -4
  57. package/_site/functions/multiplyVector2.html +4 -4
  58. package/_site/functions/multiplyVector3.html +4 -4
  59. package/_site/functions/mustExist.html +4 -4
  60. package/_site/functions/nextPalette.html +4 -4
  61. package/_site/functions/prepareAsyncContext.html +4 -4
  62. package/_site/functions/putPixel32.html +4 -4
  63. package/_site/functions/putPixel32Add.html +4 -4
  64. package/_site/functions/putPixel32Sub.html +4 -4
  65. package/_site/functions/putSubPixel32.html +4 -4
  66. package/_site/functions/rad2deg.html +4 -4
  67. package/_site/functions/randomRange.html +4 -4
  68. package/_site/functions/safeRGBComponent.html +4 -4
  69. package/_site/functions/seedFromString.html +4 -4
  70. package/_site/functions/shuffleArray.html +4 -4
  71. package/_site/functions/sinDeg.html +4 -4
  72. package/_site/functions/sleep.html +4 -4
  73. package/_site/functions/somecolor.html +4 -4
  74. package/_site/functions/subtractVector2.html +4 -4
  75. package/_site/functions/subtractVector3.html +4 -4
  76. package/_site/functions/toGrayScale.html +4 -4
  77. package/_site/functions/unknownToError.html +4 -4
  78. package/_site/index.html +4 -4
  79. package/_site/interfaces/CanvasOptions.html +5 -5
  80. package/_site/interfaces/CanvasSandboxApplication.html +10 -10
  81. package/_site/interfaces/CanvasSandboxExpectedOptions.html +6 -6
  82. package/_site/interfaces/CanvasSandboxOptions.html +45 -0
  83. package/_site/interfaces/RenderLoopOptions.html +6 -6
  84. package/_site/modules.html +7 -4
  85. package/_site/types/AnyAsyncFunction.html +4 -4
  86. package/_site/types/AnyConstructor.html +4 -4
  87. package/_site/types/AnyFunction.html +4 -4
  88. package/_site/types/ConstructorOf.html +4 -4
  89. package/_site/types/FunctionReturning.html +4 -4
  90. package/_site/types/Maybe.html +4 -4
  91. package/_site/types/Mixin.html +4 -4
  92. package/_site/types/Nil.html +4 -4
  93. package/_site/types/RenderLoopCallback.html +4 -4
  94. package/_site/types/SerializedError.html +4 -4
  95. package/_site/variables/CANVAS_SANDBOX_DEFAULT_CSS.html +41 -0
  96. package/_site/variables/MS_PER_FRAME_60FPS.html +4 -4
  97. package/_site/variables/PALETTES.html +4 -4
  98. package/_site/variables/TWO_PI.html +4 -4
  99. package/_site/variables/random-1.html +4 -4
  100. package/lib/async.d.ts +6 -3
  101. package/lib/async.js +8 -2
  102. package/lib/async.js.map +1 -1
  103. package/lib/dom/core.d.ts +13 -3
  104. package/lib/dom/core.js +22 -3
  105. package/lib/dom/core.js.map +1 -1
  106. package/lib/graphics/canvas-sandbox.d.ts +40 -39
  107. package/lib/graphics/canvas-sandbox.js +87 -44
  108. package/lib/graphics/canvas-sandbox.js.map +1 -1
  109. package/lib/graphics/canvas.js +0 -1
  110. package/lib/graphics/canvas.js.map +1 -1
  111. package/lib/graphics/render-loop.d.ts +1 -1
  112. package/lib/graphics/render-loop.js +51 -33
  113. package/lib/graphics/render-loop.js.map +1 -1
  114. package/package.json +3 -3
  115. package/_site/favicon.ico +0 -0
  116. package/lib/Async.d.ts +0 -3
  117. package/lib/Async.js +0 -17
  118. package/lib/Async.js.map +0 -1
  119. package/lib/graphics/canvas copy.d.ts +0 -170
  120. package/lib/graphics/canvas copy.js +0 -300
  121. package/lib/graphics/canvas copy.js.map +0 -1
  122. package/lib/graphics/canvas-worker.d.ts +0 -50
  123. package/lib/graphics/canvas-worker.js +0 -78
  124. package/lib/graphics/canvas-worker.js.map +0 -1
  125. package/lib/math/vector.d.ts +0 -2
  126. package/lib/math/vector.js +0 -3
  127. package/lib/math/vector.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../source/graphics/canvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,GACL,MAAM,WAAW,CAAC;AAcnB;;;;;;GAMG;AACH,MAAM,OAAO,MAAM;IACjB;;OAEG;IACM,SAAS,CAAoB;IAEtC;;OAEG;IACH,iBAAiB,CAA8B;IAE/C;;OAEG;IACH,gBAAgB,CAAkB;IAElC;;OAEG;IACH,MAAM,CAAS;IACf;;;OAGG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,OAAO,CAAS;IAChB;;;OAGG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAoC;IAC5C;;;OAGG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,UAAU,CAAY;IAEtB;;OAEG;IACH,MAAM,CAAoB;IAE1B;;OAEG;IACM,OAAO,CAAmC;IAEnD;;;;OAIG;IACH,YAAY,MAAyB,EAAE,UAAkC,EAAE;QACzE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAChC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,EAAE;YAC1C,KAAK,EAAE,KAAK;SACb,CAAC,EACF,oDAAoD,CACrD,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,GAAG,SAAS,CACvB,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,KAAK;YACZ,cAAc,EAAE,IAAI;YACpB,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;SACjD,CAAC,EACF,0DAA0D,CAC3D,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAEnC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,iBAAiB,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,GAAG,SAAS,CACvB,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE;YACrC,KAAK,EAAE,KAAK;YACZ,cAAc,EAAE,IAAI;YACpB,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;SACjD,CAAC,EACF,0DAA0D,CAC3D,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;QAC/D,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YACjC,MAAM,IAAI,qBAAqB,CAC7B,0GAA0G,CAC3G,CAAC;SACH;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,CAAS,EAAE,CAAS;QAC7B,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,QAAQ,CACb,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,EAC7B,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,EAC7B,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,EAC7B,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAC9B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa;QAC5C,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,KAAa;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,KAAK,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,YAAY,IAAI,CAAC,EAAE;YAC3F,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;SACnC;IACH,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,KAAa;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,KAAK,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,YAAY,IAAI,CAAC,EAAE;YAC3F,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzF,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzF,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC1F;IACH,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,KAAa,EAAE,EAAE;IAC/F,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC3D,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/C,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAAc,EACd,CAAS,EACT,CAAS,EACT,KAAa,EACb,KAAa,EACb,EAAE;IACF,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC3D,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACvD,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAAc,EACd,CAAS,EACT,CAAS,EACT,KAAa,EACb,KAAa,EACb,EAAE;IACF,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC3D,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAAc,EACd,CAAS,EACT,CAAS,EACT,KAAa,EACb,KAAa,EACb,EAAE;IACF,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC3D,OAAO;KACR;IAED,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC;IAC7B,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC;IAE7B,MAAM,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC3C,MAAM,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC1C,MAAM,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;IAEzC,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC,CAAC"}
1
+ {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../source/graphics/canvas.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,7 @@ export declare class RenderLoop {
51
51
  /**
52
52
  * The time at which we rendered the last frame to the DOM.
53
53
  */
54
- private previousTimestampRender;
54
+ private previousTimestampPresent;
55
55
  /**
56
56
  * The ID of our {@linkcode https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame requestAnimationFrame} request.
57
57
  */
@@ -1,3 +1,4 @@
1
+ import { blend } from "./core.js";
1
2
  /**
2
3
  * The amount of milliseconds your can spend in a frame, if you want to
3
4
  * reach a frame rate of 60 FPS.
@@ -29,12 +30,7 @@ export class RenderLoop {
29
30
  /**
30
31
  * The time at which we rendered the last frame to the DOM.
31
32
  */
32
- previousTimestampRender;
33
- /**
34
- * Our `#main` function bound to this classes
35
- * for easier invokation through external callers.
36
- */
37
- #boundMain;
33
+ previousTimestampPresent;
38
34
  /**
39
35
  * Our `#drawFrame` function bound to this classes
40
36
  * for easier invokation through external callers.
@@ -71,8 +67,7 @@ export class RenderLoop {
71
67
  this.options = options;
72
68
  this.renderLoop = renderLoop;
73
69
  this.previousTimestampDraw = new Date().getTime();
74
- this.previousTimestampRender = this.previousTimestampDraw;
75
- this.#boundMain = this.#main.bind(this);
70
+ this.previousTimestampPresent = this.previousTimestampDraw;
76
71
  this.#boundDrawFrame = this.#drawFrame.bind(this);
77
72
  }
78
73
  /**
@@ -92,22 +87,13 @@ export class RenderLoop {
92
87
  * Start the render loop.
93
88
  */
94
89
  unblock() {
95
- this.frameRequestId = window.requestAnimationFrame(this.#boundMain);
96
- if (!this.drawTimeout) {
97
- this.drawTimeout = setTimeout(this.#boundDrawFrame);
98
- }
90
+ this.frameRequestId = window.requestAnimationFrame(this.#boundDrawFrame);
99
91
  }
100
92
  /**
101
- * Our main loop, as invoked through the frame request.
102
- * @param timestamp The current timestamp.
93
+ * The duration it took to produce previous frames.
94
+ * This is used for the frame graph.
103
95
  */
104
- #main(timestamp) {
105
- const timeDelta = timestamp - this.previousTimestampRender;
106
- this.#renderFrame(timeDelta);
107
- this.unblock();
108
- this.previousTimestampRender = timestamp;
109
- ++this.#frameCounter;
110
- }
96
+ #frameTimes = [];
111
97
  /**
112
98
  * Draws a new frame to the offscreen buffer.
113
99
  */
@@ -119,27 +105,59 @@ export class RenderLoop {
119
105
  const timeDelta = timestamp - this.previousTimestampDraw;
120
106
  this.renderLoop(timeDelta, timestamp);
121
107
  const frameTime = new Date().getTime() - timestamp;
122
- this.drawTimeout = setTimeout(this.#boundDrawFrame, Math.max(0, MS_PER_FRAME_60FPS - frameTime));
108
+ if (this.options.drawFps) {
109
+ this.#frameTimes.push(frameTime);
110
+ }
123
111
  this.previousTimestampDraw = timestamp;
124
- }
125
- /**
126
- * Draw a new frame.
127
- * @param delta The delta to the timestamp of the previous frame.
128
- */
129
- #renderFrame(delta) {
130
112
  this.canvas.update();
131
113
  if (this.options.onRefresh === "clear") {
132
114
  this.canvas.clearWith(0);
133
115
  }
134
116
  if (this.options.drawFps) {
135
- const fps = `${Math.round(1000 / delta)}fps`;
136
- this.canvas.context.strokeStyle = "rgba( 255, 255, 255, 0.85 )";
137
- this.canvas.context.lineWidth = 5;
138
- this.canvas.context.strokeText(fps, 4, 14);
117
+ const maxFrameTime = this.#frameTimes.reduce((max, frameTime) => {
118
+ if (max < frameTime) {
119
+ max = frameTime;
120
+ }
121
+ return max;
122
+ }, 0);
123
+ const sumFrameTimes = this.#frameTimes.reduce((sum, frameTime) => sum + frameTime, 0);
124
+ const fpsAll = Math.round(this.#frameTimes.length / (sumFrameTimes / 1000)).toString();
125
+ const fpsFrame = 1000 / frameTime;
126
+ const fpsDelta = 1000 / timeDelta;
127
+ this.#frameTimes.splice(0, this.#frameTimes.length - this.canvas.width);
128
+ const frameTimes = this.#frameTimes.toReversed();
129
+ let currentX = this.canvas.width;
130
+ for (const frameTime of frameTimes) {
131
+ let fillColor = 0x00ff00ff;
132
+ let width = 1;
133
+ if (MS_PER_FRAME_60FPS < frameTime) {
134
+ const quality = frameTime / maxFrameTime;
135
+ fillColor = blend(0x00ff00ff, 0xff0000ff, Math.trunc(quality * 255)) >>> 0;
136
+ width = Math.round(frameTime / MS_PER_FRAME_60FPS);
137
+ }
138
+ this.canvas.context.fillStyle = `#${fillColor.toString(16).padStart(8, "0")}`;
139
+ this.canvas.context.globalAlpha = 255;
140
+ this.canvas.context.fillRect(currentX - width, this.canvas.height, width, (frameTime / Math.max(100, maxFrameTime)) * -100);
141
+ currentX -= width;
142
+ }
143
+ this.canvas.context.beginPath();
144
+ this.canvas.context.strokeStyle = "#fff";
145
+ this.canvas.context.moveTo(0, this.canvas.height - MS_PER_FRAME_60FPS);
146
+ this.canvas.context.lineTo(this.canvas.width, this.canvas.height - MS_PER_FRAME_60FPS);
147
+ this.canvas.context.stroke();
148
+ const fpsString = `${Math.round(fpsFrame)}f ${fpsAll}∑ ${Math.round(fpsDelta)}δ`;
149
+ this.canvas.context.font = "13px monospace";
150
+ this.canvas.context.strokeStyle = "rgba( 255, 255, 255, 1)";
151
+ this.canvas.context.textAlign = "right";
152
+ this.canvas.context.textRendering = "geometricPrecision";
153
+ this.canvas.context.strokeText(fpsString, this.canvas.width - 3, this.canvas.height - 3);
139
154
  this.canvas.context.fillStyle = "#000000";
140
- this.canvas.context.fillText(fps, 4, 14);
155
+ this.canvas.context.fillText(fpsString, this.canvas.width - 3, this.canvas.height - 3);
141
156
  }
142
157
  this.canvas.render();
158
+ this.unblock();
159
+ this.previousTimestampPresent = timestamp;
160
+ ++this.#frameCounter;
143
161
  }
144
162
  }
145
163
  //# sourceMappingURL=render-loop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-loop.js","sourceRoot":"","sources":["../../source/graphics/render-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-loop.js","sourceRoot":"","sources":["../../source/graphics/render-loop.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@oliversalzburg/js-utils",
4
- "version": "0.0.15",
4
+ "version": "0.0.16",
5
5
  "license": "MIT",
6
6
  "author": "Oliver Salzburg <oliver.salzburg@gmail.com>",
7
7
  "type": "module",
@@ -38,8 +38,8 @@
38
38
  "@types/mocha": "10.0.4",
39
39
  "@types/node": "20.9.0",
40
40
  "@types/web": "0.0.119",
41
- "@typescript-eslint/eslint-plugin": "6.10.0",
42
- "@typescript-eslint/parser": "6.10.0",
41
+ "@typescript-eslint/eslint-plugin": "6.11.0",
42
+ "@typescript-eslint/parser": "6.11.0",
43
43
  "c8": "8.0.1",
44
44
  "chai": "4.3.10",
45
45
  "chai-as-promised": "7.1.1",
package/_site/favicon.ico DELETED
Binary file
package/lib/Async.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export declare const executeAsyncContext: (context: () => Promise<unknown>, resolve?: ((value: unknown) => void) | undefined, reject?: ((error: Error) => void) | undefined) => undefined;
2
- export declare const prepareAsyncContext: (context: () => Promise<unknown>) => () => undefined;
3
- export declare const coalesceOnError: <TExecutableReturn, T>(executable: (...args: Array<unknown>) => Promise<TExecutableReturn>, to: T) => Promise<TExecutableReturn | T>;
package/lib/Async.js DELETED
@@ -1,17 +0,0 @@
1
- export const executeAsyncContext = (context, resolve, reject) => {
2
- return void context()
3
- .then(resolve ?? (() => undefined))
4
- .catch(reject ?? console.error);
5
- };
6
- export const prepareAsyncContext = (context) => {
7
- return () => executeAsyncContext(context);
8
- };
9
- export const coalesceOnError = async (executable, to) => {
10
- try {
11
- return await executable();
12
- }
13
- catch (error) {
14
- return to;
15
- }
16
- };
17
- //# sourceMappingURL=Async.js.map
package/lib/Async.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Async.js","sourceRoot":"","sources":["../source/Async.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAA+B,EAC/B,OAAkC,EAClC,MAA+B,EAC/B,EAAE;IACF,OAAO,KAAK,OAAO,EAAE;SAClB,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;SAClC,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAA+B,EAAE,EAAE;IACrE,OAAO,GAAG,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,UAAmE,EACnE,EAAK,EACL,EAAE;IACF,IAAI;QACF,OAAO,MAAM,UAAU,EAAE,CAAC;KAC3B;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,EAAE,CAAC;KACX;AACH,CAAC,CAAC"}
@@ -1,170 +0,0 @@
1
- /// <reference types="@types/web" />
2
- /**
3
- * Construction options for a {@linkcode Canvas}.
4
- * @group Graphics
5
- */
6
- export interface CanvasOptions {
7
- /**
8
- * Was this {@linkcode Canvas} created with the ability to copy the front buffer back into
9
- * the back buffer?
10
- */
11
- readonly supportReadBack: boolean;
12
- }
13
- /**
14
- * The {@linkcode Canvas} is a double-buffered construct to help with drawing to a
15
- * {@linkcode !HTMLCanvasElement} with best possible performance.
16
- * We utilize an {@linkcode !OffscreenCanvas} with a {@linkcode !OffscreenCanvasRenderingContext2D}
17
- * to draw frames and expect to render them back to the DOM in regular intervals.
18
- * @group Graphics
19
- */
20
- export declare class Canvas {
21
- #private;
22
- /**
23
- * The {@linkcode !HTMLCanvasElement} we're interacting with in the DOM.
24
- */
25
- readonly canvasDom: HTMLCanvasElement | undefined;
26
- /**
27
- * The width of the canvas.
28
- */
29
- readonly width: number;
30
- /**
31
- * The height of the canvas.
32
- */
33
- readonly height: number;
34
- /**
35
- * The {@linkcode !OffscreenCanvasRenderingContext2D} we're using to draw to the canvas.
36
- */
37
- readonly context: OffscreenCanvasRenderingContext2D | undefined;
38
- /**
39
- * Our back buffer.
40
- */
41
- buffer: Uint8ClampedArray | undefined;
42
- /**
43
- * The configuration that was used for this canvas.
44
- */
45
- readonly options: Readonly<Partial<CanvasOptions>>;
46
- constructor(canvas: OffscreenCanvas);
47
- /**
48
- * Constructs a new {@linkcode Canvas}.
49
- * @param canvas The canvas to wrap.
50
- * @param worker
51
- * @param options The configuration for this canvas.
52
- */
53
- constructor(canvas: HTMLCanvasElement, worker: Worker, options?: Partial<CanvasOptions>);
54
- static reconstruct(canvasOffscreen: OffscreenCanvas): Canvas;
55
- /**
56
- * Draws the back buffer onto the canvas.
57
- */
58
- update(): void;
59
- /**
60
- * Draws the offscreen canvas into the DOM canvas.
61
- */
62
- render(): void;
63
- /**
64
- * Draws a slightly transparent, black rectangle over the canvas,
65
- * and then reads the result back into the buffer.
66
- * @param color The color to fade the buffer with. The alpha component of
67
- * the color defines how strong the fade is. `0` is not at all, `255` makes
68
- * it instantly black.
69
- */
70
- fade(color?: number): void;
71
- /**
72
- * Reads the front buffer back into the back buffer.
73
- */
74
- bufferReadBack(): void;
75
- /**
76
- * Returns the color of a pixel in the back buffer.
77
- * @param x The X coordinate to retrieve.
78
- * @param y The X coordinate to retrieve.
79
- * @returns The color of the pixel at the given local.
80
- */
81
- getPixel32(x: number, y: number): number;
82
- /**
83
- * Colors a pixel in the back buffer.
84
- * @param x The X coordinate to color.
85
- * @param y The Y coordinate to color.
86
- * @param color The color to place at the coordinate.
87
- */
88
- setPixel32(x: number, y: number, color: number): void;
89
- /**
90
- * Fills the entire back buffer with the given color.
91
- * @param color The color to fill the back buffer with.
92
- */
93
- clearWith(color: number): void;
94
- /**
95
- * Fills the entire back buffer with the given color.
96
- * @param color The color to fill the back buffer with.
97
- */
98
- blendWith(color: number): void;
99
- }
100
- /**
101
- * Linearly blends a new pixel with an existing color value in a {@linkcode Canvas}.
102
- *
103
- * As this method is often called many times in render loops, only bounds
104
- * checking is applied to the given coordinates.
105
- *
106
- * The coordinates are **expected to already be integers**. Supplying numbers with fractions
107
- * has performance implications. Ensure you're working with integers, or truncate the
108
- * coordinates before passing them in.
109
- *
110
- * The `alpha` value is expected to be an integer in the range from `0` to `255`.
111
- * `0` meaning fully transparent, `255` meaning fully opaque.
112
- * @param canvas The {@linkcode Canvas} to interact with.
113
- * @param x The X coordinate at which to place the pixel.
114
- * @param y The Y coordinate at which to place the pixel.
115
- * @param color The color of the pixel.
116
- * @param alpha The alpha value to use to blend the pixel with existing color at the location.
117
- * @group Graphics
118
- */
119
- export declare const putPixel32: (canvas: Canvas, x: number, y: number, color: number, alpha: number) => void;
120
- /**
121
- * Additively blends a new pixel with an existing color value in a {@linkcode Canvas}.
122
- *
123
- * As this method is often called many times in render loops, only bounds
124
- * checking is applied to the given coordinates.
125
- *
126
- * The coordinates are **expected to already be integers**. Supplying numbers with fractions
127
- * has performance implications. Ensure you're working with integers, or truncate the
128
- * coordinates before passing them in.
129
- *
130
- * The `alpha` value is expected to be an integer in the range from `0` to `255`.
131
- * `0` meaning fully transparent, `255` meaning fully opaque.
132
- * @param canvas The {@linkcode Canvas} to interact with.
133
- * @param x The X coordinate at which to place the pixel.
134
- * @param y The Y coordinate at which to place the pixel.
135
- * @param color The color of the pixel.
136
- * @param alpha The alpha value to use to blend the pixel with existing color at the location.
137
- * @group Graphics
138
- */
139
- export declare const putPixel32Add: (canvas: Canvas, x: number, y: number, color: number, alpha: number) => void;
140
- /**
141
- * Subtractively blends a new pixel with an existing color value in a {@linkcode Canvas}.
142
- *
143
- * As this method is often called many times in render loops, only bounds
144
- * checking is applied to the given coordinates.
145
- *
146
- * The coordinates are **expected to already be integers**. Supplying numbers with fractions
147
- * has performance implications. Ensure you're working with integers, or truncate the
148
- * coordinates before passing them in.
149
- *
150
- * The `alpha` value is expected to be an integer in the range from `0` to `255`.
151
- * `0` meaning fully transparent, `255` meaning fully opaque.
152
- * @param canvas The {@linkcode Canvas} to interact with.
153
- * @param x The X coordinate at which to place the pixel.
154
- * @param y The Y coordinate at which to place the pixel.
155
- * @param color The color of the pixel.
156
- * @param alpha The alpha value to use to blend the pixel with existing color at the location.
157
- * @group Graphics
158
- */
159
- export declare const putPixel32Sub: (canvas: Canvas, x: number, y: number, color: number, alpha: number) => void;
160
- /**
161
- * Linearly blends a new pixel with an existing color value in a {@linkcode Canvas}.
162
- * Compared to {@linkcode putPixel32}, this function supports sub-pixel placement, but is dramatically slower.
163
- * @param canvas The {@linkcode Canvas} to interact with.
164
- * @param x The X coordinate at which to place the pixel.
165
- * @param y The Y coordinate at which to place the pixel.
166
- * @param color The color of the pixel.
167
- * @param alpha The alpha value to use to blend the pixel with existing color at the location.
168
- * @group Graphics
169
- */
170
- export declare const putSubPixel32: (canvas: Canvas, x: number, y: number, color: number, alpha: number) => void;