npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

shaderity-loader

v0.0.18

Published

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

Downloads

54

Readme

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