Skip to content

Commit cab815c

Browse files
committed
Add glslify tests using glsl-noise and checking #pragma glslify is properly excluded
1 parent e5c13e1 commit cab815c

File tree

3 files changed

+25
-2
lines changed

3 files changed

+25
-2
lines changed

test/fixtures/glslify-noise.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import frag from './glslifyshaders/noise.frag';
2+
console.log(frag);
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#version 300 es
2+
precision mediump float;
3+
4+
#pragma glslify: snoise3 = require('glsl-noise/simplex/3d')
5+
6+
in vec3 vpos;
7+
out vec4 outColor;
8+
9+
void main () {
10+
outColor = vec4(vec3(snoise3(vpos*25.0)), 1.0);
11+
}

test/tests/glslify.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ import {assert} from 'chai';
44
import * as fsSync from 'fs';
55

66
async function glslifyUninstall() {
7-
await npmCommand(['uninstall', 'glslify']);
7+
await npmCommand(['uninstall', 'glslify', 'glsl-noise']);
88
assert.isFalse(fsSync.existsSync('node_modules/glslify'), 'glslify failed to uninstall');
99
}
1010

1111
async function glslifyInstall() {
12-
await npmCommand(['install', '--no-save', 'glslify']);
12+
await npmCommand(['install', '--no-save', 'glslify', 'glsl-noise']);
1313
assert.isTrue(fsSync.existsSync('node_modules/glslify'), 'glslify failed to install');
1414
}
1515

@@ -63,5 +63,15 @@ export function glslifyTests(glslOptimize) {
6363
assert.notInclude(code, 'sub1', 'sub1 was not inlined');
6464
assert.notInclude(code, 'sub2', 'sub2 was not inlined');
6565
});
66+
it('should import glsl-noise correctly', async function() {
67+
const bundle = await rollup({
68+
input: 'test/fixtures/glslify-noise.js',
69+
plugins: [glslOptimize({glslify: true, optimize: false, compress: false})],
70+
});
71+
const generated = await bundle.generate({ format: 'es' });
72+
const code = generated.output[0].code;
73+
assert.include(code, 'taylorInvSqrt', 'taylorInvSqrt was not included');
74+
assert.notInclude(code, 'pragma glslify', 'pragma glslify was left in');
75+
});
6676
});
6777
}

0 commit comments

Comments
 (0)