@@ -139,7 +139,7 @@ pub trait AssetPreviewGenerator: Send + Sync + 'static {
139139 resource : & UntypedResource ,
140140 resource_manager : & ResourceManager ,
141141 scene : & mut Scene ,
142- preview_camera : Handle < Node > ,
142+ preview_camera : Handle < Camera > ,
143143 ) -> Handle < Node > ;
144144
145145 /// Generates a preview image for an asset. For example, in case of prefabs, it will be the
@@ -167,7 +167,7 @@ impl AssetPreviewGenerator for TexturePreview {
167167 resource : & UntypedResource ,
168168 _resource_manager : & ResourceManager ,
169169 scene : & mut Scene ,
170- _preview_camera : Handle < Node > ,
170+ _preview_camera : Handle < Camera > ,
171171 ) -> Handle < Node > {
172172 if let Some ( texture) = resource. try_cast :: < Texture > ( ) {
173173 let scale = if let Some ( size) = texture. data_ref ( ) . kind ( ) . rectangle_size ( ) {
@@ -196,6 +196,7 @@ impl AssetPreviewGenerator for TexturePreview {
196196 . build( ) ] )
197197 . with_render_path ( RenderPath :: Forward )
198198 . build ( & mut scene. graph )
199+ . to_base ( )
199200 } else {
200201 Handle :: NONE
201202 }
@@ -232,13 +233,14 @@ impl AssetPreviewGenerator for SoundPreview {
232233 resource : & UntypedResource ,
233234 _resource_manager : & ResourceManager ,
234235 scene : & mut Scene ,
235- _preview_camera : Handle < Node > ,
236+ _preview_camera : Handle < Camera > ,
236237 ) -> Handle < Node > {
237238 if let Some ( buffer) = resource. try_cast :: < SoundBuffer > ( ) {
238239 SoundBuilder :: new ( BaseBuilder :: new ( ) )
239240 . with_buffer ( Some ( buffer) )
240241 . with_status ( Status :: Playing )
241242 . build ( & mut scene. graph )
243+ . to_base ( )
242244 } else {
243245 Handle :: NONE
244246 }
@@ -348,7 +350,7 @@ fn render_scene_to_texture(
348350 . graph
349351 . aabb_of_descendants ( scene. graph . root ( ) , |_, _| true )
350352 . unwrap_or_default ( ) ;
351- let camera = scene. graph [ camera] . as_camera_mut ( ) ;
353+ let camera = & mut scene. graph [ camera] ;
352354 let aspect_ratio = 1.0 ;
353355 match camera. fit ( & scene_aabb, aspect_ratio, 1.05 ) {
354356 FitParameters :: Perspective { position, .. } => {
@@ -423,7 +425,7 @@ impl AssetPreviewGenerator for ModelPreview {
423425 resource : & UntypedResource ,
424426 _resource_manager : & ResourceManager ,
425427 scene : & mut Scene ,
426- preview_camera : Handle < Node > ,
428+ preview_camera : Handle < Camera > ,
427429 ) -> Handle < Node > {
428430 if let Some ( model) = resource. try_cast :: < Model > ( ) {
429431 let instance = model. instantiate ( scene) ;
@@ -471,12 +473,13 @@ impl AssetPreviewGenerator for SurfaceDataPreview {
471473 resource : & UntypedResource ,
472474 _resource_manager : & ResourceManager ,
473475 scene : & mut Scene ,
474- _preview_camera : Handle < Node > ,
476+ _preview_camera : Handle < Camera > ,
475477 ) -> Handle < Node > {
476478 if let Some ( surface) = resource. try_cast :: < SurfaceData > ( ) {
477479 MeshBuilder :: new ( BaseBuilder :: new ( ) )
478480 . with_surfaces ( vec ! [ SurfaceBuilder :: new( surface. clone( ) ) . build( ) ] )
479481 . build ( & mut scene. graph )
482+ . to_base ( )
480483 } else {
481484 Handle :: NONE
482485 }
@@ -512,7 +515,7 @@ impl AssetPreviewGenerator for ShaderPreview {
512515 resource : & UntypedResource ,
513516 _resource_manager : & ResourceManager ,
514517 scene : & mut Scene ,
515- _preview_camera : Handle < Node > ,
518+ _preview_camera : Handle < Camera > ,
516519 ) -> Handle < Node > {
517520 if let Some ( shader) = resource. try_cast :: < Shader > ( ) {
518521 let material = MaterialResource :: new_embedded ( Material :: from_shader ( shader) ) ;
@@ -524,6 +527,7 @@ impl AssetPreviewGenerator for ShaderPreview {
524527 . with_material( material)
525528 . build( ) ] )
526529 . build ( & mut scene. graph )
530+ . to_base ( )
527531 } else {
528532 Handle :: NONE
529533 }
@@ -556,7 +560,7 @@ impl AssetPreviewGenerator for MaterialPreview {
556560 resource : & UntypedResource ,
557561 _resource_manager : & ResourceManager ,
558562 scene : & mut Scene ,
559- _preview_camera : Handle < Node > ,
563+ _preview_camera : Handle < Camera > ,
560564 ) -> Handle < Node > {
561565 if let Some ( material) = resource. try_cast :: < Material > ( ) {
562566 MeshBuilder :: new ( BaseBuilder :: new ( ) )
@@ -566,6 +570,7 @@ impl AssetPreviewGenerator for MaterialPreview {
566570 . with_material( material)
567571 . build( ) ] )
568572 . build ( & mut scene. graph )
573+ . to_base ( )
569574 } else {
570575 Handle :: NONE
571576 }
@@ -599,7 +604,7 @@ impl AssetPreviewGenerator for HrirPreview {
599604 _resource : & UntypedResource ,
600605 _resource_manager : & ResourceManager ,
601606 _scene : & mut Scene ,
602- _preview_camera : Handle < Node > ,
607+ _preview_camera : Handle < Camera > ,
603608 ) -> Handle < Node > {
604609 Handle :: NONE
605610 }
@@ -631,7 +636,7 @@ impl AssetPreviewGenerator for CurvePreview {
631636 _resource : & UntypedResource ,
632637 _resource_manager : & ResourceManager ,
633638 _scene : & mut Scene ,
634- _preview_camera : Handle < Node > ,
639+ _preview_camera : Handle < Camera > ,
635640 ) -> Handle < Node > {
636641 Handle :: NONE
637642 }
@@ -701,7 +706,7 @@ impl AssetPreviewGenerator for FontPreview {
701706 _resource : & UntypedResource ,
702707 _resource_manager : & ResourceManager ,
703708 _scene : & mut Scene ,
704- _preview_camera : Handle < Node > ,
709+ _preview_camera : Handle < Camera > ,
705710 ) -> Handle < Node > {
706711 Handle :: NONE
707712 }
@@ -749,7 +754,7 @@ impl AssetPreviewGenerator for UserInterfacePreview {
749754 _resource : & UntypedResource ,
750755 _resource_manager : & ResourceManager ,
751756 _scene : & mut Scene ,
752- _preview_camera : Handle < Node > ,
757+ _preview_camera : Handle < Camera > ,
753758 ) -> Handle < Node > {
754759 Handle :: NONE
755760 }
0 commit comments