- Add
framebuffer.use()
method for quickly setting up framebuffer objects regl.clear
andregl.read
now accept a framebuffer as a parameter
- Fixed bug with depth and stencil attachments being cleared
regl.elements
now correctly infers count from length and vice-versa
- Simplified flattening logic for textures and buffers
- Viewport and scissor box can go outside drawing buffer
- Fix bug with buffers and elements not updating type correctly
- Can now access format and filtering mode for textures and render buffers
- Support
stencil.op
- Rename stencil op
pass
tozpass
- Attribute pointers can now use buffer literals
- Implement basic context loss handling
- Add
regl.on
for hooking events - Add
regl.now()
, allows sampling timer at high resolution outside ofregl.frame
in order to better synchronize DOM events
- Cubic frame buffer objects!
- Can now use framebuffers as textures in uniforms. By default color attachment 0 is used.
- Support for dynamic properties with nested objects like attributes
- Alias
float16
forhalf float
andfloat32
forfloat
- Many bug fixes and stability improvements
- Website mostly works (preview at regl.party)
- Gallery of examples with movies
-
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