[HTML5] Port JavaScript inline code to libraries.

The API is implemented in javascript, and generates C functions that can
be called from godot.
This allows much cleaner code replacing all `EM_ASM` calls in our C++
code with plain C function calls.
This also gets rid of few hacks and comes with few optimizations (e.g.
custom cursor shapes should be much faster now).
This commit is contained in:
Fabio Alessandrelli 2020-10-17 23:31:30 +02:00
parent a7ecb3c048
commit e52ed6d89e
31 changed files with 2016 additions and 1502 deletions

View file

@ -45,7 +45,6 @@ private:
int mix_rate;
int channel_count;
public:
#ifndef NO_THREADS
Mutex *mutex;
Thread *thread;
@ -54,9 +53,12 @@ public:
static void _audio_thread_func(void *p_data);
#endif
static void _audio_driver_process_start();
static void _audio_driver_process_end();
static void _audio_driver_process_capture(float p_sample);
void _audio_driver_process();
void _js_driver_process();
public:
static bool is_available();
void process_capture(float sample);
@ -73,7 +75,6 @@ public:
virtual void lock();
virtual void unlock();
virtual void finish();
void finish_async();
virtual Error capture_start();
virtual Error capture_stop();