From 04b94b57f008ddc688e27854d7262941fb969e0b Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 8 Nov 2023 21:23:15 +0100 Subject: [PATCH] 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 +---- .../core/core_2d_camera_split_screen.html | 52 +---- .../core/core_3d_camera_first_person.html | 87 +------- examples/core/core_3d_camera_free.html | 77 +------ examples/core/core_3d_camera_mode.html | 92 +------- .../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 +--- .../shapes/shapes_draw_circle_sector.html | 37 +--- .../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_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_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 +----- .../textures/textures_image_generation.html | 67 +----- examples/textures/textures_image_loading.html | 82 +------ .../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 +--------- .../textures/textures_mouse_painting.html | 117 +--------- .../textures/textures_npatch_drawing.html | 117 +--------- .../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 +- .../textures/textures_sprite_explosion.html | 2 +- examples/textures/textures_srcrec_dstrec.html | 2 +- .../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 dda95fe3..beeec704 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 d47e498a..6a9c2df7 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 ab7bff9c..b6da51a7 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 ffcec02e..941ad6e5 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 0cea2a53..0543dcec 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 a91b0d18..3794321b 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 14d0c0f6..16863dea 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 bebfd5b7..e3875571 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 198e9320..8858419b 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 fc956c65..c6b7f62f 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 9e3a67f7..7b744301 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 5f271831..bff510d8 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 b3e805aa..4d2d8b03 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 7aecfd6c..25ba5782 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 d9a0ea77..36330d20 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 4ca17075..567d880d 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 736660c8..1006269e 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 2716690a..db06e6b4 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 960dc4d6..0bf303d1 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 02b1d89e..793a5df7 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 732532c0..1e4fec7a 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 eab60eed..12076d86 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 438833a4..7735f642 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 926bfa5d..35417f81 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 e79b5fba..f11b8779 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 1c94e719..322a9fa6 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 867f2de4..de205925 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 2700fffb..7beed096 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 da56e678..2a51634f 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 f4b27384..baffc502 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 c611c9ea..20d04d69 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 581b8667..7518fd69 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 ebc617f7..1411f926 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 32549690..bb2c1615 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 85a144c4..f5d4c851 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 f0eb44c4..e7e36257 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 275e73c4..142f4184 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 23597e86..7aa055f0 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 80f735b0..4603d422 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 4ab6c9b9..fa79c6c7 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 705141e4..5333d1de 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 4009cbe0..dd32be73 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 c80baa4e..569e146e 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 9db5b999..5cc1b049 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 56f7337f..c213cfe4 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 ec93cd1a..9c5c0111 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 7e2e6045..d57a97c1 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 d27075c0..13d3c517 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 5b4db229..6e9681a4 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 5ba7ed63..8ba60f2f 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 ce5cba9a..d0cb09b0 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 7369653f..207ce0d4 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 f4845f65..08e6d801 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 36cbf87b..5c089662 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 28473cb9..9c336286 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 9d260b1f..99425123 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 fd0b8721..86882cc4 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 33c3f2e3..783647aa 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 5d06df59..c83b5029 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 e9ea2327..3614e918 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 ac2c6366..293e7aec 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 0e54defc..4392d76d 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 08031779..cf13d9e6 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 af1c7861..e4af753a 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 8888088b..34582845 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 40a9670c..f2da1951 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 7b2bb451..0a58dd98 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 39457a9d..9a56e6c4 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 0d2766b5..24c3b324 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 bc0c3225..a9777207 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 df2ed2d2..902ec4a0 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 b8bfa167..3b2c0e74 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 c9c7c6d7..d3fe63d9 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 1c529495..5ee46048 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 f30d9646..26af95e6 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 3cf84ba3..394faf22 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 e596aa66..fccc8498 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 f70d27b8..385727b4 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 aec67110..d0a6f5e4 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 dc47256c1c8728080c9ee00e8e53d11ac4d71f0a..08889c845cdfa497e3c1d3d0246cf670bcaf144f 100644 GIT binary patch delta 3713 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 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 f369837d..aac4c7e3 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 aecc2522..80cb70cf 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 8ae89398..ccfa31a9 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 f6ad9673..29475cf2 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 df3bcf44..1c4e2dc4 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 2087f9ac..e296ae71 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 3767ba6e..6784d5a5 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 45c58bf5..cda721f1 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 431eca39..49a3ad34 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 905187b1..a33eb4fc 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 070aa034..8878266c 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 e583cb96..09cfb1b3 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 e494506e..d3cf6a74 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 c3ab907c..0d4af825 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 c97c811c..95f7076f 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 442f266e..0a71adb6 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 8b06bd1c..252f84e5 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 5a4696e4..734cbf65 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 4c7306a4..23e9762c 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 008f29a6..4d804787 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 812fcf4c..ca768f29 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 36a34742..98660e2c 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 7e30b437..67fe4388 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 45ce1e37..c4f0c734 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 e8c4927f..adf4364e 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 b48fff4b..ad4aaf7a 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 39ee6452..6f9e3a64 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 c400c702..53d3d02e 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 0505b853..106c0684 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 86c8b5b2..2061e6fe 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 981551b9..4edde373 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 90aa1f30..68f94a75 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 91d9d9e5..9d741134 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 6fae5e06..92e9ff39 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 dc251f5d..d6682960 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 1e1da8f9..afe0336d 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 2fbbdbdf..c58a8378 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 edf02fce..d76ebf49 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 f0836ca5..d39fcbd9 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 9ba57276..8d19f938 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 f04e3f37..820786cf 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 a9774862..c7832bef 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 be3b83d0e7f523e2cf80da19e274a8479e33fe13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10394 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 E4?57ykpKVy diff --git a/examples/textures/textures_rectangle.html b/examples/textures/textures_rectangle.html deleted file mode 100644 index 4e1ee115..00000000 --- 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 900fc105..00000000 --- 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 555b1e766675093be5a0a6bb96d191b9ef72e4b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137438 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

hzlX76MtMuwaZ1fk&$@2CuUd)3?yF^yYgU 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 L0jLg{9?$qcsWSLN diff --git a/examples/textures/textures_sprite_anim.html b/examples/textures/textures_sprite_anim.html index 057fc08d..54885ee7 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 70b92155..ccc717e7 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 3ebdef8c..c164287d 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 a52b227f..b1292e22 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 486e517a..a9f0e942 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 d43d2403..45fbbb43 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