-
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)
- Cubic frame buffer objects
- 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
- 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 totick
- Remove
deltaTime
context variable - Uniform validation fixes
- Texture construction fixes
- Improved test coverage for uniform variables
- 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
- Add in place update methods to buffers and elements via
buffer.subdata
andelements.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
- 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
- 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
- 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
- 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
- Texture support implemented, but not well tested
- Fix attribute binding bug
- 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!
- First published to npm