@flighthq/effects-gl 0.3.0 → 0.3.1-next.1041.35b950c

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.
Files changed (70) hide show
  1. package/dist/enableGlRenderEffectGuards.d.ts.map +1 -1
  2. package/dist/enableGlRenderEffectGuards.js +35 -1
  3. package/dist/enableGlRenderEffectGuards.js.map +1 -1
  4. package/dist/glBevelEffect.d.ts.map +1 -1
  5. package/dist/glBevelEffect.js +11 -5
  6. package/dist/glBevelEffect.js.map +1 -1
  7. package/dist/glConvolutionEffect.d.ts.map +1 -1
  8. package/dist/glConvolutionEffect.js +5 -1
  9. package/dist/glConvolutionEffect.js.map +1 -1
  10. package/dist/glCrtEffect.js +3 -1
  11. package/dist/glCrtEffect.js.map +1 -1
  12. package/dist/glCustomShaderEffect.d.ts +3 -1
  13. package/dist/glCustomShaderEffect.d.ts.map +1 -1
  14. package/dist/glCustomShaderEffect.js +34 -12
  15. package/dist/glCustomShaderEffect.js.map +1 -1
  16. package/dist/glDisplacementEffect.js +8 -2
  17. package/dist/glDisplacementEffect.js.map +1 -1
  18. package/dist/glDropShadowEffect.d.ts.map +1 -1
  19. package/dist/glDropShadowEffect.js +3 -1
  20. package/dist/glDropShadowEffect.js.map +1 -1
  21. package/dist/glEffectTintShader.d.ts.map +1 -1
  22. package/dist/glEffectTintShader.js +9 -4
  23. package/dist/glEffectTintShader.js.map +1 -1
  24. package/dist/glGlitchEffect.js +5 -1
  25. package/dist/glGlitchEffect.js.map +1 -1
  26. package/dist/glGradientBevelEffect.js +1 -1
  27. package/dist/glGradientBevelEffect.js.map +1 -1
  28. package/dist/glGradientGlowEffect.js +1 -1
  29. package/dist/glGradientGlowEffect.js.map +1 -1
  30. package/dist/glInnerGlowEffect.d.ts.map +1 -1
  31. package/dist/glInnerGlowEffect.js +8 -8
  32. package/dist/glInnerGlowEffect.js.map +1 -1
  33. package/dist/glInnerShadowEffect.d.ts.map +1 -1
  34. package/dist/glInnerShadowEffect.js +8 -8
  35. package/dist/glInnerShadowEffect.js.map +1 -1
  36. package/dist/glOuterGlowEffect.js +1 -1
  37. package/dist/glOuterGlowEffect.js.map +1 -1
  38. package/dist/glRenderEffectPipeline.d.ts +2 -1
  39. package/dist/glRenderEffectPipeline.d.ts.map +1 -1
  40. package/dist/glRenderEffectPipeline.js +16 -1
  41. package/dist/glRenderEffectPipeline.js.map +1 -1
  42. package/dist/glRenderEffectRegistry.d.ts +3 -2
  43. package/dist/glRenderEffectRegistry.d.ts.map +1 -1
  44. package/dist/glRenderEffectRegistry.js +25 -4
  45. package/dist/glRenderEffectRegistry.js.map +1 -1
  46. package/dist/glRenderTextureEffect.d.ts.map +1 -1
  47. package/dist/glRenderTextureEffect.js +21 -6
  48. package/dist/glRenderTextureEffect.js.map +1 -1
  49. package/dist/glScanlinesEffect.js +3 -1
  50. package/dist/glScanlinesEffect.js.map +1 -1
  51. package/dist/glScreenSpaceFogEffect.js +6 -3
  52. package/dist/glScreenSpaceFogEffect.js.map +1 -1
  53. package/dist/glTiltShiftEffect.js +4 -1
  54. package/dist/glTiltShiftEffect.js.map +1 -1
  55. package/dist/index.d.ts +1 -1
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +1 -1
  58. package/dist/index.js.map +1 -1
  59. package/package.json +9 -7
  60. package/src/enableGlRenderEffectGuards.test.ts +71 -0
  61. package/src/glBevelEffect.test.ts +98 -0
  62. package/src/glConvolutionEffect.test.ts +60 -0
  63. package/src/glCustomShaderEffect.test.ts +109 -3
  64. package/src/glDropShadowEffect.test.ts +19 -0
  65. package/src/glEffectTintShader.test.ts +66 -0
  66. package/src/glInnerGlowEffect.test.ts +1 -1
  67. package/src/glInnerShadowEffect.test.ts +1 -1
  68. package/src/glRenderEffectPipeline.test.ts +25 -0
  69. package/src/glRenderEffectRegistry.test.ts +40 -2
  70. package/src/glRenderTextureEffect.test.ts +57 -0
@@ -141,6 +141,7 @@ describe('explainGlRenderEffectApplication', () => {
141
141
  requestedCount: 2,
142
142
  status: 'partial-registration',
143
143
  unregisteredKinds: ['test.explain-c'],
144
+ unresolvedIndexes: [],
144
145
  });
145
146
  });
146
147
 
@@ -158,6 +159,62 @@ describe('explainGlRenderEffectApplication', () => {
158
159
  expect(explainGlRenderEffectApplication(state, effects(['test.explain-e']), true).status).toBe('complete');
159
160
  });
160
161
 
162
+ it('reports an effect whose runner cannot resolve it, which PASSES THROUGH rather than dropping', () => {
163
+ const state = createState();
164
+ // Registered, so nothing is missing at the kind level — the runner simply has nothing to run with.
165
+ registerGlRenderEffect(
166
+ state,
167
+ 'test.explain-h',
168
+ () => {},
169
+ () => false,
170
+ );
171
+ const explanation = explainGlRenderEffectApplication(state, effects(['test.explain-h']), true);
172
+ expect(explanation.status).toBe('unresolved-effects');
173
+ // Registration is clean; the failure is entirely on the resolution axis.
174
+ expect(explanation.registeredCount).toBe(1);
175
+ expect(explanation.unregisteredKinds).toEqual([]);
176
+ expect(explanation.unresolvedIndexes).toEqual([0]);
177
+ });
178
+
179
+ it('distinguishes two effects of the SAME KIND, one resolvable and one not', () => {
180
+ const state = createState();
181
+ // The case a kind-keyed answer gets wrong: both effects share a kind, so any per-kind verdict must
182
+ // report both or neither. Resolution is per instance, and the report has to say WHICH instance.
183
+ registerGlRenderEffect(
184
+ state,
185
+ 'test.explain-i',
186
+ () => {},
187
+ (_state, effect) => (effect as unknown as { shaderKey: string }).shaderKey === 'present',
188
+ );
189
+ const chain = [
190
+ { kind: 'test.explain-i', shaderKey: 'present' },
191
+ { kind: 'test.explain-i', shaderKey: 'absent' },
192
+ ];
193
+ const explanation = explainGlRenderEffectApplication(
194
+ state,
195
+ chain as unknown as ReadonlyArray<Readonly<RenderEffect>>,
196
+ true,
197
+ );
198
+ expect(explanation.status).toBe('partial-resolution');
199
+ expect(explanation.unresolvedIndexes).toEqual([1]);
200
+ // Not 'unresolved-effects': one stage really runs, so the chain is short one stage, not inert.
201
+ expect(explanation.registeredCount).toBe(2);
202
+ });
203
+
204
+ it('blames registration ahead of resolution while still naming the passthroughs', () => {
205
+ const state = createState();
206
+ registerGlRenderEffect(
207
+ state,
208
+ 'test.explain-j',
209
+ () => {},
210
+ () => false,
211
+ );
212
+ const explanation = explainGlRenderEffectApplication(state, effects(['test.explain-j', 'test.explain-k']), true);
213
+ // Registering the missing kind has to happen first, but the passthrough is not lost from the report.
214
+ expect(explanation.status).toBe('partial-registration');
215
+ expect(explanation.unresolvedIndexes).toEqual([0]);
216
+ });
217
+
161
218
  it('reports a ready destination as stale when a failed call cannot replace it', () => {
162
219
  const state = createState();
163
220
  expect(explainGlRenderEffectApplication(state, effects(['test.explain-f']), true, true).status).toBe(