@@ -158,7 +158,14 @@ void ResourceImporterLayeredTexture::get_import_options(const String &p_path, Li
158
158
}
159
159
}
160
160
161
- void ResourceImporterLayeredTexture::_save_tex (Vector<Ref<Image>> p_images, const String &p_to_path, int p_compress_mode, float p_lossy, Image::CompressMode p_vram_compression, Image::CompressSource p_csource, Image::UsedChannels used_channels, bool p_mipmaps, bool p_force_po2) {
161
+ void ResourceImporterLayeredTexture::_save_tex (Vector<Ref<Image>> p_images, const String &p_to_path, int p_compress_mode, float p_lossy,
162
+ int p_uastc_pack_level,
163
+ bool p_rdo_enabled,
164
+ float p_rdo_quality_loss,
165
+ int p_rdo_dict_size,
166
+ bool p_zstd_supercompression,
167
+ int p_zstd_supercompression_level,
168
+ Image::CompressMode p_vram_compression, Image::CompressSource p_csource, Image::UsedChannels used_channels, bool p_mipmaps, bool p_force_po2) {
162
169
Vector<Ref<Image>> mipmap_images; // for 3D
163
170
164
171
if (mode == MODE_3D) {
@@ -278,11 +285,23 @@ void ResourceImporterLayeredTexture::_save_tex(Vector<Ref<Image>> p_images, cons
278
285
}
279
286
280
287
for (int i = 0 ; i < p_images.size (); i++) {
281
- ResourceImporterTexture::save_to_ctex_format (f, p_images[i], ResourceImporterTexture::CompressMode (p_compress_mode), used_channels, p_vram_compression, p_lossy);
288
+ ResourceImporterTexture::save_to_ctex_format (f, p_images[i], ResourceImporterTexture::CompressMode (p_compress_mode), used_channels, p_vram_compression, p_lossy,
289
+ p_uastc_pack_level,
290
+ p_rdo_enabled,
291
+ p_rdo_quality_loss,
292
+ p_rdo_dict_size,
293
+ p_zstd_supercompression,
294
+ p_zstd_supercompression_level);
282
295
}
283
296
284
297
for (int i = 0 ; i < mipmap_images.size (); i++) {
285
- ResourceImporterTexture::save_to_ctex_format (f, mipmap_images[i], ResourceImporterTexture::CompressMode (p_compress_mode), used_channels, p_vram_compression, p_lossy);
298
+ ResourceImporterTexture::save_to_ctex_format (f, mipmap_images[i], ResourceImporterTexture::CompressMode (p_compress_mode), used_channels, p_vram_compression, p_lossy,
299
+ p_uastc_pack_level,
300
+ p_rdo_enabled,
301
+ p_rdo_quality_loss,
302
+ p_rdo_dict_size,
303
+ p_zstd_supercompression,
304
+ p_zstd_supercompression_level);
286
305
}
287
306
}
288
307
@@ -486,7 +505,14 @@ void ResourceImporterLayeredTexture::_check_compress_ctex(const String &p_source
486
505
ERR_FAIL_NULL (r_texture_import->csource );
487
506
if (r_texture_import->compress_mode != COMPRESS_VRAM_COMPRESSED) {
488
507
// Import normally.
489
- _save_tex (*r_texture_import->slices , r_texture_import->save_path + " ." + extension, r_texture_import->compress_mode , r_texture_import->lossy , Image::COMPRESS_S3TC /* IGNORED */ , *r_texture_import->csource , r_texture_import->used_channels , r_texture_import->mipmaps , false );
508
+ _save_tex (*r_texture_import->slices , r_texture_import->save_path + " ." + extension, r_texture_import->compress_mode , r_texture_import->lossy ,
509
+ r_texture_import->uastc_pack_level ,
510
+ r_texture_import->rdo_enabled ,
511
+ r_texture_import->rdo_quality_loss ,
512
+ r_texture_import->rdo_dict_size ,
513
+ r_texture_import->zstd_supercompression ,
514
+ r_texture_import->zstd_supercompression_level ,
515
+ Image::COMPRESS_S3TC /* IGNORED */ , *r_texture_import->csource , r_texture_import->used_channels , r_texture_import->mipmaps , false );
490
516
return ;
491
517
}
492
518
// Must import in all formats, in order of priority (so platform chooses the best supported one. IE, etc2 over etc).
@@ -541,7 +567,14 @@ void ResourceImporterLayeredTexture::_check_compress_ctex(const String &p_source
541
567
}
542
568
543
569
if (use_uncompressed) {
544
- _save_tex (*r_texture_import->slices , r_texture_import->save_path + " ." + extension, COMPRESS_VRAM_UNCOMPRESSED, r_texture_import->lossy , Image::COMPRESS_S3TC /* IGNORED */ , *r_texture_import->csource , r_texture_import->used_channels , r_texture_import->mipmaps , false );
570
+ _save_tex (*r_texture_import->slices , r_texture_import->save_path + " ." + extension, COMPRESS_VRAM_UNCOMPRESSED, r_texture_import->lossy ,
571
+ r_texture_import->uastc_pack_level ,
572
+ r_texture_import->rdo_enabled ,
573
+ r_texture_import->rdo_quality_loss ,
574
+ r_texture_import->rdo_dict_size ,
575
+ r_texture_import->zstd_supercompression ,
576
+ r_texture_import->zstd_supercompression_level ,
577
+ Image::COMPRESS_S3TC /* IGNORED */ , *r_texture_import->csource , r_texture_import->used_channels , r_texture_import->mipmaps , false );
545
578
} else {
546
579
if (can_s3tc_bptc) {
547
580
Image::CompressMode image_compress_mode;
@@ -553,7 +586,14 @@ void ResourceImporterLayeredTexture::_check_compress_ctex(const String &p_source
553
586
image_compress_mode = Image::COMPRESS_S3TC;
554
587
image_compress_format = " s3tc" ;
555
588
}
556
- _save_tex (*r_texture_import->slices , r_texture_import->save_path + " ." + image_compress_format + " ." + extension, r_texture_import->compress_mode , r_texture_import->lossy , image_compress_mode, *r_texture_import->csource , r_texture_import->used_channels , r_texture_import->mipmaps , true );
589
+ _save_tex (*r_texture_import->slices , r_texture_import->save_path + " ." + image_compress_format + " ." + extension, r_texture_import->compress_mode , r_texture_import->lossy ,
590
+ r_texture_import->uastc_pack_level ,
591
+ r_texture_import->rdo_enabled ,
592
+ r_texture_import->rdo_quality_loss ,
593
+ r_texture_import->rdo_dict_size ,
594
+ r_texture_import->zstd_supercompression ,
595
+ r_texture_import->zstd_supercompression_level ,
596
+ image_compress_mode, *r_texture_import->csource , r_texture_import->used_channels , r_texture_import->mipmaps , true );
557
597
r_texture_import->platform_variants ->push_back (image_compress_format);
558
598
}
559
599
@@ -567,7 +607,14 @@ void ResourceImporterLayeredTexture::_check_compress_ctex(const String &p_source
567
607
image_compress_mode = Image::COMPRESS_ETC2;
568
608
image_compress_format = " etc2" ;
569
609
}
570
- _save_tex (*r_texture_import->slices , r_texture_import->save_path + " ." + image_compress_format + " ." + extension, r_texture_import->compress_mode , r_texture_import->lossy , image_compress_mode, *r_texture_import->csource , r_texture_import->used_channels , r_texture_import->mipmaps , true );
610
+ _save_tex (*r_texture_import->slices , r_texture_import->save_path + " ." + image_compress_format + " ." + extension, r_texture_import->compress_mode , r_texture_import->lossy ,
611
+ r_texture_import->uastc_pack_level ,
612
+ r_texture_import->rdo_enabled ,
613
+ r_texture_import->rdo_quality_loss ,
614
+ r_texture_import->rdo_dict_size ,
615
+ r_texture_import->zstd_supercompression ,
616
+ r_texture_import->zstd_supercompression_level ,
617
+ image_compress_mode, *r_texture_import->csource , r_texture_import->used_channels , r_texture_import->mipmaps , true );
571
618
r_texture_import->platform_variants ->push_back (image_compress_format);
572
619
}
573
620
}
0 commit comments