Skip to content

Latest commit

 

History

History
173 lines (136 loc) · 5.93 KB

CHANGES.md

File metadata and controls

173 lines (136 loc) · 5.93 KB

Release notes

Planned

  • More performance monitoring hooks

    • Track currently used resource requirements
    • Output should be serializable -> works as input to constructor checks
  • Context loss

  • Write comparison suite

  • Make error messages more helpful

    • When possible, try to suggest a fix for any errors which are raised
  • Add a mechanism for users to specify minimum resource requirements (texture size, varying units, etc.)

  • More validation

    • Should not be possible to write regl code that crashes on some systems
  • Benchmark suite

    • Dashboard for test cases and benchmarks
    • Create some more typical drawing examples
  • A pretty printer for the generated code

  • Documentation

    • All interface methods must be documented
    • Examples for all major features
    • Set up/quick start guides
    • Examples on codepen/requirebin/regl.party
    • Live coding videos on youtube
    • Talks? (what conferences can we present these results at?)
    • Core library modules need better comments
    • Work flow for development and testing needs documentation
  • Testing

    • Instancing
    • Float textures / framebuffers and their filtering modes
    • Constant attributes
    • General code coverage
    • Cube framebuffer objects
  • Build a website (preview at regl.party)

  • Helper modules

    • A camera helper module to make getting started with 3D code easier
    • Debugging tools for inspecting the state of framebuffers, textures, buffers
  • Recipe book/example set

    • Globe
    • Compound scene
    • Stencil shadows
    • Point-light shadows(through cubic framebuffers)
    • Turing patterns
    • Asset loading (obj, ply, etc.)
    • Water Reflection(though cubic-framebuffers)

Next

  • Cubic frame buffer objects

0.10.0

  • Add a mechanism for managing webgl extensions
    • Should be able to report errors when extensions are missing
    • Allow users to disable extensions for testing/mocking
  • Doc clean up
  • Add more test cases for regl.read() and improve validation
  • Implement a standard method for handling context creation errors
  • Fix several bugs related to regl.frame cancellation

0.9.0

  • Add performance monitoring hooks for commands. Now tracks draw call count, cpu time and gpu time (if disjoint timer extension supported).
  • Performance monitoring hooks for commands can be enabled/disabled using the profile property.
  • Finish API documentation for framebuffers
  • Optimize constructors/updates for framebuffers
  • More test cases for framebuffers
  • Clean up renderbuffer constructor and improve test coverage
  • Added resize method to textures, renderbuffers and framebuffers
  • Added global performance monitoring hooks via regl.stats
  • Rename count context variable to tick
  • Remove deltaTime context variable
  • Uniform validation fixes
  • Texture construction fixes
  • Improved test coverage for uniform variables

0.8.0

  • Optimize texture and cubemap constructors
  • Add in place update method for textures via texture.subimage
  • Remove DDS parsing
  • Remove URL loader for textures
  • Improve texture test cases

0.7.0

  • Add in place update methods to buffers and elements via buffer.subdata and elements.subdata
  • Pool stream buffers
  • Rewrite resource section of API, bring individual resources to the top
  • Optimized buffer and elements creation, no more memory allocation
  • More test cases for textures

0.6.0

  • Allow for dynamic properties in viewport, scissor box and attributes
  • Switch order of arguments to dynamic functions, from (props, context) to (context, props)
    • functions without a props argument become batch static
  • Implement non-batch constant context, framebuffer and viewport
  • Batched scope rendering
  • Switch order of props and context variables for dynamic function args
  • function invocation now takes batch id as separate parameter
  • Support directly constructing elements and attributes from arrays
  • Allow individual attribute properties to be dynamic (eg buffers, offsets, etc.)
  • Code generation rewrite
    • State flag polling is now inlined
    • draw and batch inlined for static shaders
    • constants are inlined
    • fewer arguments passed to generated code
    • Stop using separate arrays for stacks to manage state, instead state is saved onto the call stack
  • Error reporting
    • All error messages should link to command/resource declaration
    • Improve validation of vertex attributes
    • Improve validation of dynamic properties
  • Code quality and contributing
    • Combined lib/state.js and lib/compile.js into lib/core.js
    • Delete most of lib/attribute.js
    • Update development documentation
  • Expose limits for shader precision

0.5.0

  • Context variables
  • Use this argument effectively
    • Should pass this to dynamic attributes and scope
  • Make scopes and dynamic attributes take same argument
  • Combine batchId with stats argument
  • Pass this to draw commands so that they can be stored as members

0.4.0

  • Circle CI finally passes!
  • Use numeric ids instead of strings for shader sources
  • Shader error messages are better
  • Browserify transform to remove all runtime checks
  • Shader linking is deferred until draw call, enables partial shaders in scope
  • Report errors for missing attributes, uniforms and vertex count

0.3.0

  • added renderbuffers (via regl.renderbuffer)
  • added framebuffer objects (via regl.framebuffer)
  • regl.buffer and regl.elements can now take ndarray-like inputs
  • Switch to using Google closure compiler for minified builds

0.2.0

  • Texture support implemented, but not well tested
  • Fix attribute binding bug

0.1.0

  • Actually kind of works now!
  • All draw state and WebGL state except textures, renderbuffers and frame buffers wrapped
  • Changed the arguments to dynamic functions. Now they take (args, batchId, stats) instead of (frameCount, batchId)
  • Tons of code generation improvements and bug fixing
  • Unit tests!
  • Code coverage metrics! (not good yet)
  • API docs!

0.0.0

  • First published to npm