New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

shaderity-loader

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

shaderity-loader

shaderity-loader is a static GLSL shader loader for Webpack.

latest
Source
npmnpm
Version
0.0.19
Version published
Weekly downloads
18
-33.33%
Maintainers
1
Weekly downloads
 
Created
Source

shaderity-loader

shaderity-loader is a static GLSL shader loader for Webpack.

Features

Static features

With this shaderity-loader, you can do the following things:

  • Provide #include like statement for GLSL shader files. (similar syntax to glslify)
  • Embed GLSL shader files into TypeScript/JavaScript as a WebPack Loader.
  • Can be used in conjunction with glslify.

Runtime features

With shaderity, you can do the following things:

  • Variables fill-in to GLSL code in runtime.
  • Transpile between GLSL ES 1.0 and GLSL ES 3.0 .

How to use

Write webpack.config.js like this.

// webpack.config.js
const path = require('path');

module.exports = {
  entry: './test/fixture_loaders/index.js',
  mode: 'development',
  module: {
    rules: [
      {
        test: /\.(glsl|vs|fs|vert|frag)$/i,
        exclude: /node_modules/,
        use: [{
          loader: path.resolve('index.js')
        }]
      }
    ]
  },
  resolve: {
    extensions: [
      '.ts'
    ]
  },
  output: {
    path: path.resolve(__dirname, './fixture_loader_dist'),
    filename: 'index.js',
  },
  optimization: {
    namedChunks: true
  }
};

These are shader codes for importing to TypeScript/JavaScript code.

// output.frag

#ifdef GLSL_ES_1
gl_FragColor = rt0;
#endif
// output_test.frag
precision mediump float;

in vec4 vColor;
in vec4 vTexcoord;

void main() {
  rt0 = vColor;
  #pragma shaderity: require(./output.frag)
}

You can import them like this.

import shaderObj from '../fixtures/output_test.frag';

console.out(convertedObj.shaderStage);
// 'fragment'

console.out(convertedObj.isFragmentShader);
// 'true'

console.out(convertedObj.code);
/*
precision mediump float;

in vec4 vColor;
in vec4 vTexcoord;

void main() {
  rt0 = vColor;

#ifdef GLSL_ES_1
gl_FragColor = rt0;
#endif
*/

Build this JavaScript code using Webpack.

$ webpack

For developers

When developing this library, please make sure to merge it into the develop branch. In order to be able to work closely with shaderity-node, the develop branch is also a submodule of shaderity-node and is included in the dependencies.

The only difference between the master branch and the develop branch is whether 'shaderity-node' is included as a submodule or not.

When you publish this library, merge the code from the develop branch into the master branch. Make sure that the master branch does not have shaderity-node as a submodule, and that the version of the shaderity-node package in package.json is the version you intend.

LICENSE

MIT License

FAQs

Package last updated on 24 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts