Skip to content

cfnptr/vscode-gsl

Repository files navigation

Garden Shading Language (GSL)

GSL is a custom shader language based on GLSL. It was created for the Garden game engine to simplify and standardize shader development. In the engine's repository, you can also find a compiler. Documentation with language changes is here.

Vertex Shader (.vert)

#include "common/tone-mapping.gsl"

in float2 vs.position : f32;
in float2 vs.texCoords : f32;
in float4 vs.color : f8;

out float4 fs.color;
out float2 fs.texCoords;

uniform pushConstants
{
    float2 scale;
    float2 translate;
} pc;

void main()
{
    gl.position = float4(vs.position * pc.scale + pc.translate, 0.0f, 1.0f);
    float3 color = gammaCorrection(vs.color.rgb, DEFAULT_GAMMA);
    fs.color = float4(color, vs.color.a);
    fs.texCoords = vs.texCoords;
}

Fragment Shader (.frag)

pipelineState
{
    faceCulling = off;
    blending0 = on;
}

in float4 fs.color;
in float2 fs.texCoords;

out float4 fb.color;

uniform sampler2D
{
    filter = linear;
} tex;

void main()
{
    fb.color = fs.color * texture(tex, fs.texCoords);
}

Install GSL extension

  1. Launch VS Code Quick Open (Ctrl+P)
  2. And enter: ext install cfnptr.gsl-linter

Changelog

See CHANGELOG.md for details.

About

Visual Studio Code extension, Garden Shading Language (GSL) linter

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors