Skip to content

Latest commit

 

History

History
108 lines (75 loc) · 1.9 KB

README.md

File metadata and controls

108 lines (75 loc) · 1.9 KB

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

  • CLI support (sorry)
  • Fragment shader (sorry)
  • Geometry shader
  • Operator methods
  • Core profile

Contributing

Pull request and issues always open!

License

MIT License