From 04b94b57f008ddc688e27854d7262941fb969e0b Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 8 Nov 2023 21:23:15 +0100 Subject: Updated open-graph data --- examples/audio/audio_mixed_processor.html | 2 +- examples/audio/audio_module_playing.html | 12 +- examples/audio/audio_music_stream.html | 22 +-- examples/audio/audio_raw_stream.html | 22 +-- examples/audio/audio_sound_loading.html | 27 +-- examples/audio/audio_sound_multi.html | 37 +--- examples/audio/audio_stream_effects.html | 47 +---- examples/core/core_2d_camera.html | 47 +---- examples/core/core_2d_camera_mouse_zoom.html | 57 +----- examples/core/core_2d_camera_platformer.html | 57 +----- examples/core/core_2d_camera_split_screen.html | 52 +----- examples/core/core_3d_camera_first_person.html | 87 +-------- examples/core/core_3d_camera_free.html | 77 +------- examples/core/core_3d_camera_mode.html | 92 +-------- examples/core/core_3d_camera_split_screen.html | 87 +-------- examples/core/core_3d_picking.html | 102 +--------- examples/core/core_automation_events.html | 162 +--------------- examples/core/core_basic_screen_manager.html | 102 +--------- examples/core/core_basic_window.html | 127 +------------ examples/core/core_custom_frame_control.html | 112 +---------- examples/core/core_custom_logging.html | 127 +------------ examples/core/core_drop_files.html | 142 +------------- examples/core/core_input_gamepad.html | 132 +------------ examples/core/core_input_gamepad_info.html | 152 +-------------- examples/core/core_input_gestures.html | 167 +---------------- examples/core/core_input_gestures_web.html | 162 +--------------- examples/core/core_input_keys.html | 162 +--------------- examples/core/core_input_mouse.html | 177 +----------------- examples/core/core_input_mouse_wheel.html | 177 +----------------- examples/core/core_input_multitouch.html | 187 +------------------ examples/core/core_loading_thread.html | 177 +----------------- examples/core/core_random_values.html | 177 +----------------- examples/core/core_scissor_test.html | 192 +------------------ examples/core/core_smooth_pixelperfect.html | 207 +-------------------- examples/core/core_storage_values.html | 207 +-------------------- examples/core/core_vr_simulator.html | 192 +------------------ examples/core/core_window_letterbox.html | 12 +- examples/core/core_window_should_close.html | 22 +-- examples/core/core_world_screen.html | 22 +-- examples/models/models_animation.html | 37 +--- examples/models/models_billboard.html | 57 +----- examples/models/models_box_collisions.html | 67 +------ examples/models/models_cubicmap.html | 77 +------- examples/models/models_draw_cube_texture.html | 82 +------- examples/models/models_first_person_maze.html | 87 +-------- examples/models/models_geometric_shapes.html | 97 +--------- examples/models/models_heightmap.html | 102 +--------- examples/models/models_loading.html | 77 +------- examples/models/models_loading_gltf.html | 102 +--------- examples/models/models_loading_m3d.html | 127 +------------ examples/models/models_loading_vox.html | 132 +------------ examples/models/models_mesh_generation.html | 137 +------------- examples/models/models_mesh_picking.html | 132 +------------ examples/models/models_rlgl_solar_system.html | 22 +-- examples/models/models_skybox.html | 27 +-- examples/models/models_waving_cubes.html | 32 +--- examples/models/models_yaw_pitch_roll.html | 37 +--- examples/shaders/shaders_basic_lighting.html | 17 +- examples/shaders/shaders_custom_uniform.html | 27 +-- examples/shaders/shaders_deferred_render.html | 32 +--- examples/shaders/shaders_eratosthenes.html | 47 +---- examples/shaders/shaders_fog.html | 47 +---- examples/shaders/shaders_hot_reloading.html | 42 +---- examples/shaders/shaders_julia_set.html | 57 +----- examples/shaders/shaders_lightmap.html | 62 +----- examples/shaders/shaders_mesh_instancing.html | 77 +------- examples/shaders/shaders_model_shader.html | 57 +----- examples/shaders/shaders_multi_sample2d.html | 62 +----- examples/shaders/shaders_palette_switch.html | 67 +------ examples/shaders/shaders_postprocessing.html | 82 +------- examples/shaders/shaders_raymarching.html | 2 +- examples/shaders/shaders_shapes_textures.html | 2 +- examples/shaders/shaders_simple_mask.html | 2 +- examples/shaders/shaders_spotlight.html | 2 +- examples/shaders/shaders_texture_drawing.html | 2 +- examples/shaders/shaders_texture_outline.html | 2 +- examples/shaders/shaders_texture_waves.html | 12 +- examples/shapes/shapes_basic_shapes.html | 22 +-- examples/shapes/shapes_bouncing_ball.html | 22 +-- examples/shapes/shapes_bouncing_ball.wasm | Bin 110725 -> 110357 bytes examples/shapes/shapes_collision_area.html | 27 +-- examples/shapes/shapes_colors_palette.html | 37 +--- examples/shapes/shapes_draw_circle_sector.html | 37 +--- examples/shapes/shapes_draw_rectangle_rounded.html | 47 +---- examples/shapes/shapes_draw_ring.html | 57 +----- examples/shapes/shapes_easings_ball_anim.html | 67 +------ examples/shapes/shapes_easings_box_anim.html | 77 +------- .../shapes/shapes_easings_rectangle_array.html | 72 +------ examples/shapes/shapes_following_eyes.html | 87 +-------- examples/shapes/shapes_lines_bezier.html | 97 +--------- examples/shapes/shapes_logo_raylib.html | 97 +--------- examples/shapes/shapes_logo_raylib_anim.html | 107 +---------- examples/shapes/shapes_rectangle_scaling.html | 117 +----------- examples/shapes/shapes_top_down_lights.html | 12 +- examples/text/text_codepoints_loading.html | 27 +-- examples/text/text_draw_3d.html | 32 +--- examples/text/text_font_filters.html | 32 +--- examples/text/text_font_loading.html | 37 +--- examples/text/text_font_sdf.html | 47 +---- examples/text/text_font_spritefont.html | 47 +---- examples/text/text_format_text.html | 67 +------ examples/text/text_raylib_fonts.html | 12 +- examples/text/text_rectangle_bounds.html | 17 +- examples/text/text_unicode.html | 22 +-- examples/text/text_writing_anim.html | 22 +-- .../textures/textures_background_scrolling.html | 27 +-- examples/textures/textures_blend_modes.html | 32 +--- examples/textures/textures_bunnymark.html | 47 +---- examples/textures/textures_draw_tiled.html | 47 +---- examples/textures/textures_fog_of_war.html | 57 +----- examples/textures/textures_gif_player.html | 72 +------ examples/textures/textures_image_drawing.html | 67 +------ examples/textures/textures_image_generation.html | 67 +------ examples/textures/textures_image_loading.html | 82 +------- examples/textures/textures_image_processing.html | 122 +----------- examples/textures/textures_image_rotate.html | 107 +---------- examples/textures/textures_image_text.html | 102 +--------- examples/textures/textures_logo_raylib.html | 117 +----------- examples/textures/textures_mouse_painting.html | 117 +----------- examples/textures/textures_npatch_drawing.html | 117 +----------- examples/textures/textures_particles_blending.html | 157 +--------------- examples/textures/textures_polygon.html | 127 +------------ examples/textures/textures_raw_data.html | 147 +-------------- examples/textures/textures_rectangle.data | Bin 10394 -> 0 bytes examples/textures/textures_rectangle.html | 1 - examples/textures/textures_rectangle.js | 1 - examples/textures/textures_rectangle.wasm | Bin 137438 -> 0 bytes examples/textures/textures_sprite_anim.html | 2 +- examples/textures/textures_sprite_button.html | 2 +- examples/textures/textures_sprite_explosion.html | 2 +- examples/textures/textures_srcrec_dstrec.html | 2 +- examples/textures/textures_textured_curve.html | 12 +- examples/textures/textures_to_image.html | 22 +-- 133 files changed, 128 insertions(+), 9125 deletions(-) delete mode 100644 examples/textures/textures_rectangle.data delete mode 100644 examples/textures/textures_rectangle.html delete mode 100644 examples/textures/textures_rectangle.js delete mode 100644 examples/textures/textures_rectangle.wasm diff --git a/examples/audio/audio_mixed_processor.html b/examples/audio/audio_mixed_processor.html index dda95fe..beeec70 100644 --- a/examples/audio/audio_mixed_processor.html +++ b/examples/audio/audio_mixed_processor.html @@ -1 +1 @@ -audio mixed processor
\ No newline at end of file +audio mixed processor
\ No newline at end of file diff --git a/examples/audio/audio_module_playing.html b/examples/audio/audio_module_playing.html index d47e498..6a9c2df 100644 --- a/examples/audio/audio_module_playing.html +++ b/examples/audio/audio_module_playing.html @@ -1,11 +1 @@ -audio module playing
\ No newline at end of file +audio module playing
\ No newline at end of file diff --git a/examples/audio/audio_music_stream.html b/examples/audio/audio_music_stream.html index ab7bff9..b6da51a 100644 --- a/examples/audio/audio_music_stream.html +++ b/examples/audio/audio_music_stream.html @@ -1,21 +1 @@ -audio music stream
\ No newline at end of file +audio music stream
\ No newline at end of file diff --git a/examples/audio/audio_raw_stream.html b/examples/audio/audio_raw_stream.html index ffcec02..941ad6e 100644 --- a/examples/audio/audio_raw_stream.html +++ b/examples/audio/audio_raw_stream.html @@ -1,21 +1 @@ -audio raw stream
\ No newline at end of file +audio raw stream
\ No newline at end of file diff --git a/examples/audio/audio_sound_loading.html b/examples/audio/audio_sound_loading.html index 0cea2a5..0543dce 100644 --- a/examples/audio/audio_sound_loading.html +++ b/examples/audio/audio_sound_loading.html @@ -1,26 +1 @@ -audio sound loading
\ No newline at end of file +audio sound loading
\ No newline at end of file diff --git a/examples/audio/audio_sound_multi.html b/examples/audio/audio_sound_multi.html index a91b0d1..3794321 100644 --- a/examples/audio/audio_sound_multi.html +++ b/examples/audio/audio_sound_multi.html @@ -1,36 +1 @@ -audio sound multi
\ No newline at end of file +audio sound multi
\ No newline at end of file diff --git a/examples/audio/audio_stream_effects.html b/examples/audio/audio_stream_effects.html index 14d0c0f..16863de 100644 --- a/examples/audio/audio_stream_effects.html +++ b/examples/audio/audio_stream_effects.html @@ -1,46 +1 @@ -audio stream effects
\ No newline at end of file +audio stream effects
\ No newline at end of file diff --git a/examples/core/core_2d_camera.html b/examples/core/core_2d_camera.html index bebfd5b..e387557 100644 --- a/examples/core/core_2d_camera.html +++ b/examples/core/core_2d_camera.html @@ -1,46 +1 @@ -core 2d camera
\ No newline at end of file +core 2d camera
\ No newline at end of file diff --git a/examples/core/core_2d_camera_mouse_zoom.html b/examples/core/core_2d_camera_mouse_zoom.html index 198e932..8858419 100644 --- a/examples/core/core_2d_camera_mouse_zoom.html +++ b/examples/core/core_2d_camera_mouse_zoom.html @@ -1,56 +1 @@ -core 2d camera mouse zoom
\ No newline at end of file +core 2d camera mouse zoom
\ No newline at end of file diff --git a/examples/core/core_2d_camera_platformer.html b/examples/core/core_2d_camera_platformer.html index fc956c6..c6b7f62 100644 --- a/examples/core/core_2d_camera_platformer.html +++ b/examples/core/core_2d_camera_platformer.html @@ -1,56 +1 @@ -core 2d camera platformer
\ No newline at end of file +core 2d camera platformer
\ No newline at end of file diff --git a/examples/core/core_2d_camera_split_screen.html b/examples/core/core_2d_camera_split_screen.html index 9e3a67f..7b74430 100644 --- a/examples/core/core_2d_camera_split_screen.html +++ b/examples/core/core_2d_camera_split_screen.html @@ -1,51 +1 @@ -core 2d camera split screen
\ No newline at end of file +core 2d camera split screen
\ No newline at end of file diff --git a/examples/core/core_3d_camera_first_person.html b/examples/core/core_3d_camera_first_person.html index 5f27183..bff510d 100644 --- a/examples/core/core_3d_camera_first_person.html +++ b/examples/core/core_3d_camera_first_person.html @@ -1,86 +1 @@ -core 3d camera first person
\ No newline at end of file +core 3d camera first person
\ No newline at end of file diff --git a/examples/core/core_3d_camera_free.html b/examples/core/core_3d_camera_free.html index b3e805a..4d2d8b0 100644 --- a/examples/core/core_3d_camera_free.html +++ b/examples/core/core_3d_camera_free.html @@ -1,76 +1 @@ -core 3d camera free
\ No newline at end of file +core 3d camera free
\ No newline at end of file diff --git a/examples/core/core_3d_camera_mode.html b/examples/core/core_3d_camera_mode.html index 7aecfd6..25ba578 100644 --- a/examples/core/core_3d_camera_mode.html +++ b/examples/core/core_3d_camera_mode.html @@ -1,91 +1 @@ -core 3d camera mode
\ No newline at end of file +core 3d camera mode
\ No newline at end of file diff --git a/examples/core/core_3d_camera_split_screen.html b/examples/core/core_3d_camera_split_screen.html index d9a0ea7..36330d2 100644 --- a/examples/core/core_3d_camera_split_screen.html +++ b/examples/core/core_3d_camera_split_screen.html @@ -1,86 +1 @@ -core 3d camera split screen
\ No newline at end of file +core 3d camera split screen
\ No newline at end of file diff --git a/examples/core/core_3d_picking.html b/examples/core/core_3d_picking.html index 4ca1707..567d880 100644 --- a/examples/core/core_3d_picking.html +++ b/examples/core/core_3d_picking.html @@ -1,101 +1 @@ -core 3d picking
\ No newline at end of file +core 3d picking
\ No newline at end of file diff --git a/examples/core/core_automation_events.html b/examples/core/core_automation_events.html index 736660c..1006269 100644 --- a/examples/core/core_automation_events.html +++ b/examples/core/core_automation_events.html @@ -1,161 +1 @@ -core automation events
\ No newline at end of file +core automation events
\ No newline at end of file diff --git a/examples/core/core_basic_screen_manager.html b/examples/core/core_basic_screen_manager.html index 2716690..db06e6b 100644 --- a/examples/core/core_basic_screen_manager.html +++ b/examples/core/core_basic_screen_manager.html @@ -1,101 +1 @@ -core basic screen manager
\ No newline at end of file +core basic screen manager
\ No newline at end of file diff --git a/examples/core/core_basic_window.html b/examples/core/core_basic_window.html index 960dc4d..0bf303d 100644 --- a/examples/core/core_basic_window.html +++ b/examples/core/core_basic_window.html @@ -1,126 +1 @@ -core basic window
\ No newline at end of file +core basic window
\ No newline at end of file diff --git a/examples/core/core_custom_frame_control.html b/examples/core/core_custom_frame_control.html index 02b1d89..793a5df 100644 --- a/examples/core/core_custom_frame_control.html +++ b/examples/core/core_custom_frame_control.html @@ -1,111 +1 @@ -core custom frame control
\ No newline at end of file +core custom frame control
\ No newline at end of file diff --git a/examples/core/core_custom_logging.html b/examples/core/core_custom_logging.html index 732532c..1e4fec7 100644 --- a/examples/core/core_custom_logging.html +++ b/examples/core/core_custom_logging.html @@ -1,126 +1 @@ -core custom logging // Required for: fopen(), fclose(), fputc(), fwrite(), printf(), fprintf(), funopen() -#include // Required for: time_t, tm, time(), localtime(), strftime() - -// Custom logging function -void CustomLog(int msgType, const char *text, va_list args) -{ - char timeStr[64] = { 0 }; - time_t now = time(NULL); - struct tm *tm_info = localtime(&now); - - strftime(timeS"name=description> // Required for: fopen(), fclose(), fputc(), fwrite(), printf(), fprintf(), funopen() -#include // Required for: time_t, tm, time(), localtime(), strftime() - -// Custom logging function -void CustomLog(int msgType, const char *text, va_list args) -{ - char timeStr[64] = { 0 }; - time_t now = time(NULL); - struct tm *tm_info = localtime(&now); - - strftime(timeS"property=og:image:alt> // Required for: fopen(), fclose(), fputc(), fwrite(), printf(), fprintf(), funopen() -#include // Required for: time_t, tm, time(), localtime(), strftime() - -// Custom logging function -void CustomLog(int msgType, const char *text, va_list args) -{ - char timeStr[64] = { 0 }; - time_t now = time(NULL); - struct tm *tm_info = localtime(&now); - - strftime(timeS"property=og:description> // Required for: fopen(), fclose(), fputc(), fwrite(), printf(), fprintf(), funopen() -#include // Required for: time_t, tm, time(), localtime(), strftime() - -// Custom logging function -void CustomLog(int msgType, const char *text, va_list args) -{ - char timeStr[64] = { 0 }; - time_t now = time(NULL); - struct tm *tm_info = localtime(&now); - - strftime(timeS"name=twitter:image:alt> // Required for: fopen(), fclose(), fputc(), fwrite(), printf(), fprintf(), funopen() -#include // Required for: time_t, tm, time(), localtime(), strftime() - -// Custom logging function -void CustomLog(int msgType, const char *text, va_list args) -{ - char timeStr[64] = { 0 }; - time_t now = time(NULL); - struct tm *tm_info = localtime(&now); - - strftime(timeS"name=twitter:description>
\ No newline at end of file +core custom logging
\ No newline at end of file diff --git a/examples/core/core_drop_files.html b/examples/core/core_drop_files.html index eab60ee..12076d8 100644 --- a/examples/core/core_drop_files.html +++ b/examples/core/core_drop_files.html @@ -1,141 +1 @@ -core drop files // Required for: calloc(), free() - -#define MAX_FILEPATH_RECORDED 4096 -#define MAX_FILEPATH_SIZE 2048 - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - "name=description> // Required for: calloc(), free() - -#define MAX_FILEPATH_RECORDED 4096 -#define MAX_FILEPATH_SIZE 2048 - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - "property=og:image:alt> // Required for: calloc(), free() - -#define MAX_FILEPATH_RECORDED 4096 -#define MAX_FILEPATH_SIZE 2048 - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - "property=og:description> // Required for: calloc(), free() - -#define MAX_FILEPATH_RECORDED 4096 -#define MAX_FILEPATH_SIZE 2048 - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - "name=twitter:image:alt> // Required for: calloc(), free() - -#define MAX_FILEPATH_RECORDED 4096 -#define MAX_FILEPATH_SIZE 2048 - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - "name=twitter:description>
\ No newline at end of file +core drop files
\ No newline at end of file diff --git a/examples/core/core_input_gamepad.html b/examples/core/core_input_gamepad.html index 438833a..7735f64 100644 --- a/examples/core/core_input_gamepad.html +++ b/examples/core/core_input_gamepad.html @@ -1,131 +1 @@ -core input gamepad
\ No newline at end of file +core input gamepad
\ No newline at end of file diff --git a/examples/core/core_input_gamepad_info.html b/examples/core/core_input_gamepad_info.html index 926bfa5..35417f8 100644 --- a/examples/core/core_input_gamepad_info.html +++ b/examples/core/core_input_gamepad_info.html @@ -1,151 +1 @@ -core input gamepad info
\ No newline at end of file +core input gamepad info
\ No newline at end of file diff --git a/examples/core/core_input_gestures.html b/examples/core/core_input_gestures.html index e79b5fb..f11b877 100644 --- a/examples/core/core_input_gestures.html +++ b/examples/core/core_input_gestures.html @@ -1,166 +1 @@ -core input gestures
\ No newline at end of file +core input gestures
\ No newline at end of file diff --git a/examples/core/core_input_gestures_web.html b/examples/core/core_input_gestures_web.html index 1c94e71..322a9fa 100644 --- a/examples/core/core_input_gestures_web.html +++ b/examples/core/core_input_gestures_web.html @@ -1,161 +1 @@ -core input gestures web // Required for the Web/HTML5 -#endif - -//-------------------------------------------------------------------------------------- -// Global definitions and declarations -//-------------------------------------------------------------------------------------- - -// Common variables definitions -//-------------------------------------------------------------------------------------- -int screenWidth = 800; // Update depending on web canvas -const int screenHeight = 450; -Vector2 messagePosition = { 160, 7 }; - -// Last gesture variables definitions -//-------------------"name=description> // Required for the Web/HTML5 -#endif - -//-------------------------------------------------------------------------------------- -// Global definitions and declarations -//-------------------------------------------------------------------------------------- - -// Common variables definitions -//-------------------------------------------------------------------------------------- -int screenWidth = 800; // Update depending on web canvas -const int screenHeight = 450; -Vector2 messagePosition = { 160, 7 }; - -// Last gesture variables definitions -//-------------------"property=og:image:alt> // Required for the Web/HTML5 -#endif - -//-------------------------------------------------------------------------------------- -// Global definitions and declarations -//-------------------------------------------------------------------------------------- - -// Common variables definitions -//-------------------------------------------------------------------------------------- -int screenWidth = 800; // Update depending on web canvas -const int screenHeight = 450; -Vector2 messagePosition = { 160, 7 }; - -// Last gesture variables definitions -//-------------------"property=og:description> // Required for the Web/HTML5 -#endif - -//-------------------------------------------------------------------------------------- -// Global definitions and declarations -//-------------------------------------------------------------------------------------- - -// Common variables definitions -//-------------------------------------------------------------------------------------- -int screenWidth = 800; // Update depending on web canvas -const int screenHeight = 450; -Vector2 messagePosition = { 160, 7 }; - -// Last gesture variables definitions -//-------------------"name=twitter:image:alt> // Required for the Web/HTML5 -#endif - -//-------------------------------------------------------------------------------------- -// Global definitions and declarations -//-------------------------------------------------------------------------------------- - -// Common variables definitions -//-------------------------------------------------------------------------------------- -int screenWidth = 800; // Update depending on web canvas -const int screenHeight = 450; -Vector2 messagePosition = { 160, 7 }; - -// Last gesture variables definitions -//-------------------"name=twitter:description>
\ No newline at end of file +core input gestures web
\ No newline at end of file diff --git a/examples/core/core_input_keys.html b/examples/core/core_input_keys.html index 867f2de..de20592 100644 --- a/examples/core/core_input_keys.html +++ b/examples/core/core_input_keys.html @@ -1,161 +1 @@ -core input keys
\ No newline at end of file +core input keys
\ No newline at end of file diff --git a/examples/core/core_input_mouse.html b/examples/core/core_input_mouse.html index 2700fff..7beed09 100644 --- a/examples/core/core_input_mouse.html +++ b/examples/core/core_input_mouse.html @@ -1,176 +1 @@ -core input mouse
\ No newline at end of file +core input mouse
\ No newline at end of file diff --git a/examples/core/core_input_mouse_wheel.html b/examples/core/core_input_mouse_wheel.html index da56e67..2a51634 100644 --- a/examples/core/core_input_mouse_wheel.html +++ b/examples/core/core_input_mouse_wheel.html @@ -1,176 +1 @@ -core input mouse wheel
\ No newline at end of file +core input mouse wheel
\ No newline at end of file diff --git a/examples/core/core_input_multitouch.html b/examples/core/core_input_multitouch.html index f4b2738..baffc50 100644 --- a/examples/core/core_input_multitouch.html +++ b/examples/core/core_input_multitouch.html @@ -1,186 +1 @@ -core input multitouch
\ No newline at end of file +core input multitouch
\ No newline at end of file diff --git a/examples/core/core_loading_thread.html b/examples/core/core_loading_thread.html index c611c9e..20d04d6 100644 --- a/examples/core/core_loading_thread.html +++ b/examples/core/core_loading_thread.html @@ -1,176 +1 @@ -core loading thread // C11 atomic data types - -#include // Required for: clock() - -// Using C11 atomics for synchronization -// NOTE: A plain bool (or any plain data type for that matter) can't be used for inter-thread synchronization -static atomic_bool dataLoaded = false; // Data Loaded completion indicator -static void *LoadDataThread(void *arg); // Loading data thread function declaration - -static atomic_int dataProgress = 0; // Data progress accumulator - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //---------------------"name=description> // C11 atomic data types - -#include // Required for: clock() - -// Using C11 atomics for synchronization -// NOTE: A plain bool (or any plain data type for that matter) can't be used for inter-thread synchronization -static atomic_bool dataLoaded = false; // Data Loaded completion indicator -static void *LoadDataThread(void *arg); // Loading data thread function declaration - -static atomic_int dataProgress = 0; // Data progress accumulator - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //---------------------"property=og:image:alt> // C11 atomic data types - -#include // Required for: clock() - -// Using C11 atomics for synchronization -// NOTE: A plain bool (or any plain data type for that matter) can't be used for inter-thread synchronization -static atomic_bool dataLoaded = false; // Data Loaded completion indicator -static void *LoadDataThread(void *arg); // Loading data thread function declaration - -static atomic_int dataProgress = 0; // Data progress accumulator - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //---------------------"property=og:description> // C11 atomic data types - -#include // Required for: clock() - -// Using C11 atomics for synchronization -// NOTE: A plain bool (or any plain data type for that matter) can't be used for inter-thread synchronization -static atomic_bool dataLoaded = false; // Data Loaded completion indicator -static void *LoadDataThread(void *arg); // Loading data thread function declaration - -static atomic_int dataProgress = 0; // Data progress accumulator - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //---------------------"name=twitter:image:alt> // C11 atomic data types - -#include // Required for: clock() - -// Using C11 atomics for synchronization -// NOTE: A plain bool (or any plain data type for that matter) can't be used for inter-thread synchronization -static atomic_bool dataLoaded = false; // Data Loaded completion indicator -static void *LoadDataThread(void *arg); // Loading data thread function declaration - -static atomic_int dataProgress = 0; // Data progress accumulator - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //---------------------"name=twitter:description>
\ No newline at end of file +core loading thread
\ No newline at end of file diff --git a/examples/core/core_random_values.html b/examples/core/core_random_values.html index 581b866..7518fd6 100644 --- a/examples/core/core_random_values.html +++ b/examples/core/core_random_values.html @@ -1,176 +1 @@ -core random values
\ No newline at end of file +core random values
\ No newline at end of file diff --git a/examples/core/core_scissor_test.html b/examples/core/core_scissor_test.html index ebc617f..1411f92 100644 --- a/examples/core/core_scissor_test.html +++ b/examples/core/core_scissor_test.html @@ -1,191 +1 @@ -core scissor test
\ No newline at end of file +core scissor test
\ No newline at end of file diff --git a/examples/core/core_smooth_pixelperfect.html b/examples/core/core_smooth_pixelperfect.html index 3254969..bb2c161 100644 --- a/examples/core/core_smooth_pixelperfect.html +++ b/examples/core/core_smooth_pixelperfect.html @@ -1,206 +1 @@ -core smooth pixelperfect // Required for: sinf(), cosf() - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - const int virtualScreenWidth = 160; - const int virtualScreenHeight = 90; - - const float virtualRatio = (float)screenWidth/(float)virtualScreenWidth; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - smooth pixel-perfect camera"); - - Camera2D worldSpaceCamera = { 0 }; // Game world camera - worldSpaceCamera.zoom = 1.0f; - - Camera2D screenSpaceCamera = { 0 }; // Smoothing camera - screenSpaceCamera.zoom = 1.0f; - - RenderTexture2D target = LoadRenderTexture(virtualScreenWidth, v"name=description> // Required for: sinf(), cosf() - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - const int virtualScreenWidth = 160; - const int virtualScreenHeight = 90; - - const float virtualRatio = (float)screenWidth/(float)virtualScreenWidth; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - smooth pixel-perfect camera"); - - Camera2D worldSpaceCamera = { 0 }; // Game world camera - worldSpaceCamera.zoom = 1.0f; - - Camera2D screenSpaceCamera = { 0 }; // Smoothing camera - screenSpaceCamera.zoom = 1.0f; - - RenderTexture2D target = LoadRenderTexture(virtualScreenWidth, v"property=og:image:alt> // Required for: sinf(), cosf() - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - const int virtualScreenWidth = 160; - const int virtualScreenHeight = 90; - - const float virtualRatio = (float)screenWidth/(float)virtualScreenWidth; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - smooth pixel-perfect camera"); - - Camera2D worldSpaceCamera = { 0 }; // Game world camera - worldSpaceCamera.zoom = 1.0f; - - Camera2D screenSpaceCamera = { 0 }; // Smoothing camera - screenSpaceCamera.zoom = 1.0f; - - RenderTexture2D target = LoadRenderTexture(virtualScreenWidth, v"property=og:description> // Required for: sinf(), cosf() - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - const int virtualScreenWidth = 160; - const int virtualScreenHeight = 90; - - const float virtualRatio = (float)screenWidth/(float)virtualScreenWidth; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - smooth pixel-perfect camera"); - - Camera2D worldSpaceCamera = { 0 }; // Game world camera - worldSpaceCamera.zoom = 1.0f; - - Camera2D screenSpaceCamera = { 0 }; // Smoothing camera - screenSpaceCamera.zoom = 1.0f; - - RenderTexture2D target = LoadRenderTexture(virtualScreenWidth, v"name=twitter:image:alt> // Required for: sinf(), cosf() - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - const int virtualScreenWidth = 160; - const int virtualScreenHeight = 90; - - const float virtualRatio = (float)screenWidth/(float)virtualScreenWidth; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - smooth pixel-perfect camera"); - - Camera2D worldSpaceCamera = { 0 }; // Game world camera - worldSpaceCamera.zoom = 1.0f; - - Camera2D screenSpaceCamera = { 0 }; // Smoothing camera - screenSpaceCamera.zoom = 1.0f; - - RenderTexture2D target = LoadRenderTexture(virtualScreenWidth, v"name=twitter:description>
\ No newline at end of file +core smooth pixelperfect
\ No newline at end of file diff --git a/examples/core/core_storage_values.html b/examples/core/core_storage_values.html index 85a144c..f5d4c85 100644 --- a/examples/core/core_storage_values.html +++ b/examples/core/core_storage_values.html @@ -1,206 +1 @@ -core storage values // Required for: calloc(), free() - -#define STORAGE_DATA_FILE "storage.data" // Storage file - -// NOTE: Storage positions must start with 0, directly related to file memory layout -typedef enum { - STORAGE_POSITION_SCORE = 0, - STORAGE_POSITION_HISCORE = 1 -} StorageData; - -// Persistent storage functions -static bool SaveStorageValue(unsigned int position, int value); -static int LoadStorageValue(unsigned int position); - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - storage save/load values"); - - int score = 0; - int hiscore = 0; - int framesCounter = "name=description> // Required for: calloc(), free() - -#define STORAGE_DATA_FILE "storage.data" // Storage file - -// NOTE: Storage positions must start with 0, directly related to file memory layout -typedef enum { - STORAGE_POSITION_SCORE = 0, - STORAGE_POSITION_HISCORE = 1 -} StorageData; - -// Persistent storage functions -static bool SaveStorageValue(unsigned int position, int value); -static int LoadStorageValue(unsigned int position); - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - storage save/load values"); - - int score = 0; - int hiscore = 0; - int framesCounter = "property=og:image:alt> // Required for: calloc(), free() - -#define STORAGE_DATA_FILE "storage.data" // Storage file - -// NOTE: Storage positions must start with 0, directly related to file memory layout -typedef enum { - STORAGE_POSITION_SCORE = 0, - STORAGE_POSITION_HISCORE = 1 -} StorageData; - -// Persistent storage functions -static bool SaveStorageValue(unsigned int position, int value); -static int LoadStorageValue(unsigned int position); - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - storage save/load values"); - - int score = 0; - int hiscore = 0; - int framesCounter = "property=og:description> // Required for: calloc(), free() - -#define STORAGE_DATA_FILE "storage.data" // Storage file - -// NOTE: Storage positions must start with 0, directly related to file memory layout -typedef enum { - STORAGE_POSITION_SCORE = 0, - STORAGE_POSITION_HISCORE = 1 -} StorageData; - -// Persistent storage functions -static bool SaveStorageValue(unsigned int position, int value); -static int LoadStorageValue(unsigned int position); - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - storage save/load values"); - - int score = 0; - int hiscore = 0; - int framesCounter = "name=twitter:image:alt> // Required for: calloc(), free() - -#define STORAGE_DATA_FILE "storage.data" // Storage file - -// NOTE: Storage positions must start with 0, directly related to file memory layout -typedef enum { - STORAGE_POSITION_SCORE = 0, - STORAGE_POSITION_HISCORE = 1 -} StorageData; - -// Persistent storage functions -static bool SaveStorageValue(unsigned int position, int value); -static int LoadStorageValue(unsigned int position); - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - storage save/load values"); - - int score = 0; - int hiscore = 0; - int framesCounter = "name=twitter:description>
\ No newline at end of file +core storage values
\ No newline at end of file diff --git a/examples/core/core_vr_simulator.html b/examples/core/core_vr_simulator.html index f0eb44c..e7e3625 100644 --- a/examples/core/core_vr_simulator.html +++ b/examples/core/core_vr_simulator.html @@ -1,191 +1 @@ -core vr simulator
\ No newline at end of file +core vr simulator
\ No newline at end of file diff --git a/examples/core/core_window_letterbox.html b/examples/core/core_window_letterbox.html index 275e73c..142f418 100644 --- a/examples/core/core_window_letterbox.html +++ b/examples/core/core_window_letterbox.html @@ -1,11 +1 @@ -core window letterbox
\ No newline at end of file +core window letterbox
\ No newline at end of file diff --git a/examples/core/core_window_should_close.html b/examples/core/core_window_should_close.html index 23597e8..7aa055f 100644 --- a/examples/core/core_window_should_close.html +++ b/examples/core/core_window_should_close.html @@ -1,21 +1 @@ -core window should close
\ No newline at end of file +core window should close
\ No newline at end of file diff --git a/examples/core/core_world_screen.html b/examples/core/core_world_screen.html index 80f735b..4603d42 100644 --- a/examples/core/core_world_screen.html +++ b/examples/core/core_world_screen.html @@ -1,21 +1 @@ -core world screen
\ No newline at end of file +core world screen
\ No newline at end of file diff --git a/examples/models/models_animation.html b/examples/models/models_animation.html index 4ab6c9b..fa79c6c 100644 --- a/examples/models/models_animation.html +++ b/examples/models/models_animation.html @@ -1,36 +1 @@ -models animation
\ No newline at end of file +models animation
\ No newline at end of file diff --git a/examples/models/models_billboard.html b/examples/models/models_billboard.html index 705141e..5333d1d 100644 --- a/examples/models/models_billboard.html +++ b/examples/models/models_billboard.html @@ -1,56 +1 @@ -models billboard
\ No newline at end of file +models billboard
\ No newline at end of file diff --git a/examples/models/models_box_collisions.html b/examples/models/models_box_collisions.html index 4009cbe..dd32be7 100644 --- a/examples/models/models_box_collisions.html +++ b/examples/models/models_box_collisions.html @@ -1,66 +1 @@ -models box collisions
\ No newline at end of file +models box collisions
\ No newline at end of file diff --git a/examples/models/models_cubicmap.html b/examples/models/models_cubicmap.html index c80baa4..569e146 100644 --- a/examples/models/models_cubicmap.html +++ b/examples/models/models_cubicmap.html @@ -1,76 +1 @@ -models cubicmap
\ No newline at end of file +models cubicmap
\ No newline at end of file diff --git a/examples/models/models_draw_cube_texture.html b/examples/models/models_draw_cube_texture.html index 9db5b99..5cc1b04 100644 --- a/examples/models/models_draw_cube_texture.html +++ b/examples/models/models_draw_cube_texture.html @@ -1,81 +1 @@ -models draw cube texture
\ No newline at end of file +models draw cube texture
\ No newline at end of file diff --git a/examples/models/models_first_person_maze.html b/examples/models/models_first_person_maze.html index 56f7337..c213cfe 100644 --- a/examples/models/models_first_person_maze.html +++ b/examples/models/models_first_person_maze.html @@ -1,86 +1 @@ -models first person maze // Required for: free() - -//------------------------------------------------------------------------------------ -// Program main entry point -//-------------------------------------------------"name=description> // Required for: free() - -//------------------------------------------------------------------------------------ -// Program main entry point -//-------------------------------------------------"property=og:image:alt> // Required for: free() - -//------------------------------------------------------------------------------------ -// Program main entry point -//-------------------------------------------------"property=og:description> // Required for: free() - -//------------------------------------------------------------------------------------ -// Program main entry point -//-------------------------------------------------"name=twitter:image:alt> // Required for: free() - -//------------------------------------------------------------------------------------ -// Program main entry point -//-------------------------------------------------"name=twitter:description>
\ No newline at end of file +models first person maze
\ No newline at end of file diff --git a/examples/models/models_geometric_shapes.html b/examples/models/models_geometric_shapes.html index ec93cd1..9c5c011 100644 --- a/examples/models/models_geometric_shapes.html +++ b/examples/models/models_geometric_shapes.html @@ -1,96 +1 @@ -models geometric shapes
\ No newline at end of file +models geometric shapes
\ No newline at end of file diff --git a/examples/models/models_heightmap.html b/examples/models/models_heightmap.html index 7e2e604..d57a97c 100644 --- a/examples/models/models_heightmap.html +++ b/examples/models/models_heightmap.html @@ -1,101 +1 @@ -models heightmap
\ No newline at end of file +models heightmap
\ No newline at end of file diff --git a/examples/models/models_loading.html b/examples/models/models_loading.html index d27075c..13d3c51 100644 --- a/examples/models/models_loading.html +++ b/examples/models/models_loading.html @@ -1,76 +1 @@ -models loading
\ No newline at end of file +models loading
\ No newline at end of file diff --git a/examples/models/models_loading_gltf.html b/examples/models/models_loading_gltf.html index 5b4db22..6e9681a 100644 --- a/examples/models/models_loading_gltf.html +++ b/examples/models/models_loading_gltf.html @@ -1,101 +1 @@ -models loading gltf
\ No newline at end of file +models loading gltf
\ No newline at end of file diff --git a/examples/models/models_loading_m3d.html b/examples/models/models_loading_m3d.html index 5ba7ed6..8ba60f2 100644 --- a/examples/models/models_loading_m3d.html +++ b/examples/models/models_loading_m3d.html @@ -1,126 +1 @@ -models loading m3d
\ No newline at end of file +models loading m3d
\ No newline at end of file diff --git a/examples/models/models_loading_vox.html b/examples/models/models_loading_vox.html index ce5cba9..d0cb09b 100644 --- a/examples/models/models_loading_vox.html +++ b/examples/models/models_loading_vox.html @@ -1,131 +1 @@ -models loading vox
\ No newline at end of file +models loading vox
\ No newline at end of file diff --git a/examples/models/models_mesh_generation.html b/examples/models/models_mesh_generation.html index 7369653..207ce0d 100644 --- a/examples/models/models_mesh_generation.html +++ b/examples/models/models_mesh_generation.html @@ -1,136 +1 @@ -models mesh generation
\ No newline at end of file +models mesh generation
\ No newline at end of file diff --git a/examples/models/models_mesh_picking.html b/examples/models/models_mesh_picking.html index f4845f6..08e6d80 100644 --- a/examples/models/models_mesh_picking.html +++ b/examples/models/models_mesh_picking.html @@ -1,131 +1 @@ -models mesh picking
\ No newline at end of file +models mesh picking
\ No newline at end of file diff --git a/examples/models/models_rlgl_solar_system.html b/examples/models/models_rlgl_solar_system.html index 36cbf87..5c08966 100644 --- a/examples/models/models_rlgl_solar_system.html +++ b/examples/models/models_rlgl_solar_system.html @@ -1,21 +1 @@ -models rlgl solar system
\ No newline at end of file +models rlgl solar system
\ No newline at end of file diff --git a/examples/models/models_skybox.html b/examples/models/models_skybox.html index 28473cb..9c33628 100644 --- a/examples/models/models_skybox.html +++ b/examples/models/models_skybox.html @@ -1,26 +1 @@ -models skybox
\ No newline at end of file +models skybox
\ No newline at end of file diff --git a/examples/models/models_waving_cubes.html b/examples/models/models_waving_cubes.html index 9d260b1..9942512 100644 --- a/examples/models/models_waving_cubes.html +++ b/examples/models/models_waving_cubes.html @@ -1,31 +1 @@ -models waving cubes
\ No newline at end of file +models waving cubes
\ No newline at end of file diff --git a/examples/models/models_yaw_pitch_roll.html b/examples/models/models_yaw_pitch_roll.html index fd0b872..86882cc 100644 --- a/examples/models/models_yaw_pitch_roll.html +++ b/examples/models/models_yaw_pitch_roll.html @@ -1,36 +1 @@ -models yaw pitch roll
\ No newline at end of file +models yaw pitch roll
\ No newline at end of file diff --git a/examples/shaders/shaders_basic_lighting.html b/examples/shaders/shaders_basic_lighting.html index 33c3f2e..783647a 100644 --- a/examples/shaders/shaders_basic_lighting.html +++ b/examples/shaders/shaders_basic_lighting.html @@ -1,16 +1 @@ -shaders basic lighting
\ No newline at end of file +shaders basic lighting
\ No newline at end of file diff --git a/examples/shaders/shaders_custom_uniform.html b/examples/shaders/shaders_custom_uniform.html index 5d06df5..c83b502 100644 --- a/examples/shaders/shaders_custom_uniform.html +++ b/examples/shaders/shaders_custom_uniform.html @@ -1,26 +1 @@ -shaders custom uniform
\ No newline at end of file +shaders custom uniform
\ No newline at end of file diff --git a/examples/shaders/shaders_deferred_render.html b/examples/shaders/shaders_deferred_render.html index e9ea232..3614e91 100644 --- a/examples/shaders/shaders_deferred_render.html +++ b/examples/shaders/shaders_deferred_render.html @@ -1,31 +1 @@ -shaders deferred render
\ No newline at end of file +shaders deferred render
\ No newline at end of file diff --git a/examples/shaders/shaders_eratosthenes.html b/examples/shaders/shaders_eratosthenes.html index ac2c636..293e7ae 100644 --- a/examples/shaders/shaders_eratosthenes.html +++ b/examples/shaders/shaders_eratosthenes.html @@ -1,46 +1 @@ -shaders eratosthenes
\ No newline at end of file +shaders eratosthenes
\ No newline at end of file diff --git a/examples/shaders/shaders_fog.html b/examples/shaders/shaders_fog.html index 0e54def..4392d76 100644 --- a/examples/shaders/shaders_fog.html +++ b/examples/shaders/shaders_fog.html @@ -1,46 +1 @@ -shaders fog
\ No newline at end of file +shaders fog
\ No newline at end of file diff --git a/examples/shaders/shaders_hot_reloading.html b/examples/shaders/shaders_hot_reloading.html index 0803177..cf13d9e 100644 --- a/examples/shaders/shaders_hot_reloading.html +++ b/examples/shaders/shaders_hot_reloading.html @@ -1,41 +1 @@ -shaders hot reloading
\ No newline at end of file +shaders hot reloading
\ No newline at end of file diff --git a/examples/shaders/shaders_julia_set.html b/examples/shaders/shaders_julia_set.html index af1c786..e4af753 100644 --- a/examples/shaders/shaders_julia_set.html +++ b/examples/shaders/shaders_julia_set.html @@ -1,56 +1 @@ -shaders julia set
\ No newline at end of file +shaders julia set
\ No newline at end of file diff --git a/examples/shaders/shaders_lightmap.html b/examples/shaders/shaders_lightmap.html index 8888088..3458284 100644 --- a/examples/shaders/shaders_lightmap.html +++ b/examples/shaders/shaders_lightmap.html @@ -1,61 +1 @@ -shaders lightmap
\ No newline at end of file +shaders lightmap
\ No newline at end of file diff --git a/examples/shaders/shaders_mesh_instancing.html b/examples/shaders/shaders_mesh_instancing.html index 40a9670..f2da195 100644 --- a/examples/shaders/shaders_mesh_instancing.html +++ b/examples/shaders/shaders_mesh_instancing.html @@ -1,76 +1 @@ -shaders mesh instancing
\ No newline at end of file +shaders mesh instancing
\ No newline at end of file diff --git a/examples/shaders/shaders_model_shader.html b/examples/shaders/shaders_model_shader.html index 7b2bb45..0a58dd9 100644 --- a/examples/shaders/shaders_model_shader.html +++ b/examples/shaders/shaders_model_shader.html @@ -1,56 +1 @@ -shaders model shader
\ No newline at end of file +shaders model shader
\ No newline at end of file diff --git a/examples/shaders/shaders_multi_sample2d.html b/examples/shaders/shaders_multi_sample2d.html index 39457a9..9a56e6c 100644 --- a/examples/shaders/shaders_multi_sample2d.html +++ b/examples/shaders/shaders_multi_sample2d.html @@ -1,61 +1 @@ -shaders multi sample2d
\ No newline at end of file +shaders multi sample2d
\ No newline at end of file diff --git a/examples/shaders/shaders_palette_switch.html b/examples/shaders/shaders_palette_switch.html index 0d2766b..24c3b32 100644 --- a/examples/shaders/shaders_palette_switch.html +++ b/examples/shaders/shaders_palette_switch.html @@ -1,66 +1 @@ -shaders palette switch
\ No newline at end of file +shaders palette switch
\ No newline at end of file diff --git a/examples/shaders/shaders_postprocessing.html b/examples/shaders/shaders_postprocessing.html index bc0c322..a977720 100644 --- a/examples/shaders/shaders_postprocessing.html +++ b/examples/shaders/shaders_postprocessing.html @@ -1,81 +1 @@ -shaders postprocessing
\ No newline at end of file +shaders postprocessing
\ No newline at end of file diff --git a/examples/shaders/shaders_raymarching.html b/examples/shaders/shaders_raymarching.html index df2ed2d..902ec4a 100644 --- a/examples/shaders/shaders_raymarching.html +++ b/examples/shaders/shaders_raymarching.html @@ -1 +1 @@ -raylib web game
\ No newline at end of file +shaders raymarching
\ No newline at end of file diff --git a/examples/shaders/shaders_shapes_textures.html b/examples/shaders/shaders_shapes_textures.html index b8bfa16..3b2c0e7 100644 --- a/examples/shaders/shaders_shapes_textures.html +++ b/examples/shaders/shaders_shapes_textures.html @@ -1 +1 @@ -raylib web game
\ No newline at end of file +shaders shapes textures
\ No newline at end of file diff --git a/examples/shaders/shaders_simple_mask.html b/examples/shaders/shaders_simple_mask.html index c9c7c6d..d3fe63d 100644 --- a/examples/shaders/shaders_simple_mask.html +++ b/examples/shaders/shaders_simple_mask.html @@ -1 +1 @@ -raylib web game
\ No newline at end of file +shaders simple mask
\ No newline at end of file diff --git a/examples/shaders/shaders_spotlight.html b/examples/shaders/shaders_spotlight.html index 1c52949..5ee4604 100644 --- a/examples/shaders/shaders_spotlight.html +++ b/examples/shaders/shaders_spotlight.html @@ -1 +1 @@ -raylib web game
\ No newline at end of file +shaders spotlight
\ No newline at end of file diff --git a/examples/shaders/shaders_texture_drawing.html b/examples/shaders/shaders_texture_drawing.html index f30d964..26af95e 100644 --- a/examples/shaders/shaders_texture_drawing.html +++ b/examples/shaders/shaders_texture_drawing.html @@ -1 +1 @@ -raylib web game
\ No newline at end of file +shaders texture drawing
\ No newline at end of file diff --git a/examples/shaders/shaders_texture_outline.html b/examples/shaders/shaders_texture_outline.html index 3cf84ba..394faf2 100644 --- a/examples/shaders/shaders_texture_outline.html +++ b/examples/shaders/shaders_texture_outline.html @@ -1 +1 @@ -raylib web game
\ No newline at end of file +shaders texture outline
\ No newline at end of file diff --git a/examples/shaders/shaders_texture_waves.html b/examples/shaders/shaders_texture_waves.html index e596aa6..fccc849 100644 --- a/examples/shaders/shaders_texture_waves.html +++ b/examples/shaders/shaders_texture_waves.html @@ -1,11 +1 @@ -shaders texture waves
\ No newline at end of file +shaders texture waves
\ No newline at end of file diff --git a/examples/shapes/shapes_basic_shapes.html b/examples/shapes/shapes_basic_shapes.html index f70d27b..385727b 100644 --- a/examples/shapes/shapes_basic_shapes.html +++ b/examples/shapes/shapes_basic_shapes.html @@ -1,21 +1 @@ -shapes basic shapes
\ No newline at end of file +shapes basic shapes
\ No newline at end of file diff --git a/examples/shapes/shapes_bouncing_ball.html b/examples/shapes/shapes_bouncing_ball.html index aec6711..d0a6f5e 100644 --- a/examples/shapes/shapes_bouncing_ball.html +++ b/examples/shapes/shapes_bouncing_ball.html @@ -1,21 +1 @@ -shapes bouncing ball
\ No newline at end of file +shapes bouncing ball
\ No newline at end of file diff --git a/examples/shapes/shapes_bouncing_ball.wasm b/examples/shapes/shapes_bouncing_ball.wasm index dc47256..08889c8 100644 Binary files a/examples/shapes/shapes_bouncing_ball.wasm and b/examples/shapes/shapes_bouncing_ball.wasm differ diff --git a/examples/shapes/shapes_collision_area.html b/examples/shapes/shapes_collision_area.html index 00097ca..45215b9 100644 --- a/examples/shapes/shapes_collision_area.html +++ b/examples/shapes/shapes_collision_area.html @@ -1,26 +1 @@ -shapes collision area
\ No newline at end of file +shapes collision area
\ No newline at end of file diff --git a/examples/shapes/shapes_colors_palette.html b/examples/shapes/shapes_colors_palette.html index f369837..aac4c7e 100644 --- a/examples/shapes/shapes_colors_palette.html +++ b/examples/shapes/shapes_colors_palette.html @@ -1,36 +1 @@ -shapes colors palette
\ No newline at end of file +shapes colors palette
\ No newline at end of file diff --git a/examples/shapes/shapes_draw_circle_sector.html b/examples/shapes/shapes_draw_circle_sector.html index aecc252..80cb70c 100644 --- a/examples/shapes/shapes_draw_circle_sector.html +++ b/examples/shapes/shapes_draw_circle_sector.html @@ -1,36 +1 @@ -shapes draw circle sector
\ No newline at end of file +shapes draw circle sector
\ No newline at end of file diff --git a/examples/shapes/shapes_draw_rectangle_rounded.html b/examples/shapes/shapes_draw_rectangle_rounded.html index 8ae8939..ccfa31a 100644 --- a/examples/shapes/shapes_draw_rectangle_rounded.html +++ b/examples/shapes/shapes_draw_rectangle_rounded.html @@ -1,46 +1 @@ -shapes draw rectangle rounded
\ No newline at end of file +shapes draw rectangle rounded
\ No newline at end of file diff --git a/examples/shapes/shapes_draw_ring.html b/examples/shapes/shapes_draw_ring.html index f6ad967..29475cf 100644 --- a/examples/shapes/shapes_draw_ring.html +++ b/examples/shapes/shapes_draw_ring.html @@ -1,56 +1 @@ -shapes draw ring
\ No newline at end of file +shapes draw ring
\ No newline at end of file diff --git a/examples/shapes/shapes_easings_ball_anim.html b/examples/shapes/shapes_easings_ball_anim.html index df3bcf4..1c4e2dc 100644 --- a/examples/shapes/shapes_easings_ball_anim.html +++ b/examples/shapes/shapes_easings_ball_anim.html @@ -1,66 +1 @@ -shapes easings ball anim
\ No newline at end of file +shapes easings ball anim
\ No newline at end of file diff --git a/examples/shapes/shapes_easings_box_anim.html b/examples/shapes/shapes_easings_box_anim.html index 2087f9a..e296ae7 100644 --- a/examples/shapes/shapes_easings_box_anim.html +++ b/examples/shapes/shapes_easings_box_anim.html @@ -1,76 +1 @@ -shapes easings box anim
\ No newline at end of file +shapes easings box anim
\ No newline at end of file diff --git a/examples/shapes/shapes_easings_rectangle_array.html b/examples/shapes/shapes_easings_rectangle_array.html index 3767ba6..6784d5a 100644 --- a/examples/shapes/shapes_easings_rectangle_array.html +++ b/examples/shapes/shapes_easings_rectangle_array.html @@ -1,71 +1 @@ -shapes easings rectangle array
\ No newline at end of file +shapes easings rectangle array
\ No newline at end of file diff --git a/examples/shapes/shapes_following_eyes.html b/examples/shapes/shapes_following_eyes.html index 45c58bf..cda721f 100644 --- a/examples/shapes/shapes_following_eyes.html +++ b/examples/shapes/shapes_following_eyes.html @@ -1,86 +1 @@ -shapes following eyes // Required for: atan2f() - -//------------------------------------------------------------------------------------ -// Program main entry point -//----------------------------------------------"name=description> // Required for: atan2f() - -//------------------------------------------------------------------------------------ -// Program main entry point -//----------------------------------------------"property=og:image:alt> // Required for: atan2f() - -//------------------------------------------------------------------------------------ -// Program main entry point -//----------------------------------------------"property=og:description> // Required for: atan2f() - -//------------------------------------------------------------------------------------ -// Program main entry point -//----------------------------------------------"name=twitter:image:alt> // Required for: atan2f() - -//------------------------------------------------------------------------------------ -// Program main entry point -//----------------------------------------------"name=twitter:description>
\ No newline at end of file +shapes following eyes
\ No newline at end of file diff --git a/examples/shapes/shapes_lines_bezier.html b/examples/shapes/shapes_lines_bezier.html index 431eca3..49a3ad3 100644 --- a/examples/shapes/shapes_lines_bezier.html +++ b/examples/shapes/shapes_lines_bezier.html @@ -1,96 +1 @@ -shapes lines bezier
\ No newline at end of file +shapes lines bezier
\ No newline at end of file diff --git a/examples/shapes/shapes_logo_raylib.html b/examples/shapes/shapes_logo_raylib.html index 905187b..a33eb4f 100644 --- a/examples/shapes/shapes_logo_raylib.html +++ b/examples/shapes/shapes_logo_raylib.html @@ -1,96 +1 @@ -shapes logo raylib
\ No newline at end of file +shapes logo raylib
\ No newline at end of file diff --git a/examples/shapes/shapes_logo_raylib_anim.html b/examples/shapes/shapes_logo_raylib_anim.html index 070aa03..8878266 100644 --- a/examples/shapes/shapes_logo_raylib_anim.html +++ b/examples/shapes/shapes_logo_raylib_anim.html @@ -1,106 +1 @@ -shapes logo raylib anim
\ No newline at end of file +shapes logo raylib anim
\ No newline at end of file diff --git a/examples/shapes/shapes_rectangle_scaling.html b/examples/shapes/shapes_rectangle_scaling.html index e583cb9..09cfb1b 100644 --- a/examples/shapes/shapes_rectangle_scaling.html +++ b/examples/shapes/shapes_rectangle_scaling.html @@ -1,116 +1 @@ -shapes rectangle scaling
\ No newline at end of file +shapes rectangle scaling
\ No newline at end of file diff --git a/examples/shapes/shapes_top_down_lights.html b/examples/shapes/shapes_top_down_lights.html index e494506..d3cf6a7 100644 --- a/examples/shapes/shapes_top_down_lights.html +++ b/examples/shapes/shapes_top_down_lights.html @@ -1,11 +1 @@ -shapes top down lights
\ No newline at end of file +shapes top down lights
\ No newline at end of file diff --git a/examples/text/text_codepoints_loading.html b/examples/text/text_codepoints_loading.html index c3ab907..0d4af82 100644 --- a/examples/text/text_codepoints_loading.html +++ b/examples/text/text_codepoints_loading.html @@ -1,26 +1 @@ -text codepoints loading
\ No newline at end of file +text codepoints loading
\ No newline at end of file diff --git a/examples/text/text_draw_3d.html b/examples/text/text_draw_3d.html index c97c811..95f7076 100644 --- a/examples/text/text_draw_3d.html +++ b/examples/text/text_draw_3d.html @@ -1,31 +1 @@ -text draw 3d
\ No newline at end of file +text draw 3d
\ No newline at end of file diff --git a/examples/text/text_font_filters.html b/examples/text/text_font_filters.html index 442f266..0a71adb 100644 --- a/examples/text/text_font_filters.html +++ b/examples/text/text_font_filters.html @@ -1,31 +1 @@ -text font filters
\ No newline at end of file +text font filters
\ No newline at end of file diff --git a/examples/text/text_font_loading.html b/examples/text/text_font_loading.html index 8b06bd1..252f84e 100644 --- a/examples/text/text_font_loading.html +++ b/examples/text/text_font_loading.html @@ -1,36 +1 @@ -text font loading
\ No newline at end of file +text font loading
\ No newline at end of file diff --git a/examples/text/text_font_sdf.html b/examples/text/text_font_sdf.html index 5a4696e..734cbf6 100644 --- a/examples/text/text_font_sdf.html +++ b/examples/text/text_font_sdf.html @@ -1,46 +1 @@ -text font sdf
\ No newline at end of file +text font sdf
\ No newline at end of file diff --git a/examples/text/text_font_spritefont.html b/examples/text/text_font_spritefont.html index 4c7306a..23e9762 100644 --- a/examples/text/text_font_spritefont.html +++ b/examples/text/text_font_spritefont.html @@ -1,46 +1 @@ -text font spritefont
\ No newline at end of file +text font spritefont
\ No newline at end of file diff --git a/examples/text/text_format_text.html b/examples/text/text_format_text.html index 008f29a..4d80478 100644 --- a/examples/text/text_format_text.html +++ b/examples/text/text_format_text.html @@ -1,66 +1 @@ -text format text
\ No newline at end of file +text format text
\ No newline at end of file diff --git a/examples/text/text_raylib_fonts.html b/examples/text/text_raylib_fonts.html index 812fcf4..ca768f2 100644 --- a/examples/text/text_raylib_fonts.html +++ b/examples/text/text_raylib_fonts.html @@ -1,11 +1 @@ -text raylib fonts
\ No newline at end of file +text raylib fonts
\ No newline at end of file diff --git a/examples/text/text_rectangle_bounds.html b/examples/text/text_rectangle_bounds.html index 36a3474..98660e2 100644 --- a/examples/text/text_rectangle_bounds.html +++ b/examples/text/text_rectangle_bounds.html @@ -1,16 +1 @@ -text rectangle bounds
\ No newline at end of file +text rectangle bounds
\ No newline at end of file diff --git a/examples/text/text_unicode.html b/examples/text/text_unicode.html index 7e30b43..67fe438 100644 --- a/examples/text/text_unicode.html +++ b/examples/text/text_unicode.html @@ -1,21 +1 @@ -text unicode
\ No newline at end of file +text unicode
\ No newline at end of file diff --git a/examples/text/text_writing_anim.html b/examples/text/text_writing_anim.html index 45ce1e3..c4f0c73 100644 --- a/examples/text/text_writing_anim.html +++ b/examples/text/text_writing_anim.html @@ -1,21 +1 @@ -text writing anim
\ No newline at end of file +text writing anim
\ No newline at end of file diff --git a/examples/textures/textures_background_scrolling.html b/examples/textures/textures_background_scrolling.html index e8c4927..adf4364 100644 --- a/examples/textures/textures_background_scrolling.html +++ b/examples/textures/textures_background_scrolling.html @@ -1,26 +1 @@ -textures background scrolling
\ No newline at end of file +textures background scrolling
\ No newline at end of file diff --git a/examples/textures/textures_blend_modes.html b/examples/textures/textures_blend_modes.html index b48fff4..ad4aaf7 100644 --- a/examples/textures/textures_blend_modes.html +++ b/examples/textures/textures_blend_modes.html @@ -1,31 +1 @@ -textures blend modes
\ No newline at end of file +textures blend modes
\ No newline at end of file diff --git a/examples/textures/textures_bunnymark.html b/examples/textures/textures_bunnymark.html index 39ee645..6f9e3a6 100644 --- a/examples/textures/textures_bunnymark.html +++ b/examples/textures/textures_bunnymark.html @@ -1,46 +1 @@ -textures bunnymark
\ No newline at end of file +textures bunnymark
\ No newline at end of file diff --git a/examples/textures/textures_draw_tiled.html b/examples/textures/textures_draw_tiled.html index c400c70..53d3d02 100644 --- a/examples/textures/textures_draw_tiled.html +++ b/examples/textures/textures_draw_tiled.html @@ -1,46 +1 @@ -textures draw tiled
\ No newline at end of file +textures draw tiled
\ No newline at end of file diff --git a/examples/textures/textures_fog_of_war.html b/examples/textures/textures_fog_of_war.html index 0505b85..106c068 100644 --- a/examples/textures/textures_fog_of_war.html +++ b/examples/textures/textures_fog_of_war.html @@ -1,56 +1 @@ -textures fog of war
\ No newline at end of file +textures fog of war
\ No newline at end of file diff --git a/examples/textures/textures_gif_player.html b/examples/textures/textures_gif_player.html index 86c8b5b..2061e6f 100644 --- a/examples/textures/textures_gif_player.html +++ b/examples/textures/textures_gif_player.html @@ -1,71 +1 @@ -textures gif player
\ No newline at end of file +textures gif player
\ No newline at end of file diff --git a/examples/textures/textures_image_drawing.html b/examples/textures/textures_image_drawing.html index 981551b..4edde37 100644 --- a/examples/textures/textures_image_drawing.html +++ b/examples/textures/textures_image_drawing.html @@ -1,66 +1 @@ -textures image drawing
\ No newline at end of file +textures image drawing
\ No newline at end of file diff --git a/examples/textures/textures_image_generation.html b/examples/textures/textures_image_generation.html index 90aa1f3..68f94a7 100644 --- a/examples/textures/textures_image_generation.html +++ b/examples/textures/textures_image_generation.html @@ -1,66 +1 @@ -textures image generation
\ No newline at end of file +textures image generation
\ No newline at end of file diff --git a/examples/textures/textures_image_loading.html b/examples/textures/textures_image_loading.html index 91d9d9e..9d74113 100644 --- a/examples/textures/textures_image_loading.html +++ b/examples/textures/textures_image_loading.html @@ -1,81 +1 @@ -textures image loading
\ No newline at end of file +textures image loading
\ No newline at end of file diff --git a/examples/textures/textures_image_processing.html b/examples/textures/textures_image_processing.html index 6fae5e0..92e9ff3 100644 --- a/examples/textures/textures_image_processing.html +++ b/examples/textures/textures_image_processing.html @@ -1,121 +1 @@ -textures image processing // Required for: free() - -#define NUM_PROCESSES 9 - -typedef enum { - NONE = 0, - COLOR_GRAYSCALE, - COLOR_TINT, - COLOR_INVERT, - C"name=description> // Required for: free() - -#define NUM_PROCESSES 9 - -typedef enum { - NONE = 0, - COLOR_GRAYSCALE, - COLOR_TINT, - COLOR_INVERT, - C"property=og:image:alt> // Required for: free() - -#define NUM_PROCESSES 9 - -typedef enum { - NONE = 0, - COLOR_GRAYSCALE, - COLOR_TINT, - COLOR_INVERT, - C"property=og:description> // Required for: free() - -#define NUM_PROCESSES 9 - -typedef enum { - NONE = 0, - COLOR_GRAYSCALE, - COLOR_TINT, - COLOR_INVERT, - C"name=twitter:image:alt> // Required for: free() - -#define NUM_PROCESSES 9 - -typedef enum { - NONE = 0, - COLOR_GRAYSCALE, - COLOR_TINT, - COLOR_INVERT, - C"name=twitter:description>
\ No newline at end of file +textures image processing
\ No newline at end of file diff --git a/examples/textures/textures_image_rotate.html b/examples/textures/textures_image_rotate.html index dc251f5..d668296 100644 --- a/examples/textures/textures_image_rotate.html +++ b/examples/textures/textures_image_rotate.html @@ -1,106 +1 @@ -textures image rotate
\ No newline at end of file +textures image rotate
\ No newline at end of file diff --git a/examples/textures/textures_image_text.html b/examples/textures/textures_image_text.html index 1e1da8f..afe0336 100644 --- a/examples/textures/textures_image_text.html +++ b/examples/textures/textures_image_text.html @@ -1,101 +1 @@ -textures image text
\ No newline at end of file +textures image text
\ No newline at end of file diff --git a/examples/textures/textures_logo_raylib.html b/examples/textures/textures_logo_raylib.html index 2fbbdbd..c58a837 100644 --- a/examples/textures/textures_logo_raylib.html +++ b/examples/textures/textures_logo_raylib.html @@ -1,116 +1 @@ -textures logo raylib
\ No newline at end of file +textures logo raylib
\ No newline at end of file diff --git a/examples/textures/textures_mouse_painting.html b/examples/textures/textures_mouse_painting.html index edf02fc..d76ebf4 100644 --- a/examples/textures/textures_mouse_painting.html +++ b/examples/textures/textures_mouse_painting.html @@ -1,116 +1 @@ -textures mouse painting
\ No newline at end of file +textures mouse painting
\ No newline at end of file diff --git a/examples/textures/textures_npatch_drawing.html b/examples/textures/textures_npatch_drawing.html index f0836ca..d39fcbd 100644 --- a/examples/textures/textures_npatch_drawing.html +++ b/examples/textures/textures_npatch_drawing.html @@ -1,116 +1 @@ -textures npatch drawing
\ No newline at end of file +textures npatch drawing
\ No newline at end of file diff --git a/examples/textures/textures_particles_blending.html b/examples/textures/textures_particles_blending.html index 9ba5727..8d19f93 100644 --- a/examples/textures/textures_particles_blending.html +++ b/examples/textures/textures_particles_blending.html @@ -1,156 +1 @@ -textures particles blending
\ No newline at end of file +textures particles blending
\ No newline at end of file diff --git a/examples/textures/textures_polygon.html b/examples/textures/textures_polygon.html index f04e3f3..820786c 100644 --- a/examples/textures/textures_polygon.html +++ b/examples/textures/textures_polygon.html @@ -1,126 +1 @@ -textures polygon
\ No newline at end of file +textures polygon
\ No newline at end of file diff --git a/examples/textures/textures_raw_data.html b/examples/textures/textures_raw_data.html index a977486..c7832be 100644 --- a/examples/textures/textures_raw_data.html +++ b/examples/textures/textures_raw_data.html @@ -1,146 +1 @@ -textures raw data // Required for: malloc() and free() - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture from raw data"); - - // NOTE: Textur"name=description> // Required for: malloc() and free() - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture from raw data"); - - // NOTE: Textur"property=og:image:alt> // Required for: malloc() and free() - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture from raw data"); - - // NOTE: Textur"property=og:description> // Required for: malloc() and free() - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture from raw data"); - - // NOTE: Textur"name=twitter:image:alt> // Required for: malloc() and free() - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture from raw data"); - - // NOTE: Textur"name=twitter:description>
\ No newline at end of file +textures raw data
\ No newline at end of file diff --git a/examples/textures/textures_rectangle.data b/examples/textures/textures_rectangle.data deleted file mode 100644 index be3b83d..0000000 Binary files a/examples/textures/textures_rectangle.data and /dev/null differ diff --git a/examples/textures/textures_rectangle.html b/examples/textures/textures_rectangle.html deleted file mode 100644 index 4e1ee11..0000000 --- a/examples/textures/textures_rectangle.html +++ /dev/null @@ -1 +0,0 @@ -raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/textures/textures_rectangle.js b/examples/textures/textures_rectangle.js deleted file mode 100644 index 900fc10..0000000 --- a/examples/textures/textures_rectangle.js +++ /dev/null @@ -1 +0,0 @@ -var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="textures/textures_rectangle.data";var REMOTE_PACKAGE_BASE="textures_rectangle.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="textures_rectangle.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["Zd"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ae"];addOnInit(Module["asm"]["_d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"Z":GetCanvasHeight,"_":GetCanvasWidth,"b":___assert_fail,"F":___sys_fcntl64,"Oa":___sys_getcwd,"Ra":___sys_ioctl,"Sa":___sys_open,"X":_emscripten_get_element_css_size,"R":_emscripten_get_gamepad_status,"S":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"L":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Ed":_emscripten_glBindFramebuffer,"Dd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"jd":_emscripten_glCopyTexSubImage2D,"id":_emscripten_glCreateProgram,"gd":_emscripten_glCreateShader,"fd":_emscripten_glCullFace,"ed":_emscripten_glDeleteBuffers,"dd":_emscripten_glDeleteFramebuffers,"cd":_emscripten_glDeleteProgram,"N":_emscripten_glDeleteQueriesEXT,"bd":_emscripten_glDeleteRenderbuffers,"ad":_emscripten_glDeleteShader,"$c":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"_c":_emscripten_glDepthFunc,"Zc":_emscripten_glDepthMask,"Yc":_emscripten_glDepthRangef,"Xc":_emscripten_glDetachShader,"Wc":_emscripten_glDisable,"Vc":_emscripten_glDisableVertexAttribArray,"Uc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Tc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Sc":_emscripten_glEnable,"Rc":_emscripten_glEnableVertexAttribArray,"K":_emscripten_glEndQueryEXT,"Qc":_emscripten_glFinish,"Pc":_emscripten_glFlush,"Nc":_emscripten_glFramebufferRenderbuffer,"Mc":_emscripten_glFramebufferTexture2D,"Lc":_emscripten_glFrontFace,"Kc":_emscripten_glGenBuffers,"Ic":_emscripten_glGenFramebuffers,"O":_emscripten_glGenQueriesEXT,"Hc":_emscripten_glGenRenderbuffers,"Gc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Jc":_emscripten_glGenerateMipmap,"Fc":_emscripten_glGetActiveAttrib,"Ec":_emscripten_glGetActiveUniform,"Dc":_emscripten_glGetAttachedShaders,"Cc":_emscripten_glGetAttribLocation,"Bc":_emscripten_glGetBooleanv,"Ac":_emscripten_glGetBufferParameteriv,"zc":_emscripten_glGetError,"yc":_emscripten_glGetFloatv,"xc":_emscripten_glGetFramebufferAttachmentParameteriv,"wc":_emscripten_glGetIntegerv,"uc":_emscripten_glGetProgramInfoLog,"vc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"tc":_emscripten_glGetRenderbufferParameteriv,"rc":_emscripten_glGetShaderInfoLog,"qc":_emscripten_glGetShaderPrecisionFormat,"pc":_emscripten_glGetShaderSource,"sc":_emscripten_glGetShaderiv,"oc":_emscripten_glGetString,"nc":_emscripten_glGetTexParameterfv,"mc":_emscripten_glGetTexParameteriv,"ic":_emscripten_glGetUniformLocation,"lc":_emscripten_glGetUniformfv,"kc":_emscripten_glGetUniformiv,"fc":_emscripten_glGetVertexAttribPointerv,"hc":_emscripten_glGetVertexAttribfv,"gc":_emscripten_glGetVertexAttribiv,"ec":_emscripten_glHint,"dc":_emscripten_glIsBuffer,"cc":_emscripten_glIsEnabled,"bc":_emscripten_glIsFramebuffer,"ac":_emscripten_glIsProgram,"M":_emscripten_glIsQueryEXT,"$b":_emscripten_glIsRenderbuffer,"Zb":_emscripten_glIsShader,"Yb":_emscripten_glIsTexture,"Od":_emscripten_glIsVertexArrayOES,"Xb":_emscripten_glLineWidth,"Wb":_emscripten_glLinkProgram,"Vb":_emscripten_glPixelStorei,"Ub":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Tb":_emscripten_glReadPixels,"Sb":_emscripten_glReleaseShaderCompiler,"Rb":_emscripten_glRenderbufferStorage,"Qb":_emscripten_glSampleCoverage,"Ob":_emscripten_glScissor,"Nb":_emscripten_glShaderBinary,"Mb":_emscripten_glShaderSource,"Lb":_emscripten_glStencilFunc,"Kb":_emscripten_glStencilFuncSeparate,"Jb":_emscripten_glStencilMask,"Ib":_emscripten_glStencilMaskSeparate,"Hb":_emscripten_glStencilOp,"Gb":_emscripten_glStencilOpSeparate,"Fb":_emscripten_glTexImage2D,"Db":_emscripten_glTexParameterf,"Cb":_emscripten_glTexParameterfv,"Bb":_emscripten_glTexParameteri,"Ab":_emscripten_glTexParameteriv,"zb":_emscripten_glTexSubImage2D,"yb":_emscripten_glUniform1f,"xb":_emscripten_glUniform1fv,"wb":_emscripten_glUniform1i,"vb":_emscripten_glUniform1iv,"ub":_emscripten_glUniform2f,"sb":_emscripten_glUniform2fv,"rb":_emscripten_glUniform2i,"qb":_emscripten_glUniform2iv,"pb":_emscripten_glUniform3f,"ob":_emscripten_glUniform3fv,"nb":_emscripten_glUniform3i,"mb":_emscripten_glUniform3iv,"lb":_emscripten_glUniform4f,"kb":_emscripten_glUniform4fv,"jb":_emscripten_glUniform4i,"hb":_emscripten_glUniform4iv,"gb":_emscripten_glUniformMatrix2fv,"fb":_emscripten_glUniformMatrix3fv,"eb":_emscripten_glUniformMatrix4fv,"db":_emscripten_glUseProgram,"cb":_emscripten_glValidateProgram,"bb":_emscripten_glVertexAttrib1f,"ab":_emscripten_glVertexAttrib1fv,"$a":_emscripten_glVertexAttrib2f,"_a":_emscripten_glVertexAttrib2fv,"Ya":_emscripten_glVertexAttrib3f,"Xa":_emscripten_glVertexAttrib3fv,"Wa":_emscripten_glVertexAttrib4f,"Va":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Ua":_emscripten_glVertexAttribPointer,"Ta":_emscripten_glViewport,"La":_emscripten_memcpy_big,"Ma":_emscripten_resize_heap,"s":_emscripten_run_script,"T":_emscripten_sample_gamepad_data,"Y":_emscripten_set_canvas_element_size,"xa":_emscripten_set_click_callback_on_thread,"sa":_emscripten_set_gamepadconnected_callback_on_thread,"ra":_emscripten_set_gamepaddisconnected_callback_on_thread,"ya":_emscripten_set_resize_callback_on_thread,"ta":_emscripten_set_touchcancel_callback_on_thread,"va":_emscripten_set_touchend_callback_on_thread,"ua":_emscripten_set_touchmove_callback_on_thread,"wa":_emscripten_set_touchstart_callback_on_thread,"V":_emscripten_sleep,"Na":_emscripten_thread_sleep,"P":_exit,"G":_fd_close,"Pa":_fd_read,"Ka":_fd_seek,"E":_fd_write,"t":_glActiveTexture,"x":_glAttachShader,"g":_glBindAttribLocation,"a":_glBindBuffer,"h":_glBindTexture,"jc":_glBlendFunc,"l":_glBufferData,"r":_glBufferSubData,"H":_glClear,"I":_glClearColor,"tb":_glClearDepthf,"Ea":_glCompileShader,"Ja":_glCompressedTexImage2D,"Ca":_glCreateProgram,"Ga":_glCreateShader,"Pb":_glCullFace,"j":_glDeleteBuffers,"A":_glDeleteProgram,"B":_glDeleteShader,"D":_glDeleteTextures,"_b":_glDepthFunc,"C":_glDetachShader,"hd":_glDisable,"k":_glDisableVertexAttribArray,"Nd":_glDrawArrays,"Cd":_glDrawElements,"J":_glEnable,"e":_glEnableVertexAttribArray,"Eb":_glFrontFace,"m":_glGenBuffers,"Za":_glGenTextures,"q":_glGetAttribLocation,"Oc":_glGetFloatv,"Aa":_glGetProgramInfoLog,"z":_glGetProgramiv,"Da":_glGetShaderInfoLog,"y":_glGetShaderiv,"i":_glGetString,"p":_glGetUniformLocation,"Ba":_glLinkProgram,"ib":_glPixelStorei,"Ia":_glReadPixels,"Fa":_glShaderSource,"Qa":_glTexImage2D,"n":_glTexParameteri,"$":_glUniform1i,"ja":_glUniform4f,"Ha":_glUniformMatrix4fv,"o":_glUseProgram,"f":_glVertexAttribPointer,"Yd":_glViewport,"v":_glfwCreateWindow,"oa":_glfwDefaultWindowHints,"W":_glfwDestroyWindow,"w":_glfwGetPrimaryMonitor,"d":_glfwGetTime,"na":_glfwGetVideoModes,"pa":_glfwInit,"ba":_glfwMakeContextCurrent,"ga":_glfwSetCharCallback,"ca":_glfwSetCursorEnterCallback,"ea":_glfwSetCursorPosCallback,"ia":_glfwSetDropCallback,"qa":_glfwSetErrorCallback,"ha":_glfwSetKeyCallback,"fa":_glfwSetMouseButtonCallback,"da":_glfwSetScrollCallback,"ka":_glfwSetWindowFocusCallback,"la":_glfwSetWindowIconifyCallback,"Q":_glfwSetWindowShouldClose,"ma":_glfwSetWindowSizeCallback,"U":_glfwSwapBuffers,"aa":_glfwSwapInterval,"u":_glfwTerminate,"c":_glfwWindowHint,"za":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["_d"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["$d"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["be"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ce"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["de"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["ee"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["fe"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["me"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["ne"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["qe"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/textures/textures_rectangle.wasm b/examples/textures/textures_rectangle.wasm deleted file mode 100644 index 555b1e7..0000000 Binary files a/examples/textures/textures_rectangle.wasm and /dev/null differ diff --git a/examples/textures/textures_sprite_anim.html b/examples/textures/textures_sprite_anim.html index 057fc08..54885ee 100644 --- a/examples/textures/textures_sprite_anim.html +++ b/examples/textures/textures_sprite_anim.html @@ -1 +1 @@ -raylib web game
\ No newline at end of file +textures sprite anim
\ No newline at end of file diff --git a/examples/textures/textures_sprite_button.html b/examples/textures/textures_sprite_button.html index 70b9215..ccc717e 100644 --- a/examples/textures/textures_sprite_button.html +++ b/examples/textures/textures_sprite_button.html @@ -1 +1 @@ -raylib web game
\ No newline at end of file +textures sprite button
\ No newline at end of file diff --git a/examples/textures/textures_sprite_explosion.html b/examples/textures/textures_sprite_explosion.html index 3ebdef8..c164287 100644 --- a/examples/textures/textures_sprite_explosion.html +++ b/examples/textures/textures_sprite_explosion.html @@ -1 +1 @@ -raylib web game
\ No newline at end of file +textures sprite explosion
\ No newline at end of file diff --git a/examples/textures/textures_srcrec_dstrec.html b/examples/textures/textures_srcrec_dstrec.html index a52b227..b1292e2 100644 --- a/examples/textures/textures_srcrec_dstrec.html +++ b/examples/textures/textures_srcrec_dstrec.html @@ -1 +1 @@ -raylib web game
\ No newline at end of file +textures srcrec dstrec
\ No newline at end of file diff --git a/examples/textures/textures_textured_curve.html b/examples/textures/textures_textured_curve.html index 486e517..a9f0e94 100644 --- a/examples/textures/textures_textured_curve.html +++ b/examples/textures/textures_textured_curve.html @@ -1,11 +1 @@ -textures textured curve
\ No newline at end of file +textures textured curve
\ No newline at end of file diff --git a/examples/textures/textures_to_image.html b/examples/textures/textures_to_image.html index d43d240..45fbbb4 100644 --- a/examples/textures/textures_to_image.html +++ b/examples/textures/textures_to_image.html @@ -1,21 +1 @@ -textures to image
\ No newline at end of file +textures to image
\ No newline at end of file -- cgit v1.2.3