mirror of
https://github.com/godotengine/godot.git
synced 2024-11-23 04:33:29 +00:00
Defer initializing BasisU encoder until it is needed.
This saves a lot of time on startup
This commit is contained in:
parent
0f5f3bc954
commit
985dc61386
@ -38,13 +38,12 @@
|
||||
#include <transcoder/basisu_transcoder.h>
|
||||
#ifdef TOOLS_ENABLED
|
||||
#include <encoder/basisu_comp.h>
|
||||
|
||||
static Mutex init_mutex;
|
||||
static bool initialized = false;
|
||||
#endif
|
||||
|
||||
void basis_universal_init() {
|
||||
#ifdef TOOLS_ENABLED
|
||||
basisu::basisu_encoder_init();
|
||||
#endif
|
||||
|
||||
basist::basisu_transcoder_init();
|
||||
}
|
||||
|
||||
@ -80,6 +79,13 @@ inline void _basisu_pad_mipmap(const uint8_t *p_image_mip_data, Vector<uint8_t>
|
||||
}
|
||||
|
||||
Vector<uint8_t> basis_universal_packer(const Ref<Image> &p_image, Image::UsedChannels p_channels) {
|
||||
init_mutex.lock();
|
||||
if (!initialized) {
|
||||
basisu::basisu_encoder_init();
|
||||
initialized = true;
|
||||
}
|
||||
init_mutex.unlock();
|
||||
|
||||
uint64_t start_time = OS::get_singleton()->get_ticks_msec();
|
||||
|
||||
Ref<Image> image = p_image->duplicate();
|
||||
|
Loading…
Reference in New Issue
Block a user