- Browsers select their own, perhaps inconsistent, default for the
premultipledAlpha
context creation attribute. Regl enforces consistency by filling in unspecified values but since 1.4.0 has enforcedfalse
if unspecified, which seems to be nonstandard and in the minority. For improved backward compatibility, this PR setspremultipledAlpha: true
when not explicitly specified. (#566, #567)
- Faulty fix for #566
- Remove an additional ES6 keyword (#564)
- Remove accidental inclusion of ES6 keywords (#562)
- Resize canvas using ResizeObserver, if available. (#556)
- Fix publishing error. Rebuild files in
dist
to match source.
- Fix a bug in vertex array objects when used as static resources
- Add vertex array objects via regl.vao
- 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