@@ -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]' } )
6659export 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