Skip to content

Commit c787d8c

Browse files
committed
typed handles for scene node builders
1 parent 1970870 commit c787d8c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+739
-736
lines changed

editor/src/asset/preview/mod.rs

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)