Skip to content

Latest commit

 

History

History
52 lines (41 loc) · 1.35 KB

README.md

File metadata and controls

52 lines (41 loc) · 1.35 KB

web-lightning

Web ligthning is work in progress WASM/WegGL web framework that aims to replace the classical DOM element creation and manipulation with JS and CSS in order to create web GUI. Instead everything should be rendered on a single WebGL canvas. This should in principle avoid the bloated DOM manipulation, give the ability to do complex effects cheaply on the GPU, and rasterize all the fonts on the GPU as well (having an advantage when zooming over the CPU rasterization used by browsers).

Building

For WebAssembly/WebGL builds:

emcmake cmake -B build && cmake --build build -j `nproc`

For Desktop/WebGL

 cmake -B build && cmake --build build -j `nproc`

Usage

Progress

General

  • General WebGL rendering interface.
  • CPU font rendering.
  • GPU font rendering.
  • GPU bezier curve rendering.
  • CPU general 2D vector rendering.
  • GPU general 2D vector rendering.
  • API for 3D rendering

Widgets

  • Boxes
  • Containers
  • Grids
  • Buttons
  • Progress Indicators
  • Sliders
  • Menus
  • Images
  • Canvases
  • Input Fields

Animations

  • Per-widget per-frame arbitrary property animation chains.
  • Bezier curve particle traversal.

Format support

  • Lizard compressed data.
  • WebP images.
  • SVG images.
  • Avif images.
  • AV1 streams.

Showcase