- Browsers select their own, perhaps inconsistent, default for the
premultipledAlphacontext creation attribute. Regl enforces consistency by filling in unspecified values but since 1.4.0 has enforcedfalseif unspecified, which seems to be nonstandard and in the minority. For improved backward compatibility, this PR setspremultipledAlpha: truewhen 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
distto 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.clearandregl.readnow accept a framebuffer as a parameter
- Fixed bug with depth and stencil attachments being cleared
regl.elementsnow 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
passtozpass - Attribute pointers can now use buffer literals
- Implement basic context loss handling
- Add
regl.onfor hooking events - Add
regl.now(), allows sampling timer at high resolution outside ofregl.framein 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
float16forhalf floatandfloat32forfloat - 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.framecancellation
- 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
profileproperty. - Finish API documentation for framebuffers
- Optimize constructors/updates for framebuffers
- More test cases for framebuffers
- Clean up renderbuffer constructor and improve test coverage
- Added
resizemethod to textures, renderbuffers and framebuffers - Added global performance monitoring hooks via
regl.stats - Rename
countcontext variable totick - Remove
deltaTimecontext 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.subdataandelements.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
thisargument effectively- Should pass this to dynamic attributes and scope
-
Make scopes and dynamic attributes take same argument
-
Combine batchId with stats argument
-
Pass
thisto 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