1
- import { consume , provide } from '@lit/context' ;
1
+ import { ContextProvider , consume , provide } from '@lit/context' ;
2
2
import { effect , signal } from '@spearwolf/signalize/decorators' ;
3
3
import { PostProcessingRenderer , type IStageRenderer } from '@spearwolf/twopoint5d' ;
4
4
import { css , html } from 'lit' ;
5
5
import { property } from 'lit/decorators.js' ;
6
- import { stageRendererContext } from '../index.js' ;
6
+ import { postProcessingContext , type IPostProcessingContext } from '../context/post-processing-context.js' ;
7
+ import { stageRendererContext } from '../context/stage-renderer-context.js' ;
7
8
import { whenDefined } from '../utils/whenDefined.js' ;
8
9
import { TwoPoint5DElement } from './TwoPoint5DElement.js' ;
9
10
10
- export class PostProcessingElement extends TwoPoint5DElement {
11
+ export class PostProcessingElement extends TwoPoint5DElement implements IPostProcessingContext {
11
12
static async whenDefined ( el : any ) : Promise < PostProcessingElement > {
12
13
await whenDefined ( el ) ;
13
14
if ( el instanceof PostProcessingElement ) {
@@ -30,7 +31,7 @@ export class PostProcessingElement extends TwoPoint5DElement {
30
31
@provide ( { context : stageRendererContext } )
31
32
accessor renderer = new PostProcessingRenderer ( ) ;
32
33
33
- @effect ( )
34
+ @effect ( { signal : 'parentRenderer' } )
34
35
onParentRendererChange ( ) {
35
36
const parent = this . parentRenderer ;
36
37
if ( parent ) {
@@ -43,9 +44,15 @@ export class PostProcessingElement extends TwoPoint5DElement {
43
44
}
44
45
}
45
46
47
+ readonly #postProcessingProvider: ContextProvider < typeof postProcessingContext , typeof this > ;
48
+
46
49
constructor ( ) {
47
50
super ( ) ;
48
51
this . loggerNS = 'two5-post-processing' ;
52
+
53
+ this . #postProcessingProvider = new ContextProvider ( this , { context : postProcessingContext } ) ;
54
+ this . #postProcessingProvider. setValue ( this ) ;
55
+
49
56
this . onParentRendererChange ( ) ;
50
57
}
51
58
0 commit comments