@@ -341,6 +341,21 @@ pub fn extract_sprites(
341
341
if !visibility. is_visible ( ) {
342
342
continue ;
343
343
}
344
+ if let SpriteDrawMode :: Simple = sprite. draw_mode {
345
+ // PERF: we don't check in this function that the `Image` asset is ready, since it should be in most cases and hashing the handle is expensive
346
+ extracted_sprites. sprites . alloc ( ) . init ( ExtractedSprite {
347
+ color : sprite. color ,
348
+ transform : * transform,
349
+ // Use the full texture
350
+ rect : None ,
351
+ custom_size : sprite. custom_size ,
352
+ flip_x : sprite. flip_x ,
353
+ flip_y : sprite. flip_y ,
354
+ image_handle_id : handle. id ,
355
+ anchor : sprite. anchor . as_vec ( ) ,
356
+ } ) ;
357
+ continue ;
358
+ }
344
359
let image_size = match images. get ( handle) {
345
360
None => continue ,
346
361
Some ( i) => Vec2 :: new (
@@ -350,14 +365,6 @@ pub fn extract_sprites(
350
365
} ;
351
366
352
367
let slices = match & sprite. draw_mode {
353
- SpriteDrawMode :: Simple => vec ! [ TextureSlice {
354
- texture_rect: Rect {
355
- min: Vec2 :: ZERO ,
356
- max: image_size,
357
- } ,
358
- draw_size: sprite. custom_size. unwrap_or( image_size) ,
359
- offset: Vec2 :: ZERO ,
360
- } ] ,
361
368
SpriteDrawMode :: Sliced ( slicer) => {
362
369
slicer. compute_slices ( image_size, sprite. custom_size . unwrap_or ( image_size) )
363
370
}
@@ -376,6 +383,7 @@ pub fn extract_sprites(
376
383
} ;
377
384
slice. tiled ( * stretch_value, ( * tile_x, * tile_y) )
378
385
}
386
+ SpriteDrawMode :: Simple => unreachable ! ( ) ,
379
387
} ;
380
388
for slice in slices {
381
389
let mut transform: GlobalTransform = * transform;
0 commit comments