@flighthq/effects-gl 0.3.0-next.1220.6982c21 → 0.3.0-next.1248.f867198
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/effects-gl",
|
|
3
|
-
"version": "0.3.0-next.
|
|
3
|
+
"version": "0.3.0-next.1248.f867198",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/flighthq/flight.git",
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@flighthq/adjustments": "0.3.0-next.
|
|
40
|
-
"@flighthq/effects": "0.3.0-next.
|
|
41
|
-
"@flighthq/geometry": "0.3.0-next.
|
|
42
|
-
"@flighthq/render-gl": "0.3.0-next.
|
|
43
|
-
"@flighthq/types": "0.3.0-next.
|
|
39
|
+
"@flighthq/adjustments": "0.3.0-next.1248.f867198",
|
|
40
|
+
"@flighthq/effects": "0.3.0-next.1248.f867198",
|
|
41
|
+
"@flighthq/geometry": "0.3.0-next.1248.f867198",
|
|
42
|
+
"@flighthq/render-gl": "0.3.0-next.1248.f867198",
|
|
43
|
+
"@flighthq/types": "0.3.0-next.1248.f867198"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"typescript": "^5.3.0"
|
|
@@ -1,37 +1,43 @@
|
|
|
1
|
-
|
|
1
|
+
import type * as GldropshadoweffectModule from './glDropShadowEffect';
|
|
2
|
+
import type * as GleffectblitshaderModule from './glEffectBlitShader';
|
|
3
|
+
|
|
4
|
+
// Mocked per file with doMock plus dynamic imports of the subject, not top-level hoisted vi.mock.
|
|
5
|
+
// The suite runs isolate:false over a shared module registry, so a hoisted mock is registered for
|
|
6
|
+
// every file in the worker rather than this one -- see the rule in the root vitest config.
|
|
7
|
+
let applyDropShadowEffectToGl: typeof GldropshadoweffectModule.applyDropShadowEffectToGl;
|
|
8
|
+
let defaultGlDropShadowEffectRunner: typeof GldropshadoweffectModule.defaultGlDropShadowEffectRunner;
|
|
9
|
+
let applyGlEffectBlitPass: typeof GleffectblitshaderModule.applyGlEffectBlitPass;
|
|
10
|
+
let applyGlEffectErasePass: typeof GleffectblitshaderModule.applyGlEffectErasePass;
|
|
11
|
+
|
|
12
|
+
beforeAll(async () => {
|
|
2
13
|
vi.resetModules();
|
|
14
|
+
vi.doMock('@flighthq/render-gl/contract', () => {
|
|
15
|
+
let nextTargetId = 0;
|
|
16
|
+
return {
|
|
17
|
+
acquireGlRenderTarget: vi.fn((_state, _pool, descriptor) => ({
|
|
18
|
+
...descriptor,
|
|
19
|
+
id: `scratch-${nextTargetId++}`,
|
|
20
|
+
texture: {},
|
|
21
|
+
})),
|
|
22
|
+
clearGlRenderTarget: vi.fn(),
|
|
23
|
+
releaseGlRenderTarget: vi.fn(),
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
vi.doMock('./glEffectBlitShader', () => ({
|
|
27
|
+
applyGlEffectBlitOffsetPass: vi.fn(),
|
|
28
|
+
applyGlEffectBlitPass: vi.fn(),
|
|
29
|
+
applyGlEffectErasePass: vi.fn(),
|
|
30
|
+
}));
|
|
31
|
+
vi.doMock('./glEffectBoxBlur', () => ({
|
|
32
|
+
applyGlEffectBoxBlur: vi.fn(),
|
|
33
|
+
}));
|
|
34
|
+
vi.doMock('./glEffectTintShader', () => ({
|
|
35
|
+
applyGlEffectTintPass: vi.fn(),
|
|
36
|
+
}));
|
|
37
|
+
({ applyDropShadowEffectToGl, defaultGlDropShadowEffectRunner } = await import('./glDropShadowEffect'));
|
|
38
|
+
({ applyGlEffectBlitPass, applyGlEffectErasePass } = await import('./glEffectBlitShader'));
|
|
3
39
|
});
|
|
4
40
|
|
|
5
|
-
vi.mock('@flighthq/render-gl/contract', () => {
|
|
6
|
-
let nextTargetId = 0;
|
|
7
|
-
return {
|
|
8
|
-
acquireGlRenderTarget: vi.fn((_state, _pool, descriptor) => ({
|
|
9
|
-
...descriptor,
|
|
10
|
-
id: `scratch-${nextTargetId++}`,
|
|
11
|
-
texture: {},
|
|
12
|
-
})),
|
|
13
|
-
clearGlRenderTarget: vi.fn(),
|
|
14
|
-
releaseGlRenderTarget: vi.fn(),
|
|
15
|
-
};
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
vi.mock('./glEffectBlitShader', () => ({
|
|
19
|
-
applyGlEffectBlitOffsetPass: vi.fn(),
|
|
20
|
-
applyGlEffectBlitPass: vi.fn(),
|
|
21
|
-
applyGlEffectErasePass: vi.fn(),
|
|
22
|
-
}));
|
|
23
|
-
|
|
24
|
-
vi.mock('./glEffectBoxBlur', () => ({
|
|
25
|
-
applyGlEffectBoxBlur: vi.fn(),
|
|
26
|
-
}));
|
|
27
|
-
|
|
28
|
-
vi.mock('./glEffectTintShader', () => ({
|
|
29
|
-
applyGlEffectTintPass: vi.fn(),
|
|
30
|
-
}));
|
|
31
|
-
|
|
32
|
-
import { applyDropShadowEffectToGl, defaultGlDropShadowEffectRunner } from './glDropShadowEffect';
|
|
33
|
-
import { applyGlEffectBlitPass, applyGlEffectErasePass } from './glEffectBlitShader';
|
|
34
|
-
|
|
35
41
|
describe('applyDropShadowEffectToGl', () => {
|
|
36
42
|
it('is a function', () => {
|
|
37
43
|
expect(typeof applyDropShadowEffectToGl).toBe('function');
|
|
@@ -85,7 +91,7 @@ beforeEach(() => {
|
|
|
85
91
|
});
|
|
86
92
|
|
|
87
93
|
afterAll(() => {
|
|
88
|
-
vi.doUnmock('@flighthq/render-gl');
|
|
94
|
+
vi.doUnmock('@flighthq/render-gl/contract');
|
|
89
95
|
vi.doUnmock('./glEffectBlitShader');
|
|
90
96
|
vi.doUnmock('./glEffectBoxBlur');
|
|
91
97
|
vi.doUnmock('./glEffectTintShader');
|
|
@@ -1,25 +1,30 @@
|
|
|
1
|
-
|
|
1
|
+
import type * as GlEffectBoxBlurModule from './glEffectBoxBlur';
|
|
2
|
+
|
|
3
|
+
// Mocked per file with doMock plus a dynamic import of the subject, not a top-level hoisted vi.mock.
|
|
4
|
+
// The suite runs isolate:false over a shared module registry, so a hoisted mock is registered for
|
|
5
|
+
// every file in the worker rather than this one -- see the rule in the root vitest config.
|
|
6
|
+
const glMock = {
|
|
2
7
|
ONE: 1,
|
|
3
8
|
ZERO: 0,
|
|
4
9
|
blendFunc: vi.fn(),
|
|
5
10
|
uniform1f: vi.fn(),
|
|
6
11
|
uniform2f: vi.fn(),
|
|
7
12
|
uniform4f: vi.fn(),
|
|
8
|
-
}
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
let applyGlEffectBoxBlur: typeof GlEffectBoxBlurModule.applyGlEffectBoxBlur;
|
|
9
16
|
|
|
10
|
-
|
|
17
|
+
beforeAll(async () => {
|
|
11
18
|
vi.resetModules();
|
|
19
|
+
vi.doMock('@flighthq/render-gl/contract', () => ({
|
|
20
|
+
compileGlFullscreenProgram: vi.fn(() => ({ program: {}, vao: {} })),
|
|
21
|
+
drawGlFullscreenPass: vi.fn((_state, _loc, _textures, _dest, setUniforms) => {
|
|
22
|
+
setUniforms(glMock as never, {} as never);
|
|
23
|
+
}),
|
|
24
|
+
}));
|
|
25
|
+
({ applyGlEffectBoxBlur } = await import('./glEffectBoxBlur'));
|
|
12
26
|
});
|
|
13
27
|
|
|
14
|
-
vi.mock('@flighthq/render-gl/contract', () => ({
|
|
15
|
-
compileGlFullscreenProgram: vi.fn(() => ({ program: {}, vao: {} })),
|
|
16
|
-
drawGlFullscreenPass: vi.fn((_state, _loc, _textures, _dest, setUniforms) => {
|
|
17
|
-
setUniforms(glMock as never, {} as never);
|
|
18
|
-
}),
|
|
19
|
-
}));
|
|
20
|
-
|
|
21
|
-
import { applyGlEffectBoxBlur } from './glEffectBoxBlur';
|
|
22
|
-
|
|
23
28
|
describe('applyGlEffectBoxBlur', () => {
|
|
24
29
|
it('is a function', () => {
|
|
25
30
|
expect(typeof applyGlEffectBoxBlur).toBe('function');
|
|
@@ -44,7 +49,7 @@ beforeEach(() => {
|
|
|
44
49
|
});
|
|
45
50
|
|
|
46
51
|
afterAll(() => {
|
|
47
|
-
vi.doUnmock('@flighthq/render-gl');
|
|
52
|
+
vi.doUnmock('@flighthq/render-gl/contract');
|
|
48
53
|
vi.resetModules();
|
|
49
54
|
});
|
|
50
55
|
|
|
@@ -1,40 +1,49 @@
|
|
|
1
|
-
|
|
1
|
+
import type * as ContractModule from '@flighthq/render-gl/contract';
|
|
2
|
+
|
|
3
|
+
import type * as GleffectblitshaderModule from './glEffectBlitShader';
|
|
4
|
+
import type * as GleffectboxblurModule from './glEffectBoxBlur';
|
|
5
|
+
import type * as GlinnergloweffectModule from './glInnerGlowEffect';
|
|
6
|
+
|
|
7
|
+
// Mocked per file with doMock plus dynamic imports of the subject, not top-level hoisted vi.mock.
|
|
8
|
+
// The suite runs isolate:false over a shared module registry, so a hoisted mock is registered for
|
|
9
|
+
// every file in the worker rather than this one -- see the rule in the root vitest config.
|
|
10
|
+
let drawGlFullscreenPass: typeof ContractModule.drawGlFullscreenPass;
|
|
11
|
+
let applyGlEffectBlitPass: typeof GleffectblitshaderModule.applyGlEffectBlitPass;
|
|
12
|
+
let applyGlEffectBoxBlur: typeof GleffectboxblurModule.applyGlEffectBoxBlur;
|
|
13
|
+
let applyInnerGlowEffectToGl: typeof GlinnergloweffectModule.applyInnerGlowEffectToGl;
|
|
14
|
+
let defaultGlInnerGlowEffectRunner: typeof GlinnergloweffectModule.defaultGlInnerGlowEffectRunner;
|
|
15
|
+
|
|
16
|
+
beforeAll(async () => {
|
|
2
17
|
vi.resetModules();
|
|
18
|
+
vi.doMock('@flighthq/render-gl/contract', () => {
|
|
19
|
+
let nextTargetId = 0;
|
|
20
|
+
return {
|
|
21
|
+
acquireGlRenderTarget: vi.fn((_state, _pool, descriptor) => ({
|
|
22
|
+
...descriptor,
|
|
23
|
+
id: `scratch-${nextTargetId++}`,
|
|
24
|
+
texture: {},
|
|
25
|
+
})),
|
|
26
|
+
clearGlRenderTarget: vi.fn(),
|
|
27
|
+
compileGlFullscreenProgram: vi.fn(() => ({ program: {}, vao: {} })),
|
|
28
|
+
drawGlFullscreenPass: vi.fn(),
|
|
29
|
+
releaseGlRenderTarget: vi.fn(),
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
vi.doMock('./glEffectBlitShader', () => ({
|
|
33
|
+
applyGlEffectBlitPass: vi.fn(),
|
|
34
|
+
}));
|
|
35
|
+
vi.doMock('./glEffectBoxBlur', () => ({
|
|
36
|
+
applyGlEffectBoxBlur: vi.fn(),
|
|
37
|
+
}));
|
|
38
|
+
vi.doMock('./glEffectTintShader', () => ({
|
|
39
|
+
applyGlEffectInvertTintPass: vi.fn(),
|
|
40
|
+
}));
|
|
41
|
+
({ drawGlFullscreenPass } = await import('@flighthq/render-gl/contract'));
|
|
42
|
+
({ applyGlEffectBlitPass } = await import('./glEffectBlitShader'));
|
|
43
|
+
({ applyGlEffectBoxBlur } = await import('./glEffectBoxBlur'));
|
|
44
|
+
({ applyInnerGlowEffectToGl, defaultGlInnerGlowEffectRunner } = await import('./glInnerGlowEffect'));
|
|
3
45
|
});
|
|
4
46
|
|
|
5
|
-
vi.mock('@flighthq/render-gl/contract', () => {
|
|
6
|
-
let nextTargetId = 0;
|
|
7
|
-
return {
|
|
8
|
-
acquireGlRenderTarget: vi.fn((_state, _pool, descriptor) => ({
|
|
9
|
-
...descriptor,
|
|
10
|
-
id: `scratch-${nextTargetId++}`,
|
|
11
|
-
texture: {},
|
|
12
|
-
})),
|
|
13
|
-
clearGlRenderTarget: vi.fn(),
|
|
14
|
-
compileGlFullscreenProgram: vi.fn(() => ({ program: {}, vao: {} })),
|
|
15
|
-
drawGlFullscreenPass: vi.fn(),
|
|
16
|
-
releaseGlRenderTarget: vi.fn(),
|
|
17
|
-
};
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
vi.mock('./glEffectBlitShader', () => ({
|
|
21
|
-
applyGlEffectBlitPass: vi.fn(),
|
|
22
|
-
}));
|
|
23
|
-
|
|
24
|
-
vi.mock('./glEffectBoxBlur', () => ({
|
|
25
|
-
applyGlEffectBoxBlur: vi.fn(),
|
|
26
|
-
}));
|
|
27
|
-
|
|
28
|
-
vi.mock('./glEffectTintShader', () => ({
|
|
29
|
-
applyGlEffectInvertTintPass: vi.fn(),
|
|
30
|
-
}));
|
|
31
|
-
|
|
32
|
-
import { drawGlFullscreenPass } from '@flighthq/render-gl/contract';
|
|
33
|
-
|
|
34
|
-
import { applyGlEffectBlitPass } from './glEffectBlitShader';
|
|
35
|
-
import { applyGlEffectBoxBlur } from './glEffectBoxBlur';
|
|
36
|
-
import { applyInnerGlowEffectToGl, defaultGlInnerGlowEffectRunner } from './glInnerGlowEffect';
|
|
37
|
-
|
|
38
47
|
describe('applyInnerGlowEffectToGl', () => {
|
|
39
48
|
it('is a function', () => {
|
|
40
49
|
expect(typeof applyInnerGlowEffectToGl).toBe('function');
|
|
@@ -125,7 +134,7 @@ beforeEach(() => {
|
|
|
125
134
|
});
|
|
126
135
|
|
|
127
136
|
afterAll(() => {
|
|
128
|
-
vi.doUnmock('@flighthq/render-gl');
|
|
137
|
+
vi.doUnmock('@flighthq/render-gl/contract');
|
|
129
138
|
vi.doUnmock('./glEffectBlitShader');
|
|
130
139
|
vi.doUnmock('./glEffectBoxBlur');
|
|
131
140
|
vi.doUnmock('./glEffectTintShader');
|
|
@@ -1,41 +1,50 @@
|
|
|
1
|
-
|
|
1
|
+
import type * as ContractModule from '@flighthq/render-gl/contract';
|
|
2
|
+
|
|
3
|
+
import type * as GleffectblitshaderModule from './glEffectBlitShader';
|
|
4
|
+
import type * as GleffectboxblurModule from './glEffectBoxBlur';
|
|
5
|
+
import type * as GlinnershadoweffectModule from './glInnerShadowEffect';
|
|
6
|
+
|
|
7
|
+
// Mocked per file with doMock plus dynamic imports of the subject, not top-level hoisted vi.mock.
|
|
8
|
+
// The suite runs isolate:false over a shared module registry, so a hoisted mock is registered for
|
|
9
|
+
// every file in the worker rather than this one -- see the rule in the root vitest config.
|
|
10
|
+
let drawGlFullscreenPass: typeof ContractModule.drawGlFullscreenPass;
|
|
11
|
+
let applyGlEffectBlitPass: typeof GleffectblitshaderModule.applyGlEffectBlitPass;
|
|
12
|
+
let applyGlEffectBoxBlur: typeof GleffectboxblurModule.applyGlEffectBoxBlur;
|
|
13
|
+
let applyInnerShadowEffectToGl: typeof GlinnershadoweffectModule.applyInnerShadowEffectToGl;
|
|
14
|
+
let defaultGlInnerShadowEffectRunner: typeof GlinnershadoweffectModule.defaultGlInnerShadowEffectRunner;
|
|
15
|
+
|
|
16
|
+
beforeAll(async () => {
|
|
2
17
|
vi.resetModules();
|
|
18
|
+
vi.doMock('@flighthq/render-gl/contract', () => {
|
|
19
|
+
let nextTargetId = 0;
|
|
20
|
+
return {
|
|
21
|
+
acquireGlRenderTarget: vi.fn((_state, _pool, descriptor) => ({
|
|
22
|
+
...descriptor,
|
|
23
|
+
id: `scratch-${nextTargetId++}`,
|
|
24
|
+
texture: {},
|
|
25
|
+
})),
|
|
26
|
+
clearGlRenderTarget: vi.fn(),
|
|
27
|
+
compileGlFullscreenProgram: vi.fn(() => ({ program: {}, vao: {} })),
|
|
28
|
+
drawGlFullscreenPass: vi.fn(),
|
|
29
|
+
releaseGlRenderTarget: vi.fn(),
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
vi.doMock('./glEffectBlitShader', () => ({
|
|
33
|
+
applyGlEffectBlitOffsetPass: vi.fn(),
|
|
34
|
+
applyGlEffectBlitPass: vi.fn(),
|
|
35
|
+
}));
|
|
36
|
+
vi.doMock('./glEffectBoxBlur', () => ({
|
|
37
|
+
applyGlEffectBoxBlur: vi.fn(),
|
|
38
|
+
}));
|
|
39
|
+
vi.doMock('./glEffectTintShader', () => ({
|
|
40
|
+
applyGlEffectInvertTintPass: vi.fn(),
|
|
41
|
+
}));
|
|
42
|
+
({ drawGlFullscreenPass } = await import('@flighthq/render-gl/contract'));
|
|
43
|
+
({ applyGlEffectBlitPass } = await import('./glEffectBlitShader'));
|
|
44
|
+
({ applyGlEffectBoxBlur } = await import('./glEffectBoxBlur'));
|
|
45
|
+
({ applyInnerShadowEffectToGl, defaultGlInnerShadowEffectRunner } = await import('./glInnerShadowEffect'));
|
|
3
46
|
});
|
|
4
47
|
|
|
5
|
-
vi.mock('@flighthq/render-gl/contract', () => {
|
|
6
|
-
let nextTargetId = 0;
|
|
7
|
-
return {
|
|
8
|
-
acquireGlRenderTarget: vi.fn((_state, _pool, descriptor) => ({
|
|
9
|
-
...descriptor,
|
|
10
|
-
id: `scratch-${nextTargetId++}`,
|
|
11
|
-
texture: {},
|
|
12
|
-
})),
|
|
13
|
-
clearGlRenderTarget: vi.fn(),
|
|
14
|
-
compileGlFullscreenProgram: vi.fn(() => ({ program: {}, vao: {} })),
|
|
15
|
-
drawGlFullscreenPass: vi.fn(),
|
|
16
|
-
releaseGlRenderTarget: vi.fn(),
|
|
17
|
-
};
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
vi.mock('./glEffectBlitShader', () => ({
|
|
21
|
-
applyGlEffectBlitOffsetPass: vi.fn(),
|
|
22
|
-
applyGlEffectBlitPass: vi.fn(),
|
|
23
|
-
}));
|
|
24
|
-
|
|
25
|
-
vi.mock('./glEffectBoxBlur', () => ({
|
|
26
|
-
applyGlEffectBoxBlur: vi.fn(),
|
|
27
|
-
}));
|
|
28
|
-
|
|
29
|
-
vi.mock('./glEffectTintShader', () => ({
|
|
30
|
-
applyGlEffectInvertTintPass: vi.fn(),
|
|
31
|
-
}));
|
|
32
|
-
|
|
33
|
-
import { drawGlFullscreenPass } from '@flighthq/render-gl/contract';
|
|
34
|
-
|
|
35
|
-
import { applyGlEffectBlitPass } from './glEffectBlitShader';
|
|
36
|
-
import { applyGlEffectBoxBlur } from './glEffectBoxBlur';
|
|
37
|
-
import { applyInnerShadowEffectToGl, defaultGlInnerShadowEffectRunner } from './glInnerShadowEffect';
|
|
38
|
-
|
|
39
48
|
describe('applyInnerShadowEffectToGl', () => {
|
|
40
49
|
it('is a function', () => {
|
|
41
50
|
expect(typeof applyInnerShadowEffectToGl).toBe('function');
|
|
@@ -125,7 +134,7 @@ beforeEach(() => {
|
|
|
125
134
|
});
|
|
126
135
|
|
|
127
136
|
afterAll(() => {
|
|
128
|
-
vi.doUnmock('@flighthq/render-gl');
|
|
137
|
+
vi.doUnmock('@flighthq/render-gl/contract');
|
|
129
138
|
vi.doUnmock('./glEffectBlitShader');
|
|
130
139
|
vi.doUnmock('./glEffectBoxBlur');
|
|
131
140
|
vi.doUnmock('./glEffectTintShader');
|
|
@@ -1,36 +1,42 @@
|
|
|
1
|
-
|
|
1
|
+
import type * as GleffectblitshaderModule from './glEffectBlitShader';
|
|
2
|
+
import type * as GloutergloweffectModule from './glOuterGlowEffect';
|
|
3
|
+
|
|
4
|
+
// Mocked per file with doMock plus dynamic imports of the subject, not top-level hoisted vi.mock.
|
|
5
|
+
// The suite runs isolate:false over a shared module registry, so a hoisted mock is registered for
|
|
6
|
+
// every file in the worker rather than this one -- see the rule in the root vitest config.
|
|
7
|
+
let applyGlEffectBlitPass: typeof GleffectblitshaderModule.applyGlEffectBlitPass;
|
|
8
|
+
let applyGlEffectErasePass: typeof GleffectblitshaderModule.applyGlEffectErasePass;
|
|
9
|
+
let applyOuterGlowEffectToGl: typeof GloutergloweffectModule.applyOuterGlowEffectToGl;
|
|
10
|
+
let defaultGlOuterGlowEffectRunner: typeof GloutergloweffectModule.defaultGlOuterGlowEffectRunner;
|
|
11
|
+
|
|
12
|
+
beforeAll(async () => {
|
|
2
13
|
vi.resetModules();
|
|
14
|
+
vi.doMock('@flighthq/render-gl/contract', () => {
|
|
15
|
+
let nextTargetId = 0;
|
|
16
|
+
return {
|
|
17
|
+
acquireGlRenderTarget: vi.fn((_state, _pool, descriptor) => ({
|
|
18
|
+
...descriptor,
|
|
19
|
+
id: `scratch-${nextTargetId++}`,
|
|
20
|
+
texture: {},
|
|
21
|
+
})),
|
|
22
|
+
clearGlRenderTarget: vi.fn(),
|
|
23
|
+
releaseGlRenderTarget: vi.fn(),
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
vi.doMock('./glEffectBlitShader', () => ({
|
|
27
|
+
applyGlEffectBlitPass: vi.fn(),
|
|
28
|
+
applyGlEffectErasePass: vi.fn(),
|
|
29
|
+
}));
|
|
30
|
+
vi.doMock('./glEffectBoxBlur', () => ({
|
|
31
|
+
applyGlEffectBoxBlur: vi.fn(),
|
|
32
|
+
}));
|
|
33
|
+
vi.doMock('./glEffectTintShader', () => ({
|
|
34
|
+
applyGlEffectTintPass: vi.fn(),
|
|
35
|
+
}));
|
|
36
|
+
({ applyGlEffectBlitPass, applyGlEffectErasePass } = await import('./glEffectBlitShader'));
|
|
37
|
+
({ applyOuterGlowEffectToGl, defaultGlOuterGlowEffectRunner } = await import('./glOuterGlowEffect'));
|
|
3
38
|
});
|
|
4
39
|
|
|
5
|
-
vi.mock('@flighthq/render-gl/contract', () => {
|
|
6
|
-
let nextTargetId = 0;
|
|
7
|
-
return {
|
|
8
|
-
acquireGlRenderTarget: vi.fn((_state, _pool, descriptor) => ({
|
|
9
|
-
...descriptor,
|
|
10
|
-
id: `scratch-${nextTargetId++}`,
|
|
11
|
-
texture: {},
|
|
12
|
-
})),
|
|
13
|
-
clearGlRenderTarget: vi.fn(),
|
|
14
|
-
releaseGlRenderTarget: vi.fn(),
|
|
15
|
-
};
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
vi.mock('./glEffectBlitShader', () => ({
|
|
19
|
-
applyGlEffectBlitPass: vi.fn(),
|
|
20
|
-
applyGlEffectErasePass: vi.fn(),
|
|
21
|
-
}));
|
|
22
|
-
|
|
23
|
-
vi.mock('./glEffectBoxBlur', () => ({
|
|
24
|
-
applyGlEffectBoxBlur: vi.fn(),
|
|
25
|
-
}));
|
|
26
|
-
|
|
27
|
-
vi.mock('./glEffectTintShader', () => ({
|
|
28
|
-
applyGlEffectTintPass: vi.fn(),
|
|
29
|
-
}));
|
|
30
|
-
|
|
31
|
-
import { applyGlEffectBlitPass, applyGlEffectErasePass } from './glEffectBlitShader';
|
|
32
|
-
import { applyOuterGlowEffectToGl, defaultGlOuterGlowEffectRunner } from './glOuterGlowEffect';
|
|
33
|
-
|
|
34
40
|
describe('applyOuterGlowEffectToGl', () => {
|
|
35
41
|
it('is a function', () => {
|
|
36
42
|
expect(typeof applyOuterGlowEffectToGl).toBe('function');
|
|
@@ -84,7 +90,7 @@ beforeEach(() => {
|
|
|
84
90
|
});
|
|
85
91
|
|
|
86
92
|
afterAll(() => {
|
|
87
|
-
vi.doUnmock('@flighthq/render-gl');
|
|
93
|
+
vi.doUnmock('@flighthq/render-gl/contract');
|
|
88
94
|
vi.doUnmock('./glEffectBlitShader');
|
|
89
95
|
vi.doUnmock('./glEffectBoxBlur');
|
|
90
96
|
vi.doUnmock('./glEffectTintShader');
|