diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..ebdd6bc --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +# Git hooks must keep LF line endings so their shebang line runs on Windows too +# (core.autocrlf=true would otherwise check them out with CRLF and break execution). +.husky/** text eol=lf diff --git a/.husky/commit-msg b/.husky/commit-msg index 2df7a95..42a3b5d 100755 --- a/.husky/commit-msg +++ b/.husky/commit-msg @@ -1,3 +1,4 @@ +#!/usr/bin/env sh [ -n "$CI" ] && exit 0 npx --no-install commitlint --edit $1 diff --git a/.husky/pre-commit b/.husky/pre-commit index 2267da2..b7e1480 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,3 +1,4 @@ +#!/usr/bin/env sh [ -n "$CI" ] && exit 0 npm run lint diff --git a/src/glsl.d.ts b/src/glsl.d.ts deleted file mode 100644 index 531b1d0..0000000 --- a/src/glsl.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -declare module '*.glsl' { - const value: string; - export default value; -} - -declare module '*.vert' { - const value: string; - export default value; -} - -declare module '*.frag' { - const value: string; - export default value; -} diff --git a/src/renderer/webgl/shaders/edge/edge.frag b/src/renderer/webgl/shaders/edge/edge.frag.ts similarity index 99% rename from src/renderer/webgl/shaders/edge/edge.frag rename to src/renderer/webgl/shaders/edge/edge.frag.ts index c0d8141..df2097e 100644 --- a/src/renderer/webgl/shaders/edge/edge.frag +++ b/src/renderer/webgl/shaders/edge/edge.frag.ts @@ -1,4 +1,4 @@ -#version 300 es +export default `#version 300 es precision highp float; @@ -154,3 +154,4 @@ void main() { fragColor = edgeColor; } } +`; diff --git a/src/renderer/webgl/shaders/edge/edge.vert b/src/renderer/webgl/shaders/edge/edge.vert.ts similarity index 98% rename from src/renderer/webgl/shaders/edge/edge.vert rename to src/renderer/webgl/shaders/edge/edge.vert.ts index 48bc6a8..dad70a2 100644 --- a/src/renderer/webgl/shaders/edge/edge.vert +++ b/src/renderer/webgl/shaders/edge/edge.vert.ts @@ -1,4 +1,4 @@ -#version 300 es +export default `#version 300 es precision highp float; @@ -99,3 +99,4 @@ void main() { vec2 clip = (screenPos / uResolution) * 2.0 - 1.0; gl_Position = vec4(clip.x, -clip.y, 0.0, 1.0); } +`; diff --git a/src/renderer/webgl/shaders/label/label.frag b/src/renderer/webgl/shaders/label/label.frag.ts similarity index 85% rename from src/renderer/webgl/shaders/label/label.frag rename to src/renderer/webgl/shaders/label/label.frag.ts index 707d3cf..f4505de 100644 --- a/src/renderer/webgl/shaders/label/label.frag +++ b/src/renderer/webgl/shaders/label/label.frag.ts @@ -1,4 +1,4 @@ -#version 300 es +export default `#version 300 es precision highp float; @@ -13,3 +13,4 @@ void main() { if (texel.a < 0.01) discard; fragColor = texel; } +`; diff --git a/src/renderer/webgl/shaders/label/label.vert b/src/renderer/webgl/shaders/label/label.vert.ts similarity index 94% rename from src/renderer/webgl/shaders/label/label.vert rename to src/renderer/webgl/shaders/label/label.vert.ts index c85c0a0..a05e955 100644 --- a/src/renderer/webgl/shaders/label/label.vert +++ b/src/renderer/webgl/shaders/label/label.vert.ts @@ -1,4 +1,4 @@ -#version 300 es +export default `#version 300 es in vec2 aQuadPosition; @@ -23,3 +23,4 @@ void main() { vec2 uv01 = aQuadPosition * 0.5 + 0.5; vAtlasUV = mix(aLabelUV0, aLabelUV1, uv01); } +`; diff --git a/src/renderer/webgl/shaders/node/node.frag b/src/renderer/webgl/shaders/node/node.frag.ts similarity index 99% rename from src/renderer/webgl/shaders/node/node.frag rename to src/renderer/webgl/shaders/node/node.frag.ts index edce819..184cb5e 100644 --- a/src/renderer/webgl/shaders/node/node.frag +++ b/src/renderer/webgl/shaders/node/node.frag.ts @@ -1,4 +1,4 @@ -#version 300 es +export default `#version 300 es precision highp float; @@ -160,3 +160,4 @@ void main() { fragColor = nodeColor; } } +`; diff --git a/src/renderer/webgl/shaders/node/node.vert b/src/renderer/webgl/shaders/node/node.vert.ts similarity index 97% rename from src/renderer/webgl/shaders/node/node.vert rename to src/renderer/webgl/shaders/node/node.vert.ts index 96fb121..2977454 100644 --- a/src/renderer/webgl/shaders/node/node.vert +++ b/src/renderer/webgl/shaders/node/node.vert.ts @@ -1,4 +1,4 @@ -#version 300 es +export default `#version 300 es precision highp float; @@ -62,3 +62,4 @@ void main() { vec2 clip = (screenPos / uResolution) * 2.0 - 1.0; gl_Position = vec4(clip.x, -clip.y, 0.0, 1.0); } +`; diff --git a/src/simulator/engine/shaders/force/force.frag b/src/simulator/engine/shaders/force/force.frag.ts similarity index 99% rename from src/simulator/engine/shaders/force/force.frag rename to src/simulator/engine/shaders/force/force.frag.ts index b7bb64b..7047b6f 100644 --- a/src/simulator/engine/shaders/force/force.frag +++ b/src/simulator/engine/shaders/force/force.frag.ts @@ -1,4 +1,4 @@ -#version 300 es +export default `#version 300 es precision highp float; @@ -195,3 +195,4 @@ void main() { fragColor = vec4(pos, vel); } +`; diff --git a/src/simulator/engine/shaders/force/force.vert b/src/simulator/engine/shaders/force/force.vert.ts similarity index 69% rename from src/simulator/engine/shaders/force/force.vert rename to src/simulator/engine/shaders/force/force.vert.ts index 63bfe79..4e4d572 100644 --- a/src/simulator/engine/shaders/force/force.vert +++ b/src/simulator/engine/shaders/force/force.vert.ts @@ -1,7 +1,8 @@ -#version 300 es +export default `#version 300 es in vec2 aPosition; void main() { gl_Position = vec4(aPosition, 0.0, 1.0); } +`; diff --git a/webpack.config.js b/webpack.config.js index 94f4eb5..c09811a 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -11,14 +11,10 @@ const commonConfiguration = { use: 'ts-loader', exclude: '/node_modules/', }, - { - test: /\.(glsl|vert|frag)$/, - type: 'asset/source', - }, ], }, resolve: { - extensions: ['.tsx', '.ts', '.js', '.glsl', '.vert', '.frag'], + extensions: ['.tsx', '.ts', '.js'], }, output: { chunkFilename(pathData) {