**GLII** is a [WebGL](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) javascript abstraction library.
GLII is a WebGL
javascript abstraction library.
GLII is opinionated, and built from scratch with some specific design goals in mind:
- Understandability: WebGL concepts are infamously hard to grasp; Glii
renames some data structures and tries to make low-level data structures approachable.
- Object-oriented API: OOP
first. Glii does wrappers, inheritance, closures and factories, but does _not_ favour
MVC nor reactive frameworks.
- Implicit context: Instead of dragging around an instance of
WebGLRenderingContext
around, Glii wraps around it with closures. Context handling is always implicit.
- Avoid duplication: Names (of attributes, uniforms, varyings, etc) should
never be defined twice. Glii forces them to be defined just once.
- Do not assume 3D: Since Glii is low-level, no 3D scene is assumed.
- No bundling: Glii is ESM native, framework-free. There is no transpilation step: no webpack, no babel, no rollupJS. Stuff works directly on any
browsers that implement javascript modules.
The aforementioned design goals are opinionated, and they're the
ones I like, since there are lots of things I don't like about the design of other WebGL frameworks. Your preferences and requisites might not be the same as _my_ preferences
and requisites, and _that's fine_.
I shall not try to convince people that Glii is the solution to every problem, but
do consider your constraints when choosing a WebGL framework.
The shortest code to do something with Glii is drawing a single vertex with
the following HTML code. Note there is no bundling whatsoever.
``html`
And for those people who are non big fans of readability and like to measure things by the least lines of comment-stripped code:
`html`
© Iván Sánchez Ortega
Licensed under GPLv3. Yup. Complete text in the LICENSE file.
This repository holds 3rd-party libraries and images - see the contents of the 3rd-party and spec/testimages.com` directories for full info.