Skip to content

Commit 7a9c2be

Browse files
committed
refactor(soba): simplify render texture template
1 parent aa3d022 commit 7a9c2be

File tree

1 file changed

+8
-15
lines changed

1 file changed

+8
-15
lines changed

libs/soba/staging/src/lib/render-texture.ts

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,7 @@ export interface NgtsRenderTextureOptions extends Partial<Omit<NgtTexture, 'atta
5555
compute?: (event: any, state: any, previous: any) => false | undefined;
5656
}
5757

58-
@Component({
59-
standalone: true,
60-
selector: 'ngts-render-texture-container',
61-
template: `
62-
<ng-content />
63-
`,
64-
changeDetection: ChangeDetectionStrategy.OnPush,
65-
})
58+
@Directive({ standalone: true, selector: '[ngtsRenderTextureContainer]' })
6659
export class NgtsRenderTextureContainer {
6760
fbo = input.required<WebGLRenderTarget>();
6861
renderPriority = input.required<number>();
@@ -86,6 +79,7 @@ export class NgtsRenderTextureContainer {
8679
({ gl, scene, camera }) => {
8780
const [fbo, frames] = [this.fbo(), this.frames()];
8881
// NOTE: render the frames ^ 2
82+
// due to some race condition, we want to render double the frames here.
8983
if (frames === Infinity || count < frames * frames) {
9084
oldAutoClear = gl.autoClear;
9185
oldXrEnabled = gl.xr.enabled;
@@ -139,19 +133,18 @@ let incrementId = 0;
139133
template: `
140134
<ngt-portal [container]="virtualScene()" [state]="{ events: { compute: compute(), priority: eventPriority() } }">
141135
<ng-template portalContent let-injector="injector" let-container="container">
142-
<ngts-render-texture-container
136+
<ng-container
137+
ngtsRenderTextureContainer
143138
[fbo]="fbo()"
144139
[renderPriority]="renderPriority()"
145140
[frames]="frames()"
146141
[injector]="injector"
142+
[ngTemplateOutlet]="content()"
143+
[ngTemplateOutletInjector]="injector"
144+
[ngTemplateOutletContext]="{ container, injector }"
147145
>
148-
<ng-container
149-
[ngTemplateOutlet]="content()"
150-
[ngTemplateOutletInjector]="injector"
151-
[ngTemplateOutletContext]="{ container, injector }"
152-
/>
153146
<ngt-group (pointerover)="onPointerOver()" />
154-
</ngts-render-texture-container>
147+
</ng-container>
155148
</ng-template>
156149
</ngt-portal>
157150

0 commit comments

Comments
 (0)