Skip to content

Releases: jsulpis/usegl

v0.9.0

25 Oct 14:50

Choose a tag to compare

compare changes

🚀 Enhancements

  • postprocessing: Add a trails effect (eb218e7)
  • Add hooks for initialize and resize (8e0d56f)
  • Allow to render without clearing the canvas (4c23a83)
  • Add a blending option and assume premultiplied alpha everywhere (4c81351)

🩹 Fixes

  • Don't resize the canvas if it has width and height attributes (b1c6b77)
  • Wrong before/after hooks in useWebGLCanvas (9753b7d)

💅 Refactors

  • Simplify the use of callback functions (4f5f4fb)

📖 Documentation

  • Add tone mapping in the bloom example (7c3b3b4)

🏡 Chore

  • Setup analytics (e82387a)
  • Add a test for premultiplied alpha (bc5a05e)

v0.8.0

26 Aug 19:43

Choose a tag to compare

compare changes

🚀 Enhancements

  • postprocessing: Use float textures for all render targets (8722877)
  • postprocessing: Add tone mapping operators (eacf322)
  • Add support for boolean uniforms (a727fff)
  • postprocessing: Include linear to srgb conversion in the tone mapping passes (17ece66)
  • postprocessing: ⚠️ Replace linearToSRGB with linearToneMapping (372a98c)
  • Remove the need to use onCanvasReady (d66ebd8)

🩹 Fixes

  • Bad types for the compositeEffectPass (cfe8e78)

📖 Documentation

  • Add an example for the builtin bloom effect (1f5c297)
  • Improve examples of effect passes (0959428)

⚠️ Breaking Changes

  • postprocessing: ⚠️ Replace linearToSRGB with linearToneMapping (372a98c)

v0.7.0

14 Aug 19:17

Choose a tag to compare

compare changes

🚀 Enhancements

  • Add srgb to linear rgb color space conversion for textures (6518243)
  • Allow to scale the render target of an effect pass (086f899)
  • Add bloom effect (47ade94)
  • Add linearToSRGB effect (1a37be8)
  • Add uniforms to CompositeEffectPass (e702d8d)

🩹 Fixes

  • Don't override the render target of an effect pass if it already exists (a665bb2)
  • Automatic uniform / attribute name recognition broken with minified shader code (6af2036)
  • Fix broken render targets on effects (1e212cb)

💅 Refactors

  • Use an array of passes instead of an object in CompositeEffectPass (0a5b05c)
  • Optimize default texture params (322d9fe)
  • Use vite-plugin-glsl to load shaders (d7624bd)

📖 Documentation

  • Add an example of boids (ping pong FBO) (babad94)
  • Add an example of simple particules (ping pong FBO) (8547e22)
  • Add Conway's Game of Life example (5fbd838)

🏡 Chore

  • Update dependencies (b234932)
  • Update docker setup for playwright tests (74e203d)
  • Update the sepia effect in playground (23b862e)
  • Migrate bundler from unbuild to tsdown (abbc7ba)

v0.6.0

27 Feb 21:24

Choose a tag to compare

compare changes

🚀 Enhancements

  • Add support for ping pong FBO technique (39c7004)
  • Add 'onCanvasReady' is useWebGLCanvas (ee41ecc)
  • Add a "transparent" option on the renderPass (e73e9db)
  • Add useTransformFeedback to do maths on the GPU (2a3bb42)

🩹 Fixes

  • Wrong count of texture units (c8a77aa)

📖 Documentation

  • Update the examples with the new synchronous loaders api (4c76307)
  • Add an example of multi-pass post-processing effect (bloom) (ae7fdcc)

🏡 Chore

v0.5.0

20 Jan 21:18

Choose a tag to compare

compare changes

🚀 Enhancements

  • Handle multi-pass post-processing effects (3250a47)
  • Add useCompositeEffectPass hook to have more control over multi pass effects (45a0528)
  • Make the texture loaders synchronous and re-render when loaded (9829a6c)

📖 Documentation

  • Add an example for drawing modes (0ef7432)
  • Add an example for particles (a4deedd)
  • examples: Add an example of data texture (7653a1a)
  • examples: Add an example of image texture (20a6a00)
  • examples: Add an example of canvas 2D texture (83ac9fd)
  • examples: Add an example of play/pause (1441aff)
  • examples: Add an example of pointer coordinates (cdc6159)
  • examples: Add an example for uniforms (bd0cbd0)
  • examples: Display render count (47ce9c2)
  • examples: Add example of vertices with indices (bfb1293)
  • examples: Add an example of video texture (229b2a8)
  • examples: Add an example of single pass post-processing (05bad31)
  • Setup Vitepress with Sandpack (a77b367)
  • Setup example editor in VitePress (875fb38)
  • Import all examples in VitePress (78ca377)
  • Complete the migration to VitePress (9f20077)

v0.4.0

17 Dec 21:48

Choose a tag to compare

compare changes

🚀 Enhancements

  • Add support for video textures (b2b9e74)
  • Add a colorSpace option to facilitate the usage of display-p3 (7193197)

🔥 Performance

  • Use 1 triangle instead of 2 for full screen quads (84d4556)

🩹 Fixes

  • Indexed rendering broken when there is no index attribute in the shaders (15fd1eb)
  • Uniforms and attributes detection broken when there is a comment at the end of the line (1369fa8)

v0.3.0

07 Dec 13:17

Choose a tag to compare

compare changes

🚀 Enhancements

  • Add mipmaps and anisotropic filtering (4b875d0)
  • Allow crossorigin textures (170cd40)
  • Add manual render mode in useWebGLCanvas (92183d4)

📖 Documentation

  • Create documentation with Astro and Starlight (ec7524d)
  • Setup interactive examples (7e084a0)

v0.2.0

12 Nov 20:37

Choose a tag to compare

compare changes

🚀 Enhancements

  • Add basic support for textures without mipmaps (5fc5341)
  • Allow to provide the canvas as a CSS selector (a7f8d0f)
  • Add useLoop hook with play/pause controls (f3e2cf3)
  • Add useBoundingRect hook (8d1851e)
  • ⚠️ Change onPointerEvents to usePointerEvents and add more events (ddeabd9)

🩹 Fixes

  • Broken types (011be36)
  • DevicePixelContentBoxSize not available on Safari (f699ed8)

💅 Refactors

  • ⚠️ Change onCanvasResize to useResizeObserver and provide controls on the observer (31e38ff)

🏡 Chore

  • Update dependencies (45efec1)
  • Enforce Typescript consistent type imports (70d9e4a)
  • Setup the playground (a0d37d1)
  • Move the playground in the lib package (6e58fc8)

✅ Tests

  • Add screenshot tests with playwright (67517c8)

🤖 CI

⚠️ Breaking Changes

  • ⚠️ Change onPointerEvents to usePointerEvents and add more events (ddeabd9)
  • ⚠️ Change onCanvasResize to useResizeObserver and provide controls on the observer (31e38ff)

v0.1.0

14 Oct 12:34

Choose a tag to compare

🚀 Enhancements

  • Add a first version of useWebGLCanvas, onCanvasResize, and add a gradient demo (f464f08)
  • Make the vertex shader optional (6a987b3)
  • Convert GLSL 100 shader source to GLSL 300 to handle both versions (3e693ad)
  • Automatically detect the time uniform and trigger the render loop only if it is set (fd2276e)
  • Automatically detect the UV varying name if a vertex shader is not provided (4466dd7)
  • Add blob demo + loop and onPointerEvents helpers (d9aaccf)
  • Automatically detect the resolution uniform (4a7f935)
  • Automatically resize the canvas if it is not an OffscreenCanvas (b89f230)
  • Add setAttribute function (4b9ee84)
  • Trigger render when updating a uniform (47ff764)
  • Add useRawWebGLCanvas (2cc2e57)
  • Add requestRender + code cleanup (8237d51)
  • Add support for particles, draw modes and indices (4062756)
  • Add first draft of post processing functions (9f20196)
  • Add more post processing functions (6f1f3e6)
  • Add compositor for post processing (e855390)
  • Add lifecycle callbacks (87e4534)

💅 Refactors

  • Reorganize into folders and create a barrel file (a7d84f8)

📖 Documentation

🏡 Chore