SieR-VR / typesl

Typescript to GLSL transpiler
MIT License
17 stars 1 forks source link
glsl shader transformer transpiler typescript webgl2

TypeSL

TypeSL (Typescript Shader Language) enables Typescript -> GLSL Transpile.

Table of Contents
  1. TypeSL
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License

Example


vert(attribute: RectangleAttribute, uniform: RectangleUniform): RectangleVarying {
    const positionVec4 = new Vec4(attribute.aPosition, 1.0);
    this.gl_Position = uniform.uProjectionMatrix * uniform.uModelViewMatrix * positionVec4;

    return {
        vTexCoord: attribute.aTexCoord
    };
}

transpiles to


#version 300 es
precision highp float;

attribute vec3 aPosition;
attribute vec2 aTexCoord;

varying vec2 vTexCoord;

uniform mat4 uProjectionMatrix;
uniform mat4 uModelViewMatrix;

void main() {
    vec4 positionVec4 = vec4(aPosition, 1.0);
    gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;
    vTexCoord = aTexCoord;
}

Getting Started

Prerequisites

  1. NodeJS

NodeJS is a javascript runtime. This will enables run tslc.

  1. npm

npm (Node Package Manager) is package manager for nodejs, you need this for install TypeSL transpiler.

Installation

npm install (-g) typesl

or

yarn (global) add typesl

Usage

tslc {target file}

Roadmap

Contributing

Pull request and issues always open!

License

MIT License