Skip to content

beta.5

Pre-release
Pre-release
Compare
Choose a tag to compare
@leikareipa leikareipa released this 11 Aug 16:15
· 313 commits to master since this release

Changelog:

  • Changed license from GPLv3 to MIT
    • You should always check the source file(s) for any deviating licensing notes - for example, some of the asset files of the render samples may fall under different terms
  • Improved performance (by 100+% in some cases)
  • Added new render paths that are taken under certain conditions and which result in higher render performance
    • E.g. for affine-textured polygons when no alpha operations or shaders are specified
    • Will be documented at a later time
    • You can find the code for the render paths - with descriptions of their conditions - in /js/retro-ngon/base-modules/rasterize/
  • API changes in the 'options' object passed to render():
    • Render modules now live under a 'modules' sub-object
    • The 'Function' suffix of the 'pixelShaderFunction' and 'vertexShaderFunction' properties was removed
  • Added context shaders (they expose the renderer's underlying CanvasRenderingContext2D)
  • Added raster shaders (experimental; allow you to override or enhance the rasterization of transformed polygons without replacing the entire rasterizer module)
    • The difference to pixel shaders is that pixel shaders are applied to the rasterized image whereas raster shaders are the code that produces the image in the first place
  • Added experimental support for paletted rendering
  • Various small improvements to the point, line, and polygon rasterizers
  • Some reorganization of the source code directory structure
  • Added an overridable 'surfaceWipe' render module (for customizing the way the screen is cleared at the beginning of each render tick)
  • Added ability to pass target canvas to render() as an Element object
  • Added some render samples
  • Tweaked the render benchmarks a bunch
  • The render samples no longer depend on PHP
  • Removed Phong shading
  • Replaced the Bash build script with webpack