From 5286546ad48ff1891e5caf3b6a874fa7a0edb2c3 Mon Sep 17 00:00:00 2001 From: ChrisDill Date: Fri, 17 Aug 2018 09:34:50 +0100 Subject: [PATCH] Added Raymath binding + Initial examples - Added Raymath.cs binding. Raylib.cs depends on this since they both share some types. - Bindings moved into source directly. - Inital examples port alot of syntax still needs to be fixed. - Couldn't get cppsharp to work correctly so using a custom generator(WIP). --- .../{Raylib-cs => }/DrawControl.cs | 22 +- .../{Raylib-cs => }/DrawControl.resx | 0 ExampleApplication/Easings.cs | 27 + ExampleApplication/ExampleApplication.csproj | 170 +- .../Examples/audio/audio_module_playing.cs | 153 +- .../Examples/audio/audio_music_stream.c | 93 - .../Examples/audio/audio_music_stream.cs | 8 + .../Examples/audio/audio_raw_stream.c | 114 - .../Examples/audio/audio_raw_stream.cs | 8 + .../Examples/audio/audio_sound_loading.c | 67 - .../Examples/audio/audio_sound_loading.cs | 8 + .../Examples/core/core_2d_camera.c | 139 -- .../Examples/core/core_2d_camera.cs | 8 + .../core/core_3d_camera_first_person.c | 97 - .../core/core_3d_camera_first_person.cs | 8 + .../Examples/core/core_3d_camera_free.c | 83 - .../Examples/core/core_3d_camera_free.cs | 8 + .../Examples/core/core_3d_mode.c | 73 - .../Examples/core/core_3d_mode.cs | 8 + .../Examples/core/core_3d_picking.c | 103 - .../Examples/core/core_3d_picking.cs | 8 + .../Examples/core/core_basic_window.cs | 72 +- .../Examples/core/core_basic_window_web.c | 85 - .../Examples/core/core_color_select.c | 94 - .../Examples/core/core_color_select.cs | 8 + .../Examples/core/core_drop_files.c | 76 - .../Examples/core/core_drop_files.cs | 8 + .../Examples/core/core_gestures_detection.c | 115 - .../Examples/core/core_gestures_detection.cs | 8 + .../Examples/core/core_input_gamepad.c | 194 -- .../Examples/core/core_input_gamepad.cs | 8 + .../Examples/core/core_input_keys.c | 59 - .../Examples/core/core_input_keys.cs | 8 + .../Examples/core/core_input_mouse.c | 61 - .../Examples/core/core_input_mouse.cs | 8 + .../Examples/core/core_mouse_wheel.c | 58 - .../Examples/core/core_mouse_wheel.cs | 8 + .../Examples/core/core_random_values.c | 65 - .../Examples/core/core_random_values.cs | 8 + .../Examples/core/core_storage_values.c | 85 - .../Examples/core/core_storage_values.cs | 8 + .../Examples/core/core_vr_simulator.c | 86 - .../Examples/core/core_vr_simulator.cs | 8 + .../Examples/core/core_world_screen.c | 79 - .../Examples/core/core_world_screen.cs | 8 + .../Examples/models/models_billboard.c | 76 - .../Examples/models/models_billboard.cs | 8 + .../Examples/models/models_box_collisions.c | 121 -- .../Examples/models/models_box_collisions.cs | 8 + .../Examples/models/models_cubicmap.c | 87 - .../Examples/models/models_cubicmap.cs | 8 + .../Examples/models/models_geometric_shapes.c | 80 - .../models/models_geometric_shapes.cs | 8 + .../Examples/models/models_heightmap.c | 82 - .../Examples/models/models_heightmap.cs | 8 + .../Examples/models/models_material_pbr.c | 196 -- .../Examples/models/models_material_pbr.cs | 8 + .../Examples/models/models_mesh_generation.c | 113 - .../Examples/models/models_mesh_generation.cs | 8 + .../Examples/models/models_mesh_picking.c | 201 -- .../Examples/models/models_mesh_picking.cs | 8 + .../Examples/models/models_obj_loading.c | 80 - .../Examples/models/models_obj_loading.cs | 8 + .../models/models_orthographic_projection.c | 97 - .../models/models_orthographic_projection.cs | 8 + .../Examples/models/models_skybox.c | 90 - .../Examples/models/models_skybox.cs | 8 + .../Examples/models/models_yaw_pitch_roll.c | 199 -- .../Examples/models/models_yaw_pitch_roll.cs | 8 + ExampleApplication/Examples/models/rlights.h | 177 -- .../Examples/physac/physics_demo.c | 137 -- .../Examples/physac/physics_demo.cs | 8 + .../Examples/physac/physics_friction.c | 144 -- .../Examples/physac/physics_friction.cs | 8 + .../Examples/physac/physics_movement.c | 130 -- .../Examples/physac/physics_movement.cs | 8 + .../Examples/physac/physics_restitution.c | 123 -- .../Examples/physac/physics_restitution.cs | 8 + .../Examples/physac/physics_shatter.c | 121 -- .../Examples/physac/physics_shatter.cs | 8 + .../Examples/shaders/shaders_custom_uniform.c | 126 -- .../shaders/shaders_custom_uniform.cs | 8 + .../Examples/shaders/shaders_model_shader.c | 98 - .../Examples/shaders/shaders_model_shader.cs | 8 + .../Examples/shaders/shaders_postprocessing.c | 179 -- .../shaders/shaders_postprocessing.cs | 8 + .../shaders/shaders_shapes_textures.c | 109 - .../shaders/shaders_shapes_textures.cs | 8 + .../Examples/shapes/shapes_basic_shapes.cs | 82 +- .../Examples/shapes/shapes_colors_palette.c | 97 - .../Examples/shapes/shapes_colors_palette.cs | 8 + .../Examples/shapes/shapes_lines_bezier.c | 59 - .../Examples/shapes/shapes_lines_bezier.cs | 8 + .../Examples/shapes/shapes_logo_raylib.c | 56 - .../Examples/shapes/shapes_logo_raylib.cs | 8 + .../Examples/shapes/shapes_logo_raylib_anim.c | 160 -- .../shapes/shapes_logo_raylib_anim.cs | 8 + .../Examples/text/text_bmfont_ttf.c | 68 - .../Examples/text/text_bmfont_ttf.cs | 8 + .../Examples/text/text_bmfont_unordered.c | 65 - .../Examples/text/text_bmfont_unordered.cs | 8 + .../Examples/text/text_font_sdf.c | 126 -- .../Examples/text/text_font_sdf.cs | 8 + .../Examples/text/text_format_text.c | 62 - .../Examples/text/text_format_text.cs | 8 + .../Examples/text/text_input_box.c | 116 -- .../Examples/text/text_input_box.cs | 8 + .../Examples/text/text_raylib_fonts.c | 103 - .../Examples/text/text_raylib_fonts.cs | 8 + .../Examples/text/text_sprite_fonts.c | 77 - .../Examples/text/text_sprite_fonts.cs | 8 + .../Examples/text/text_ttf_loading.c | 136 -- .../Examples/text/text_ttf_loading.cs | 8 + .../Examples/text/text_writing_anim.c | 62 - .../Examples/text/text_writing_anim.cs | 8 + .../textures/textures_image_drawing.cs | 96 +- .../textures/textures_image_generation.c | 105 - .../textures/textures_image_generation.cs | 8 + .../textures/textures_image_loading.c | 63 - .../textures/textures_image_loading.cs | 8 + .../textures/textures_image_processing.c | 145 -- .../textures/textures_image_processing.cs | 8 + .../Examples/textures/textures_image_text.c | 83 - .../Examples/textures/textures_image_text.cs | 8 + .../Examples/textures/textures_logo_raylib.c | 57 - .../Examples/textures/textures_logo_raylib.cs | 8 + .../textures/textures_particles_blending.c | 135 -- .../textures/textures_particles_blending.cs | 8 + .../Examples/textures/textures_raw_data.c | 95 - .../Examples/textures/textures_raw_data.cs | 8 + .../Examples/textures/textures_rectangle.c | 99 - .../Examples/textures/textures_rectangle.cs | 8 + .../textures/textures_srcrec_dstrec.c | 81 - .../textures/textures_srcrec_dstrec.cs | 8 + .../Examples/textures/textures_to_image.c | 68 - .../Examples/textures/textures_to_image.cs | 8 + ExampleApplication/Physac.cs | 168 ++ ExampleApplication/Program.cs | 6 +- ExampleApplication/Raygui.cs | 27 + ExampleApplication/Raylib-cs/Raylib.cs | 1841 ----------------- ExampleApplication/Raylib.cs | 1654 +++++++++++++++ ExampleApplication/Raymath.cs | 462 +++++ ExampleApplication/Rlgl.cs | 27 + .../bin/Debug/ExampleApplication.exe | Bin 38912 -> 44544 bytes ExampleApplication/bin/Debug/raylib.dll | Bin 2527744 -> 3138048 bytes ExampleApplication/core_basic_window.cs | 8 + Generator/Generator.cs | 227 +- Generator/Generator.csproj | 89 +- Generator/Program.cs | 12 +- Generator/Properties/AssemblyInfo.cs | 6 +- Generator/packages.config | 5 - README.md | 41 +- Raylib-cs.sln | 26 +- header.png | Bin 5120 -> 0 bytes 154 files changed, 3170 insertions(+), 9265 deletions(-) rename ExampleApplication/{Raylib-cs => }/DrawControl.cs (65%) rename ExampleApplication/{Raylib-cs => }/DrawControl.resx (100%) create mode 100644 ExampleApplication/Easings.cs delete mode 100644 ExampleApplication/Examples/audio/audio_music_stream.c create mode 100644 ExampleApplication/Examples/audio/audio_music_stream.cs delete mode 100644 ExampleApplication/Examples/audio/audio_raw_stream.c create mode 100644 ExampleApplication/Examples/audio/audio_raw_stream.cs delete mode 100644 ExampleApplication/Examples/audio/audio_sound_loading.c create mode 100644 ExampleApplication/Examples/audio/audio_sound_loading.cs delete mode 100644 ExampleApplication/Examples/core/core_2d_camera.c create mode 100644 ExampleApplication/Examples/core/core_2d_camera.cs delete mode 100644 ExampleApplication/Examples/core/core_3d_camera_first_person.c create mode 100644 ExampleApplication/Examples/core/core_3d_camera_first_person.cs delete mode 100644 ExampleApplication/Examples/core/core_3d_camera_free.c create mode 100644 ExampleApplication/Examples/core/core_3d_camera_free.cs delete mode 100644 ExampleApplication/Examples/core/core_3d_mode.c create mode 100644 ExampleApplication/Examples/core/core_3d_mode.cs delete mode 100644 ExampleApplication/Examples/core/core_3d_picking.c create mode 100644 ExampleApplication/Examples/core/core_3d_picking.cs delete mode 100644 ExampleApplication/Examples/core/core_basic_window_web.c delete mode 100644 ExampleApplication/Examples/core/core_color_select.c create mode 100644 ExampleApplication/Examples/core/core_color_select.cs delete mode 100644 ExampleApplication/Examples/core/core_drop_files.c create mode 100644 ExampleApplication/Examples/core/core_drop_files.cs delete mode 100644 ExampleApplication/Examples/core/core_gestures_detection.c create mode 100644 ExampleApplication/Examples/core/core_gestures_detection.cs delete mode 100644 ExampleApplication/Examples/core/core_input_gamepad.c create mode 100644 ExampleApplication/Examples/core/core_input_gamepad.cs delete mode 100644 ExampleApplication/Examples/core/core_input_keys.c create mode 100644 ExampleApplication/Examples/core/core_input_keys.cs delete mode 100644 ExampleApplication/Examples/core/core_input_mouse.c create mode 100644 ExampleApplication/Examples/core/core_input_mouse.cs delete mode 100644 ExampleApplication/Examples/core/core_mouse_wheel.c create mode 100644 ExampleApplication/Examples/core/core_mouse_wheel.cs delete mode 100644 ExampleApplication/Examples/core/core_random_values.c create mode 100644 ExampleApplication/Examples/core/core_random_values.cs delete mode 100644 ExampleApplication/Examples/core/core_storage_values.c create mode 100644 ExampleApplication/Examples/core/core_storage_values.cs delete mode 100644 ExampleApplication/Examples/core/core_vr_simulator.c create mode 100644 ExampleApplication/Examples/core/core_vr_simulator.cs delete mode 100644 ExampleApplication/Examples/core/core_world_screen.c create mode 100644 ExampleApplication/Examples/core/core_world_screen.cs delete mode 100644 ExampleApplication/Examples/models/models_billboard.c create mode 100644 ExampleApplication/Examples/models/models_billboard.cs delete mode 100644 ExampleApplication/Examples/models/models_box_collisions.c create mode 100644 ExampleApplication/Examples/models/models_box_collisions.cs delete mode 100644 ExampleApplication/Examples/models/models_cubicmap.c create mode 100644 ExampleApplication/Examples/models/models_cubicmap.cs delete mode 100644 ExampleApplication/Examples/models/models_geometric_shapes.c create mode 100644 ExampleApplication/Examples/models/models_geometric_shapes.cs delete mode 100644 ExampleApplication/Examples/models/models_heightmap.c create mode 100644 ExampleApplication/Examples/models/models_heightmap.cs delete mode 100644 ExampleApplication/Examples/models/models_material_pbr.c create mode 100644 ExampleApplication/Examples/models/models_material_pbr.cs delete mode 100644 ExampleApplication/Examples/models/models_mesh_generation.c create mode 100644 ExampleApplication/Examples/models/models_mesh_generation.cs delete mode 100644 ExampleApplication/Examples/models/models_mesh_picking.c create mode 100644 ExampleApplication/Examples/models/models_mesh_picking.cs delete mode 100644 ExampleApplication/Examples/models/models_obj_loading.c create mode 100644 ExampleApplication/Examples/models/models_obj_loading.cs delete mode 100644 ExampleApplication/Examples/models/models_orthographic_projection.c create mode 100644 ExampleApplication/Examples/models/models_orthographic_projection.cs delete mode 100644 ExampleApplication/Examples/models/models_skybox.c create mode 100644 ExampleApplication/Examples/models/models_skybox.cs delete mode 100644 ExampleApplication/Examples/models/models_yaw_pitch_roll.c create mode 100644 ExampleApplication/Examples/models/models_yaw_pitch_roll.cs delete mode 100644 ExampleApplication/Examples/models/rlights.h delete mode 100644 ExampleApplication/Examples/physac/physics_demo.c create mode 100644 ExampleApplication/Examples/physac/physics_demo.cs delete mode 100644 ExampleApplication/Examples/physac/physics_friction.c create mode 100644 ExampleApplication/Examples/physac/physics_friction.cs delete mode 100644 ExampleApplication/Examples/physac/physics_movement.c create mode 100644 ExampleApplication/Examples/physac/physics_movement.cs delete mode 100644 ExampleApplication/Examples/physac/physics_restitution.c create mode 100644 ExampleApplication/Examples/physac/physics_restitution.cs delete mode 100644 ExampleApplication/Examples/physac/physics_shatter.c create mode 100644 ExampleApplication/Examples/physac/physics_shatter.cs delete mode 100644 ExampleApplication/Examples/shaders/shaders_custom_uniform.c create mode 100644 ExampleApplication/Examples/shaders/shaders_custom_uniform.cs delete mode 100644 ExampleApplication/Examples/shaders/shaders_model_shader.c create mode 100644 ExampleApplication/Examples/shaders/shaders_model_shader.cs delete mode 100644 ExampleApplication/Examples/shaders/shaders_postprocessing.c create mode 100644 ExampleApplication/Examples/shaders/shaders_postprocessing.cs delete mode 100644 ExampleApplication/Examples/shaders/shaders_shapes_textures.c create mode 100644 ExampleApplication/Examples/shaders/shaders_shapes_textures.cs delete mode 100644 ExampleApplication/Examples/shapes/shapes_colors_palette.c create mode 100644 ExampleApplication/Examples/shapes/shapes_colors_palette.cs delete mode 100644 ExampleApplication/Examples/shapes/shapes_lines_bezier.c create mode 100644 ExampleApplication/Examples/shapes/shapes_lines_bezier.cs delete mode 100644 ExampleApplication/Examples/shapes/shapes_logo_raylib.c create mode 100644 ExampleApplication/Examples/shapes/shapes_logo_raylib.cs delete mode 100644 ExampleApplication/Examples/shapes/shapes_logo_raylib_anim.c create mode 100644 ExampleApplication/Examples/shapes/shapes_logo_raylib_anim.cs delete mode 100644 ExampleApplication/Examples/text/text_bmfont_ttf.c create mode 100644 ExampleApplication/Examples/text/text_bmfont_ttf.cs delete mode 100644 ExampleApplication/Examples/text/text_bmfont_unordered.c create mode 100644 ExampleApplication/Examples/text/text_bmfont_unordered.cs delete mode 100644 ExampleApplication/Examples/text/text_font_sdf.c create mode 100644 ExampleApplication/Examples/text/text_font_sdf.cs delete mode 100644 ExampleApplication/Examples/text/text_format_text.c create mode 100644 ExampleApplication/Examples/text/text_format_text.cs delete mode 100644 ExampleApplication/Examples/text/text_input_box.c create mode 100644 ExampleApplication/Examples/text/text_input_box.cs delete mode 100644 ExampleApplication/Examples/text/text_raylib_fonts.c create mode 100644 ExampleApplication/Examples/text/text_raylib_fonts.cs delete mode 100644 ExampleApplication/Examples/text/text_sprite_fonts.c create mode 100644 ExampleApplication/Examples/text/text_sprite_fonts.cs delete mode 100644 ExampleApplication/Examples/text/text_ttf_loading.c create mode 100644 ExampleApplication/Examples/text/text_ttf_loading.cs delete mode 100644 ExampleApplication/Examples/text/text_writing_anim.c create mode 100644 ExampleApplication/Examples/text/text_writing_anim.cs delete mode 100644 ExampleApplication/Examples/textures/textures_image_generation.c create mode 100644 ExampleApplication/Examples/textures/textures_image_generation.cs delete mode 100644 ExampleApplication/Examples/textures/textures_image_loading.c create mode 100644 ExampleApplication/Examples/textures/textures_image_loading.cs delete mode 100644 ExampleApplication/Examples/textures/textures_image_processing.c create mode 100644 ExampleApplication/Examples/textures/textures_image_processing.cs delete mode 100644 ExampleApplication/Examples/textures/textures_image_text.c create mode 100644 ExampleApplication/Examples/textures/textures_image_text.cs delete mode 100644 ExampleApplication/Examples/textures/textures_logo_raylib.c create mode 100644 ExampleApplication/Examples/textures/textures_logo_raylib.cs delete mode 100644 ExampleApplication/Examples/textures/textures_particles_blending.c create mode 100644 ExampleApplication/Examples/textures/textures_particles_blending.cs delete mode 100644 ExampleApplication/Examples/textures/textures_raw_data.c create mode 100644 ExampleApplication/Examples/textures/textures_raw_data.cs delete mode 100644 ExampleApplication/Examples/textures/textures_rectangle.c create mode 100644 ExampleApplication/Examples/textures/textures_rectangle.cs delete mode 100644 ExampleApplication/Examples/textures/textures_srcrec_dstrec.c create mode 100644 ExampleApplication/Examples/textures/textures_srcrec_dstrec.cs delete mode 100644 ExampleApplication/Examples/textures/textures_to_image.c create mode 100644 ExampleApplication/Examples/textures/textures_to_image.cs create mode 100644 ExampleApplication/Physac.cs create mode 100644 ExampleApplication/Raygui.cs delete mode 100644 ExampleApplication/Raylib-cs/Raylib.cs create mode 100644 ExampleApplication/Raylib.cs create mode 100644 ExampleApplication/Raymath.cs create mode 100644 ExampleApplication/Rlgl.cs create mode 100644 ExampleApplication/core_basic_window.cs delete mode 100644 Generator/packages.config delete mode 100644 header.png diff --git a/ExampleApplication/Raylib-cs/DrawControl.cs b/ExampleApplication/DrawControl.cs similarity index 65% rename from ExampleApplication/Raylib-cs/DrawControl.cs rename to ExampleApplication/DrawControl.cs index d26e090..291855b 100644 --- a/ExampleApplication/Raylib-cs/DrawControl.cs +++ b/ExampleApplication/DrawControl.cs @@ -2,6 +2,7 @@ using System.Drawing; using System.Runtime.InteropServices; using System.Windows.Forms; +using static Raylib.rl; namespace Raylib { @@ -28,11 +29,24 @@ namespace Raylib panel.Location = new Point(80, 10); panel.BackColor = System.Drawing.Color.Red; Controls.Add(panel); + } + + private void InitializeComponent() + { + this.SuspendLayout(); + // + // DrawControl + // + this.ClientSize = new System.Drawing.Size(284, 261); + this.Name = "DrawControl"; + this.Load += new System.EventHandler(this.DrawControl_Load); + this.ResumeLayout(false); + + } + + private void DrawControl_Load(object sender, EventArgs e) + { - // TODO: get raylib window handle? - IntPtr winHandle = IntPtr.Zero; - SetParent(winHandle, panel.Handle); - ShowWindow(winHandle, 1); } } } \ No newline at end of file diff --git a/ExampleApplication/Raylib-cs/DrawControl.resx b/ExampleApplication/DrawControl.resx similarity index 100% rename from ExampleApplication/Raylib-cs/DrawControl.resx rename to ExampleApplication/DrawControl.resx diff --git a/ExampleApplication/Easings.cs b/ExampleApplication/Easings.cs new file mode 100644 index 0000000..94f2d16 --- /dev/null +++ b/ExampleApplication/Easings.cs @@ -0,0 +1,27 @@ + +using System; +using System.Runtime.InteropServices; + +namespace Raylib +{ + #region Raylib-cs Enums + + #endregion + + #region Raylib-cs Types + + + #endregion + + public static partial class rl + { + #region Raylib-cs Variables + + #endregion + + #region Raylib-cs Functions + + #endregion + + } +} diff --git a/ExampleApplication/ExampleApplication.csproj b/ExampleApplication/ExampleApplication.csproj index 5988753..a3568eb 100644 --- a/ExampleApplication/ExampleApplication.csproj +++ b/ExampleApplication/ExampleApplication.csproj @@ -34,7 +34,7 @@ true - bin\x64\Debug\ + bin\Debug\ DEBUG;TRACE true full @@ -55,7 +55,7 @@ true - bin\x86\Debug\ + bin\Debug\ DEBUG;TRACE true full @@ -81,168 +81,24 @@ - - - - - - - + + Form - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + DrawControl.cs diff --git a/ExampleApplication/Examples/audio/audio_module_playing.cs b/ExampleApplication/Examples/audio/audio_module_playing.cs index 7126d9b..164b948 100644 --- a/ExampleApplication/Examples/audio/audio_module_playing.cs +++ b/ExampleApplication/Examples/audio/audio_module_playing.cs @@ -1,147 +1,8 @@ -/******************************************************************************************* -* -* raylib [audio] example - Module playing (streaming) -* -* NOTE: This example requires OpenAL Soft library installed -* -* This example has been created using raylib 1.5 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2016 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -using Raylib; -using static Raylib.rl; - -public partial class Examples -{ - class CircleWave - { - public Vector2 position = new Vector2(); - public float radius; - public float alpha; - public float speed; - public Color color; - } - - public static int audio_module_playing() - { - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - const int MAX_CIRCLES = 64; - - //SetConfigFlags((int)Flag.MSAA_4X_HINT); // NOTE: Try to enable MSAA 4X - - InitWindow(screenWidth, screenHeight, "raylib [audio] example - module playing (streaming)"); - - InitAudioDevice(); // Initialize audio device - - Color[] colors = new Color[] { ORANGE, RED, GOLD, LIME, BLUE, VIOLET, BROWN, LIGHTGRAY, PINK, - YELLOW, GREEN, SKYBLUE, PURPLE, BEIGE }; - - // Creates ome circles for visual effect - CircleWave[] circles = new CircleWave[MAX_CIRCLES]; - - for (int i = MAX_CIRCLES - 1; i >= 0; i--) - { - circles[i] = new CircleWave(); - circles[i].alpha = 0.0f; - circles[i].radius = GetRandomValue(10, 40); - circles[i].position.x = GetRandomValue((int)circles[i].radius, (int)(screenWidth - circles[i].radius)); - circles[i].position.y = GetRandomValue((int)circles[i].radius, (int)(screenHeight - circles[i].radius)); - circles[i].speed = (float)GetRandomValue(1, 100)/20000.0f; - circles[i].color = colors[GetRandomValue(0, 13)]; - } - - var xm = LoadMusicStream("resources/mini1111.xm"); - - PlayMusicStream(xm); - - float timePlayed = 0.0f; - bool pause = false; - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateMusicStream(xm); // Update music buffer with new stream data - - // Restart music playing (stop and play) - if (IsKeyPressed((int)Key.SPACE)) - { - StopMusicStream(xm); - PlayMusicStream(xm); - } - - // Pause/Resume music playing - if (IsKeyPressed((int)Key.P)) - { - pause = !pause; - - if (pause) PauseMusicStream(xm); - else ResumeMusicStream(xm); - } - - // Get timePlayed scaled to bar dimensions - timePlayed = GetMusicTimePlayed(xm)/GetMusicTimeLength(xm)*(screenWidth - 40); - - // Color circles animation - for (int i = MAX_CIRCLES - 1; (i >= 0) && !pause; i--) - { - circles[i].alpha += circles[i].speed; - circles[i].radius += circles[i].speed*10.0f; - - if (circles[i].alpha > 1.0f) circles[i].speed *= -1; - - if (circles[i].alpha <= 0.0f) - { - circles[i].alpha = 0.0f; - circles[i].radius = GetRandomValue(10, 40); - circles[i].position.x = GetRandomValue((int)circles[i].radius, (int)(screenWidth - circles[i].radius)); - circles[i].position.y = GetRandomValue((int)circles[i].radius, (int)(screenHeight - circles[i].radius)); - circles[i].color = colors[GetRandomValue(0, 13)]; - circles[i].speed = (float)GetRandomValue(1, 100)/20000.0f; - } - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - for (int i = MAX_CIRCLES - 1; i >= 0; i--) - { - DrawCircleV(circles[i].position, circles[i].radius, Fade(circles[i].color, circles[i].alpha)); - } - - // Draw time bar - DrawRectangle(20, screenHeight - 20 - 12, screenWidth - 40, 12, LIGHTGRAY); - DrawRectangle(20, screenHeight - 20 - 12, (int)timePlayed, 12, MAROON); - DrawRectangleLines(20, screenHeight - 20 - 12, screenWidth - 40, 12, GRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadMusicStream(xm); // Unload music stream buffers from RAM - - CloseAudioDevice(); // Close audio device (music streaming is automatically stopped) - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; - } + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [audio] example - Module playing (streaming) * * NOTE: This example requires OpenAL Soft library installed * * This example has been created using raylib 1.5 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2016 Ramon Santamaria (@raysan5) * ********************************************************************************************/ private const int MAX_CIRCLES 64 struct { Vector2 position; float radius; float alpha; float speed; Color color; } CircleWave; public static int audio_module_playing() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; SetConfigFlags(FLAG_MSAA_4X_HINT); // NOTE: Try to enable MSAA 4X InitWindow(screenWidth, screenHeight, "raylib [audio] example - module playing (streaming)"); InitAudioDevice(); // Initialize audio device Color colors[14] = { ORANGE, RED, GOLD, LIME, BLUE, VIOLET, BROWN, LIGHTGRAY, PINK, YELLOW, GREEN, SKYBLUE, PURPLE, BEIGE }; // Creates ome circles for visual effect CircleWave circles[MAX_CIRCLES]; for (int i = MAX_CIRCLES - 1; i >= 0; i--) { circles[i].alpha = 0.0f; circles[i].radius = GetRandomValue(10, 40); circles[i].position.x = GetRandomValue(circles[i].radius, screenWidth - circles[i].radius); circles[i].position.y = GetRandomValue(circles[i].radius, screenHeight - circles[i].radius); circles[i].speed = (float)GetRandomValue(1, 100)/20000.0f; circles[i].color = colors[GetRandomValue(0, 13)]; } Music xm = LoadMusicStream("resources/mini1111.xm"); PlayMusicStream(xm); float timePlayed = 0.0f; bool pause = false; SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateMusicStream(xm); // Update music buffer with new stream data // Restart music playing (stop and play) if (IsKeyPressed(KEY_SPACE)) { StopMusicStream(xm); PlayMusicStream(xm); } // Pause/Resume music playing if (IsKeyPressed(KEY_P)) { pause = !pause; if (pause) PauseMusicStream(xm); else ResumeMusicStream(xm); } // Get timePlayed scaled to bar dimensions timePlayed = GetMusicTimePlayed(xm)/GetMusicTimeLength(xm)*(screenWidth - 40); // Color circles animation for (int i = MAX_CIRCLES - 1; (i >= 0) && !pause; i--) { circles[i].alpha += circles[i].speed; circles[i].radius += circles[i].speed*10.0f; if (circles[i].alpha > 1.0f) circles[i].speed *= -1; if (circles[i].alpha <= 0.0f) { circles[i].alpha = 0.0f; circles[i].radius = GetRandomValue(10, 40); circles[i].position.x = GetRandomValue(circles[i].radius, screenWidth - circles[i].radius); circles[i].position.y = GetRandomValue(circles[i].radius, screenHeight - circles[i].radius); circles[i].color = colors[GetRandomValue(0, 13)]; circles[i].speed = (float)GetRandomValue(1, 100)/20000.0f; } } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); for (int i = MAX_CIRCLES - 1; i >= 0; i--) { DrawCircleV(circles[i].position, circles[i].radius, Fade(circles[i].color, circles[i].alpha)); } // Draw time bar DrawRectangle(20, screenHeight - 20 - 12, screenWidth - 40, 12, LIGHTGRAY); DrawRectangle(20, screenHeight - 20 - 12, (int)timePlayed, 12, MAROON); DrawRectangleLines(20, screenHeight - 20 - 12, screenWidth - 40, 12, GRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadMusicStream(xm); // Unload music stream buffers from RAM CloseAudioDevice(); // Close audio device (music streaming is automatically stopped) CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } } \ No newline at end of file diff --git a/ExampleApplication/Examples/audio/audio_music_stream.c b/ExampleApplication/Examples/audio/audio_music_stream.c deleted file mode 100644 index f9fe23d..0000000 --- a/ExampleApplication/Examples/audio/audio_music_stream.c +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************************* -* -* raylib [audio] example - Music playing (streaming) -* -* NOTE: This example requires OpenAL Soft library installed -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [audio] example - music playing (streaming)"); - - InitAudioDevice(); // Initialize audio device - - Music music = LoadMusicStream("resources/guitar_noodling.ogg"); - - PlayMusicStream(music); - - float timePlayed = 0.0f; - bool pause = false; - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateMusicStream(music); // Update music buffer with new stream data - - // Restart music playing (stop and play) - if (IsKeyPressed(KEY_SPACE)) - { - StopMusicStream(music); - PlayMusicStream(music); - } - - // Pause/Resume music playing - if (IsKeyPressed(KEY_P)) - { - pause = !pause; - - if (pause) PauseMusicStream(music); - else ResumeMusicStream(music); - } - - // Get timePlayed scaled to bar dimensions (400 pixels) - timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music)*400; - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("MUSIC SHOULD BE PLAYING!", 255, 150, 20, LIGHTGRAY); - - DrawRectangle(200, 200, 400, 12, LIGHTGRAY); - DrawRectangle(200, 200, (int)timePlayed, 12, MAROON); - DrawRectangleLines(200, 200, 400, 12, GRAY); - - DrawText("PRESS SPACE TO RESTART MUSIC", 215, 250, 20, LIGHTGRAY); - DrawText("PRESS P TO PAUSE/RESUME MUSIC", 208, 280, 20, LIGHTGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadMusicStream(music); // Unload music stream buffers from RAM - - CloseAudioDevice(); // Close audio device (music streaming is automatically stopped) - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/audio/audio_music_stream.cs b/ExampleApplication/Examples/audio/audio_music_stream.cs new file mode 100644 index 0000000..b677b73 --- /dev/null +++ b/ExampleApplication/Examples/audio/audio_music_stream.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [audio] example - Music playing (streaming) * * NOTE: This example requires OpenAL Soft library installed * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int audio_music_stream() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [audio] example - music playing (streaming)"); InitAudioDevice(); // Initialize audio device Music music = LoadMusicStream("resources/guitar_noodling.ogg"); PlayMusicStream(music); float timePlayed = 0.0f; bool pause = false; SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateMusicStream(music); // Update music buffer with new stream data // Restart music playing (stop and play) if (IsKeyPressed(KEY_SPACE)) { StopMusicStream(music); PlayMusicStream(music); } // Pause/Resume music playing if (IsKeyPressed(KEY_P)) { pause = !pause; if (pause) PauseMusicStream(music); else ResumeMusicStream(music); } // Get timePlayed scaled to bar dimensions (400 pixels) timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music)*400; //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText("MUSIC SHOULD BE PLAYING!", 255, 150, 20, LIGHTGRAY); DrawRectangle(200, 200, 400, 12, LIGHTGRAY); DrawRectangle(200, 200, (int)timePlayed, 12, MAROON); DrawRectangleLines(200, 200, 400, 12, GRAY); DrawText("PRESS SPACE TO RESTART MUSIC", 215, 250, 20, LIGHTGRAY); DrawText("PRESS P TO PAUSE/RESUME MUSIC", 208, 280, 20, LIGHTGRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadMusicStream(music); // Unload music stream buffers from RAM CloseAudioDevice(); // Close audio device (music streaming is automatically stopped) CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/audio/audio_raw_stream.c b/ExampleApplication/Examples/audio/audio_raw_stream.c deleted file mode 100644 index 80c83e9..0000000 --- a/ExampleApplication/Examples/audio/audio_raw_stream.c +++ /dev/null @@ -1,114 +0,0 @@ -/******************************************************************************************* -* -* raylib [audio] example - Raw audio streaming -* -* NOTE: This example requires OpenAL Soft library installed -* -* This example has been created using raylib 1.6 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#include // Required for: malloc(), free() -#include // Required for: sinf() - -#define MAX_SAMPLES 22050 -#define MAX_SAMPLES_PER_UPDATE 4096 - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [audio] example - raw audio streaming"); - - InitAudioDevice(); // Initialize audio device - - // Init raw audio stream (sample rate: 22050, sample size: 16bit-short, channels: 1-mono) - AudioStream stream = InitAudioStream(22050, 16, 1); - - // Generate samples data from sine wave - short *data = (short *)malloc(sizeof(short)*MAX_SAMPLES); - - // TODO: Review data generation, it seems data is discontinued for loop, - // for that reason, there is a clip everytime audio stream is looped... - for (int i = 0; i < MAX_SAMPLES; i++) - { - data[i] = (short)(sinf(((2*PI*(float)i)/2)*DEG2RAD)*32000); - } - - PlayAudioStream(stream); // Start processing stream buffer (no data loaded currently) - - int totalSamples = MAX_SAMPLES; - int samplesLeft = totalSamples; - - Vector2 position = { 0, 0 }; - - SetTargetFPS(30); // Set our game to run at 30 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - - // Refill audio stream if required - // NOTE: Every update we check if stream data has been already consumed and we update - // buffer with new data from the generated samples, we upload data at a rate (MAX_SAMPLES_PER_UPDATE), - // but notice that at some point we update < MAX_SAMPLES_PER_UPDATE data... - if (IsAudioBufferProcessed(stream)) - { - int numSamples = 0; - if (samplesLeft >= MAX_SAMPLES_PER_UPDATE) numSamples = MAX_SAMPLES_PER_UPDATE; - else numSamples = samplesLeft; - - UpdateAudioStream(stream, data + (totalSamples - samplesLeft), numSamples); - - samplesLeft -= numSamples; - - // Reset samples feeding (loop audio) - if (samplesLeft <= 0) samplesLeft = totalSamples; - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("SINE WAVE SHOULD BE PLAYING!", 240, 140, 20, LIGHTGRAY); - - // NOTE: Draw a part of the sine wave (only screen width, proportional values) - for (int i = 0; i < GetScreenWidth(); i++) - { - position.x = i; - position.y = 250 + 50*data[i]/32000; - - DrawPixelV(position, RED); - } - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - free(data); // Unload sine wave data - - CloseAudioStream(stream); // Close raw audio stream and delete buffers from RAM - - CloseAudioDevice(); // Close audio device (music streaming is automatically stopped) - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/audio/audio_raw_stream.cs b/ExampleApplication/Examples/audio/audio_raw_stream.cs new file mode 100644 index 0000000..408817d --- /dev/null +++ b/ExampleApplication/Examples/audio/audio_raw_stream.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [audio] example - Raw audio streaming * * NOTE: This example requires OpenAL Soft library installed * * This example has been created using raylib 1.6 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #include // Required for: malloc(), free() #include // Required for: sinf() #define MAX_SAMPLES 22050 #define MAX_SAMPLES_PER_UPDATE 4096 public static int audio_raw_stream() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [audio] example - raw audio streaming"); InitAudioDevice(); // Initialize audio device // Init raw audio stream (sample rate: 22050, sample size: 16bit-short, channels: 1-mono) AudioStream stream = InitAudioStream(22050, 16, 1); // Generate samples data from sine wave short *data = (short *)malloc(sizeof(short)*MAX_SAMPLES); // TODO: Review data generation, it seems data is discontinued for loop, // for that reason, there is a clip everytime audio stream is looped... for (int i = 0; i < MAX_SAMPLES; i++) { data[i] = (short)(sinf(((2*PI*(float)i)/2)*DEG2RAD)*32000); } PlayAudioStream(stream); // Start processing stream buffer (no data loaded currently) int totalSamples = MAX_SAMPLES; int samplesLeft = totalSamples; Vector2 position = { 0, 0 }; SetTargetFPS(30); // Set our game to run at 30 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // Refill audio stream if required // NOTE: Every update we check if stream data has been already consumed and we update // buffer with new data from the generated samples, we upload data at a rate (MAX_SAMPLES_PER_UPDATE), // but notice that at some point we update < MAX_SAMPLES_PER_UPDATE data... if (IsAudioBufferProcessed(stream)) { int numSamples = 0; if (samplesLeft >= MAX_SAMPLES_PER_UPDATE) numSamples = MAX_SAMPLES_PER_UPDATE; else numSamples = samplesLeft; UpdateAudioStream(stream, data + (totalSamples - samplesLeft), numSamples); samplesLeft -= numSamples; // Reset samples feeding (loop audio) if (samplesLeft <= 0) samplesLeft = totalSamples; } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText("SINE WAVE SHOULD BE PLAYING!", 240, 140, 20, LIGHTGRAY); // NOTE: Draw a part of the sine wave (only screen width, proportional values) for (int i = 0; i < GetScreenWidth(); i++) { position.x = i; position.y = 250 + 50*data[i]/32000; DrawPixelV(position, RED); } EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- free(data); // Unload sine wave data CloseAudioStream(stream); // Close raw audio stream and delete buffers from RAM CloseAudioDevice(); // Close audio device (music streaming is automatically stopped) CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/audio/audio_sound_loading.c b/ExampleApplication/Examples/audio/audio_sound_loading.c deleted file mode 100644 index 00e5832..0000000 --- a/ExampleApplication/Examples/audio/audio_sound_loading.c +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************************* -* -* raylib [audio] example - Sound loading and playing -* -* NOTE: This example requires OpenAL Soft library installed -* -* This example has been created using raylib 1.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [audio] example - sound loading and playing"); - - InitAudioDevice(); // Initialize audio device - - Sound fxWav = LoadSound("resources/sound.wav"); // Load WAV audio file - Sound fxOgg = LoadSound("resources/tanatana.ogg"); // Load OGG audio file - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (IsKeyPressed(KEY_SPACE)) PlaySound(fxWav); // Play WAV sound - if (IsKeyPressed(KEY_ENTER)) PlaySound(fxOgg); // Play OGG sound - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("Press SPACE to PLAY the WAV sound!", 200, 180, 20, LIGHTGRAY); - - DrawText("Press ENTER to PLAY the OGG sound!", 200, 220, 20, LIGHTGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadSound(fxWav); // Unload sound data - UnloadSound(fxOgg); // Unload sound data - - CloseAudioDevice(); // Close audio device - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/audio/audio_sound_loading.cs b/ExampleApplication/Examples/audio/audio_sound_loading.cs new file mode 100644 index 0000000..4830eaf --- /dev/null +++ b/ExampleApplication/Examples/audio/audio_sound_loading.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [audio] example - Sound loading and playing * * NOTE: This example requires OpenAL Soft library installed * * This example has been created using raylib 1.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int audio_sound_loading() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [audio] example - sound loading and playing"); InitAudioDevice(); // Initialize audio device Sound fxWav = LoadSound("resources/sound.wav"); // Load WAV audio file Sound fxOgg = LoadSound("resources/tanatana.ogg"); // Load OGG audio file SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- if (IsKeyPressed(KEY_SPACE)) PlaySound(fxWav); // Play WAV sound if (IsKeyPressed(KEY_ENTER)) PlaySound(fxOgg); // Play OGG sound //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText("Press SPACE to PLAY the WAV sound!", 200, 180, 20, LIGHTGRAY); DrawText("Press ENTER to PLAY the OGG sound!", 200, 220, 20, LIGHTGRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadSound(fxWav); // Unload sound data UnloadSound(fxOgg); // Unload sound data CloseAudioDevice(); // Close audio device CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_2d_camera.c b/ExampleApplication/Examples/core/core_2d_camera.c deleted file mode 100644 index 7c35c90..0000000 --- a/ExampleApplication/Examples/core/core_2d_camera.c +++ /dev/null @@ -1,139 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - 2d camera -* -* This example has been created using raylib 1.5 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2016 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#define MAX_BUILDINGS 100 - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - 2d camera"); - - Rectangle player = { 400, 280, 40, 40 }; - Rectangle buildings[MAX_BUILDINGS]; - Color buildColors[MAX_BUILDINGS]; - - int spacing = 0; - - for (int i = 0; i < MAX_BUILDINGS; i++) - { - buildings[i].width = GetRandomValue(50, 200); - buildings[i].height = GetRandomValue(100, 800); - buildings[i].y = screenHeight - 130 - buildings[i].height; - buildings[i].x = -6000 + spacing; - - spacing += buildings[i].width; - - buildColors[i] = (Color){ GetRandomValue(200, 240), GetRandomValue(200, 240), GetRandomValue(200, 250), 255 }; - } - - Camera2D camera; - - camera.target = (Vector2){ player.x + 20, player.y + 20 }; - camera.offset = (Vector2){ 0, 0 }; - camera.rotation = 0.0f; - camera.zoom = 1.0f; - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (IsKeyDown(KEY_RIGHT)) - { - player.x += 2; // Player movement - camera.offset.x -= 2; // Camera displacement with player movement - } - else if (IsKeyDown(KEY_LEFT)) - { - player.x -= 2; // Player movement - camera.offset.x += 2; // Camera displacement with player movement - } - - // Camera target follows player - camera.target = (Vector2){ player.x + 20, player.y + 20 }; - - // Camera rotation controls - if (IsKeyDown(KEY_A)) camera.rotation--; - else if (IsKeyDown(KEY_S)) camera.rotation++; - - // Limit camera rotation to 80 degrees (-40 to 40) - if (camera.rotation > 40) camera.rotation = 40; - else if (camera.rotation < -40) camera.rotation = -40; - - // Camera zoom controls - camera.zoom += ((float)GetMouseWheelMove()*0.05f); - - if (camera.zoom > 3.0f) camera.zoom = 3.0f; - else if (camera.zoom < 0.1f) camera.zoom = 0.1f; - - // Camera reset (zoom and rotation) - if (IsKeyPressed(KEY_R)) - { - camera.zoom = 1.0f; - camera.rotation = 0.0f; - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode2D(camera); - - DrawRectangle(-6000, 320, 13000, 8000, DARKGRAY); - - for (int i = 0; i < MAX_BUILDINGS; i++) DrawRectangleRec(buildings[i], buildColors[i]); - - DrawRectangleRec(player, RED); - - DrawRectangle(camera.target.x, -500, 1, screenHeight*4, GREEN); - DrawRectangle(-500, camera.target.y, screenWidth*4, 1, GREEN); - - EndMode2D(); - - DrawText("SCREEN AREA", 640, 10, 20, RED); - - DrawRectangle(0, 0, screenWidth, 5, RED); - DrawRectangle(0, 5, 5, screenHeight - 10, RED); - DrawRectangle(screenWidth - 5, 5, 5, screenHeight - 10, RED); - DrawRectangle(0, screenHeight - 5, screenWidth, 5, RED); - - DrawRectangle( 10, 10, 250, 113, Fade(SKYBLUE, 0.5f)); - DrawRectangleLines( 10, 10, 250, 113, BLUE); - - DrawText("Free 2d camera controls:", 20, 20, 10, BLACK); - DrawText("- Right/Left to move Offset", 40, 40, 10, DARKGRAY); - DrawText("- Mouse Wheel to Zoom in-out", 40, 60, 10, DARKGRAY); - DrawText("- A / S to Rotate", 40, 80, 10, DARKGRAY); - DrawText("- R to reset Zoom and Rotation", 40, 100, 10, DARKGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_2d_camera.cs b/ExampleApplication/Examples/core/core_2d_camera.cs new file mode 100644 index 0000000..e3e38ef --- /dev/null +++ b/ExampleApplication/Examples/core/core_2d_camera.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] example - 2d camera * * This example has been created using raylib 1.5 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2016 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #define MAX_BUILDINGS 100 public static int core_2d_camera() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - 2d camera"); Rectangle player = { 400, 280, 40, 40 }; Rectangle buildings[MAX_BUILDINGS]; Color buildColors[MAX_BUILDINGS]; int spacing = 0; for (int i = 0; i < MAX_BUILDINGS; i++) { buildings[i].width = GetRandomValue(50, 200); buildings[i].height = GetRandomValue(100, 800); buildings[i].y = screenHeight - 130 - buildings[i].height; buildings[i].x = -6000 + spacing; spacing += buildings[i].width; buildColors[i] = (Color){ GetRandomValue(200, 240), GetRandomValue(200, 240), GetRandomValue(200, 250), 255 }; } Camera2D camera; camera.target = (Vector2){ player.x + 20, player.y + 20 }; camera.offset = (Vector2){ 0, 0 }; camera.rotation = 0.0f; camera.zoom = 1.0f; SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- if (IsKeyDown(KEY_RIGHT)) { player.x += 2; // Player movement camera.offset.x -= 2; // Camera displacement with player movement } else if (IsKeyDown(KEY_LEFT)) { player.x -= 2; // Player movement camera.offset.x += 2; // Camera displacement with player movement } // Camera target follows player camera.target = (Vector2){ player.x + 20, player.y + 20 }; // Camera rotation controls if (IsKeyDown(KEY_A)) camera.rotation--; else if (IsKeyDown(KEY_S)) camera.rotation++; // Limit camera rotation to 80 degrees (-40 to 40) if (camera.rotation > 40) camera.rotation = 40; else if (camera.rotation < -40) camera.rotation = -40; // Camera zoom controls camera.zoom += ((float)GetMouseWheelMove()*0.05f); if (camera.zoom > 3.0f) camera.zoom = 3.0f; else if (camera.zoom < 0.1f) camera.zoom = 0.1f; // Camera reset (zoom and rotation) if (IsKeyPressed(KEY_R)) { camera.zoom = 1.0f; camera.rotation = 0.0f; } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode2D(camera); DrawRectangle(-6000, 320, 13000, 8000, DARKGRAY); for (int i = 0; i < MAX_BUILDINGS; i++) DrawRectangleRec(buildings[i], buildColors[i]); DrawRectangleRec(player, RED); DrawRectangle(camera.target.x, -500, 1, screenHeight*4, GREEN); DrawRectangle(-500, camera.target.y, screenWidth*4, 1, GREEN); EndMode2D(); DrawText("SCREEN AREA", 640, 10, 20, RED); DrawRectangle(0, 0, screenWidth, 5, RED); DrawRectangle(0, 5, 5, screenHeight - 10, RED); DrawRectangle(screenWidth - 5, 5, 5, screenHeight - 10, RED); DrawRectangle(0, screenHeight - 5, screenWidth, 5, RED); DrawRectangle( 10, 10, 250, 113, Fade(SKYBLUE, 0.5f)); DrawRectangleLines( 10, 10, 250, 113, BLUE); DrawText("Free 2d camera controls:", 20, 20, 10, BLACK); DrawText("- Right/Left to move Offset", 40, 40, 10, DARKGRAY); DrawText("- Mouse Wheel to Zoom in-out", 40, 60, 10, DARKGRAY); DrawText("- A / S to Rotate", 40, 80, 10, DARKGRAY); DrawText("- R to reset Zoom and Rotation", 40, 100, 10, DARKGRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_3d_camera_first_person.c b/ExampleApplication/Examples/core/core_3d_camera_first_person.c deleted file mode 100644 index d3a8f2e..0000000 --- a/ExampleApplication/Examples/core/core_3d_camera_first_person.c +++ /dev/null @@ -1,97 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - 3d camera first person -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#define MAX_COLUMNS 20 - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera first person"); - - // Define the camera to look into our 3d world (position, target, up vector) - Camera camera = { 0 }; - camera.position = (Vector3){ 4.0f, 2.0f, 4.0f }; - camera.target = (Vector3){ 0.0f, 1.8f, 0.0f }; - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; - camera.fovy = 60.0f; - camera.type = CAMERA_PERSPECTIVE; - - // Generates some random columns - float heights[MAX_COLUMNS]; - Vector3 positions[MAX_COLUMNS]; - Color colors[MAX_COLUMNS]; - - for (int i = 0; i < MAX_COLUMNS; i++) - { - heights[i] = (float)GetRandomValue(1, 12); - positions[i] = (Vector3){ GetRandomValue(-15, 15), heights[i]/2, GetRandomValue(-15, 15) }; - colors[i] = (Color){ GetRandomValue(20, 255), GetRandomValue(10, 55), 30, 255 }; - } - - SetCameraMode(camera, CAMERA_FIRST_PERSON); // Set a first person camera mode - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update camera - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawPlane((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector2){ 32.0f, 32.0f }, LIGHTGRAY); // Draw ground - DrawCube((Vector3){ -16.0f, 2.5f, 0.0f }, 1.0f, 5.0f, 32.0f, BLUE); // Draw a blue wall - DrawCube((Vector3){ 16.0f, 2.5f, 0.0f }, 1.0f, 5.0f, 32.0f, LIME); // Draw a green wall - DrawCube((Vector3){ 0.0f, 2.5f, 16.0f }, 32.0f, 5.0f, 1.0f, GOLD); // Draw a yellow wall - - // Draw some cubes around - for (int i = 0; i < MAX_COLUMNS; i++) - { - DrawCube(positions[i], 2.0f, heights[i], 2.0f, colors[i]); - DrawCubeWires(positions[i], 2.0f, heights[i], 2.0f, MAROON); - } - - EndMode3D(); - - DrawRectangle( 10, 10, 220, 70, Fade(SKYBLUE, 0.5f)); - DrawRectangleLines( 10, 10, 220, 70, BLUE); - - DrawText("First person camera default controls:", 20, 20, 10, BLACK); - DrawText("- Move with keys: W, A, S, D", 40, 40, 10, DARKGRAY); - DrawText("- Mouse move to look around", 40, 60, 10, DARKGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_3d_camera_first_person.cs b/ExampleApplication/Examples/core/core_3d_camera_first_person.cs new file mode 100644 index 0000000..69a9a68 --- /dev/null +++ b/ExampleApplication/Examples/core/core_3d_camera_first_person.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] example - 3d camera first person * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #define MAX_COLUMNS 20 public static int core_3d_camera_first_person() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera first person"); // Define the camera to look into our 3d world (position, target, up vector) Camera camera = { 0 }; camera.position = (Vector3){ 4.0f, 2.0f, 4.0f }; camera.target = (Vector3){ 0.0f, 1.8f, 0.0f }; camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; camera.fovy = 60.0f; camera.type = CAMERA_PERSPECTIVE; // Generates some random columns float heights[MAX_COLUMNS]; Vector3 positions[MAX_COLUMNS]; Color colors[MAX_COLUMNS]; for (int i = 0; i < MAX_COLUMNS; i++) { heights[i] = (float)GetRandomValue(1, 12); positions[i] = (Vector3){ GetRandomValue(-15, 15), heights[i]/2, GetRandomValue(-15, 15) }; colors[i] = (Color){ GetRandomValue(20, 255), GetRandomValue(10, 55), 30, 255 }; } SetCameraMode(camera, CAMERA_FIRST_PERSON); // Set a first person camera mode SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateCamera(&camera); // Update camera //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); DrawPlane((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector2){ 32.0f, 32.0f }, LIGHTGRAY); // Draw ground DrawCube((Vector3){ -16.0f, 2.5f, 0.0f }, 1.0f, 5.0f, 32.0f, BLUE); // Draw a blue wall DrawCube((Vector3){ 16.0f, 2.5f, 0.0f }, 1.0f, 5.0f, 32.0f, LIME); // Draw a green wall DrawCube((Vector3){ 0.0f, 2.5f, 16.0f }, 32.0f, 5.0f, 1.0f, GOLD); // Draw a yellow wall // Draw some cubes around for (int i = 0; i < MAX_COLUMNS; i++) { DrawCube(positions[i], 2.0f, heights[i], 2.0f, colors[i]); DrawCubeWires(positions[i], 2.0f, heights[i], 2.0f, MAROON); } EndMode3D(); DrawRectangle( 10, 10, 220, 70, Fade(SKYBLUE, 0.5f)); DrawRectangleLines( 10, 10, 220, 70, BLUE); DrawText("First person camera default controls:", 20, 20, 10, BLACK); DrawText("- Move with keys: W, A, S, D", 40, 40, 10, DARKGRAY); DrawText("- Mouse move to look around", 40, 60, 10, DARKGRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_3d_camera_free.c b/ExampleApplication/Examples/core/core_3d_camera_free.c deleted file mode 100644 index 9131ddf..0000000 --- a/ExampleApplication/Examples/core/core_3d_camera_free.c +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Initialize 3d camera free -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera free"); - - // Define the camera to look into our 3d world - Camera3D camera; - camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 45.0f; // Camera field-of-view Y - camera.type = CAMERA_PERSPECTIVE; // Camera mode type - - Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; - - SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update camera - - if (IsKeyDown('Z')) camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); - DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON); - - DrawGrid(10, 1.0f); - - EndMode3D(); - - DrawRectangle( 10, 10, 320, 133, Fade(SKYBLUE, 0.5f)); - DrawRectangleLines( 10, 10, 320, 133, BLUE); - - DrawText("Free camera default controls:", 20, 20, 10, BLACK); - DrawText("- Mouse Wheel to Zoom in-out", 40, 40, 10, DARKGRAY); - DrawText("- Mouse Wheel Pressed to Pan", 40, 60, 10, DARKGRAY); - DrawText("- Alt + Mouse Wheel Pressed to Rotate", 40, 80, 10, DARKGRAY); - DrawText("- Alt + Ctrl + Mouse Wheel Pressed for Smooth Zoom", 40, 100, 10, DARKGRAY); - DrawText("- Z to zoom to (0, 0, 0)", 40, 120, 10, DARKGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_3d_camera_free.cs b/ExampleApplication/Examples/core/core_3d_camera_free.cs new file mode 100644 index 0000000..221b855 --- /dev/null +++ b/ExampleApplication/Examples/core/core_3d_camera_free.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] example - Initialize 3d camera free * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int core_3d_camera_free() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera free"); // Define the camera to look into our 3d world Camera3D camera; camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) camera.fovy = 45.0f; // Camera field-of-view Y camera.type = CAMERA_PERSPECTIVE; // Camera mode type Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateCamera(&camera); // Update camera if (IsKeyDown('Z')) camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON); DrawGrid(10, 1.0f); EndMode3D(); DrawRectangle( 10, 10, 320, 133, Fade(SKYBLUE, 0.5f)); DrawRectangleLines( 10, 10, 320, 133, BLUE); DrawText("Free camera default controls:", 20, 20, 10, BLACK); DrawText("- Mouse Wheel to Zoom in-out", 40, 40, 10, DARKGRAY); DrawText("- Mouse Wheel Pressed to Pan", 40, 60, 10, DARKGRAY); DrawText("- Alt + Mouse Wheel Pressed to Rotate", 40, 80, 10, DARKGRAY); DrawText("- Alt + Ctrl + Mouse Wheel Pressed for Smooth Zoom", 40, 100, 10, DARKGRAY); DrawText("- Z to zoom to (0, 0, 0)", 40, 120, 10, DARKGRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_3d_mode.c b/ExampleApplication/Examples/core/core_3d_mode.c deleted file mode 100644 index 39c0752..0000000 --- a/ExampleApplication/Examples/core/core_3d_mode.c +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Initialize 3d mode -* -* This example has been created using raylib 1.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d mode"); - - // Define the camera to look into our 3d world - Camera3D camera; - camera.position = (Vector3){ 0.0f, 10.0f, 10.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 45.0f; // Camera field-of-view Y - camera.type = CAMERA_PERSPECTIVE; // Camera mode type - - Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); - DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON); - - DrawGrid(10, 1.0f); - - EndMode3D(); - - DrawText("Welcome to the third dimension!", 10, 40, 20, DARKGRAY); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_3d_mode.cs b/ExampleApplication/Examples/core/core_3d_mode.cs new file mode 100644 index 0000000..045b20a --- /dev/null +++ b/ExampleApplication/Examples/core/core_3d_mode.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] example - Initialize 3d mode * * This example has been created using raylib 1.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int core_3d_mode() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d mode"); // Define the camera to look into our 3d world Camera3D camera; camera.position = (Vector3){ 0.0f, 10.0f, 10.0f }; // Camera position camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) camera.fovy = 45.0f; // Camera field-of-view Y camera.type = CAMERA_PERSPECTIVE; // Camera mode type Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update your variables here //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON); DrawGrid(10, 1.0f); EndMode3D(); DrawText("Welcome to the third dimension!", 10, 40, 20, DARKGRAY); DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_3d_picking.c b/ExampleApplication/Examples/core/core_3d_picking.c deleted file mode 100644 index 1c63e2a..0000000 --- a/ExampleApplication/Examples/core/core_3d_picking.c +++ /dev/null @@ -1,103 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Picking in 3d mode -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d picking"); - - // Define the camera to look into our 3d world - Camera camera; - camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 45.0f; // Camera field-of-view Y - camera.type = CAMERA_PERSPECTIVE; // Camera mode type - - Vector3 cubePosition = { 0.0f, 1.0f, 0.0f }; - Vector3 cubeSize = { 2.0f, 2.0f, 2.0f }; - - Ray ray = {0.0f, 0.0f, 0.0f}; // Picking line ray - - bool collision = false; - - SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update camera - - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) - { - ray = GetMouseRay(GetMousePosition(), camera); - - // Check collision between ray and box - collision = CheckCollisionRayBox(ray, - (BoundingBox){(Vector3){ cubePosition.x - cubeSize.x/2, cubePosition.y - cubeSize.y/2, cubePosition.z - cubeSize.z/2 }, - (Vector3){ cubePosition.x + cubeSize.x/2, cubePosition.y + cubeSize.y/2, cubePosition.z + cubeSize.z/2 }}); - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - if (collision) - { - DrawCube(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, RED); - DrawCubeWires(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, MAROON); - - DrawCubeWires(cubePosition, cubeSize.x + 0.2f, cubeSize.y + 0.2f, cubeSize.z + 0.2f, GREEN); - } - else - { - DrawCube(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, GRAY); - DrawCubeWires(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, DARKGRAY); - } - - DrawRay(ray, MAROON); - DrawGrid(10, 1.0f); - - EndMode3D(); - - DrawText("Try selecting the box with mouse!", 240, 10, 20, DARKGRAY); - - if(collision) DrawText("BOX SELECTED", (screenWidth - MeasureText("BOX SELECTED", 30)) / 2, screenHeight * 0.1f, 30, GREEN); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} diff --git a/ExampleApplication/Examples/core/core_3d_picking.cs b/ExampleApplication/Examples/core/core_3d_picking.cs new file mode 100644 index 0000000..3ce5e50 --- /dev/null +++ b/ExampleApplication/Examples/core/core_3d_picking.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] example - Picking in 3d mode * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int core_3d_picking() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d picking"); // Define the camera to look into our 3d world Camera camera; camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) camera.fovy = 45.0f; // Camera field-of-view Y camera.type = CAMERA_PERSPECTIVE; // Camera mode type Vector3 cubePosition = { 0.0f, 1.0f, 0.0f }; Vector3 cubeSize = { 2.0f, 2.0f, 2.0f }; Ray ray = {0.0f, 0.0f, 0.0f}; // Picking line ray bool collision = false; SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateCamera(&camera); // Update camera if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) { ray = GetMouseRay(GetMousePosition(), camera); // Check collision between ray and box collision = CheckCollisionRayBox(ray, (BoundingBox){(Vector3){ cubePosition.x - cubeSize.x/2, cubePosition.y - cubeSize.y/2, cubePosition.z - cubeSize.z/2 }, (Vector3){ cubePosition.x + cubeSize.x/2, cubePosition.y + cubeSize.y/2, cubePosition.z + cubeSize.z/2 }}); } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); if (collision) { DrawCube(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, RED); DrawCubeWires(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, MAROON); DrawCubeWires(cubePosition, cubeSize.x + 0.2f, cubeSize.y + 0.2f, cubeSize.z + 0.2f, GREEN); } else { DrawCube(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, GRAY); DrawCubeWires(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, DARKGRAY); } DrawRay(ray, MAROON); DrawGrid(10, 1.0f); EndMode3D(); DrawText("Try selecting the box with mouse!", 240, 10, 20, DARKGRAY); if(collision) DrawText("BOX SELECTED", (screenWidth - MeasureText("BOX SELECTED", 30)) / 2, screenHeight * 0.1f, 30, GREEN); DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_basic_window.cs b/ExampleApplication/Examples/core/core_basic_window.cs index 0d6e012..98e10cb 100644 --- a/ExampleApplication/Examples/core/core_basic_window.cs +++ b/ExampleApplication/Examples/core/core_basic_window.cs @@ -1,66 +1,8 @@ -/******************************************************************************************* -* -* raylib [core] example - Basic window -* -* Welcome to raylib! -* -* To test examples, just press F6 and execute raylib_compile_execute script -* Note that compiled executable is placed in the same folder as .c file -* -* You can find all basic examples on C:\raylib\raylib\examples folder or -* raylib official webpage: www.raylib.com -* -* Enjoy using raylib. :) -* -* This example has been created using raylib 1.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2013-2016 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -using Raylib; -using static Raylib.rl; - -public partial class Examples -{ - public static int core_basic_window() - { - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window"); - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("Congrats! You created your first window!", 190, 200, 20, MAROON); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; - } + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] example - Basic window * * Welcome to raylib! * * To test examples, just press F6 and execute raylib_compile_execute script * Note that compiled executable is placed in the same folder as .c file * * You can find all basic examples on C:\raylib\raylib\examples folder or * raylib official webpage: www.raylib.com * * Enjoy using raylib. :) * * This example has been created using raylib 1.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2013-2016 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int core_basic_window() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window"); SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update your variables here //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText("Congrats! You created your first window!", 190, 200, 20, MAROON); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } } \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_basic_window_web.c b/ExampleApplication/Examples/core/core_basic_window_web.c deleted file mode 100644 index 1ecb22f..0000000 --- a/ExampleApplication/Examples/core/core_basic_window_web.c +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Basic window (adapted for HTML5 platform) -* -* This example is prepared to compile for PLATFORM_WEB, PLATFORM_DESKTOP and PLATFORM_RPI -* As you will notice, code structure is slightly diferent to the other examples... -* To compile it for PLATFORM_WEB just uncomment #define PLATFORM_WEB at beginning -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -//#define PLATFORM_WEB - -#if defined(PLATFORM_WEB) - #include -#endif - -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- -int screenWidth = 800; -int screenHeight = 450; - -//---------------------------------------------------------------------------------- -// Module Functions Declaration -//---------------------------------------------------------------------------------- -void UpdateDrawFrame(void); // Update and Draw one frame - -//---------------------------------------------------------------------------------- -// Main Enry Point -//---------------------------------------------------------------------------------- -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window"); - -#if defined(PLATFORM_WEB) - emscripten_set_main_loop(UpdateDrawFrame, 0, 1); -#else - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - UpdateDrawFrame(); - } -#endif - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - -//---------------------------------------------------------------------------------- -// Module Functions Definition -//---------------------------------------------------------------------------------- -void UpdateDrawFrame(void) -{ - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- -} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_color_select.c b/ExampleApplication/Examples/core/core_color_select.c deleted file mode 100644 index 002a693..0000000 --- a/ExampleApplication/Examples/core/core_color_select.c +++ /dev/null @@ -1,94 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Color selection by mouse (collision detection) -* -* This example has been created using raylib 1.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - color selection (collision detection)"); - - Color colors[21] = { DARKGRAY, MAROON, ORANGE, DARKGREEN, DARKBLUE, DARKPURPLE, DARKBROWN, - GRAY, RED, GOLD, LIME, BLUE, VIOLET, BROWN, LIGHTGRAY, PINK, YELLOW, - GREEN, SKYBLUE, PURPLE, BEIGE }; - - Rectangle colorsRecs[21]; // Rectangles array - - // Fills colorsRecs data (for every rectangle) - for (int i = 0; i < 21; i++) - { - colorsRecs[i].x = 20 + 100*(i%7) + 10*(i%7); - colorsRecs[i].y = 60 + 100*(i/7) + 10*(i/7); - colorsRecs[i].width = 100; - colorsRecs[i].height = 100; - } - - bool selected[21] = { false }; // Selected rectangles indicator - - Vector2 mousePoint; - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - mousePoint = GetMousePosition(); - - for (int i = 0; i < 21; i++) // Iterate along all the rectangles - { - if (CheckCollisionPointRec(mousePoint, colorsRecs[i])) - { - colors[i].a = 120; - - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) selected[i] = !selected[i]; - } - else colors[i].a = 255; - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - for (int i = 0; i < 21; i++) // Draw all rectangles - { - DrawRectangleRec(colorsRecs[i], colors[i]); - - // Draw four rectangles around selected rectangle - if (selected[i]) - { - DrawRectangle(colorsRecs[i].x, colorsRecs[i].y, 100, 10, RAYWHITE); // Square top rectangle - DrawRectangle(colorsRecs[i].x, colorsRecs[i].y, 10, 100, RAYWHITE); // Square left rectangle - DrawRectangle(colorsRecs[i].x + 90, colorsRecs[i].y, 10, 100, RAYWHITE); // Square right rectangle - DrawRectangle(colorsRecs[i].x, colorsRecs[i].y + 90, 100, 10, RAYWHITE); // Square bottom rectangle - } - } - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_color_select.cs b/ExampleApplication/Examples/core/core_color_select.cs new file mode 100644 index 0000000..6ebe468 --- /dev/null +++ b/ExampleApplication/Examples/core/core_color_select.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] example - Color selection by mouse (collision detection) * * This example has been created using raylib 1.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int core_color_select() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - color selection (collision detection)"); Color colors[21] = { DARKGRAY, MAROON, ORANGE, DARKGREEN, DARKBLUE, DARKPURPLE, DARKBROWN, GRAY, RED, GOLD, LIME, BLUE, VIOLET, BROWN, LIGHTGRAY, PINK, YELLOW, GREEN, SKYBLUE, PURPLE, BEIGE }; Rectangle colorsRecs[21]; // Rectangles array // Fills colorsRecs data (for every rectangle) for (int i = 0; i < 21; i++) { colorsRecs[i].x = 20 + 100*(i%7) + 10*(i%7); colorsRecs[i].y = 60 + 100*(i/7) + 10*(i/7); colorsRecs[i].width = 100; colorsRecs[i].height = 100; } bool selected[21] = { false }; // Selected rectangles indicator Vector2 mousePoint; SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- mousePoint = GetMousePosition(); for (int i = 0; i < 21; i++) // Iterate along all the rectangles { if (CheckCollisionPointRec(mousePoint, colorsRecs[i])) { colors[i].a = 120; if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) selected[i] = !selected[i]; } else colors[i].a = 255; } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); for (int i = 0; i < 21; i++) // Draw all rectangles { DrawRectangleRec(colorsRecs[i], colors[i]); // Draw four rectangles around selected rectangle if (selected[i]) { DrawRectangle(colorsRecs[i].x, colorsRecs[i].y, 100, 10, RAYWHITE); // Square top rectangle DrawRectangle(colorsRecs[i].x, colorsRecs[i].y, 10, 100, RAYWHITE); // Square left rectangle DrawRectangle(colorsRecs[i].x + 90, colorsRecs[i].y, 10, 100, RAYWHITE); // Square right rectangle DrawRectangle(colorsRecs[i].x, colorsRecs[i].y + 90, 100, 10, RAYWHITE); // Square bottom rectangle } } EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_drop_files.c b/ExampleApplication/Examples/core/core_drop_files.c deleted file mode 100644 index 5c1501b..0000000 --- a/ExampleApplication/Examples/core/core_drop_files.c +++ /dev/null @@ -1,76 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Windows drop files -* -* This example only works on platforms that support drag & drop (Windows, Linux, OSX, Html5?) -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - drop files"); - - int count = 0; - char **droppedFiles = { 0 }; - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (IsFileDropped()) - { - droppedFiles = GetDroppedFiles(&count); - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - if (count == 0) DrawText("Drop your files to this window!", 100, 40, 20, DARKGRAY); - else - { - DrawText("Dropped files:", 100, 40, 20, DARKGRAY); - - for (int i = 0; i < count; i++) - { - if (i%2 == 0) DrawRectangle(0, 85 + 40*i, screenWidth, 40, Fade(LIGHTGRAY, 0.5f)); - else DrawRectangle(0, 85 + 40*i, screenWidth, 40, Fade(LIGHTGRAY, 0.3f)); - - DrawText(droppedFiles[i], 120, 100 + 40*i, 10, GRAY); - } - - DrawText("Drop new files...", 100, 110 + 40*count, 20, DARKGRAY); - } - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - ClearDroppedFiles(); // Clear internal buffers - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_drop_files.cs b/ExampleApplication/Examples/core/core_drop_files.cs new file mode 100644 index 0000000..acee51e --- /dev/null +++ b/ExampleApplication/Examples/core/core_drop_files.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] example - Windows drop files * * This example only works on platforms that support drag & drop (Windows, Linux, OSX, Html5?) * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int core_drop_files() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - drop files"); int count = 0; char **droppedFiles = { 0 }; SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- if (IsFileDropped()) { droppedFiles = GetDroppedFiles(&count); } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); if (count == 0) DrawText("Drop your files to this window!", 100, 40, 20, DARKGRAY); else { DrawText("Dropped files:", 100, 40, 20, DARKGRAY); for (int i = 0; i < count; i++) { if (i%2 == 0) DrawRectangle(0, 85 + 40*i, screenWidth, 40, Fade(LIGHTGRAY, 0.5f)); else DrawRectangle(0, 85 + 40*i, screenWidth, 40, Fade(LIGHTGRAY, 0.3f)); DrawText(droppedFiles[i], 120, 100 + 40*i, 10, GRAY); } DrawText("Drop new files...", 100, 110 + 40*count, 20, DARKGRAY); } EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- ClearDroppedFiles(); // Clear internal buffers CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_gestures_detection.c b/ExampleApplication/Examples/core/core_gestures_detection.c deleted file mode 100644 index 63a1e6b..0000000 --- a/ExampleApplication/Examples/core/core_gestures_detection.c +++ /dev/null @@ -1,115 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Gestures Detection -* -* This example has been created using raylib 1.4 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2016 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" -#include - -#define MAX_GESTURE_STRINGS 20 - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - gestures detection"); - - Vector2 touchPosition = { 0, 0 }; - Rectangle touchArea = { 220, 10, screenWidth - 230, screenHeight - 20 }; - - int gesturesCount = 0; - char gestureStrings[MAX_GESTURE_STRINGS][32]; - - int currentGesture = GESTURE_NONE; - int lastGesture = GESTURE_NONE; - - //SetGesturesEnabled(0b0000000000001001); // Enable only some gestures to be detected - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - lastGesture = currentGesture; - currentGesture = GetGestureDetected(); - touchPosition = GetTouchPosition(0); - - if (CheckCollisionPointRec(touchPosition, touchArea) && (currentGesture != GESTURE_NONE)) - { - if (currentGesture != lastGesture) - { - // Store gesture string - switch (currentGesture) - { - case GESTURE_TAP: strcpy(gestureStrings[gesturesCount], "GESTURE TAP"); break; - case GESTURE_DOUBLETAP: strcpy(gestureStrings[gesturesCount], "GESTURE DOUBLETAP"); break; - case GESTURE_HOLD: strcpy(gestureStrings[gesturesCount], "GESTURE HOLD"); break; - case GESTURE_DRAG: strcpy(gestureStrings[gesturesCount], "GESTURE DRAG"); break; - case GESTURE_SWIPE_RIGHT: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE RIGHT"); break; - case GESTURE_SWIPE_LEFT: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE LEFT"); break; - case GESTURE_SWIPE_UP: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE UP"); break; - case GESTURE_SWIPE_DOWN: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE DOWN"); break; - case GESTURE_PINCH_IN: strcpy(gestureStrings[gesturesCount], "GESTURE PINCH IN"); break; - case GESTURE_PINCH_OUT: strcpy(gestureStrings[gesturesCount], "GESTURE PINCH OUT"); break; - default: break; - } - - gesturesCount++; - - // Reset gestures strings - if (gesturesCount >= MAX_GESTURE_STRINGS) - { - for (int i = 0; i < MAX_GESTURE_STRINGS; i++) strcpy(gestureStrings[i], "\0"); - - gesturesCount = 0; - } - } - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawRectangleRec(touchArea, GRAY); - DrawRectangle(225, 15, screenWidth - 240, screenHeight - 30, RAYWHITE); - - DrawText("GESTURES TEST AREA", screenWidth - 270, screenHeight - 40, 20, Fade(GRAY, 0.5f)); - - for (int i = 0; i < gesturesCount; i++) - { - if (i%2 == 0) DrawRectangle(10, 30 + 20*i, 200, 20, Fade(LIGHTGRAY, 0.5f)); - else DrawRectangle(10, 30 + 20*i, 200, 20, Fade(LIGHTGRAY, 0.3f)); - - if (i < gesturesCount - 1) DrawText(gestureStrings[i], 35, 36 + 20*i, 10, DARKGRAY); - else DrawText(gestureStrings[i], 35, 36 + 20*i, 10, MAROON); - } - - DrawRectangleLines(10, 29, 200, screenHeight - 50, GRAY); - DrawText("DETECTED GESTURES", 50, 15, 10, GRAY); - - if (currentGesture != GESTURE_NONE) DrawCircleV(touchPosition, 30, MAROON); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- -} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_gestures_detection.cs b/ExampleApplication/Examples/core/core_gestures_detection.cs new file mode 100644 index 0000000..3692a4a --- /dev/null +++ b/ExampleApplication/Examples/core/core_gestures_detection.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] example - Gestures Detection * * This example has been created using raylib 1.4 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2016 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #include #define MAX_GESTURE_STRINGS 20 public static int core_gestures_detection() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - gestures detection"); Vector2 touchPosition = { 0, 0 }; Rectangle touchArea = { 220, 10, screenWidth - 230, screenHeight - 20 }; int gesturesCount = 0; char gestureStrings[MAX_GESTURE_STRINGS][32]; int currentGesture = GESTURE_NONE; int lastGesture = GESTURE_NONE; //SetGesturesEnabled(0b0000000000001001); // Enable only some gestures to be detected SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- lastGesture = currentGesture; currentGesture = GetGestureDetected(); touchPosition = GetTouchPosition(0); if (CheckCollisionPointRec(touchPosition, touchArea) && (currentGesture != GESTURE_NONE)) { if (currentGesture != lastGesture) { // Store gesture string switch (currentGesture) { case GESTURE_TAP: strcpy(gestureStrings[gesturesCount], "GESTURE TAP"); break; case GESTURE_DOUBLETAP: strcpy(gestureStrings[gesturesCount], "GESTURE DOUBLETAP"); break; case GESTURE_HOLD: strcpy(gestureStrings[gesturesCount], "GESTURE HOLD"); break; case GESTURE_DRAG: strcpy(gestureStrings[gesturesCount], "GESTURE DRAG"); break; case GESTURE_SWIPE_RIGHT: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE RIGHT"); break; case GESTURE_SWIPE_LEFT: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE LEFT"); break; case GESTURE_SWIPE_UP: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE UP"); break; case GESTURE_SWIPE_DOWN: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE DOWN"); break; case GESTURE_PINCH_IN: strcpy(gestureStrings[gesturesCount], "GESTURE PINCH IN"); break; case GESTURE_PINCH_OUT: strcpy(gestureStrings[gesturesCount], "GESTURE PINCH OUT"); break; default: break; } gesturesCount++; // Reset gestures strings if (gesturesCount >= MAX_GESTURE_STRINGS) { for (int i = 0; i < MAX_GESTURE_STRINGS; i++) strcpy(gestureStrings[i], "\0"); gesturesCount = 0; } } } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawRectangleRec(touchArea, GRAY); DrawRectangle(225, 15, screenWidth - 240, screenHeight - 30, RAYWHITE); DrawText("GESTURES TEST AREA", screenWidth - 270, screenHeight - 40, 20, Fade(GRAY, 0.5f)); for (int i = 0; i < gesturesCount; i++) { if (i%2 == 0) DrawRectangle(10, 30 + 20*i, 200, 20, Fade(LIGHTGRAY, 0.5f)); else DrawRectangle(10, 30 + 20*i, 200, 20, Fade(LIGHTGRAY, 0.3f)); if (i < gesturesCount - 1) DrawText(gestureStrings[i], 35, 36 + 20*i, 10, DARKGRAY); else DrawText(gestureStrings[i], 35, 36 + 20*i, 10, MAROON); } DrawRectangleLines(10, 29, 200, screenHeight - 50, GRAY); DrawText("DETECTED GESTURES", 50, 15, 10, GRAY); if (currentGesture != GESTURE_NONE) DrawCircleV(touchPosition, 30, MAROON); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_input_gamepad.c b/ExampleApplication/Examples/core/core_input_gamepad.c deleted file mode 100644 index 64520a4..0000000 --- a/ExampleApplication/Examples/core/core_input_gamepad.c +++ /dev/null @@ -1,194 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Gamepad input -* -* NOTE: This example requires a Gamepad connected to the system -* raylib is configured to work with the following gamepads: -* - Xbox 360 Controller (Xbox 360, Xbox One) -* - PLAYSTATION(R)3 Controller -* Check raylib.h for buttons configuration -* -* This example has been created using raylib 1.6 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2013-2016 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -// NOTE: Gamepad name ID depends on drivers and OS -#if defined(PLATFORM_RPI) - #define XBOX360_NAME_ID "Microsoft X-Box 360 pad" - #define PS3_NAME_ID "PLAYSTATION(R)3 Controller" -#else - #define XBOX360_NAME_ID "Xbox 360 Controller" - #define PS3_NAME_ID "PLAYSTATION(R)3 Controller" -#endif - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - SetConfigFlags(FLAG_MSAA_4X_HINT); // Set MSAA 4X hint before windows creation - - InitWindow(screenWidth, screenHeight, "raylib [core] example - gamepad input"); - - Texture2D texPs3Pad = LoadTexture("resources/ps3.png"); - Texture2D texXboxPad = LoadTexture("resources/xbox.png"); - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // ... - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - if (IsGamepadAvailable(GAMEPAD_PLAYER1)) - { - DrawText(FormatText("GP1: %s", GetGamepadName(GAMEPAD_PLAYER1)), 10, 10, 10, BLACK); - - if (IsGamepadName(GAMEPAD_PLAYER1, XBOX360_NAME_ID)) - { - DrawTexture(texXboxPad, 0, 0, DARKGRAY); - - // Draw buttons: xbox home - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_HOME)) DrawCircle(394, 89, 19, RED); - - // Draw buttons: basic - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_START)) DrawCircle(436, 150, 9, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_SELECT)) DrawCircle(352, 150, 9, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_X)) DrawCircle(501, 151, 15, BLUE); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_A)) DrawCircle(536, 187, 15, LIME); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_B)) DrawCircle(572, 151, 15, MAROON); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_Y)) DrawCircle(536, 115, 15, GOLD); - - // Draw buttons: d-pad - DrawRectangle(317, 202, 19, 71, BLACK); - DrawRectangle(293, 228, 69, 19, BLACK); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_UP)) DrawRectangle(317, 202, 19, 26, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_DOWN)) DrawRectangle(317, 202 + 45, 19, 26, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_LEFT)) DrawRectangle(292, 228, 25, 19, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_RIGHT)) DrawRectangle(292 + 44, 228, 26, 19, RED); - - // Draw buttons: left-right back - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_LB)) DrawCircle(259, 61, 20, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_RB)) DrawCircle(536, 61, 20, RED); - - // Draw axis: left joystick - DrawCircle(259, 152, 39, BLACK); - DrawCircle(259, 152, 34, LIGHTGRAY); - DrawCircle(259 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LEFT_X)*20), - 152 - (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LEFT_Y)*20), 25, BLACK); - - // Draw axis: right joystick - DrawCircle(461, 237, 38, BLACK); - DrawCircle(461, 237, 33, LIGHTGRAY); - DrawCircle(461 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RIGHT_X)*20), - 237 - (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RIGHT_Y)*20), 25, BLACK); - - // Draw axis: left-right triggers - DrawRectangle(170, 30, 15, 70, GRAY); - DrawRectangle(604, 30, 15, 70, GRAY); - DrawRectangle(170, 30, 15, (((1.0f + GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LT))/2.0f)*70), RED); - DrawRectangle(604, 30, 15, (((1.0f + GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RT))/2.0f)*70), RED); - - //DrawText(FormatText("Xbox axis LT: %02.02f", GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LT)), 10, 40, 10, BLACK); - //DrawText(FormatText("Xbox axis RT: %02.02f", GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RT)), 10, 60, 10, BLACK); - } - else if (IsGamepadName(GAMEPAD_PLAYER1, PS3_NAME_ID)) - { - DrawTexture(texPs3Pad, 0, 0, DARKGRAY); - - // Draw buttons: ps - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_PS)) DrawCircle(396, 222, 13, RED); - - // Draw buttons: basic - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_SELECT)) DrawRectangle(328, 170, 32, 13, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_START)) DrawTriangle((Vector2){ 436, 168 }, (Vector2){ 436, 185 }, (Vector2){ 464, 177 }, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_TRIANGLE)) DrawCircle(557, 144, 13, LIME); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_CIRCLE)) DrawCircle(586, 173, 13, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_CROSS)) DrawCircle(557, 203, 13, VIOLET); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_SQUARE)) DrawCircle(527, 173, 13, PINK); - - // Draw buttons: d-pad - DrawRectangle(225, 132, 24, 84, BLACK); - DrawRectangle(195, 161, 84, 25, BLACK); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_UP)) DrawRectangle(225, 132, 24, 29, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_DOWN)) DrawRectangle(225, 132 + 54, 24, 30, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_LEFT)) DrawRectangle(195, 161, 30, 25, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_RIGHT)) DrawRectangle(195 + 54, 161, 30, 25, RED); - - // Draw buttons: left-right back buttons - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_L1)) DrawCircle(239, 82, 20, RED); - if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_R1)) DrawCircle(557, 82, 20, RED); - - // Draw axis: left joystick - DrawCircle(319, 255, 35, BLACK); - DrawCircle(319, 255, 31, LIGHTGRAY); - DrawCircle(319 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_LEFT_X)*20), - 255 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_LEFT_Y)*20), 25, BLACK); - - // Draw axis: right joystick - DrawCircle(475, 255, 35, BLACK); - DrawCircle(475, 255, 31, LIGHTGRAY); - DrawCircle(475 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_RIGHT_X)*20), - 255 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_RIGHT_Y)*20), 25, BLACK); - - // Draw axis: left-right triggers - DrawRectangle(169, 48, 15, 70, GRAY); - DrawRectangle(611, 48, 15, 70, GRAY); - DrawRectangle(169, 48, 15, (((1.0f - GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_L2))/2.0f)*70), RED); - DrawRectangle(611, 48, 15, (((1.0f - GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_R2))/2.0f)*70), RED); - } - else - { - DrawText("- GENERIC GAMEPAD -", 280, 180, 20, GRAY); - - // TODO: Draw generic gamepad - } - - DrawText(FormatText("DETECTED AXIS [%i]:", GetGamepadAxisCount(GAMEPAD_PLAYER1)), 10, 50, 10, MAROON); - - for (int i = 0; i < GetGamepadAxisCount(GAMEPAD_PLAYER1); i++) - { - DrawText(FormatText("AXIS %i: %.02f", i, GetGamepadAxisMovement(GAMEPAD_PLAYER1, i)), 20, 70 + 20*i, 10, DARKGRAY); - } - - if (GetGamepadButtonPressed() != -1) DrawText(FormatText("DETECTED BUTTON: %i", GetGamepadButtonPressed()), 10, 430, 10, RED); - else DrawText("DETECTED BUTTON: NONE", 10, 430, 10, GRAY); - } - else - { - DrawText("GP1: NOT DETECTED", 10, 10, 10, GRAY); - - DrawTexture(texXboxPad, 0, 0, LIGHTGRAY); - } - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(texPs3Pad); - UnloadTexture(texXboxPad); - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_input_gamepad.cs b/ExampleApplication/Examples/core/core_input_gamepad.cs new file mode 100644 index 0000000..ad5c273 --- /dev/null +++ b/ExampleApplication/Examples/core/core_input_gamepad.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] example - Gamepad input * * NOTE: This example requires a Gamepad connected to the system * raylib is configured to work with the following gamepads: * - Xbox 360 Controller (Xbox 360, Xbox One) * - PLAYSTATION(R)3 Controller * Check raylib.h for buttons configuration * * This example has been created using raylib 1.6 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2013-2016 Ramon Santamaria (@raysan5) * ********************************************************************************************/ // NOTE: Gamepad name ID depends on drivers and OS #if defined(PLATFORM_RPI) #define XBOX360_NAME_ID "Microsoft X-Box 360 pad" #define PS3_NAME_ID "PLAYSTATION(R)3 Controller" #else #define XBOX360_NAME_ID "Xbox 360 Controller" #define PS3_NAME_ID "PLAYSTATION(R)3 Controller" #endif public static int core_input_gamepad() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; SetConfigFlags(FLAG_MSAA_4X_HINT); // Set MSAA 4X hint before windows creation InitWindow(screenWidth, screenHeight, "raylib [core] example - gamepad input"); Texture2D texPs3Pad = LoadTexture("resources/ps3.png"); Texture2D texXboxPad = LoadTexture("resources/xbox.png"); SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // ... //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); if (IsGamepadAvailable(GAMEPAD_PLAYER1)) { DrawText(FormatText("GP1: %s", GetGamepadName(GAMEPAD_PLAYER1)), 10, 10, 10, BLACK); if (IsGamepadName(GAMEPAD_PLAYER1, XBOX360_NAME_ID)) { DrawTexture(texXboxPad, 0, 0, DARKGRAY); // Draw buttons: xbox home if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_HOME)) DrawCircle(394, 89, 19, RED); // Draw buttons: basic if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_START)) DrawCircle(436, 150, 9, RED); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_SELECT)) DrawCircle(352, 150, 9, RED); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_X)) DrawCircle(501, 151, 15, BLUE); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_A)) DrawCircle(536, 187, 15, LIME); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_B)) DrawCircle(572, 151, 15, MAROON); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_Y)) DrawCircle(536, 115, 15, GOLD); // Draw buttons: d-pad DrawRectangle(317, 202, 19, 71, BLACK); DrawRectangle(293, 228, 69, 19, BLACK); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_UP)) DrawRectangle(317, 202, 19, 26, RED); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_DOWN)) DrawRectangle(317, 202 + 45, 19, 26, RED); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_LEFT)) DrawRectangle(292, 228, 25, 19, RED); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_RIGHT)) DrawRectangle(292 + 44, 228, 26, 19, RED); // Draw buttons: left-right back if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_LB)) DrawCircle(259, 61, 20, RED); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_RB)) DrawCircle(536, 61, 20, RED); // Draw axis: left joystick DrawCircle(259, 152, 39, BLACK); DrawCircle(259, 152, 34, LIGHTGRAY); DrawCircle(259 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LEFT_X)*20), 152 - (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LEFT_Y)*20), 25, BLACK); // Draw axis: right joystick DrawCircle(461, 237, 38, BLACK); DrawCircle(461, 237, 33, LIGHTGRAY); DrawCircle(461 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RIGHT_X)*20), 237 - (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RIGHT_Y)*20), 25, BLACK); // Draw axis: left-right triggers DrawRectangle(170, 30, 15, 70, GRAY); DrawRectangle(604, 30, 15, 70, GRAY); DrawRectangle(170, 30, 15, (((1.0f + GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LT))/2.0f)*70), RED); DrawRectangle(604, 30, 15, (((1.0f + GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RT))/2.0f)*70), RED); //DrawText(FormatText("Xbox axis LT: %02.02f", GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LT)), 10, 40, 10, BLACK); //DrawText(FormatText("Xbox axis RT: %02.02f", GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RT)), 10, 60, 10, BLACK); } else if (IsGamepadName(GAMEPAD_PLAYER1, PS3_NAME_ID)) { DrawTexture(texPs3Pad, 0, 0, DARKGRAY); // Draw buttons: ps if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_PS)) DrawCircle(396, 222, 13, RED); // Draw buttons: basic if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_SELECT)) DrawRectangle(328, 170, 32, 13, RED); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_START)) DrawTriangle((Vector2){ 436, 168 }, (Vector2){ 436, 185 }, (Vector2){ 464, 177 }, RED); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_TRIANGLE)) DrawCircle(557, 144, 13, LIME); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_CIRCLE)) DrawCircle(586, 173, 13, RED); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_CROSS)) DrawCircle(557, 203, 13, VIOLET); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_SQUARE)) DrawCircle(527, 173, 13, PINK); // Draw buttons: d-pad DrawRectangle(225, 132, 24, 84, BLACK); DrawRectangle(195, 161, 84, 25, BLACK); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_UP)) DrawRectangle(225, 132, 24, 29, RED); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_DOWN)) DrawRectangle(225, 132 + 54, 24, 30, RED); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_LEFT)) DrawRectangle(195, 161, 30, 25, RED); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_RIGHT)) DrawRectangle(195 + 54, 161, 30, 25, RED); // Draw buttons: left-right back buttons if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_L1)) DrawCircle(239, 82, 20, RED); if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_R1)) DrawCircle(557, 82, 20, RED); // Draw axis: left joystick DrawCircle(319, 255, 35, BLACK); DrawCircle(319, 255, 31, LIGHTGRAY); DrawCircle(319 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_LEFT_X)*20), 255 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_LEFT_Y)*20), 25, BLACK); // Draw axis: right joystick DrawCircle(475, 255, 35, BLACK); DrawCircle(475, 255, 31, LIGHTGRAY); DrawCircle(475 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_RIGHT_X)*20), 255 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_RIGHT_Y)*20), 25, BLACK); // Draw axis: left-right triggers DrawRectangle(169, 48, 15, 70, GRAY); DrawRectangle(611, 48, 15, 70, GRAY); DrawRectangle(169, 48, 15, (((1.0f - GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_L2))/2.0f)*70), RED); DrawRectangle(611, 48, 15, (((1.0f - GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_R2))/2.0f)*70), RED); } else { DrawText("- GENERIC GAMEPAD -", 280, 180, 20, GRAY); // TODO: Draw generic gamepad } DrawText(FormatText("DETECTED AXIS [%i]:", GetGamepadAxisCount(GAMEPAD_PLAYER1)), 10, 50, 10, MAROON); for (int i = 0; i < GetGamepadAxisCount(GAMEPAD_PLAYER1); i++) { DrawText(FormatText("AXIS %i: %.02f", i, GetGamepadAxisMovement(GAMEPAD_PLAYER1, i)), 20, 70 + 20*i, 10, DARKGRAY); } if (GetGamepadButtonPressed() != -1) DrawText(FormatText("DETECTED BUTTON: %i", GetGamepadButtonPressed()), 10, 430, 10, RED); else DrawText("DETECTED BUTTON: NONE", 10, 430, 10, GRAY); } else { DrawText("GP1: NOT DETECTED", 10, 10, 10, GRAY); DrawTexture(texXboxPad, 0, 0, LIGHTGRAY); } EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadTexture(texPs3Pad); UnloadTexture(texXboxPad); CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_input_keys.c b/ExampleApplication/Examples/core/core_input_keys.c deleted file mode 100644 index 69384fd..0000000 --- a/ExampleApplication/Examples/core/core_input_keys.c +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Keyboard input -* -* This example has been created using raylib 1.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - keyboard input"); - - Vector2 ballPosition = { (float)screenWidth/2, (float)screenHeight/2 }; - - SetTargetFPS(60); // Set target frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (IsKeyDown(KEY_RIGHT)) ballPosition.x += 2.0f; - if (IsKeyDown(KEY_LEFT)) ballPosition.x -= 2.0f; - if (IsKeyDown(KEY_UP)) ballPosition.y -= 2.0f; - if (IsKeyDown(KEY_DOWN)) ballPosition.y += 2.0f; - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("move the ball with arrow keys", 10, 10, 20, DARKGRAY); - - DrawCircleV(ballPosition, 50, MAROON); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_input_keys.cs b/ExampleApplication/Examples/core/core_input_keys.cs new file mode 100644 index 0000000..089f64c --- /dev/null +++ b/ExampleApplication/Examples/core/core_input_keys.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] example - Keyboard input * * This example has been created using raylib 1.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int core_input_keys() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - keyboard input"); Vector2 ballPosition = { (float)screenWidth/2, (float)screenHeight/2 }; SetTargetFPS(60); // Set target frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- if (IsKeyDown(KEY_RIGHT)) ballPosition.x += 2.0f; if (IsKeyDown(KEY_LEFT)) ballPosition.x -= 2.0f; if (IsKeyDown(KEY_UP)) ballPosition.y -= 2.0f; if (IsKeyDown(KEY_DOWN)) ballPosition.y += 2.0f; //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText("move the ball with arrow keys", 10, 10, 20, DARKGRAY); DrawCircleV(ballPosition, 50, MAROON); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_input_mouse.c b/ExampleApplication/Examples/core/core_input_mouse.c deleted file mode 100644 index 24d2dfc..0000000 --- a/ExampleApplication/Examples/core/core_input_mouse.c +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Mouse input -* -* This example has been created using raylib 1.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - mouse input"); - - Vector2 ballPosition = { -100.0f, -100.0f }; - Color ballColor = DARKBLUE; - - SetTargetFPS(60); - //--------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - ballPosition = GetMousePosition(); - - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) ballColor = MAROON; - else if (IsMouseButtonPressed(MOUSE_MIDDLE_BUTTON)) ballColor = LIME; - else if (IsMouseButtonPressed(MOUSE_RIGHT_BUTTON)) ballColor = DARKBLUE; - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawCircleV(ballPosition, 40, ballColor); - - DrawText("move ball with mouse and click mouse button to change color", 10, 10, 20, DARKGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_input_mouse.cs b/ExampleApplication/Examples/core/core_input_mouse.cs new file mode 100644 index 0000000..8e857ab --- /dev/null +++ b/ExampleApplication/Examples/core/core_input_mouse.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] example - Mouse input * * This example has been created using raylib 1.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int core_input_mouse() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - mouse input"); Vector2 ballPosition = { -100.0f, -100.0f }; Color ballColor = DARKBLUE; SetTargetFPS(60); //--------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- ballPosition = GetMousePosition(); if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) ballColor = MAROON; else if (IsMouseButtonPressed(MOUSE_MIDDLE_BUTTON)) ballColor = LIME; else if (IsMouseButtonPressed(MOUSE_RIGHT_BUTTON)) ballColor = DARKBLUE; //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawCircleV(ballPosition, 40, ballColor); DrawText("move ball with mouse and click mouse button to change color", 10, 10, 20, DARKGRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_mouse_wheel.c b/ExampleApplication/Examples/core/core_mouse_wheel.c deleted file mode 100644 index 6a5252e..0000000 --- a/ExampleApplication/Examples/core/core_mouse_wheel.c +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] examples - Mouse wheel -* -* This test has been created using raylib 1.1 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - mouse wheel"); - - int boxPositionY = screenHeight/2 - 40; - int scrollSpeed = 4; // Scrolling speed in pixels - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - boxPositionY -= (GetMouseWheelMove()*scrollSpeed); - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawRectangle(screenWidth/2 - 40, boxPositionY, 80, 80, MAROON); - - DrawText("Use mouse wheel to move the cube up and down!", 10, 10, 20, GRAY); - DrawText(FormatText("Box position Y: %03i", boxPositionY), 10, 40, 20, LIGHTGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_mouse_wheel.cs b/ExampleApplication/Examples/core/core_mouse_wheel.cs new file mode 100644 index 0000000..3869fdf --- /dev/null +++ b/ExampleApplication/Examples/core/core_mouse_wheel.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] examples - Mouse wheel * * This test has been created using raylib 1.1 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int core_mouse_wheel() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - mouse wheel"); int boxPositionY = screenHeight/2 - 40; int scrollSpeed = 4; // Scrolling speed in pixels SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- boxPositionY -= (GetMouseWheelMove()*scrollSpeed); //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawRectangle(screenWidth/2 - 40, boxPositionY, 80, 80, MAROON); DrawText("Use mouse wheel to move the cube up and down!", 10, 10, 20, GRAY); DrawText(FormatText("Box position Y: %03i", boxPositionY), 10, 40, 20, LIGHTGRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_random_values.c b/ExampleApplication/Examples/core/core_random_values.c deleted file mode 100644 index 06e550d..0000000 --- a/ExampleApplication/Examples/core/core_random_values.c +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Generate random values -* -* This example has been created using raylib 1.1 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - generate random values"); - - int framesCounter = 0; // Variable used to count frames - - int randValue = GetRandomValue(-8, 5); // Get a random integer number between -8 and 5 (both included) - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - framesCounter++; - - // Every two seconds (120 frames) a new random value is generated - if (((framesCounter/120)%2) == 1) - { - randValue = GetRandomValue(-8, 5); - framesCounter = 0; - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("Every 2 seconds a new random value is generated:", 130, 100, 20, MAROON); - - DrawText(FormatText("%i", randValue), 360, 180, 80, LIGHTGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_random_values.cs b/ExampleApplication/Examples/core/core_random_values.cs new file mode 100644 index 0000000..1df59f4 --- /dev/null +++ b/ExampleApplication/Examples/core/core_random_values.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] example - Generate random values * * This example has been created using raylib 1.1 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int core_random_values() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - generate random values"); int framesCounter = 0; // Variable used to count frames int randValue = GetRandomValue(-8, 5); // Get a random integer number between -8 and 5 (both included) SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- framesCounter++; // Every two seconds (120 frames) a new random value is generated if (((framesCounter/120)%2) == 1) { randValue = GetRandomValue(-8, 5); framesCounter = 0; } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText("Every 2 seconds a new random value is generated:", 130, 100, 20, MAROON); DrawText(FormatText("%i", randValue), 360, 180, 80, LIGHTGRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_storage_values.c b/ExampleApplication/Examples/core/core_storage_values.c deleted file mode 100644 index 43f0882..0000000 --- a/ExampleApplication/Examples/core/core_storage_values.c +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - Storage save/load values -* -* This example has been created using raylib 1.4 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -// NOTE: Storage positions must start with 0, directly related to file memory layout -typedef enum { STORAGE_SCORE = 0, STORAGE_HISCORE } StorageData; - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - storage save/load values"); - - int score = 0; - int hiscore = 0; - - int framesCounter = 0; - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (IsKeyPressed(KEY_R)) - { - score = GetRandomValue(1000, 2000); - hiscore = GetRandomValue(2000, 4000); - } - - if (IsKeyPressed(KEY_ENTER)) - { - StorageSaveValue(STORAGE_SCORE, score); - StorageSaveValue(STORAGE_HISCORE, hiscore); - } - else if (IsKeyPressed(KEY_SPACE)) - { - // NOTE: If requested position could not be found, value 0 is returned - score = StorageLoadValue(STORAGE_SCORE); - hiscore = StorageLoadValue(STORAGE_HISCORE); - } - - framesCounter++; - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText(FormatText("SCORE: %i", score), 280, 130, 40, MAROON); - DrawText(FormatText("HI-SCORE: %i", hiscore), 210, 200, 50, BLACK); - - DrawText(FormatText("frames: %i", framesCounter), 10, 10, 20, LIME); - - DrawText("Press R to generate random numbers", 220, 40, 20, LIGHTGRAY); - DrawText("Press ENTER to SAVE values", 250, 310, 20, LIGHTGRAY); - DrawText("Press SPACE to LOAD values", 252, 350, 20, LIGHTGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_storage_values.cs b/ExampleApplication/Examples/core/core_storage_values.cs new file mode 100644 index 0000000..556e854 --- /dev/null +++ b/ExampleApplication/Examples/core/core_storage_values.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] example - Storage save/load values * * This example has been created using raylib 1.4 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ // NOTE: Storage positions must start with 0, directly related to file memory layout typedef enum { STORAGE_SCORE = 0, STORAGE_HISCORE } StorageData; public static int core_storage_values() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - storage save/load values"); int score = 0; int hiscore = 0; int framesCounter = 0; SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- if (IsKeyPressed(KEY_R)) { score = GetRandomValue(1000, 2000); hiscore = GetRandomValue(2000, 4000); } if (IsKeyPressed(KEY_ENTER)) { StorageSaveValue(STORAGE_SCORE, score); StorageSaveValue(STORAGE_HISCORE, hiscore); } else if (IsKeyPressed(KEY_SPACE)) { // NOTE: If requested position could not be found, value 0 is returned score = StorageLoadValue(STORAGE_SCORE); hiscore = StorageLoadValue(STORAGE_HISCORE); } framesCounter++; //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText(FormatText("SCORE: %i", score), 280, 130, 40, MAROON); DrawText(FormatText("HI-SCORE: %i", hiscore), 210, 200, 50, BLACK); DrawText(FormatText("frames: %i", framesCounter), 10, 10, 20, LIME); DrawText("Press R to generate random numbers", 220, 40, 20, LIGHTGRAY); DrawText("Press ENTER to SAVE values", 250, 310, 20, LIGHTGRAY); DrawText("Press SPACE to LOAD values", 252, 350, 20, LIGHTGRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_vr_simulator.c b/ExampleApplication/Examples/core/core_vr_simulator.c deleted file mode 100644 index 3f59e83..0000000 --- a/ExampleApplication/Examples/core/core_vr_simulator.c +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - VR Simulator (Oculus Rift CV1 parameters) -* -* This example has been created using raylib 1.7 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2017 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 1080; - int screenHeight = 600; - - // NOTE: screenWidth/screenHeight should match VR device aspect ratio - - InitWindow(screenWidth, screenHeight, "raylib [core] example - vr simulator"); - - // Init VR simulator (Oculus Rift CV1 parameters) - InitVrSimulator(GetVrDeviceInfo(HMD_OCULUS_RIFT_CV1)); - - // Define the camera to look into our 3d world - Camera camera; - camera.position = (Vector3){ 5.0f, 2.0f, 5.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 2.0f, 0.0f }; // Camera looking at point - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 60.0f; // Camera field-of-view Y - camera.type = CAMERA_PERSPECTIVE; // Camera type - - Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; - - SetCameraMode(camera, CAMERA_FIRST_PERSON); // Set first person camera mode - - SetTargetFPS(90); // Set our game to run at 90 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update camera (simulator mode) - - if (IsKeyPressed(KEY_SPACE)) ToggleVrMode(); // Toggle VR mode - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginVrDrawing(); - - BeginMode3D(camera); - - DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); - DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON); - - DrawGrid(40, 1.0f); - - EndMode3D(); - - EndVrDrawing(); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseVrSimulator(); // Close VR simulator - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_vr_simulator.cs b/ExampleApplication/Examples/core/core_vr_simulator.cs new file mode 100644 index 0000000..af111c5 --- /dev/null +++ b/ExampleApplication/Examples/core/core_vr_simulator.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] example - VR Simulator (Oculus Rift CV1 parameters) * * This example has been created using raylib 1.7 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2017 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int core_vr_simulator() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 1080; int screenHeight = 600; // NOTE: screenWidth/screenHeight should match VR device aspect ratio InitWindow(screenWidth, screenHeight, "raylib [core] example - vr simulator"); // Init VR simulator (Oculus Rift CV1 parameters) InitVrSimulator(GetVrDeviceInfo(HMD_OCULUS_RIFT_CV1)); // Define the camera to look into our 3d world Camera camera; camera.position = (Vector3){ 5.0f, 2.0f, 5.0f }; // Camera position camera.target = (Vector3){ 0.0f, 2.0f, 0.0f }; // Camera looking at point camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) camera.fovy = 60.0f; // Camera field-of-view Y camera.type = CAMERA_PERSPECTIVE; // Camera type Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; SetCameraMode(camera, CAMERA_FIRST_PERSON); // Set first person camera mode SetTargetFPS(90); // Set our game to run at 90 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateCamera(&camera); // Update camera (simulator mode) if (IsKeyPressed(KEY_SPACE)) ToggleVrMode(); // Toggle VR mode //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginVrDrawing(); BeginMode3D(camera); DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON); DrawGrid(40, 1.0f); EndMode3D(); EndVrDrawing(); DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseVrSimulator(); // Close VR simulator CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_world_screen.c b/ExampleApplication/Examples/core/core_world_screen.c deleted file mode 100644 index 460f6b8..0000000 --- a/ExampleApplication/Examples/core/core_world_screen.c +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************************* -* -* raylib [core] example - World to screen -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera free"); - - // Define the camera to look into our 3d world - Camera camera = { 0 }; - camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; - camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; - camera.fovy = 45.0f; - camera.type = CAMERA_PERSPECTIVE; - - Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; - - Vector2 cubeScreenPosition; - - SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update camera - - // Calculate cube screen space position (with a little offset to be in top) - cubeScreenPosition = GetWorldToScreen((Vector3){cubePosition.x, cubePosition.y + 2.5f, cubePosition.z}, camera); - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); - DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON); - - DrawGrid(10, 1.0f); - - EndMode3D(); - - DrawText("Enemy: 100 / 100", cubeScreenPosition.x - MeasureText("Enemy: 100 / 100", 20) / 2, cubeScreenPosition.y, 20, BLACK); - DrawText("Text is always on top of the cube", (screenWidth - MeasureText("Text is always on top of the cube", 20)) / 2, 25, 20, GRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/core/core_world_screen.cs b/ExampleApplication/Examples/core/core_world_screen.cs new file mode 100644 index 0000000..eb79c82 --- /dev/null +++ b/ExampleApplication/Examples/core/core_world_screen.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [core] example - World to screen * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int core_world_screen() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera free"); // Define the camera to look into our 3d world Camera camera = { 0 }; camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; camera.fovy = 45.0f; camera.type = CAMERA_PERSPECTIVE; Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; Vector2 cubeScreenPosition; SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateCamera(&camera); // Update camera // Calculate cube screen space position (with a little offset to be in top) cubeScreenPosition = GetWorldToScreen((Vector3){cubePosition.x, cubePosition.y + 2.5f, cubePosition.z}, camera); //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON); DrawGrid(10, 1.0f); EndMode3D(); DrawText("Enemy: 100 / 100", cubeScreenPosition.x - MeasureText("Enemy: 100 / 100", 20) / 2, cubeScreenPosition.y, 20, BLACK); DrawText("Text is always on top of the cube", (screenWidth - MeasureText("Text is always on top of the cube", 20)) / 2, 25, 20, GRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_billboard.c b/ExampleApplication/Examples/models/models_billboard.c deleted file mode 100644 index 8ce6a44..0000000 --- a/ExampleApplication/Examples/models/models_billboard.c +++ /dev/null @@ -1,76 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - Drawing billboards -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [models] example - drawing billboards"); - - // Define the camera to look into our 3d world - Camera camera = { 0 }; - camera.position = (Vector3){ 5.0f, 4.0f, 5.0f }; - camera.target = (Vector3){ 0.0f, 2.0f, 0.0f }; - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; - camera.fovy = 45.0f; - camera.type = CAMERA_PERSPECTIVE; - - - Texture2D bill = LoadTexture("resources/billboard.png"); // Our texture billboard - Vector3 billPosition = { 0.0f, 2.0f, 0.0f }; // Position where draw billboard - - SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update camera - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawBillboard(camera, bill, billPosition, 2.0f, WHITE); - - DrawGrid(10, 1.0f); // Draw a grid - - EndMode3D(); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(bill); // Unload texture - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_billboard.cs b/ExampleApplication/Examples/models/models_billboard.cs new file mode 100644 index 0000000..0c968ad --- /dev/null +++ b/ExampleApplication/Examples/models/models_billboard.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [models] example - Drawing billboards * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int models_billboard() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [models] example - drawing billboards"); // Define the camera to look into our 3d world Camera camera = { 0 }; camera.position = (Vector3){ 5.0f, 4.0f, 5.0f }; camera.target = (Vector3){ 0.0f, 2.0f, 0.0f }; camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; camera.fovy = 45.0f; camera.type = CAMERA_PERSPECTIVE; Texture2D bill = LoadTexture("resources/billboard.png"); // Our texture billboard Vector3 billPosition = { 0.0f, 2.0f, 0.0f }; // Position where draw billboard SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateCamera(&camera); // Update camera //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); DrawBillboard(camera, bill, billPosition, 2.0f, WHITE); DrawGrid(10, 1.0f); // Draw a grid EndMode3D(); DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadTexture(bill); // Unload texture CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_box_collisions.c b/ExampleApplication/Examples/models/models_box_collisions.c deleted file mode 100644 index 41f6056..0000000 --- a/ExampleApplication/Examples/models/models_box_collisions.c +++ /dev/null @@ -1,121 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - Detect basic 3d collisions (box vs sphere vs box) -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [models] example - box collisions"); - - // Define the camera to look into our 3d world - Camera camera = {{ 0.0f, 10.0f, 10.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; - - Vector3 playerPosition = { 0.0f, 1.0f, 2.0f }; - Vector3 playerSize = { 1.0f, 2.0f, 1.0f }; - Color playerColor = GREEN; - - Vector3 enemyBoxPos = { -4.0f, 1.0f, 0.0f }; - Vector3 enemyBoxSize = { 2.0f, 2.0f, 2.0f }; - - Vector3 enemySpherePos = { 4.0f, 0.0f, 0.0f }; - float enemySphereSize = 1.5f; - - bool collision = false; - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - - // Move player - if (IsKeyDown(KEY_RIGHT)) playerPosition.x += 0.2f; - else if (IsKeyDown(KEY_LEFT)) playerPosition.x -= 0.2f; - else if (IsKeyDown(KEY_DOWN)) playerPosition.z += 0.2f; - else if (IsKeyDown(KEY_UP)) playerPosition.z -= 0.2f; - - collision = false; - - // Check collisions player vs enemy-box - if (CheckCollisionBoxes( - (BoundingBox){(Vector3){ playerPosition.x - playerSize.x/2, - playerPosition.y - playerSize.y/2, - playerPosition.z - playerSize.z/2 }, - (Vector3){ playerPosition.x + playerSize.x/2, - playerPosition.y + playerSize.y/2, - playerPosition.z + playerSize.z/2 }}, - (BoundingBox){(Vector3){ enemyBoxPos.x - enemyBoxSize.x/2, - enemyBoxPos.y - enemyBoxSize.y/2, - enemyBoxPos.z - enemyBoxSize.z/2 }, - (Vector3){ enemyBoxPos.x + enemyBoxSize.x/2, - enemyBoxPos.y + enemyBoxSize.y/2, - enemyBoxPos.z + enemyBoxSize.z/2 }})) collision = true; - - // Check collisions player vs enemy-sphere - if (CheckCollisionBoxSphere( - (BoundingBox){(Vector3){ playerPosition.x - playerSize.x/2, - playerPosition.y - playerSize.y/2, - playerPosition.z - playerSize.z/2 }, - (Vector3){ playerPosition.x + playerSize.x/2, - playerPosition.y + playerSize.y/2, - playerPosition.z + playerSize.z/2 }}, - enemySpherePos, enemySphereSize)) collision = true; - - if (collision) playerColor = RED; - else playerColor = GREEN; - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - // Draw enemy-box - DrawCube(enemyBoxPos, enemyBoxSize.x, enemyBoxSize.y, enemyBoxSize.z, GRAY); - DrawCubeWires(enemyBoxPos, enemyBoxSize.x, enemyBoxSize.y, enemyBoxSize.z, DARKGRAY); - - // Draw enemy-sphere - DrawSphere(enemySpherePos, enemySphereSize, GRAY); - DrawSphereWires(enemySpherePos, enemySphereSize, 16, 16, DARKGRAY); - - // Draw player - DrawCubeV(playerPosition, playerSize, playerColor); - - DrawGrid(10, 1.0f); // Draw a grid - - EndMode3D(); - - DrawText("Move player with cursors to collide", 220, 40, 20, GRAY); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_box_collisions.cs b/ExampleApplication/Examples/models/models_box_collisions.cs new file mode 100644 index 0000000..5752f4b --- /dev/null +++ b/ExampleApplication/Examples/models/models_box_collisions.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [models] example - Detect basic 3d collisions (box vs sphere vs box) * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int models_box_collisions() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [models] example - box collisions"); // Define the camera to look into our 3d world Camera camera = {{ 0.0f, 10.0f, 10.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; Vector3 playerPosition = { 0.0f, 1.0f, 2.0f }; Vector3 playerSize = { 1.0f, 2.0f, 1.0f }; Color playerColor = GREEN; Vector3 enemyBoxPos = { -4.0f, 1.0f, 0.0f }; Vector3 enemyBoxSize = { 2.0f, 2.0f, 2.0f }; Vector3 enemySpherePos = { 4.0f, 0.0f, 0.0f }; float enemySphereSize = 1.5f; bool collision = false; SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // Move player if (IsKeyDown(KEY_RIGHT)) playerPosition.x += 0.2f; else if (IsKeyDown(KEY_LEFT)) playerPosition.x -= 0.2f; else if (IsKeyDown(KEY_DOWN)) playerPosition.z += 0.2f; else if (IsKeyDown(KEY_UP)) playerPosition.z -= 0.2f; collision = false; // Check collisions player vs enemy-box if (CheckCollisionBoxes( (BoundingBox){(Vector3){ playerPosition.x - playerSize.x/2, playerPosition.y - playerSize.y/2, playerPosition.z - playerSize.z/2 }, (Vector3){ playerPosition.x + playerSize.x/2, playerPosition.y + playerSize.y/2, playerPosition.z + playerSize.z/2 }}, (BoundingBox){(Vector3){ enemyBoxPos.x - enemyBoxSize.x/2, enemyBoxPos.y - enemyBoxSize.y/2, enemyBoxPos.z - enemyBoxSize.z/2 }, (Vector3){ enemyBoxPos.x + enemyBoxSize.x/2, enemyBoxPos.y + enemyBoxSize.y/2, enemyBoxPos.z + enemyBoxSize.z/2 }})) collision = true; // Check collisions player vs enemy-sphere if (CheckCollisionBoxSphere( (BoundingBox){(Vector3){ playerPosition.x - playerSize.x/2, playerPosition.y - playerSize.y/2, playerPosition.z - playerSize.z/2 }, (Vector3){ playerPosition.x + playerSize.x/2, playerPosition.y + playerSize.y/2, playerPosition.z + playerSize.z/2 }}, enemySpherePos, enemySphereSize)) collision = true; if (collision) playerColor = RED; else playerColor = GREEN; //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); // Draw enemy-box DrawCube(enemyBoxPos, enemyBoxSize.x, enemyBoxSize.y, enemyBoxSize.z, GRAY); DrawCubeWires(enemyBoxPos, enemyBoxSize.x, enemyBoxSize.y, enemyBoxSize.z, DARKGRAY); // Draw enemy-sphere DrawSphere(enemySpherePos, enemySphereSize, GRAY); DrawSphereWires(enemySpherePos, enemySphereSize, 16, 16, DARKGRAY); // Draw player DrawCubeV(playerPosition, playerSize, playerColor); DrawGrid(10, 1.0f); // Draw a grid EndMode3D(); DrawText("Move player with cursors to collide", 220, 40, 20, GRAY); DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_cubicmap.c b/ExampleApplication/Examples/models/models_cubicmap.c deleted file mode 100644 index c8d62c4..0000000 --- a/ExampleApplication/Examples/models/models_cubicmap.c +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - Cubicmap loading and drawing -* -* This example has been created using raylib 1.8 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [models] example - cubesmap loading and drawing"); - - // Define the camera to look into our 3d world - Camera camera = {{ 16.0f, 14.0f, 16.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; - - Image image = LoadImage("resources/cubicmap.png"); // Load cubicmap image (RAM) - Texture2D cubicmap = LoadTextureFromImage(image); // Convert image to texture to display (VRAM) - - Mesh mesh = GenMeshCubicmap(image, (Vector3){ 1.0f, 1.0f, 1.0f }); - Model model = LoadModelFromMesh(mesh); - - // NOTE: By default each cube is mapped to one part of texture atlas - Texture2D texture = LoadTexture("resources/cubicmap_atlas.png"); // Load map texture - model.material.maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture - - Vector3 mapPosition = { -16.0f, 0.0f, -8.0f }; // Set model position - - UnloadImage(image); // Unload cubesmap image from RAM, already uploaded to VRAM - - SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update camera - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawModel(model, mapPosition, 1.0f, WHITE); - - EndMode3D(); - - DrawTextureEx(cubicmap, (Vector2){ screenWidth - cubicmap.width*4 - 20, 20 }, 0.0f, 4.0f, WHITE); - DrawRectangleLines(screenWidth - cubicmap.width*4 - 20, 20, cubicmap.width*4, cubicmap.height*4, GREEN); - - DrawText("cubicmap image used to", 658, 90, 10, GRAY); - DrawText("generate map 3d model", 658, 104, 10, GRAY); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(cubicmap); // Unload cubicmap texture - UnloadTexture(texture); // Unload map texture - UnloadModel(model); // Unload map model - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} diff --git a/ExampleApplication/Examples/models/models_cubicmap.cs b/ExampleApplication/Examples/models/models_cubicmap.cs new file mode 100644 index 0000000..62be7e9 --- /dev/null +++ b/ExampleApplication/Examples/models/models_cubicmap.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [models] example - Cubicmap loading and drawing * * This example has been created using raylib 1.8 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int models_cubicmap() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [models] example - cubesmap loading and drawing"); // Define the camera to look into our 3d world Camera camera = {{ 16.0f, 14.0f, 16.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; Image image = LoadImage("resources/cubicmap.png"); // Load cubicmap image (RAM) Texture2D cubicmap = LoadTextureFromImage(image); // Convert image to texture to display (VRAM) Mesh mesh = GenMeshCubicmap(image, (Vector3){ 1.0f, 1.0f, 1.0f }); Model model = LoadModelFromMesh(mesh); // NOTE: By default each cube is mapped to one part of texture atlas Texture2D texture = LoadTexture("resources/cubicmap_atlas.png"); // Load map texture model.material.maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture Vector3 mapPosition = { -16.0f, 0.0f, -8.0f }; // Set model position UnloadImage(image); // Unload cubesmap image from RAM, already uploaded to VRAM SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateCamera(&camera); // Update camera //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); DrawModel(model, mapPosition, 1.0f, WHITE); EndMode3D(); DrawTextureEx(cubicmap, (Vector2){ screenWidth - cubicmap.width*4 - 20, 20 }, 0.0f, 4.0f, WHITE); DrawRectangleLines(screenWidth - cubicmap.width*4 - 20, 20, cubicmap.width*4, cubicmap.height*4, GREEN); DrawText("cubicmap image used to", 658, 90, 10, GRAY); DrawText("generate map 3d model", 658, 104, 10, GRAY); DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadTexture(cubicmap); // Unload cubicmap texture UnloadTexture(texture); // Unload map texture UnloadModel(model); // Unload map model CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_geometric_shapes.c b/ExampleApplication/Examples/models/models_geometric_shapes.c deleted file mode 100644 index 82ca4c6..0000000 --- a/ExampleApplication/Examples/models/models_geometric_shapes.c +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - Draw some basic geometric shapes (cube, sphere, cylinder...) -* -* This example has been created using raylib 1.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [models] example - geometric shapes"); - - // Define the camera to look into our 3d world - Camera camera = { 0 }; - camera.position = (Vector3){ 0.0f, 10.0f, 10.0f }; - camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; - camera.fovy = 45.0f; - camera.type = CAMERA_PERSPECTIVE; - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawCube((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, RED); - DrawCubeWires((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, GOLD); - DrawCubeWires((Vector3){-4.0f, 0.0f, -2.0f}, 3.0f, 6.0f, 2.0f, MAROON); - - DrawSphere((Vector3){-1.0f, 0.0f, -2.0f}, 1.0f, GREEN); - DrawSphereWires((Vector3){1.0f, 0.0f, 2.0f}, 2.0f, 16, 16, LIME); - - DrawCylinder((Vector3){4.0f, 0.0f, -2.0f}, 1.0f, 2.0f, 3.0f, 4, SKYBLUE); - DrawCylinderWires((Vector3){4.0f, 0.0f, -2.0f}, 1.0f, 2.0f, 3.0f, 4, DARKBLUE); - DrawCylinderWires((Vector3){4.5f, -1.0f, 2.0f}, 1.0f, 1.0f, 2.0f, 6, BROWN); - - DrawCylinder((Vector3){1.0f, 0.0f, -4.0f}, 0.0f, 1.5f, 3.0f, 8, GOLD); - DrawCylinderWires((Vector3){1.0f, 0.0f, -4.0f}, 0.0f, 1.5f, 3.0f, 8, PINK); - - DrawGrid(10, 1.0f); // Draw a grid - - EndMode3D(); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_geometric_shapes.cs b/ExampleApplication/Examples/models/models_geometric_shapes.cs new file mode 100644 index 0000000..f8965ed --- /dev/null +++ b/ExampleApplication/Examples/models/models_geometric_shapes.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [models] example - Draw some basic geometric shapes (cube, sphere, cylinder...) * * This example has been created using raylib 1.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int models_geometric_shapes() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [models] example - geometric shapes"); // Define the camera to look into our 3d world Camera camera = { 0 }; camera.position = (Vector3){ 0.0f, 10.0f, 10.0f }; camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; camera.fovy = 45.0f; camera.type = CAMERA_PERSPECTIVE; SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update your variables here //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); DrawCube((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, RED); DrawCubeWires((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, GOLD); DrawCubeWires((Vector3){-4.0f, 0.0f, -2.0f}, 3.0f, 6.0f, 2.0f, MAROON); DrawSphere((Vector3){-1.0f, 0.0f, -2.0f}, 1.0f, GREEN); DrawSphereWires((Vector3){1.0f, 0.0f, 2.0f}, 2.0f, 16, 16, LIME); DrawCylinder((Vector3){4.0f, 0.0f, -2.0f}, 1.0f, 2.0f, 3.0f, 4, SKYBLUE); DrawCylinderWires((Vector3){4.0f, 0.0f, -2.0f}, 1.0f, 2.0f, 3.0f, 4, DARKBLUE); DrawCylinderWires((Vector3){4.5f, -1.0f, 2.0f}, 1.0f, 1.0f, 2.0f, 6, BROWN); DrawCylinder((Vector3){1.0f, 0.0f, -4.0f}, 0.0f, 1.5f, 3.0f, 8, GOLD); DrawCylinderWires((Vector3){1.0f, 0.0f, -4.0f}, 0.0f, 1.5f, 3.0f, 8, PINK); DrawGrid(10, 1.0f); // Draw a grid EndMode3D(); DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_heightmap.c b/ExampleApplication/Examples/models/models_heightmap.c deleted file mode 100644 index d131b12..0000000 --- a/ExampleApplication/Examples/models/models_heightmap.c +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - Heightmap loading and drawing -* -* This example has been created using raylib 1.8 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [models] example - heightmap loading and drawing"); - - // Define our custom camera to look into our 3d world - Camera camera = {{ 18.0f, 16.0f, 18.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; - - Image image = LoadImage("resources/heightmap.png"); // Load heightmap image (RAM) - Texture2D texture = LoadTextureFromImage(image); // Convert image to texture (VRAM) - - Mesh mesh = GenMeshHeightmap(image, (Vector3){ 16, 8, 16 }); // Generate heightmap mesh (RAM and VRAM) - Model model = LoadModelFromMesh(mesh); // Load model from generated mesh - - model.material.maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture - Vector3 mapPosition = { -8.0f, 0.0f, -8.0f }; // Define model position - - UnloadImage(image); // Unload heightmap image from RAM, already uploaded to VRAM - - SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update camera - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawModel(model, mapPosition, 1.0f, RED); - - DrawGrid(20, 1.0f); - - EndMode3D(); - - DrawTexture(texture, screenWidth - texture.width - 20, 20, WHITE); - DrawRectangleLines(screenWidth - texture.width - 20, 20, texture.width, texture.height, GREEN); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(texture); // Unload texture - UnloadModel(model); // Unload model - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_heightmap.cs b/ExampleApplication/Examples/models/models_heightmap.cs new file mode 100644 index 0000000..ac152a7 --- /dev/null +++ b/ExampleApplication/Examples/models/models_heightmap.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [models] example - Heightmap loading and drawing * * This example has been created using raylib 1.8 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int models_heightmap() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [models] example - heightmap loading and drawing"); // Define our custom camera to look into our 3d world Camera camera = {{ 18.0f, 16.0f, 18.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; Image image = LoadImage("resources/heightmap.png"); // Load heightmap image (RAM) Texture2D texture = LoadTextureFromImage(image); // Convert image to texture (VRAM) Mesh mesh = GenMeshHeightmap(image, (Vector3){ 16, 8, 16 }); // Generate heightmap mesh (RAM and VRAM) Model model = LoadModelFromMesh(mesh); // Load model from generated mesh model.material.maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture Vector3 mapPosition = { -8.0f, 0.0f, -8.0f }; // Define model position UnloadImage(image); // Unload heightmap image from RAM, already uploaded to VRAM SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateCamera(&camera); // Update camera //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); DrawModel(model, mapPosition, 1.0f, RED); DrawGrid(20, 1.0f); EndMode3D(); DrawTexture(texture, screenWidth - texture.width - 20, 20, WHITE); DrawRectangleLines(screenWidth - texture.width - 20, 20, texture.width, texture.height, GREEN); DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadTexture(texture); // Unload texture UnloadModel(model); // Unload model CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_material_pbr.c b/ExampleApplication/Examples/models/models_material_pbr.c deleted file mode 100644 index a4a10d6..0000000 --- a/ExampleApplication/Examples/models/models_material_pbr.c +++ /dev/null @@ -1,196 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - PBR material -* -* This example has been created using raylib 1.8 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2017 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" -#include "raymath.h" - -#define RLIGHTS_IMPLEMENTATION -#include "rlights.h" - -#define CUBEMAP_SIZE 512 // Cubemap texture size -#define IRRADIANCE_SIZE 32 // Irradiance texture size -#define PREFILTERED_SIZE 256 // Prefiltered HDR environment texture size -#define BRDF_SIZE 512 // BRDF LUT texture size - -// PBR material loading -static Material LoadMaterialPBR(Color albedo, float metalness, float roughness); - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available) - InitWindow(screenWidth, screenHeight, "raylib [models] example - pbr material"); - - // Define the camera to look into our 3d world - Camera camera = {{ 4.0f, 4.0f, 4.0f }, { 0.0f, 0.5f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; - - // Load model and PBR material - Model model = LoadModel("resources/pbr/trooper.obj"); - MeshTangents(&model.mesh); - model.material = LoadMaterialPBR((Color){ 255, 255, 255, 255 }, 1.0f, 1.0f); - - // Define lights attributes - // NOTE: Shader is passed to every light on creation to define shader bindings internally - Light lights[MAX_LIGHTS] = { - CreateLight(LIGHT_POINT, (Vector3){ LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 0, 255 }, model.material.shader), - CreateLight(LIGHT_POINT, (Vector3){ 0.0f, LIGHT_HEIGHT, LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 255, 0, 255 }, model.material.shader), - CreateLight(LIGHT_POINT, (Vector3){ -LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 0, 255, 255 }, model.material.shader), - CreateLight(LIGHT_DIRECTIONAL, (Vector3){ 0.0f, LIGHT_HEIGHT*2.0f, -LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 255, 255 }, model.material.shader) - }; - - SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update camera - - // Send to material PBR shader camera view position - float cameraPos[3] = { camera.position.x, camera.position.y, camera.position.z }; - SetShaderValue(model.material.shader, model.material.shader.locs[LOC_VECTOR_VIEW], cameraPos, 3); - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawModel(model, Vector3Zero(), 1.0f, WHITE); - - DrawGrid(10, 1.0f); - - EndMode3D(); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadModel(model); // Unload skybox model - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - -// Load PBR material (Supports: ALBEDO, NORMAL, METALNESS, ROUGHNESS, AO, EMMISIVE, HEIGHT maps) -// NOTE: PBR shader is loaded inside this function -static Material LoadMaterialPBR(Color albedo, float metalness, float roughness) -{ - Material mat = { 0 }; // NOTE: All maps textures are set to { 0 } - - #define PATH_PBR_VS "resources/shaders/pbr.vs" // Path to physically based rendering vertex shader - #define PATH_PBR_FS "resources/shaders/pbr.fs" // Path to physically based rendering fragment shader - - mat.shader = LoadShader(PATH_PBR_VS, PATH_PBR_FS); - - // Get required locations points for PBR material - // NOTE: Those location names must be available and used in the shader code - mat.shader.locs[LOC_MAP_ALBEDO] = GetShaderLocation(mat.shader, "albedo.sampler"); - mat.shader.locs[LOC_MAP_METALNESS] = GetShaderLocation(mat.shader, "metalness.sampler"); - mat.shader.locs[LOC_MAP_NORMAL] = GetShaderLocation(mat.shader, "normals.sampler"); - mat.shader.locs[LOC_MAP_ROUGHNESS] = GetShaderLocation(mat.shader, "roughness.sampler"); - mat.shader.locs[LOC_MAP_OCCLUSION] = GetShaderLocation(mat.shader, "occlusion.sampler"); - //mat.shader.locs[LOC_MAP_EMISSION] = GetShaderLocation(mat.shader, "emission.sampler"); - //mat.shader.locs[LOC_MAP_HEIGHT] = GetShaderLocation(mat.shader, "height.sampler"); - mat.shader.locs[LOC_MAP_IRRADIANCE] = GetShaderLocation(mat.shader, "irradianceMap"); - mat.shader.locs[LOC_MAP_PREFILTER] = GetShaderLocation(mat.shader, "prefilterMap"); - mat.shader.locs[LOC_MAP_BRDF] = GetShaderLocation(mat.shader, "brdfLUT"); - - // Set view matrix location - mat.shader.locs[LOC_MATRIX_MODEL] = GetShaderLocation(mat.shader, "matModel"); - mat.shader.locs[LOC_MATRIX_VIEW] = GetShaderLocation(mat.shader, "view"); - mat.shader.locs[LOC_VECTOR_VIEW] = GetShaderLocation(mat.shader, "viewPos"); - - // Set PBR standard maps - mat.maps[MAP_ALBEDO].texture = LoadTexture("resources/pbr/trooper_albedo.png"); - mat.maps[MAP_NORMAL].texture = LoadTexture("resources/pbr/trooper_normals.png"); - mat.maps[MAP_METALNESS].texture = LoadTexture("resources/pbr/trooper_metalness.png"); - mat.maps[MAP_ROUGHNESS].texture = LoadTexture("resources/pbr/trooper_roughness.png"); - mat.maps[MAP_OCCLUSION].texture = LoadTexture("resources/pbr/trooper_ao.png"); - - // Set environment maps - #define PATH_CUBEMAP_VS "resources/shaders/cubemap.vs" // Path to equirectangular to cubemap vertex shader - #define PATH_CUBEMAP_FS "resources/shaders/cubemap.fs" // Path to equirectangular to cubemap fragment shader - #define PATH_SKYBOX_VS "resources/shaders/skybox.vs" // Path to skybox vertex shader - #define PATH_IRRADIANCE_FS "resources/shaders/irradiance.fs" // Path to irradiance (GI) calculation fragment shader - #define PATH_PREFILTER_FS "resources/shaders/prefilter.fs" // Path to reflection prefilter calculation fragment shader - #define PATH_BRDF_VS "resources/shaders/brdf.vs" // Path to bidirectional reflectance distribution function vertex shader - #define PATH_BRDF_FS "resources/shaders/brdf.fs" // Path to bidirectional reflectance distribution function fragment shader - - Shader shdrCubemap = LoadShader(PATH_CUBEMAP_VS, PATH_CUBEMAP_FS); - Shader shdrIrradiance = LoadShader(PATH_SKYBOX_VS, PATH_IRRADIANCE_FS); - Shader shdrPrefilter = LoadShader(PATH_SKYBOX_VS, PATH_PREFILTER_FS); - Shader shdrBRDF = LoadShader(PATH_BRDF_VS, PATH_BRDF_FS); - - // Setup required shader locations - SetShaderValuei(shdrCubemap, GetShaderLocation(shdrCubemap, "equirectangularMap"), (int[1]){ 0 }, 1); - SetShaderValuei(shdrIrradiance, GetShaderLocation(shdrIrradiance, "environmentMap"), (int[1]){ 0 }, 1); - SetShaderValuei(shdrPrefilter, GetShaderLocation(shdrPrefilter, "environmentMap"), (int[1]){ 0 }, 1); - - Texture2D texHDR = LoadTexture("resources/dresden_square.hdr"); - Texture2D cubemap = GenTextureCubemap(shdrCubemap, texHDR, CUBEMAP_SIZE); - mat.maps[MAP_IRRADIANCE].texture = GenTextureIrradiance(shdrIrradiance, cubemap, IRRADIANCE_SIZE); - mat.maps[MAP_PREFILTER].texture = GenTexturePrefilter(shdrPrefilter, cubemap, PREFILTERED_SIZE); - mat.maps[MAP_BRDF].texture = GenTextureBRDF(shdrBRDF, cubemap, BRDF_SIZE); - UnloadTexture(cubemap); - UnloadTexture(texHDR); - - // Unload already used shaders (to create specific textures) - UnloadShader(shdrCubemap); - UnloadShader(shdrIrradiance); - UnloadShader(shdrPrefilter); - UnloadShader(shdrBRDF); - - // Set textures filtering for better quality - SetTextureFilter(mat.maps[MAP_ALBEDO].texture, FILTER_BILINEAR); - SetTextureFilter(mat.maps[MAP_NORMAL].texture, FILTER_BILINEAR); - SetTextureFilter(mat.maps[MAP_METALNESS].texture, FILTER_BILINEAR); - SetTextureFilter(mat.maps[MAP_ROUGHNESS].texture, FILTER_BILINEAR); - SetTextureFilter(mat.maps[MAP_OCCLUSION].texture, FILTER_BILINEAR); - - // Enable sample usage in shader for assigned textures - SetShaderValuei(mat.shader, GetShaderLocation(mat.shader, "albedo.useSampler"), (int[1]){ 1 }, 1); - SetShaderValuei(mat.shader, GetShaderLocation(mat.shader, "normals.useSampler"), (int[1]){ 1 }, 1); - SetShaderValuei(mat.shader, GetShaderLocation(mat.shader, "metalness.useSampler"), (int[1]){ 1 }, 1); - SetShaderValuei(mat.shader, GetShaderLocation(mat.shader, "roughness.useSampler"), (int[1]){ 1 }, 1); - SetShaderValuei(mat.shader, GetShaderLocation(mat.shader, "occlusion.useSampler"), (int[1]){ 1 }, 1); - - int renderModeLoc = GetShaderLocation(mat.shader, "renderMode"); - SetShaderValuei(mat.shader, renderModeLoc, (int[1]){ 0 }, 1); - - // Set up material properties color - mat.maps[MAP_ALBEDO].color = albedo; - mat.maps[MAP_NORMAL].color = (Color){ 128, 128, 255, 255 }; - mat.maps[MAP_METALNESS].value = metalness; - mat.maps[MAP_ROUGHNESS].value = roughness; - mat.maps[MAP_OCCLUSION].value = 1.0f; - mat.maps[MAP_EMISSION].value = 0.5f; - mat.maps[MAP_HEIGHT].value = 0.5f; - - return mat; -} diff --git a/ExampleApplication/Examples/models/models_material_pbr.cs b/ExampleApplication/Examples/models/models_material_pbr.cs new file mode 100644 index 0000000..3df2ca9 --- /dev/null +++ b/ExampleApplication/Examples/models/models_material_pbr.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [models] example - PBR material * * This example has been created using raylib 1.8 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2017 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #include "raymath.h" #define RLIGHTS_IMPLEMENTATION #include "rlights.h" #define CUBEMAP_SIZE 512 // Cubemap texture size #define IRRADIANCE_SIZE 32 // Irradiance texture size #define PREFILTERED_SIZE 256 // Prefiltered HDR environment texture size #define BRDF_SIZE 512 // BRDF LUT texture size // PBR material loading static Material LoadMaterialPBR(Color albedo, float metalness, float roughness); public static int models_material_pbr() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available) InitWindow(screenWidth, screenHeight, "raylib [models] example - pbr material"); // Define the camera to look into our 3d world Camera camera = {{ 4.0f, 4.0f, 4.0f }, { 0.0f, 0.5f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; // Load model and PBR material Model model = LoadModel("resources/pbr/trooper.obj"); MeshTangents(&model.mesh); model.material = LoadMaterialPBR((Color){ 255, 255, 255, 255 }, 1.0f, 1.0f); // Define lights attributes // NOTE: Shader is passed to every light on creation to define shader bindings internally Light lights[MAX_LIGHTS] = { CreateLight(LIGHT_POINT, (Vector3){ LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 0, 255 }, model.material.shader), CreateLight(LIGHT_POINT, (Vector3){ 0.0f, LIGHT_HEIGHT, LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 255, 0, 255 }, model.material.shader), CreateLight(LIGHT_POINT, (Vector3){ -LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 0, 255, 255 }, model.material.shader), CreateLight(LIGHT_DIRECTIONAL, (Vector3){ 0.0f, LIGHT_HEIGHT*2.0f, -LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 255, 255 }, model.material.shader) }; SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateCamera(&camera); // Update camera // Send to material PBR shader camera view position float cameraPos[3] = { camera.position.x, camera.position.y, camera.position.z }; SetShaderValue(model.material.shader, model.material.shader.locs[LOC_VECTOR_VIEW], cameraPos, 3); //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); DrawModel(model, Vector3Zero(), 1.0f, WHITE); DrawGrid(10, 1.0f); EndMode3D(); DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadModel(model); // Unload skybox model CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } // Load PBR material (Supports: ALBEDO, NORMAL, METALNESS, ROUGHNESS, AO, EMMISIVE, HEIGHT maps) // NOTE: PBR shader is loaded inside this function static Material LoadMaterialPBR(Color albedo, float metalness, float roughness) { Material mat = { 0 }; // NOTE: All maps textures are set to { 0 } #define PATH_PBR_VS "resources/shaders/pbr.vs" // Path to physically based rendering vertex shader #define PATH_PBR_FS "resources/shaders/pbr.fs" // Path to physically based rendering fragment shader mat.shader = LoadShader(PATH_PBR_VS, PATH_PBR_FS); // Get required locations points for PBR material // NOTE: Those location names must be available and used in the shader code mat.shader.locs[LOC_MAP_ALBEDO] = GetShaderLocation(mat.shader, "albedo.sampler"); mat.shader.locs[LOC_MAP_METALNESS] = GetShaderLocation(mat.shader, "metalness.sampler"); mat.shader.locs[LOC_MAP_NORMAL] = GetShaderLocation(mat.shader, "normals.sampler"); mat.shader.locs[LOC_MAP_ROUGHNESS] = GetShaderLocation(mat.shader, "roughness.sampler"); mat.shader.locs[LOC_MAP_OCCLUSION] = GetShaderLocation(mat.shader, "occlusion.sampler"); //mat.shader.locs[LOC_MAP_EMISSION] = GetShaderLocation(mat.shader, "emission.sampler"); //mat.shader.locs[LOC_MAP_HEIGHT] = GetShaderLocation(mat.shader, "height.sampler"); mat.shader.locs[LOC_MAP_IRRADIANCE] = GetShaderLocation(mat.shader, "irradianceMap"); mat.shader.locs[LOC_MAP_PREFILTER] = GetShaderLocation(mat.shader, "prefilterMap"); mat.shader.locs[LOC_MAP_BRDF] = GetShaderLocation(mat.shader, "brdfLUT"); // Set view matrix location mat.shader.locs[LOC_MATRIX_MODEL] = GetShaderLocation(mat.shader, "matModel"); mat.shader.locs[LOC_MATRIX_VIEW] = GetShaderLocation(mat.shader, "view"); mat.shader.locs[LOC_VECTOR_VIEW] = GetShaderLocation(mat.shader, "viewPos"); // Set PBR standard maps mat.maps[MAP_ALBEDO].texture = LoadTexture("resources/pbr/trooper_albedo.png"); mat.maps[MAP_NORMAL].texture = LoadTexture("resources/pbr/trooper_normals.png"); mat.maps[MAP_METALNESS].texture = LoadTexture("resources/pbr/trooper_metalness.png"); mat.maps[MAP_ROUGHNESS].texture = LoadTexture("resources/pbr/trooper_roughness.png"); mat.maps[MAP_OCCLUSION].texture = LoadTexture("resources/pbr/trooper_ao.png"); // Set environment maps #define PATH_CUBEMAP_VS "resources/shaders/cubemap.vs" // Path to equirectangular to cubemap vertex shader #define PATH_CUBEMAP_FS "resources/shaders/cubemap.fs" // Path to equirectangular to cubemap fragment shader #define PATH_SKYBOX_VS "resources/shaders/skybox.vs" // Path to skybox vertex shader #define PATH_IRRADIANCE_FS "resources/shaders/irradiance.fs" // Path to irradiance (GI) calculation fragment shader #define PATH_PREFILTER_FS "resources/shaders/prefilter.fs" // Path to reflection prefilter calculation fragment shader #define PATH_BRDF_VS "resources/shaders/brdf.vs" // Path to bidirectional reflectance distribution function vertex shader #define PATH_BRDF_FS "resources/shaders/brdf.fs" // Path to bidirectional reflectance distribution function fragment shader Shader shdrCubemap = LoadShader(PATH_CUBEMAP_VS, PATH_CUBEMAP_FS); Shader shdrIrradiance = LoadShader(PATH_SKYBOX_VS, PATH_IRRADIANCE_FS); Shader shdrPrefilter = LoadShader(PATH_SKYBOX_VS, PATH_PREFILTER_FS); Shader shdrBRDF = LoadShader(PATH_BRDF_VS, PATH_BRDF_FS); // Setup required shader locations SetShaderValuei(shdrCubemap, GetShaderLocation(shdrCubemap, "equirectangularMap"), (int[1]){ 0 }, 1); SetShaderValuei(shdrIrradiance, GetShaderLocation(shdrIrradiance, "environmentMap"), (int[1]){ 0 }, 1); SetShaderValuei(shdrPrefilter, GetShaderLocation(shdrPrefilter, "environmentMap"), (int[1]){ 0 }, 1); Texture2D texHDR = LoadTexture("resources/dresden_square.hdr"); Texture2D cubemap = GenTextureCubemap(shdrCubemap, texHDR, CUBEMAP_SIZE); mat.maps[MAP_IRRADIANCE].texture = GenTextureIrradiance(shdrIrradiance, cubemap, IRRADIANCE_SIZE); mat.maps[MAP_PREFILTER].texture = GenTexturePrefilter(shdrPrefilter, cubemap, PREFILTERED_SIZE); mat.maps[MAP_BRDF].texture = GenTextureBRDF(shdrBRDF, cubemap, BRDF_SIZE); UnloadTexture(cubemap); UnloadTexture(texHDR); // Unload already used shaders (to create specific textures) UnloadShader(shdrCubemap); UnloadShader(shdrIrradiance); UnloadShader(shdrPrefilter); UnloadShader(shdrBRDF); // Set textures filtering for better quality SetTextureFilter(mat.maps[MAP_ALBEDO].texture, FILTER_BILINEAR); SetTextureFilter(mat.maps[MAP_NORMAL].texture, FILTER_BILINEAR); SetTextureFilter(mat.maps[MAP_METALNESS].texture, FILTER_BILINEAR); SetTextureFilter(mat.maps[MAP_ROUGHNESS].texture, FILTER_BILINEAR); SetTextureFilter(mat.maps[MAP_OCCLUSION].texture, FILTER_BILINEAR); // Enable sample usage in shader for assigned textures SetShaderValuei(mat.shader, GetShaderLocation(mat.shader, "albedo.useSampler"), (int[1]){ 1 }, 1); SetShaderValuei(mat.shader, GetShaderLocation(mat.shader, "normals.useSampler"), (int[1]){ 1 }, 1); SetShaderValuei(mat.shader, GetShaderLocation(mat.shader, "metalness.useSampler"), (int[1]){ 1 }, 1); SetShaderValuei(mat.shader, GetShaderLocation(mat.shader, "roughness.useSampler"), (int[1]){ 1 }, 1); SetShaderValuei(mat.shader, GetShaderLocation(mat.shader, "occlusion.useSampler"), (int[1]){ 1 }, 1); int renderModeLoc = GetShaderLocation(mat.shader, "renderMode"); SetShaderValuei(mat.shader, renderModeLoc, (int[1]){ 0 }, 1); // Set up material properties color mat.maps[MAP_ALBEDO].color = albedo; mat.maps[MAP_NORMAL].color = (Color){ 128, 128, 255, 255 }; mat.maps[MAP_METALNESS].value = metalness; mat.maps[MAP_ROUGHNESS].value = roughness; mat.maps[MAP_OCCLUSION].value = 1.0f; mat.maps[MAP_EMISSION].value = 0.5f; mat.maps[MAP_HEIGHT].value = 0.5f; return mat; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_mesh_generation.c b/ExampleApplication/Examples/models/models_mesh_generation.c deleted file mode 100644 index c02bd91..0000000 --- a/ExampleApplication/Examples/models/models_mesh_generation.c +++ /dev/null @@ -1,113 +0,0 @@ -/******************************************************************************************* -* -* raylib example - procedural mesh generation -* -* This example has been created using raylib 1.8 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2017 Ramon Santamaria (Ray San) -* -********************************************************************************************/ - -#include "raylib.h" - -#define NUM_MODELS 7 // We generate 7 parametric 3d shapes - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [models] example - mesh generation"); - - // We generate a checked image for texturing - Image checked = GenImageChecked(2, 2, 1, 1, RED, GREEN); - Texture2D texture = LoadTextureFromImage(checked); - UnloadImage(checked); - - Model models[NUM_MODELS]; - - models[0] = LoadModelFromMesh(GenMeshPlane(2, 2, 5, 5)); - models[1] = LoadModelFromMesh(GenMeshCube(2.0f, 1.0f, 2.0f)); - models[2] = LoadModelFromMesh(GenMeshSphere(2, 32, 32)); - models[3] = LoadModelFromMesh(GenMeshHemiSphere(2, 16, 16)); - models[4] = LoadModelFromMesh(GenMeshCylinder(1, 2, 16)); - models[5] = LoadModelFromMesh(GenMeshTorus(0.25f, 4.0f, 16, 32)); - models[6] = LoadModelFromMesh(GenMeshKnot(1.0f, 2.0f, 16, 128)); - - // Set checked texture as default diffuse component for all models material - for (int i = 0; i < NUM_MODELS; i++) models[i].material.maps[MAP_DIFFUSE].texture = texture; - - // Define the camera to look into our 3d world - Camera camera = {{ 5.0f, 5.0f, 5.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; - - // Model drawing position - Vector3 position = { 0.0f, 0.0f, 0.0f }; - - int currentModel = 0; - - SetCameraMode(camera, CAMERA_ORBITAL); // Set a orbital camera mode - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update internal camera and our camera - - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) - { - currentModel = (currentModel + 1)%NUM_MODELS; // Cycle between the textures - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawModel(models[currentModel], position, 1.0f, WHITE); - - DrawGrid(10, 1.0); - - EndMode3D(); - - DrawRectangle(30, 400, 310, 30, Fade(SKYBLUE, 0.5f)); - DrawRectangleLines(30, 400, 310, 30, Fade(DARKBLUE, 0.5f)); - DrawText("MOUSE LEFT BUTTON to CYCLE PROCEDURAL MODELS", 40, 410, 10, BLUE); - - switch(currentModel) - { - case 0: DrawText("PLANE", 680, 10, 20, DARKBLUE); break; - case 1: DrawText("CUBE", 680, 10, 20, DARKBLUE); break; - case 2: DrawText("SPHERE", 680, 10, 20, DARKBLUE); break; - case 3: DrawText("HEMISPHERE", 640, 10, 20, DARKBLUE); break; - case 4: DrawText("CYLINDER", 680, 10, 20, DARKBLUE); break; - case 5: DrawText("TORUS", 680, 10, 20, DARKBLUE); break; - case 6: DrawText("KNOT", 680, 10, 20, DARKBLUE); break; - default: break; - } - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - - // Unload models data (GPU VRAM) - for (int i = 0; i < NUM_MODELS; i++) UnloadModel(models[i]); - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_mesh_generation.cs b/ExampleApplication/Examples/models/models_mesh_generation.cs new file mode 100644 index 0000000..c74f868 --- /dev/null +++ b/ExampleApplication/Examples/models/models_mesh_generation.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib example - procedural mesh generation * * This example has been created using raylib 1.8 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2017 Ramon Santamaria (Ray San) * ********************************************************************************************/ #define NUM_MODELS 7 // We generate 7 parametric 3d shapes public static int models_mesh_generation() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [models] example - mesh generation"); // We generate a checked image for texturing Image checked = GenImageChecked(2, 2, 1, 1, RED, GREEN); Texture2D texture = LoadTextureFromImage(checked); UnloadImage(checked); Model models[NUM_MODELS]; models[0] = LoadModelFromMesh(GenMeshPlane(2, 2, 5, 5)); models[1] = LoadModelFromMesh(GenMeshCube(2.0f, 1.0f, 2.0f)); models[2] = LoadModelFromMesh(GenMeshSphere(2, 32, 32)); models[3] = LoadModelFromMesh(GenMeshHemiSphere(2, 16, 16)); models[4] = LoadModelFromMesh(GenMeshCylinder(1, 2, 16)); models[5] = LoadModelFromMesh(GenMeshTorus(0.25f, 4.0f, 16, 32)); models[6] = LoadModelFromMesh(GenMeshKnot(1.0f, 2.0f, 16, 128)); // Set checked texture as default diffuse component for all models material for (int i = 0; i < NUM_MODELS; i++) models[i].material.maps[MAP_DIFFUSE].texture = texture; // Define the camera to look into our 3d world Camera camera = {{ 5.0f, 5.0f, 5.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; // Model drawing position Vector3 position = { 0.0f, 0.0f, 0.0f }; int currentModel = 0; SetCameraMode(camera, CAMERA_ORBITAL); // Set a orbital camera mode SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateCamera(&camera); // Update internal camera and our camera if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) { currentModel = (currentModel + 1)%NUM_MODELS; // Cycle between the textures } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); DrawModel(models[currentModel], position, 1.0f, WHITE); DrawGrid(10, 1.0); EndMode3D(); DrawRectangle(30, 400, 310, 30, Fade(SKYBLUE, 0.5f)); DrawRectangleLines(30, 400, 310, 30, Fade(DARKBLUE, 0.5f)); DrawText("MOUSE LEFT BUTTON to CYCLE PROCEDURAL MODELS", 40, 410, 10, BLUE); switch(currentModel) { case 0: DrawText("PLANE", 680, 10, 20, DARKBLUE); break; case 1: DrawText("CUBE", 680, 10, 20, DARKBLUE); break; case 2: DrawText("SPHERE", 680, 10, 20, DARKBLUE); break; case 3: DrawText("HEMISPHERE", 640, 10, 20, DARKBLUE); break; case 4: DrawText("CYLINDER", 680, 10, 20, DARKBLUE); break; case 5: DrawText("TORUS", 680, 10, 20, DARKBLUE); break; case 6: DrawText("KNOT", 680, 10, 20, DARKBLUE); break; default: break; } EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- // Unload models data (GPU VRAM) for (int i = 0; i < NUM_MODELS; i++) UnloadModel(models[i]); CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_mesh_picking.c b/ExampleApplication/Examples/models/models_mesh_picking.c deleted file mode 100644 index fb224c7..0000000 --- a/ExampleApplication/Examples/models/models_mesh_picking.c +++ /dev/null @@ -1,201 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - Mesh picking in 3d mode, ground plane, triangle, mesh -* -* This example has been created using raylib 1.7 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* Example contributed by Joel Davis (@joeld42) -* -********************************************************************************************/ - -#include "raylib.h" -#include "raymath.h" - -#define FLT_MAX 3.40282347E+38F // Maximum value of a float, defined in - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [models] example - mesh picking"); - - // Define the camera to look into our 3d world - Camera camera; - camera.position = (Vector3){ 20.0f, 20.0f, 20.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 8.0f, 0.0f }; // Camera looking at point - camera.up = (Vector3){ 0.0f, 1.6f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 45.0f; // Camera field-of-view Y - camera.type = CAMERA_PERSPECTIVE; // Camera mode type - - Ray ray; // Picking ray - - Model tower = LoadModel("resources/models/turret.obj"); // Load OBJ model - Texture2D texture = LoadTexture("resources/models/turret_diffuse.png"); // Load model texture - tower.material.maps[MAP_DIFFUSE].texture = texture; // Set model diffuse texture - - Vector3 towerPos = { 0.0f, 0.0f, 0.0f }; // Set model position - BoundingBox towerBBox = MeshBoundingBox(tower.mesh); // Get mesh bounding box - bool hitMeshBBox = false; - bool hitTriangle = false; - - // Test triangle - Vector3 ta = (Vector3){ -25.0, 0.5, 0.0 }; - Vector3 tb = (Vector3){ -4.0, 2.5, 1.0 }; - Vector3 tc = (Vector3){ -8.0, 6.5, 0.0 }; - - Vector3 bary = { 0.0f, 0.0f, 0.0f }; - - SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update camera - - // Display information about closest hit - RayHitInfo nearestHit; - char *hitObjectName = "None"; - nearestHit.distance = FLT_MAX; - nearestHit.hit = false; - Color cursorColor = WHITE; - - // Get ray and test against ground, triangle, and mesh - ray = GetMouseRay(GetMousePosition(), camera); - - // Check ray collision aginst ground plane - RayHitInfo groundHitInfo = GetCollisionRayGround(ray, 0.0f); - - if ((groundHitInfo.hit) && (groundHitInfo.distance < nearestHit.distance)) - { - nearestHit = groundHitInfo; - cursorColor = GREEN; - hitObjectName = "Ground"; - } - - // Check ray collision against test triangle - RayHitInfo triHitInfo = GetCollisionRayTriangle(ray, ta, tb, tc); - - if ((triHitInfo.hit) && (triHitInfo.distance < nearestHit.distance)) - { - nearestHit = triHitInfo; - cursorColor = PURPLE; - hitObjectName = "Triangle"; - - bary = Vector3Barycenter(nearestHit.position, ta, tb, tc); - hitTriangle = true; - } - else hitTriangle = false; - - RayHitInfo meshHitInfo; - - // Check ray collision against bounding box first, before trying the full ray-mesh test - if (CheckCollisionRayBox(ray, towerBBox)) - { - hitMeshBBox = true; - - // Check ray collision against model - // NOTE: It considers model.transform matrix! - meshHitInfo = GetCollisionRayModel(ray, &tower); - - if ((meshHitInfo.hit) && (meshHitInfo.distance < nearestHit.distance)) - { - nearestHit = meshHitInfo; - cursorColor = ORANGE; - hitObjectName = "Mesh"; - } - - } hitMeshBBox = false; - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - // Draw the tower - // WARNING: If scale is different than 1.0f, - // not considered by GetCollisionRayModel() - DrawModel(tower, towerPos, 1.0f, WHITE); - - // Draw the test triangle - DrawLine3D(ta, tb, PURPLE); - DrawLine3D(tb, tc, PURPLE); - DrawLine3D(tc, ta, PURPLE); - - // Draw the mesh bbox if we hit it - if (hitMeshBBox) DrawBoundingBox(towerBBox, LIME); - - // If we hit something, draw the cursor at the hit point - if (nearestHit.hit) - { - DrawCube(nearestHit.position, 0.3, 0.3, 0.3, cursorColor); - DrawCubeWires(nearestHit.position, 0.3, 0.3, 0.3, RED); - - Vector3 normalEnd; - normalEnd.x = nearestHit.position.x + nearestHit.normal.x; - normalEnd.y = nearestHit.position.y + nearestHit.normal.y; - normalEnd.z = nearestHit.position.z + nearestHit.normal.z; - - DrawLine3D(nearestHit.position, normalEnd, RED); - } - - DrawRay(ray, MAROON); - - DrawGrid(10, 10.0f); - - EndMode3D(); - - // Draw some debug GUI text - DrawText(FormatText("Hit Object: %s", hitObjectName), 10, 50, 10, BLACK); - - if (nearestHit.hit) - { - int ypos = 70; - - DrawText(FormatText("Distance: %3.2f", nearestHit.distance), 10, ypos, 10, BLACK); - - DrawText(FormatText("Hit Pos: %3.2f %3.2f %3.2f", - nearestHit.position.x, - nearestHit.position.y, - nearestHit.position.z), 10, ypos + 15, 10, BLACK); - - DrawText(FormatText("Hit Norm: %3.2f %3.2f %3.2f", - nearestHit.normal.x, - nearestHit.normal.y, - nearestHit.normal.z), 10, ypos + 30, 10, BLACK); - - if (hitTriangle) DrawText(FormatText("Barycenter: %3.2f %3.2f %3.2f", bary.x, bary.y, bary.z), 10, ypos + 45, 10, BLACK); - } - - DrawText("Use Mouse to Move Camera", 10, 430, 10, GRAY); - - DrawText("(c) Turret 3D model by Alberto Cano", screenWidth - 200, screenHeight - 20, 10, GRAY); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadModel(tower); // Unload model - UnloadTexture(texture); // Unload texture - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_mesh_picking.cs b/ExampleApplication/Examples/models/models_mesh_picking.cs new file mode 100644 index 0000000..e8287d4 --- /dev/null +++ b/ExampleApplication/Examples/models/models_mesh_picking.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [models] example - Mesh picking in 3d mode, ground plane, triangle, mesh * * This example has been created using raylib 1.7 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * Example contributed by Joel Davis (@joeld42) * ********************************************************************************************/ #include "raymath.h" #define FLT_MAX 3.40282347E+38F // Maximum value of a float, defined in public static int models_mesh_picking() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [models] example - mesh picking"); // Define the camera to look into our 3d world Camera camera; camera.position = (Vector3){ 20.0f, 20.0f, 20.0f }; // Camera position camera.target = (Vector3){ 0.0f, 8.0f, 0.0f }; // Camera looking at point camera.up = (Vector3){ 0.0f, 1.6f, 0.0f }; // Camera up vector (rotation towards target) camera.fovy = 45.0f; // Camera field-of-view Y camera.type = CAMERA_PERSPECTIVE; // Camera mode type Ray ray; // Picking ray Model tower = LoadModel("resources/models/turret.obj"); // Load OBJ model Texture2D texture = LoadTexture("resources/models/turret_diffuse.png"); // Load model texture tower.material.maps[MAP_DIFFUSE].texture = texture; // Set model diffuse texture Vector3 towerPos = { 0.0f, 0.0f, 0.0f }; // Set model position BoundingBox towerBBox = MeshBoundingBox(tower.mesh); // Get mesh bounding box bool hitMeshBBox = false; bool hitTriangle = false; // Test triangle Vector3 ta = (Vector3){ -25.0, 0.5, 0.0 }; Vector3 tb = (Vector3){ -4.0, 2.5, 1.0 }; Vector3 tc = (Vector3){ -8.0, 6.5, 0.0 }; Vector3 bary = { 0.0f, 0.0f, 0.0f }; SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateCamera(&camera); // Update camera // Display information about closest hit RayHitInfo nearestHit; char *hitObjectName = "None"; nearestHit.distance = FLT_MAX; nearestHit.hit = false; Color cursorColor = WHITE; // Get ray and test against ground, triangle, and mesh ray = GetMouseRay(GetMousePosition(), camera); // Check ray collision aginst ground plane RayHitInfo groundHitInfo = GetCollisionRayGround(ray, 0.0f); if ((groundHitInfo.hit) && (groundHitInfo.distance < nearestHit.distance)) { nearestHit = groundHitInfo; cursorColor = GREEN; hitObjectName = "Ground"; } // Check ray collision against test triangle RayHitInfo triHitInfo = GetCollisionRayTriangle(ray, ta, tb, tc); if ((triHitInfo.hit) && (triHitInfo.distance < nearestHit.distance)) { nearestHit = triHitInfo; cursorColor = PURPLE; hitObjectName = "Triangle"; bary = Vector3Barycenter(nearestHit.position, ta, tb, tc); hitTriangle = true; } else hitTriangle = false; RayHitInfo meshHitInfo; // Check ray collision against bounding box first, before trying the full ray-mesh test if (CheckCollisionRayBox(ray, towerBBox)) { hitMeshBBox = true; // Check ray collision against model // NOTE: It considers model.transform matrix! meshHitInfo = GetCollisionRayModel(ray, &tower); if ((meshHitInfo.hit) && (meshHitInfo.distance < nearestHit.distance)) { nearestHit = meshHitInfo; cursorColor = ORANGE; hitObjectName = "Mesh"; } } hitMeshBBox = false; //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); // Draw the tower // WARNING: If scale is different than 1.0f, // not considered by GetCollisionRayModel() DrawModel(tower, towerPos, 1.0f, WHITE); // Draw the test triangle DrawLine3D(ta, tb, PURPLE); DrawLine3D(tb, tc, PURPLE); DrawLine3D(tc, ta, PURPLE); // Draw the mesh bbox if we hit it if (hitMeshBBox) DrawBoundingBox(towerBBox, LIME); // If we hit something, draw the cursor at the hit point if (nearestHit.hit) { DrawCube(nearestHit.position, 0.3, 0.3, 0.3, cursorColor); DrawCubeWires(nearestHit.position, 0.3, 0.3, 0.3, RED); Vector3 normalEnd; normalEnd.x = nearestHit.position.x + nearestHit.normal.x; normalEnd.y = nearestHit.position.y + nearestHit.normal.y; normalEnd.z = nearestHit.position.z + nearestHit.normal.z; DrawLine3D(nearestHit.position, normalEnd, RED); } DrawRay(ray, MAROON); DrawGrid(10, 10.0f); EndMode3D(); // Draw some debug GUI text DrawText(FormatText("Hit Object: %s", hitObjectName), 10, 50, 10, BLACK); if (nearestHit.hit) { int ypos = 70; DrawText(FormatText("Distance: %3.2f", nearestHit.distance), 10, ypos, 10, BLACK); DrawText(FormatText("Hit Pos: %3.2f %3.2f %3.2f", nearestHit.position.x, nearestHit.position.y, nearestHit.position.z), 10, ypos + 15, 10, BLACK); DrawText(FormatText("Hit Norm: %3.2f %3.2f %3.2f", nearestHit.normal.x, nearestHit.normal.y, nearestHit.normal.z), 10, ypos + 30, 10, BLACK); if (hitTriangle) DrawText(FormatText("Barycenter: %3.2f %3.2f %3.2f", bary.x, bary.y, bary.z), 10, ypos + 45, 10, BLACK); } DrawText("Use Mouse to Move Camera", 10, 430, 10, GRAY); DrawText("(c) Turret 3D model by Alberto Cano", screenWidth - 200, screenHeight - 20, 10, GRAY); DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadModel(tower); // Unload model UnloadTexture(texture); // Unload texture CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_obj_loading.c b/ExampleApplication/Examples/models/models_obj_loading.c deleted file mode 100644 index 7ec2d3f..0000000 --- a/ExampleApplication/Examples/models/models_obj_loading.c +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - Load and draw a 3d model (OBJ) -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [models] example - obj model loading"); - - // Define the camera to look into our 3d world - Camera camera = { 0 }; - camera.position = (Vector3){ 8.0f, 8.0f, 8.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 2.5f, 0.0f }; // Camera looking at point - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 45.0f; // Camera field-of-view Y - camera.type = CAMERA_PERSPECTIVE; // Camera mode type - - Model model = LoadModel("resources/models/castle.obj"); // Load OBJ model - Texture2D texture = LoadTexture("resources/models/castle_diffuse.png"); // Load model texture - model.material.maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture - Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - //... - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawModel(model, position, 0.2f, WHITE); // Draw 3d model with texture - - DrawGrid(10, 1.0f); // Draw a grid - - DrawGizmo(position); // Draw gizmo - - EndMode3D(); - - DrawText("(c) Castle 3D model by Alberto Cano", screenWidth - 200, screenHeight - 20, 10, GRAY); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(texture); // Unload texture - UnloadModel(model); // Unload model - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_obj_loading.cs b/ExampleApplication/Examples/models/models_obj_loading.cs new file mode 100644 index 0000000..75cdf34 --- /dev/null +++ b/ExampleApplication/Examples/models/models_obj_loading.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [models] example - Load and draw a 3d model (OBJ) * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int models_obj_loading() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [models] example - obj model loading"); // Define the camera to look into our 3d world Camera camera = { 0 }; camera.position = (Vector3){ 8.0f, 8.0f, 8.0f }; // Camera position camera.target = (Vector3){ 0.0f, 2.5f, 0.0f }; // Camera looking at point camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) camera.fovy = 45.0f; // Camera field-of-view Y camera.type = CAMERA_PERSPECTIVE; // Camera mode type Model model = LoadModel("resources/models/castle.obj"); // Load OBJ model Texture2D texture = LoadTexture("resources/models/castle_diffuse.png"); // Load model texture model.material.maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- //... //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); DrawModel(model, position, 0.2f, WHITE); // Draw 3d model with texture DrawGrid(10, 1.0f); // Draw a grid DrawGizmo(position); // Draw gizmo EndMode3D(); DrawText("(c) Castle 3D model by Alberto Cano", screenWidth - 200, screenHeight - 20, 10, GRAY); DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadTexture(texture); // Unload texture UnloadModel(model); // Unload model CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_orthographic_projection.c b/ExampleApplication/Examples/models/models_orthographic_projection.c deleted file mode 100644 index f9b54b6..0000000 --- a/ExampleApplication/Examples/models/models_orthographic_projection.c +++ /dev/null @@ -1,97 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - Show the difference between perspective and orthographic projection -* -* This program is heavily based on the geometric objects example -* -* This example has been created using raylib 1.9.7 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2018 Max Danielsson & Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#define FOVY_PERSPECTIVE 45.0f -#define WIDTH_ORTHOGRAPHIC 10.0f - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [models] example - geometric shapes"); - - // Define the camera to look into our 3d world - Camera camera = {{ 0.0f, 10.0f, 10.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, FOVY_PERSPECTIVE, CAMERA_PERSPECTIVE }; - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (IsKeyPressed(KEY_SPACE)) - { - if (camera.type == CAMERA_PERSPECTIVE) - { - camera.fovy = WIDTH_ORTHOGRAPHIC; - camera.type = CAMERA_ORTHOGRAPHIC; - } - else - { - camera.fovy = FOVY_PERSPECTIVE; - camera.type = CAMERA_PERSPECTIVE; - } - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawCube((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, RED); - DrawCubeWires((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, GOLD); - DrawCubeWires((Vector3){-4.0f, 0.0f, -2.0f}, 3.0f, 6.0f, 2.0f, MAROON); - - DrawSphere((Vector3){-1.0f, 0.0f, -2.0f}, 1.0f, GREEN); - DrawSphereWires((Vector3){1.0f, 0.0f, 2.0f}, 2.0f, 16, 16, LIME); - - DrawCylinder((Vector3){4.0f, 0.0f, -2.0f}, 1.0f, 2.0f, 3.0f, 4, SKYBLUE); - DrawCylinderWires((Vector3){4.0f, 0.0f, -2.0f}, 1.0f, 2.0f, 3.0f, 4, DARKBLUE); - DrawCylinderWires((Vector3){4.5f, -1.0f, 2.0f}, 1.0f, 1.0f, 2.0f, 6, BROWN); - - DrawCylinder((Vector3){1.0f, 0.0f, -4.0f}, 0.0f, 1.5f, 3.0f, 8, GOLD); - DrawCylinderWires((Vector3){1.0f, 0.0f, -4.0f}, 0.0f, 1.5f, 3.0f, 8, PINK); - - DrawGrid(10, 1.0f); // Draw a grid - - EndMode3D(); - - DrawText("Press Spacebar to switch camera type", 10, GetScreenHeight() - 30, 20, DARKGRAY); - - if (camera.type == CAMERA_ORTHOGRAPHIC) DrawText("ORTHOGRAPHIC", 10, 40, 20, BLACK); - else if (camera.type == CAMERA_PERSPECTIVE) DrawText("PERSPECTIVE", 10, 40, 20, BLACK); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} diff --git a/ExampleApplication/Examples/models/models_orthographic_projection.cs b/ExampleApplication/Examples/models/models_orthographic_projection.cs new file mode 100644 index 0000000..da0c9b0 --- /dev/null +++ b/ExampleApplication/Examples/models/models_orthographic_projection.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [models] example - Show the difference between perspective and orthographic projection * * This program is heavily based on the geometric objects example * * This example has been created using raylib 1.9.7 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2018 Max Danielsson & Ramon Santamaria (@raysan5) * ********************************************************************************************/ #define FOVY_PERSPECTIVE 45.0f #define WIDTH_ORTHOGRAPHIC 10.0f public static int models_orthographic_projection() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [models] example - geometric shapes"); // Define the camera to look into our 3d world Camera camera = {{ 0.0f, 10.0f, 10.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, FOVY_PERSPECTIVE, CAMERA_PERSPECTIVE }; SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- if (IsKeyPressed(KEY_SPACE)) { if (camera.type == CAMERA_PERSPECTIVE) { camera.fovy = WIDTH_ORTHOGRAPHIC; camera.type = CAMERA_ORTHOGRAPHIC; } else { camera.fovy = FOVY_PERSPECTIVE; camera.type = CAMERA_PERSPECTIVE; } } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); DrawCube((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, RED); DrawCubeWires((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, GOLD); DrawCubeWires((Vector3){-4.0f, 0.0f, -2.0f}, 3.0f, 6.0f, 2.0f, MAROON); DrawSphere((Vector3){-1.0f, 0.0f, -2.0f}, 1.0f, GREEN); DrawSphereWires((Vector3){1.0f, 0.0f, 2.0f}, 2.0f, 16, 16, LIME); DrawCylinder((Vector3){4.0f, 0.0f, -2.0f}, 1.0f, 2.0f, 3.0f, 4, SKYBLUE); DrawCylinderWires((Vector3){4.0f, 0.0f, -2.0f}, 1.0f, 2.0f, 3.0f, 4, DARKBLUE); DrawCylinderWires((Vector3){4.5f, -1.0f, 2.0f}, 1.0f, 1.0f, 2.0f, 6, BROWN); DrawCylinder((Vector3){1.0f, 0.0f, -4.0f}, 0.0f, 1.5f, 3.0f, 8, GOLD); DrawCylinderWires((Vector3){1.0f, 0.0f, -4.0f}, 0.0f, 1.5f, 3.0f, 8, PINK); DrawGrid(10, 1.0f); // Draw a grid EndMode3D(); DrawText("Press Spacebar to switch camera type", 10, GetScreenHeight() - 30, 20, DARKGRAY); if (camera.type == CAMERA_ORTHOGRAPHIC) DrawText("ORTHOGRAPHIC", 10, 40, 20, BLACK); else if (camera.type == CAMERA_PERSPECTIVE) DrawText("PERSPECTIVE", 10, 40, 20, BLACK); DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_skybox.c b/ExampleApplication/Examples/models/models_skybox.c deleted file mode 100644 index 6f6002b..0000000 --- a/ExampleApplication/Examples/models/models_skybox.c +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - Skybox loading and drawing -* -* This example has been created using raylib 1.8 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2017 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [models] example - skybox loading and drawing"); - - // Define the camera to look into our 3d world - Camera camera = {{ 1.0f, 1.0f, 1.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; - - // Load skybox model - Mesh cube = GenMeshCube(1.0f, 1.0f, 1.0f); - Model skybox = LoadModelFromMesh(cube); - - // Load skybox shader and set required locations - // NOTE: Some locations are automatically set at shader loading - skybox.material.shader = LoadShader("resources/shaders/skybox.vs", "resources/shaders/skybox.fs"); - SetShaderValuei(skybox.material.shader, GetShaderLocation(skybox.material.shader, "environmentMap"), (int[1]){ MAP_CUBEMAP }, 1); - - // Load cubemap shader and setup required shader locations - Shader shdrCubemap = LoadShader("resources/shaders/cubemap.vs", "resources/shaders/cubemap.fs"); - SetShaderValuei(shdrCubemap, GetShaderLocation(shdrCubemap, "equirectangularMap"), (int[1]){ 0 }, 1); - - // Load HDR panorama (sphere) texture - Texture2D texHDR = LoadTexture("resources/dresden_square.hdr"); - - // Generate cubemap (texture with 6 quads-cube-mapping) from panorama HDR texture - // NOTE: New texture is generated rendering to texture, shader computes the sphre->cube coordinates mapping - skybox.material.maps[MAP_CUBEMAP].texture = GenTextureCubemap(shdrCubemap, texHDR, 512); - - UnloadTexture(texHDR); // Texture not required anymore, cubemap already generated - UnloadShader(shdrCubemap); // Unload cubemap generation shader, not required anymore - - SetCameraMode(camera, CAMERA_FIRST_PERSON); // Set a first person camera mode - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update camera - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawModel(skybox, (Vector3){0, 0, 0}, 1.0f, WHITE); - - DrawGrid(10, 1.0f); - - EndMode3D(); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadModel(skybox); // Unload skybox model (and textures) - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} diff --git a/ExampleApplication/Examples/models/models_skybox.cs b/ExampleApplication/Examples/models/models_skybox.cs new file mode 100644 index 0000000..5ae07f4 --- /dev/null +++ b/ExampleApplication/Examples/models/models_skybox.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [models] example - Skybox loading and drawing * * This example has been created using raylib 1.8 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2017 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int models_skybox() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [models] example - skybox loading and drawing"); // Define the camera to look into our 3d world Camera camera = {{ 1.0f, 1.0f, 1.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; // Load skybox model Mesh cube = GenMeshCube(1.0f, 1.0f, 1.0f); Model skybox = LoadModelFromMesh(cube); // Load skybox shader and set required locations // NOTE: Some locations are automatically set at shader loading skybox.material.shader = LoadShader("resources/shaders/skybox.vs", "resources/shaders/skybox.fs"); SetShaderValuei(skybox.material.shader, GetShaderLocation(skybox.material.shader, "environmentMap"), (int[1]){ MAP_CUBEMAP }, 1); // Load cubemap shader and setup required shader locations Shader shdrCubemap = LoadShader("resources/shaders/cubemap.vs", "resources/shaders/cubemap.fs"); SetShaderValuei(shdrCubemap, GetShaderLocation(shdrCubemap, "equirectangularMap"), (int[1]){ 0 }, 1); // Load HDR panorama (sphere) texture Texture2D texHDR = LoadTexture("resources/dresden_square.hdr"); // Generate cubemap (texture with 6 quads-cube-mapping) from panorama HDR texture // NOTE: New texture is generated rendering to texture, shader computes the sphre->cube coordinates mapping skybox.material.maps[MAP_CUBEMAP].texture = GenTextureCubemap(shdrCubemap, texHDR, 512); UnloadTexture(texHDR); // Texture not required anymore, cubemap already generated UnloadShader(shdrCubemap); // Unload cubemap generation shader, not required anymore SetCameraMode(camera, CAMERA_FIRST_PERSON); // Set a first person camera mode SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateCamera(&camera); // Update camera //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); DrawModel(skybox, (Vector3){0, 0, 0}, 1.0f, WHITE); DrawGrid(10, 1.0f); EndMode3D(); DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadModel(skybox); // Unload skybox model (and textures) CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/models_yaw_pitch_roll.c b/ExampleApplication/Examples/models/models_yaw_pitch_roll.c deleted file mode 100644 index 0dcf8c7..0000000 --- a/ExampleApplication/Examples/models/models_yaw_pitch_roll.c +++ /dev/null @@ -1,199 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - Plane rotations (yaw, pitch, roll) -* -* This example has been created using raylib 1.8 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Example based on Berni work on Raspberry Pi: -* http://forum.raylib.com/index.php?p=/discussion/124/line-versus-triangle-drawing-order -* -* Copyright (c) 2017 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" -#include "raymath.h" - -// Draw angle gauge controls -void DrawAngleGauge(Texture2D angleGauge, int x, int y, float angle, char title[], Color color); - -//---------------------------------------------------------------------------------- -// Main entry point -//---------------------------------------------------------------------------------- -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [models] example - plane rotations (yaw, pitch, roll)"); - - Texture2D texAngleGauge = LoadTexture("resources/angle_gauge.png"); - Texture2D texBackground = LoadTexture("resources/background.png"); - Texture2D texPitch = LoadTexture("resources/pitch.png"); - Texture2D texPlane = LoadTexture("resources/plane.png"); - - RenderTexture2D framebuffer = LoadRenderTexture(192, 192); - - // Model loading - Model model = LoadModel("resources/plane.obj"); // Load OBJ model - model.material.maps[MAP_DIFFUSE].texture = LoadTexture("resources/plane_diffuse.png"); // Set map diffuse texture - - GenTextureMipmaps(&model.material.maps[MAP_DIFFUSE].texture); - - Camera camera = { 0 }; - camera.position = (Vector3){ 0.0f, 60.0f, -120.0f };// Camera position perspective - camera.target = (Vector3){ 0.0f, 12.0f, 0.0f }; // Camera looking at point - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 30.0f; // Camera field-of-view Y - camera.type = CAMERA_PERSPECTIVE; // Camera type - - float pitch = 0.0f; - float roll = 0.0f; - float yaw = 0.0f; - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - - // Plane roll (x-axis) controls - if (IsKeyDown(KEY_LEFT)) roll += 1.0f; - else if (IsKeyDown(KEY_RIGHT)) roll -= 1.0f; - else - { - if (roll > 0.0f) roll -= 0.5f; - else if (roll < 0.0f) roll += 0.5f; - } - - // Plane yaw (y-axis) controls - if (IsKeyDown(KEY_S)) yaw += 1.0f; - else if (IsKeyDown(KEY_A)) yaw -= 1.0f; - else - { - if (yaw > 0.0f) yaw -= 0.5f; - else if (yaw < 0.0f) yaw += 0.5f; - } - - // Plane pitch (z-axis) controls - if (IsKeyDown(KEY_DOWN)) pitch += 0.6f; - else if (IsKeyDown(KEY_UP)) pitch -= 0.6f; - else - { - if (pitch > 0.3f) pitch -= 0.3f; - else if (pitch < -0.3f) pitch += 0.3f; - } - - // Wraps the phase of an angle to fit between -180 and +180 degrees - int pitchOffset = pitch; - while (pitchOffset > 180) pitchOffset -= 360; - while (pitchOffset < -180) pitchOffset += 360; - pitchOffset *= 10; - - Matrix transform = MatrixIdentity(); - - transform = MatrixMultiply(transform, MatrixRotateZ(DEG2RAD*roll)); - transform = MatrixMultiply(transform, MatrixRotateX(DEG2RAD*pitch)); - transform = MatrixMultiply(transform, MatrixRotateY(DEG2RAD*yaw)); - - model.transform = transform; - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - // Draw framebuffer texture (Ahrs Display) - int centerX = framebuffer.texture.width/2; - int centerY = framebuffer.texture.height/2; - float scaleFactor = 0.5f; - - BeginTextureMode(framebuffer); - - BeginBlendMode(BLEND_ALPHA); - - DrawTexturePro(texBackground, (Rectangle){ 0, 0, texBackground.width, texBackground.height }, - (Rectangle){ centerX, centerY, texBackground.width*scaleFactor, texBackground.height*scaleFactor}, - (Vector2){ texBackground.width/2*scaleFactor, texBackground.height/2*scaleFactor + pitchOffset*scaleFactor }, roll, WHITE); - - DrawTexturePro(texPitch, (Rectangle){ 0, 0, texPitch.width, texPitch.height }, - (Rectangle){ centerX, centerY, texPitch.width*scaleFactor, texPitch.height*scaleFactor }, - (Vector2){ texPitch.width/2*scaleFactor, texPitch.height/2*scaleFactor + pitchOffset*scaleFactor }, roll, WHITE); - - DrawTexturePro(texPlane, (Rectangle){ 0, 0, texPlane.width, texPlane.height }, - (Rectangle){ centerX, centerY, texPlane.width*scaleFactor, texPlane.height*scaleFactor }, - (Vector2){ texPlane.width/2*scaleFactor, texPlane.height/2*scaleFactor }, 0, WHITE); - - EndBlendMode(); - - EndTextureMode(); - - // Draw 3D model (recomended to draw 3D always before 2D) - BeginMode3D(camera); - - DrawModel(model, (Vector3){ 0, 6.0f, 0 }, 1.0f, WHITE); // Draw 3d model with texture - DrawGrid(10, 10.0f); - - EndMode3D(); - - // Draw 2D GUI stuff - DrawAngleGauge(texAngleGauge, 80, 70, roll, "roll", RED); - DrawAngleGauge(texAngleGauge, 190, 70, pitch, "pitch", GREEN); - DrawAngleGauge(texAngleGauge, 300, 70, yaw, "yaw", SKYBLUE); - - DrawRectangle(30, 360, 260, 70, Fade(SKYBLUE, 0.5f)); - DrawRectangleLines(30, 360, 260, 70, Fade(DARKBLUE, 0.5f)); - DrawText("Pitch controlled with: KEY_UP / KEY_DOWN", 40, 370, 10, DARKGRAY); - DrawText("Roll controlled with: KEY_LEFT / KEY_RIGHT", 40, 390, 10, DARKGRAY); - DrawText("Yaw controlled with: KEY_A / KEY_S", 40, 410, 10, DARKGRAY); - - // Draw framebuffer texture - DrawTextureRec(framebuffer.texture, (Rectangle){ 0, 0, framebuffer.texture.width, -framebuffer.texture.height }, - (Vector2){ screenWidth - framebuffer.texture.width - 20, 20 }, Fade(WHITE, 0.8f)); - - DrawRectangleLines(screenWidth - framebuffer.texture.width - 20, 20, framebuffer.texture.width, framebuffer.texture.height, DARKGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - - // Unload all loaded data - UnloadModel(model); - - UnloadRenderTexture(framebuffer); - - UnloadTexture(texAngleGauge); - UnloadTexture(texBackground); - UnloadTexture(texPitch); - UnloadTexture(texPlane); - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - -// Draw angle gauge controls -void DrawAngleGauge(Texture2D angleGauge, int x, int y, float angle, char title[], Color color) -{ - Rectangle srcRec = { 0, 0, angleGauge.width, angleGauge.height }; - Rectangle dstRec = { x, y, angleGauge.width, angleGauge.height }; - Vector2 origin = { angleGauge.width/2, angleGauge.height/2}; - int textSize = 20; - - DrawTexturePro(angleGauge, srcRec, dstRec, origin, angle, color); - - DrawText(FormatText("%5.1f", angle), x - MeasureText(FormatText("%5.1f", angle), textSize) / 2, y + 10, textSize, DARKGRAY); - DrawText(title, x - MeasureText(title, textSize) / 2, y + 60, textSize, DARKGRAY); -} diff --git a/ExampleApplication/Examples/models/models_yaw_pitch_roll.cs b/ExampleApplication/Examples/models/models_yaw_pitch_roll.cs new file mode 100644 index 0000000..7633439 --- /dev/null +++ b/ExampleApplication/Examples/models/models_yaw_pitch_roll.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [models] example - Plane rotations (yaw, pitch, roll) * * This example has been created using raylib 1.8 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Example based on Berni work on Raspberry Pi: * http://forum.raylib.com/index.php?p=/discussion/124/line-versus-triangle-drawing-order * * Copyright (c) 2017 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #include "raymath.h" // Draw angle gauge controls void DrawAngleGauge(Texture2D angleGauge, int x, int y, float angle, char title[], Color color); //---------------------------------------------------------------------------------- // Main entry point //---------------------------------------------------------------------------------- public static int models_yaw_pitch_roll() { // Initialization //-------------------------------------------------------------------------------------- const int screenWidth = 800; const int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [models] example - plane rotations (yaw, pitch, roll)"); Texture2D texAngleGauge = LoadTexture("resources/angle_gauge.png"); Texture2D texBackground = LoadTexture("resources/background.png"); Texture2D texPitch = LoadTexture("resources/pitch.png"); Texture2D texPlane = LoadTexture("resources/plane.png"); RenderTexture2D framebuffer = LoadRenderTexture(192, 192); // Model loading Model model = LoadModel("resources/plane.obj"); // Load OBJ model model.material.maps[MAP_DIFFUSE].texture = LoadTexture("resources/plane_diffuse.png"); // Set map diffuse texture GenTextureMipmaps(&model.material.maps[MAP_DIFFUSE].texture); Camera camera = { 0 }; camera.position = (Vector3){ 0.0f, 60.0f, -120.0f };// Camera position perspective camera.target = (Vector3){ 0.0f, 12.0f, 0.0f }; // Camera looking at point camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) camera.fovy = 30.0f; // Camera field-of-view Y camera.type = CAMERA_PERSPECTIVE; // Camera type float pitch = 0.0f; float roll = 0.0f; float yaw = 0.0f; SetTargetFPS(60); //-------------------------------------------------------------------------------------- while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // Plane roll (x-axis) controls if (IsKeyDown(KEY_LEFT)) roll += 1.0f; else if (IsKeyDown(KEY_RIGHT)) roll -= 1.0f; else { if (roll > 0.0f) roll -= 0.5f; else if (roll < 0.0f) roll += 0.5f; } // Plane yaw (y-axis) controls if (IsKeyDown(KEY_S)) yaw += 1.0f; else if (IsKeyDown(KEY_A)) yaw -= 1.0f; else { if (yaw > 0.0f) yaw -= 0.5f; else if (yaw < 0.0f) yaw += 0.5f; } // Plane pitch (z-axis) controls if (IsKeyDown(KEY_DOWN)) pitch += 0.6f; else if (IsKeyDown(KEY_UP)) pitch -= 0.6f; else { if (pitch > 0.3f) pitch -= 0.3f; else if (pitch < -0.3f) pitch += 0.3f; } // Wraps the phase of an angle to fit between -180 and +180 degrees int pitchOffset = pitch; while (pitchOffset > 180) pitchOffset -= 360; while (pitchOffset < -180) pitchOffset += 360; pitchOffset *= 10; Matrix transform = MatrixIdentity(); transform = MatrixMultiply(transform, MatrixRotateZ(DEG2RAD*roll)); transform = MatrixMultiply(transform, MatrixRotateX(DEG2RAD*pitch)); transform = MatrixMultiply(transform, MatrixRotateY(DEG2RAD*yaw)); model.transform = transform; //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); // Draw framebuffer texture (Ahrs Display) int centerX = framebuffer.texture.width/2; int centerY = framebuffer.texture.height/2; float scaleFactor = 0.5f; BeginTextureMode(framebuffer); BeginBlendMode(BLEND_ALPHA); DrawTexturePro(texBackground, (Rectangle){ 0, 0, texBackground.width, texBackground.height }, (Rectangle){ centerX, centerY, texBackground.width*scaleFactor, texBackground.height*scaleFactor}, (Vector2){ texBackground.width/2*scaleFactor, texBackground.height/2*scaleFactor + pitchOffset*scaleFactor }, roll, WHITE); DrawTexturePro(texPitch, (Rectangle){ 0, 0, texPitch.width, texPitch.height }, (Rectangle){ centerX, centerY, texPitch.width*scaleFactor, texPitch.height*scaleFactor }, (Vector2){ texPitch.width/2*scaleFactor, texPitch.height/2*scaleFactor + pitchOffset*scaleFactor }, roll, WHITE); DrawTexturePro(texPlane, (Rectangle){ 0, 0, texPlane.width, texPlane.height }, (Rectangle){ centerX, centerY, texPlane.width*scaleFactor, texPlane.height*scaleFactor }, (Vector2){ texPlane.width/2*scaleFactor, texPlane.height/2*scaleFactor }, 0, WHITE); EndBlendMode(); EndTextureMode(); // Draw 3D model (recomended to draw 3D always before 2D) BeginMode3D(camera); DrawModel(model, (Vector3){ 0, 6.0f, 0 }, 1.0f, WHITE); // Draw 3d model with texture DrawGrid(10, 10.0f); EndMode3D(); // Draw 2D GUI stuff DrawAngleGauge(texAngleGauge, 80, 70, roll, "roll", RED); DrawAngleGauge(texAngleGauge, 190, 70, pitch, "pitch", GREEN); DrawAngleGauge(texAngleGauge, 300, 70, yaw, "yaw", SKYBLUE); DrawRectangle(30, 360, 260, 70, Fade(SKYBLUE, 0.5f)); DrawRectangleLines(30, 360, 260, 70, Fade(DARKBLUE, 0.5f)); DrawText("Pitch controlled with: KEY_UP / KEY_DOWN", 40, 370, 10, DARKGRAY); DrawText("Roll controlled with: KEY_LEFT / KEY_RIGHT", 40, 390, 10, DARKGRAY); DrawText("Yaw controlled with: KEY_A / KEY_S", 40, 410, 10, DARKGRAY); // Draw framebuffer texture DrawTextureRec(framebuffer.texture, (Rectangle){ 0, 0, framebuffer.texture.width, -framebuffer.texture.height }, (Vector2){ screenWidth - framebuffer.texture.width - 20, 20 }, Fade(WHITE, 0.8f)); DrawRectangleLines(screenWidth - framebuffer.texture.width - 20, 20, framebuffer.texture.width, framebuffer.texture.height, DARKGRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- // Unload all loaded data UnloadModel(model); UnloadRenderTexture(framebuffer); UnloadTexture(texAngleGauge); UnloadTexture(texBackground); UnloadTexture(texPitch); UnloadTexture(texPlane); CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } // Draw angle gauge controls void DrawAngleGauge(Texture2D angleGauge, int x, int y, float angle, char title[], Color color) { Rectangle srcRec = { 0, 0, angleGauge.width, angleGauge.height }; Rectangle dstRec = { x, y, angleGauge.width, angleGauge.height }; Vector2 origin = { angleGauge.width/2, angleGauge.height/2}; int textSize = 20; DrawTexturePro(angleGauge, srcRec, dstRec, origin, angle, color); DrawText(FormatText("%5.1f", angle), x - MeasureText(FormatText("%5.1f", angle), textSize) / 2, y + 10, textSize, DARKGRAY); DrawText(title, x - MeasureText(title, textSize) / 2, y + 60, textSize, DARKGRAY); } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/models/rlights.h b/ExampleApplication/Examples/models/rlights.h deleted file mode 100644 index 0da3e2c..0000000 --- a/ExampleApplication/Examples/models/rlights.h +++ /dev/null @@ -1,177 +0,0 @@ -/********************************************************************************************** -* -* raylib.lights - Some useful functions to deal with lights data -* -* CONFIGURATION: -* -* #define RLIGHTS_IMPLEMENTATION -* Generates the implementation of the library into the included file. -* If not defined, the library is in header only mode and can be included in other headers -* or source files without problems. But only ONE file should hold the implementation. -* -* LICENSE: zlib/libpng -* -* Copyright (c) 2017 Victor Fisac and Ramon Santamaria -* -* This software is provided "as-is", without any express or implied warranty. In no event -* will the authors be held liable for any damages arising from the use of this software. -* -* Permission is granted to anyone to use this software for any purpose, including commercial -* applications, and to alter it and redistribute it freely, subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; you must not claim that you -* wrote the original software. If you use this software in a product, an acknowledgment -* in the product documentation would be appreciated but is not required. -* -* 2. Altered source versions must be plainly marked as such, and must not be misrepresented -* as being the original software. -* -* 3. This notice may not be removed or altered from any source distribution. -* -**********************************************************************************************/ - -#ifndef RLIGHTS_H -#define RLIGHTS_H - -//---------------------------------------------------------------------------------- -// Defines and Macros -//---------------------------------------------------------------------------------- -#define MAX_LIGHTS 4 // Max lights supported by shader -#define LIGHT_DISTANCE 3.5f // Light distance from world center -#define LIGHT_HEIGHT 1.0f // Light height position - -//---------------------------------------------------------------------------------- -// Types and Structures Definition -//---------------------------------------------------------------------------------- -typedef enum { - LIGHT_DIRECTIONAL, - LIGHT_POINT -} LightType; - -typedef struct { - bool enabled; - LightType type; - Vector3 position; - Vector3 target; - Color color; - int enabledLoc; - int typeLoc; - int posLoc; - int targetLoc; - int colorLoc; -} Light; - -#ifdef __cplusplus -extern "C" { // Prevents name mangling of functions -#endif - -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- -int lightsCount = 0; // Current amount of created lights - -//---------------------------------------------------------------------------------- -// Module Functions Declaration -//---------------------------------------------------------------------------------- -Light CreateLight(int type, Vector3 pos, Vector3 targ, Color color, Shader shader); // Defines a light and get locations from PBR shader -void UpdateLightValues(Shader shader, Light light); // Send to PBR shader light values - -#ifdef __cplusplus -} -#endif - -#endif // RLIGHTS_H - - -/*********************************************************************************** -* -* RLIGHTS IMPLEMENTATION -* -************************************************************************************/ - -#if defined(RLIGHTS_IMPLEMENTATION) - -#include "raylib.h" - -//---------------------------------------------------------------------------------- -// Defines and Macros -//---------------------------------------------------------------------------------- -// ... - -//---------------------------------------------------------------------------------- -// Types and Structures Definition -//---------------------------------------------------------------------------------- -// ... - -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- -// ... - -//---------------------------------------------------------------------------------- -// Module specific Functions Declaration -//---------------------------------------------------------------------------------- -// ... - -//---------------------------------------------------------------------------------- -// Module Functions Definition -//---------------------------------------------------------------------------------- - -// Defines a light and get locations from PBR shader -Light CreateLight(int type, Vector3 pos, Vector3 targ, Color color, Shader shader) -{ - Light light = { 0 }; - - if (lightsCount < MAX_LIGHTS) - { - light.enabled = true; - light.type = type; - light.position = pos; - light.target = targ; - light.color = color; - - char enabledName[32] = "lights[x].enabled\0"; - char typeName[32] = "lights[x].type\0"; - char posName[32] = "lights[x].position\0"; - char targetName[32] = "lights[x].target\0"; - char colorName[32] = "lights[x].color\0"; - enabledName[7] = '0' + lightsCount; - typeName[7] = '0' + lightsCount; - posName[7] = '0' + lightsCount; - targetName[7] = '0' + lightsCount; - colorName[7] = '0' + lightsCount; - - light.enabledLoc = GetShaderLocation(shader, enabledName); - light.typeLoc = GetShaderLocation(shader, typeName); - light.posLoc = GetShaderLocation(shader, posName); - light.targetLoc = GetShaderLocation(shader, targetName); - light.colorLoc = GetShaderLocation(shader, colorName); - - UpdateLightValues(shader, light); - lightsCount++; - } - - return light; -} - -// Send to PBR shader light values -void UpdateLightValues(Shader shader, Light light) -{ - // Send to shader light enabled state and type - SetShaderValuei(shader, light.enabledLoc, (int[1]){ light.enabled }, 1); - SetShaderValuei(shader, light.typeLoc, (int[1]){ light.type }, 1); - - // Send to shader light position values - float position[3] = { light.position.x, light.position.y, light.position.z }; - SetShaderValue(shader, light.posLoc, position, 3); - - // Send to shader light target position values - float target[3] = { light.target.x, light.target.y, light.target.z }; - SetShaderValue(shader, light.targetLoc, target, 3); - - // Send to shader light color values - float diff[4] = { (float)light.color.r/(float)255, (float)light.color.g/(float)255, (float)light.color.b/(float)255, (float)light.color.a/(float)255 }; - SetShaderValue(shader, light.colorLoc, diff, 4); -} - -#endif // RLIGHTS_IMPLEMENTATION \ No newline at end of file diff --git a/ExampleApplication/Examples/physac/physics_demo.c b/ExampleApplication/Examples/physac/physics_demo.c deleted file mode 100644 index 273b993..0000000 --- a/ExampleApplication/Examples/physac/physics_demo.c +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************************* -* -* Physac - Physics demo -* -* NOTE 1: Physac requires multi-threading, when InitPhysics() a second thread is created to manage physics calculations. -* NOTE 2: Physac requires static C library linkage to avoid dependency on MinGW DLL (-static -lpthread) -* -* Use the following line to compile: -* -* gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib.rc.o -static -lraylib -lpthread -* -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition -* -* Copyright (c) 2016-2018 Victor Fisac -* -********************************************************************************************/ - -#include "raylib.h" - -#define PHYSAC_IMPLEMENTATION -#include "physac.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - SetConfigFlags(FLAG_MSAA_4X_HINT); - InitWindow(screenWidth, screenHeight, "Physac [raylib] - Physics demo"); - - // Physac logo drawing position - int logoX = screenWidth - MeasureText("Physac", 30) - 10; - int logoY = 15; - bool needsReset = false; - - // Initialize physics and default physics bodies - InitPhysics(); - - // Create floor rectangle physics body - PhysicsBody floor = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight }, 500, 100, 10); - floor->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions) - - // Create obstacle circle physics body - PhysicsBody circle = CreatePhysicsBodyCircle((Vector2){ screenWidth/2, screenHeight/2 }, 45, 10); - circle->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions) - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // Delay initialization of variables due to physics reset async - if (needsReset) - { - floor = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight }, 500, 100, 10); - floor->enabled = false; - - circle = CreatePhysicsBodyCircle((Vector2){ screenWidth/2, screenHeight/2 }, 45, 10); - circle->enabled = false; - } - - // Reset physics input - if (IsKeyPressed('R')) - { - ResetPhysics(); - needsReset = true; - } - - // Physics body creation inputs - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) CreatePhysicsBodyPolygon(GetMousePosition(), GetRandomValue(20, 80), GetRandomValue(3, 8), 10); - else if (IsMouseButtonPressed(MOUSE_RIGHT_BUTTON)) CreatePhysicsBodyCircle(GetMousePosition(), GetRandomValue(10, 45), 10); - - // Destroy falling physics bodies - int bodiesCount = GetPhysicsBodiesCount(); - for (int i = bodiesCount - 1; i >= 0; i--) - { - PhysicsBody body = GetPhysicsBody(i); - if (body != NULL && (body->position.y > screenHeight*2)) DestroyPhysicsBody(body); - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(BLACK); - - DrawFPS(screenWidth - 90, screenHeight - 30); - - // Draw created physics bodies - bodiesCount = GetPhysicsBodiesCount(); - for (int i = 0; i < bodiesCount; i++) - { - PhysicsBody body = GetPhysicsBody(i); - - if (body != NULL) - { - int vertexCount = GetPhysicsShapeVerticesCount(i); - for (int j = 0; j < vertexCount; j++) - { - // Get physics bodies shape vertices to draw lines - // Note: GetPhysicsShapeVertex() already calculates rotation transformations - Vector2 vertexA = GetPhysicsShapeVertex(body, j); - - int jj = (((j + 1) < vertexCount) ? (j + 1) : 0); // Get next vertex or first to close the shape - Vector2 vertexB = GetPhysicsShapeVertex(body, jj); - - DrawLineV(vertexA, vertexB, GREEN); // Draw a line between two vertex positions - } - } - } - - DrawText("Left mouse button to create a polygon", 10, 10, 10, WHITE); - DrawText("Right mouse button to create a circle", 10, 25, 10, WHITE); - DrawText("Press 'R' to reset example", 10, 40, 10, WHITE); - - DrawText("Physac", logoX, logoY, 30, WHITE); - DrawText("Powered by", logoX + 50, logoY - 7, 10, WHITE); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - ClosePhysics(); // Unitialize physics - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - diff --git a/ExampleApplication/Examples/physac/physics_demo.cs b/ExampleApplication/Examples/physac/physics_demo.cs new file mode 100644 index 0000000..6cdf35c --- /dev/null +++ b/ExampleApplication/Examples/physac/physics_demo.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * Physac - Physics demo * * NOTE 1: Physac requires multi-threading, when InitPhysics() a second thread is created to manage physics calculations. * NOTE 2: Physac requires static C library linkage to avoid dependency on MinGW DLL (-static -lpthread) * * Use the following line to compile: * * gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib.rc.o -static -lraylib -lpthread * -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition * * Copyright (c) 2016-2018 Victor Fisac * ********************************************************************************************/ #define PHYSAC_IMPLEMENTATION #include "physac.h" public static int physics_demo() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; SetConfigFlags(FLAG_MSAA_4X_HINT); InitWindow(screenWidth, screenHeight, "Physac [raylib] - Physics demo"); // Physac logo drawing position int logoX = screenWidth - MeasureText("Physac", 30) - 10; int logoY = 15; bool needsReset = false; // Initialize physics and default physics bodies InitPhysics(); // Create floor rectangle physics body PhysicsBody floor = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight }, 500, 100, 10); floor->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions) // Create obstacle circle physics body PhysicsBody circle = CreatePhysicsBodyCircle((Vector2){ screenWidth/2, screenHeight/2 }, 45, 10); circle->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions) SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // Delay initialization of variables due to physics reset async if (needsReset) { floor = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight }, 500, 100, 10); floor->enabled = false; circle = CreatePhysicsBodyCircle((Vector2){ screenWidth/2, screenHeight/2 }, 45, 10); circle->enabled = false; } // Reset physics input if (IsKeyPressed('R')) { ResetPhysics(); needsReset = true; } // Physics body creation inputs if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) CreatePhysicsBodyPolygon(GetMousePosition(), GetRandomValue(20, 80), GetRandomValue(3, 8), 10); else if (IsMouseButtonPressed(MOUSE_RIGHT_BUTTON)) CreatePhysicsBodyCircle(GetMousePosition(), GetRandomValue(10, 45), 10); // Destroy falling physics bodies int bodiesCount = GetPhysicsBodiesCount(); for (int i = bodiesCount - 1; i >= 0; i--) { PhysicsBody body = GetPhysicsBody(i); if (body != NULL && (body->position.y > screenHeight*2)) DestroyPhysicsBody(body); } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(BLACK); DrawFPS(screenWidth - 90, screenHeight - 30); // Draw created physics bodies bodiesCount = GetPhysicsBodiesCount(); for (int i = 0; i < bodiesCount; i++) { PhysicsBody body = GetPhysicsBody(i); if (body != NULL) { int vertexCount = GetPhysicsShapeVerticesCount(i); for (int j = 0; j < vertexCount; j++) { // Get physics bodies shape vertices to draw lines // Note: GetPhysicsShapeVertex() already calculates rotation transformations Vector2 vertexA = GetPhysicsShapeVertex(body, j); int jj = (((j + 1) < vertexCount) ? (j + 1) : 0); // Get next vertex or first to close the shape Vector2 vertexB = GetPhysicsShapeVertex(body, jj); DrawLineV(vertexA, vertexB, GREEN); // Draw a line between two vertex positions } } } DrawText("Left mouse button to create a polygon", 10, 10, 10, WHITE); DrawText("Right mouse button to create a circle", 10, 25, 10, WHITE); DrawText("Press 'R' to reset example", 10, 40, 10, WHITE); DrawText("Physac", logoX, logoY, 30, WHITE); DrawText("Powered by", logoX + 50, logoY - 7, 10, WHITE); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- ClosePhysics(); // Unitialize physics CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/physac/physics_friction.c b/ExampleApplication/Examples/physac/physics_friction.c deleted file mode 100644 index b4cc571..0000000 --- a/ExampleApplication/Examples/physac/physics_friction.c +++ /dev/null @@ -1,144 +0,0 @@ -/******************************************************************************************* -* -* Physac - Physics friction -* -* NOTE 1: Physac requires multi-threading, when InitPhysics() a second thread is created to manage physics calculations. -* NOTE 2: Physac requires static C library linkage to avoid dependency on MinGW DLL (-static -lpthread) -* -* Use the following line to compile: -* -* gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib.rc.o -static -lraylib -lpthread -* -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition -* -* Copyright (c) 2016-2018 Victor Fisac -* -********************************************************************************************/ - -#include "raylib.h" - -#define PHYSAC_IMPLEMENTATION -#include "physac.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - SetConfigFlags(FLAG_MSAA_4X_HINT); - InitWindow(screenWidth, screenHeight, "Physac [raylib] - Physics friction"); - - // Physac logo drawing position - int logoX = screenWidth - MeasureText("Physac", 30) - 10; - int logoY = 15; - - // Initialize physics and default physics bodies - InitPhysics(); - - // Create floor rectangle physics body - PhysicsBody floor = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight }, screenWidth, 100, 10); - floor->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions) - PhysicsBody wall = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight*0.8f }, 10, 80, 10); - wall->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions) - - // Create left ramp physics body - PhysicsBody rectLeft = CreatePhysicsBodyRectangle((Vector2){ 25, screenHeight - 5 }, 250, 250, 10); - rectLeft->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions) - SetPhysicsBodyRotation(rectLeft, 30*DEG2RAD); - - // Create right ramp physics body - PhysicsBody rectRight = CreatePhysicsBodyRectangle((Vector2){ screenWidth - 25, screenHeight - 5 }, 250, 250, 10); - rectRight->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions) - SetPhysicsBodyRotation(rectRight, 330*DEG2RAD); - - // Create dynamic physics bodies - PhysicsBody bodyA = CreatePhysicsBodyRectangle((Vector2){ 35, screenHeight*0.6f }, 40, 40, 10); - bodyA->staticFriction = 0.1f; - bodyA->dynamicFriction = 0.1f; - SetPhysicsBodyRotation(bodyA, 30*DEG2RAD); - - PhysicsBody bodyB = CreatePhysicsBodyRectangle((Vector2){ screenWidth - 35, screenHeight*0.6f }, 40, 40, 10); - bodyB->staticFriction = 1; - bodyB->dynamicFriction = 1; - SetPhysicsBodyRotation(bodyB, 330*DEG2RAD); - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (IsKeyPressed('R')) // Reset physics input - { - // Reset dynamic physics bodies position, velocity and rotation - bodyA->position = (Vector2){ 35, screenHeight*0.6f }; - bodyA->velocity = (Vector2){ 0, 0 }; - bodyA->angularVelocity = 0; - SetPhysicsBodyRotation(bodyA, 30*DEG2RAD); - - bodyB->position = (Vector2){ screenWidth - 35, screenHeight*0.6f }; - bodyB->velocity = (Vector2){ 0, 0 }; - bodyB->angularVelocity = 0; - SetPhysicsBodyRotation(bodyB, 330*DEG2RAD); - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(BLACK); - - DrawFPS(screenWidth - 90, screenHeight - 30); - - // Draw created physics bodies - int bodiesCount = GetPhysicsBodiesCount(); - for (int i = 0; i < bodiesCount; i++) - { - PhysicsBody body = GetPhysicsBody(i); - - if (body != NULL) - { - int vertexCount = GetPhysicsShapeVerticesCount(i); - for (int j = 0; j < vertexCount; j++) - { - // Get physics bodies shape vertices to draw lines - // Note: GetPhysicsShapeVertex() already calculates rotation transformations - Vector2 vertexA = GetPhysicsShapeVertex(body, j); - - int jj = (((j + 1) < vertexCount) ? (j + 1) : 0); // Get next vertex or first to close the shape - Vector2 vertexB = GetPhysicsShapeVertex(body, jj); - - DrawLineV(vertexA, vertexB, GREEN); // Draw a line between two vertex positions - } - } - } - - DrawRectangle(0, screenHeight - 49, screenWidth, 49, BLACK); - - DrawText("Friction amount", (screenWidth - MeasureText("Friction amount", 30))/2, 75, 30, WHITE); - DrawText("0.1", bodyA->position.x - MeasureText("0.1", 20)/2, bodyA->position.y - 7, 20, WHITE); - DrawText("1", bodyB->position.x - MeasureText("1", 20)/2, bodyB->position.y - 7, 20, WHITE); - - DrawText("Press 'R' to reset example", 10, 10, 10, WHITE); - - DrawText("Physac", logoX, logoY, 30, WHITE); - DrawText("Powered by", logoX + 50, logoY - 7, 10, WHITE); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - ClosePhysics(); // Unitialize physics - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - diff --git a/ExampleApplication/Examples/physac/physics_friction.cs b/ExampleApplication/Examples/physac/physics_friction.cs new file mode 100644 index 0000000..2b17992 --- /dev/null +++ b/ExampleApplication/Examples/physac/physics_friction.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * Physac - Physics friction * * NOTE 1: Physac requires multi-threading, when InitPhysics() a second thread is created to manage physics calculations. * NOTE 2: Physac requires static C library linkage to avoid dependency on MinGW DLL (-static -lpthread) * * Use the following line to compile: * * gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib.rc.o -static -lraylib -lpthread * -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition * * Copyright (c) 2016-2018 Victor Fisac * ********************************************************************************************/ #define PHYSAC_IMPLEMENTATION #include "physac.h" public static int physics_friction() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; SetConfigFlags(FLAG_MSAA_4X_HINT); InitWindow(screenWidth, screenHeight, "Physac [raylib] - Physics friction"); // Physac logo drawing position int logoX = screenWidth - MeasureText("Physac", 30) - 10; int logoY = 15; // Initialize physics and default physics bodies InitPhysics(); // Create floor rectangle physics body PhysicsBody floor = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight }, screenWidth, 100, 10); floor->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions) PhysicsBody wall = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight*0.8f }, 10, 80, 10); wall->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions) // Create left ramp physics body PhysicsBody rectLeft = CreatePhysicsBodyRectangle((Vector2){ 25, screenHeight - 5 }, 250, 250, 10); rectLeft->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions) SetPhysicsBodyRotation(rectLeft, 30*DEG2RAD); // Create right ramp physics body PhysicsBody rectRight = CreatePhysicsBodyRectangle((Vector2){ screenWidth - 25, screenHeight - 5 }, 250, 250, 10); rectRight->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions) SetPhysicsBodyRotation(rectRight, 330*DEG2RAD); // Create dynamic physics bodies PhysicsBody bodyA = CreatePhysicsBodyRectangle((Vector2){ 35, screenHeight*0.6f }, 40, 40, 10); bodyA->staticFriction = 0.1f; bodyA->dynamicFriction = 0.1f; SetPhysicsBodyRotation(bodyA, 30*DEG2RAD); PhysicsBody bodyB = CreatePhysicsBodyRectangle((Vector2){ screenWidth - 35, screenHeight*0.6f }, 40, 40, 10); bodyB->staticFriction = 1; bodyB->dynamicFriction = 1; SetPhysicsBodyRotation(bodyB, 330*DEG2RAD); SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- if (IsKeyPressed('R')) // Reset physics input { // Reset dynamic physics bodies position, velocity and rotation bodyA->position = (Vector2){ 35, screenHeight*0.6f }; bodyA->velocity = (Vector2){ 0, 0 }; bodyA->angularVelocity = 0; SetPhysicsBodyRotation(bodyA, 30*DEG2RAD); bodyB->position = (Vector2){ screenWidth - 35, screenHeight*0.6f }; bodyB->velocity = (Vector2){ 0, 0 }; bodyB->angularVelocity = 0; SetPhysicsBodyRotation(bodyB, 330*DEG2RAD); } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(BLACK); DrawFPS(screenWidth - 90, screenHeight - 30); // Draw created physics bodies int bodiesCount = GetPhysicsBodiesCount(); for (int i = 0; i < bodiesCount; i++) { PhysicsBody body = GetPhysicsBody(i); if (body != NULL) { int vertexCount = GetPhysicsShapeVerticesCount(i); for (int j = 0; j < vertexCount; j++) { // Get physics bodies shape vertices to draw lines // Note: GetPhysicsShapeVertex() already calculates rotation transformations Vector2 vertexA = GetPhysicsShapeVertex(body, j); int jj = (((j + 1) < vertexCount) ? (j + 1) : 0); // Get next vertex or first to close the shape Vector2 vertexB = GetPhysicsShapeVertex(body, jj); DrawLineV(vertexA, vertexB, GREEN); // Draw a line between two vertex positions } } } DrawRectangle(0, screenHeight - 49, screenWidth, 49, BLACK); DrawText("Friction amount", (screenWidth - MeasureText("Friction amount", 30))/2, 75, 30, WHITE); DrawText("0.1", bodyA->position.x - MeasureText("0.1", 20)/2, bodyA->position.y - 7, 20, WHITE); DrawText("1", bodyB->position.x - MeasureText("1", 20)/2, bodyB->position.y - 7, 20, WHITE); DrawText("Press 'R' to reset example", 10, 10, 10, WHITE); DrawText("Physac", logoX, logoY, 30, WHITE); DrawText("Powered by", logoX + 50, logoY - 7, 10, WHITE); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- ClosePhysics(); // Unitialize physics CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/physac/physics_movement.c b/ExampleApplication/Examples/physac/physics_movement.c deleted file mode 100644 index 3ca6967..0000000 --- a/ExampleApplication/Examples/physac/physics_movement.c +++ /dev/null @@ -1,130 +0,0 @@ -/******************************************************************************************* -* -* Physac - Physics movement -* -* NOTE 1: Physac requires multi-threading, when InitPhysics() a second thread is created to manage physics calculations. -* NOTE 2: Physac requires static C library linkage to avoid dependency on MinGW DLL (-static -lpthread) -* -* Use the following line to compile: -* -* gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib.rc.o -static -lraylib -lpthread -* -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition -* -* Copyright (c) 2016-2018 Victor Fisac -* -********************************************************************************************/ - -#include "raylib.h" - -#define PHYSAC_IMPLEMENTATION -#include "physac.h" - -#define VELOCITY 0.5f - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - SetConfigFlags(FLAG_MSAA_4X_HINT); - InitWindow(screenWidth, screenHeight, "Physac [raylib] - Physics movement"); - - // Physac logo drawing position - int logoX = screenWidth - MeasureText("Physac", 30) - 10; - int logoY = 15; - - // Initialize physics and default physics bodies - InitPhysics(); - - // Create floor and walls rectangle physics body - PhysicsBody floor = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight }, screenWidth, 100, 10); - PhysicsBody platformLeft = CreatePhysicsBodyRectangle((Vector2){ screenWidth*0.25f, screenHeight*0.6f }, screenWidth*0.25f, 10, 10); - PhysicsBody platformRight = CreatePhysicsBodyRectangle((Vector2){ screenWidth*0.75f, screenHeight*0.6f }, screenWidth*0.25f, 10, 10); - PhysicsBody wallLeft = CreatePhysicsBodyRectangle((Vector2){ -5, screenHeight/2 }, 10, screenHeight, 10); - PhysicsBody wallRight = CreatePhysicsBodyRectangle((Vector2){ screenWidth + 5, screenHeight/2 }, 10, screenHeight, 10); - - // Disable dynamics to floor and walls physics bodies - floor->enabled = false; - platformLeft->enabled = false; - platformRight->enabled = false; - wallLeft->enabled = false; - wallRight->enabled = false; - - // Create movement physics body - PhysicsBody body = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight/2 }, 50, 50, 1); - body->freezeOrient = true; // Constrain body rotation to avoid little collision torque amounts - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (IsKeyPressed('R')) // Reset physics input - { - // Reset movement physics body position, velocity and rotation - body->position = (Vector2){ screenWidth/2, screenHeight/2 }; - body->velocity = (Vector2){ 0, 0 }; - SetPhysicsBodyRotation(body, 0); - } - - // Horizontal movement input - if (IsKeyDown(KEY_RIGHT)) body->velocity.x = VELOCITY; - else if (IsKeyDown(KEY_LEFT)) body->velocity.x = -VELOCITY; - - // Vertical movement input checking if player physics body is grounded - if (IsKeyDown(KEY_UP) && body->isGrounded) body->velocity.y = -VELOCITY*4; - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(BLACK); - - DrawFPS(screenWidth - 90, screenHeight - 30); - - // Draw created physics bodies - int bodiesCount = GetPhysicsBodiesCount(); - for (int i = 0; i < bodiesCount; i++) - { - PhysicsBody body = GetPhysicsBody(i); - - int vertexCount = GetPhysicsShapeVerticesCount(i); - for (int j = 0; j < vertexCount; j++) - { - // Get physics bodies shape vertices to draw lines - // Note: GetPhysicsShapeVertex() already calculates rotation transformations - Vector2 vertexA = GetPhysicsShapeVertex(body, j); - - int jj = (((j + 1) < vertexCount) ? (j + 1) : 0); // Get next vertex or first to close the shape - Vector2 vertexB = GetPhysicsShapeVertex(body, jj); - - DrawLineV(vertexA, vertexB, GREEN); // Draw a line between two vertex positions - } - } - - DrawText("Use 'ARROWS' to move player", 10, 10, 10, WHITE); - DrawText("Press 'R' to reset example", 10, 30, 10, WHITE); - - DrawText("Physac", logoX, logoY, 30, WHITE); - DrawText("Powered by", logoX + 50, logoY - 7, 10, WHITE); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - ClosePhysics(); // Unitialize physics - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - diff --git a/ExampleApplication/Examples/physac/physics_movement.cs b/ExampleApplication/Examples/physac/physics_movement.cs new file mode 100644 index 0000000..ec9d78a --- /dev/null +++ b/ExampleApplication/Examples/physac/physics_movement.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * Physac - Physics movement * * NOTE 1: Physac requires multi-threading, when InitPhysics() a second thread is created to manage physics calculations. * NOTE 2: Physac requires static C library linkage to avoid dependency on MinGW DLL (-static -lpthread) * * Use the following line to compile: * * gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib.rc.o -static -lraylib -lpthread * -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition * * Copyright (c) 2016-2018 Victor Fisac * ********************************************************************************************/ #define PHYSAC_IMPLEMENTATION #include "physac.h" #define VELOCITY 0.5f public static int physics_movement() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; SetConfigFlags(FLAG_MSAA_4X_HINT); InitWindow(screenWidth, screenHeight, "Physac [raylib] - Physics movement"); // Physac logo drawing position int logoX = screenWidth - MeasureText("Physac", 30) - 10; int logoY = 15; // Initialize physics and default physics bodies InitPhysics(); // Create floor and walls rectangle physics body PhysicsBody floor = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight }, screenWidth, 100, 10); PhysicsBody platformLeft = CreatePhysicsBodyRectangle((Vector2){ screenWidth*0.25f, screenHeight*0.6f }, screenWidth*0.25f, 10, 10); PhysicsBody platformRight = CreatePhysicsBodyRectangle((Vector2){ screenWidth*0.75f, screenHeight*0.6f }, screenWidth*0.25f, 10, 10); PhysicsBody wallLeft = CreatePhysicsBodyRectangle((Vector2){ -5, screenHeight/2 }, 10, screenHeight, 10); PhysicsBody wallRight = CreatePhysicsBodyRectangle((Vector2){ screenWidth + 5, screenHeight/2 }, 10, screenHeight, 10); // Disable dynamics to floor and walls physics bodies floor->enabled = false; platformLeft->enabled = false; platformRight->enabled = false; wallLeft->enabled = false; wallRight->enabled = false; // Create movement physics body PhysicsBody body = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight/2 }, 50, 50, 1); body->freezeOrient = true; // Constrain body rotation to avoid little collision torque amounts SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- if (IsKeyPressed('R')) // Reset physics input { // Reset movement physics body position, velocity and rotation body->position = (Vector2){ screenWidth/2, screenHeight/2 }; body->velocity = (Vector2){ 0, 0 }; SetPhysicsBodyRotation(body, 0); } // Horizontal movement input if (IsKeyDown(KEY_RIGHT)) body->velocity.x = VELOCITY; else if (IsKeyDown(KEY_LEFT)) body->velocity.x = -VELOCITY; // Vertical movement input checking if player physics body is grounded if (IsKeyDown(KEY_UP) && body->isGrounded) body->velocity.y = -VELOCITY*4; //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(BLACK); DrawFPS(screenWidth - 90, screenHeight - 30); // Draw created physics bodies int bodiesCount = GetPhysicsBodiesCount(); for (int i = 0; i < bodiesCount; i++) { PhysicsBody body = GetPhysicsBody(i); int vertexCount = GetPhysicsShapeVerticesCount(i); for (int j = 0; j < vertexCount; j++) { // Get physics bodies shape vertices to draw lines // Note: GetPhysicsShapeVertex() already calculates rotation transformations Vector2 vertexA = GetPhysicsShapeVertex(body, j); int jj = (((j + 1) < vertexCount) ? (j + 1) : 0); // Get next vertex or first to close the shape Vector2 vertexB = GetPhysicsShapeVertex(body, jj); DrawLineV(vertexA, vertexB, GREEN); // Draw a line between two vertex positions } } DrawText("Use 'ARROWS' to move player", 10, 10, 10, WHITE); DrawText("Press 'R' to reset example", 10, 30, 10, WHITE); DrawText("Physac", logoX, logoY, 30, WHITE); DrawText("Powered by", logoX + 50, logoY - 7, 10, WHITE); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- ClosePhysics(); // Unitialize physics CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/physac/physics_restitution.c b/ExampleApplication/Examples/physac/physics_restitution.c deleted file mode 100644 index 8e26c93..0000000 --- a/ExampleApplication/Examples/physac/physics_restitution.c +++ /dev/null @@ -1,123 +0,0 @@ -/******************************************************************************************* -* -* Physac - Physics restitution -* -* NOTE 1: Physac requires multi-threading, when InitPhysics() a second thread is created to manage physics calculations. -* NOTE 2: Physac requires static C library linkage to avoid dependency on MinGW DLL (-static -lpthread) -* -* Use the following line to compile: -* -* gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib.rc.o -static -lraylib -lpthread -* -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition -* -* Copyright (c) 2016-2018 Victor Fisac -* -********************************************************************************************/ - -#include "raylib.h" - -#define PHYSAC_IMPLEMENTATION -#include "physac.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - SetConfigFlags(FLAG_MSAA_4X_HINT); - InitWindow(screenWidth, screenHeight, "Physac [raylib] - Physics restitution"); - - // Physac logo drawing position - int logoX = screenWidth - MeasureText("Physac", 30) - 10; - int logoY = 15; - - // Initialize physics and default physics bodies - InitPhysics(); - - // Create floor rectangle physics body - PhysicsBody floor = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight }, screenWidth, 100, 10); - floor->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions) - floor->restitution = 1; - - // Create circles physics body - PhysicsBody circleA = CreatePhysicsBodyCircle((Vector2){ screenWidth*0.25f, screenHeight/2 }, 30, 10); - circleA->restitution = 0; - PhysicsBody circleB = CreatePhysicsBodyCircle((Vector2){ screenWidth*0.5f, screenHeight/2 }, 30, 10); - circleB->restitution = 0.5f; - PhysicsBody circleC = CreatePhysicsBodyCircle((Vector2){ screenWidth*0.75f, screenHeight/2 }, 30, 10); - circleC->restitution = 1; - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (IsKeyPressed('R')) // Reset physics input - { - // Reset circles physics bodies position and velocity - circleA->position = (Vector2){ screenWidth*0.25f, screenHeight/2 }; - circleA->velocity = (Vector2){ 0, 0 }; - circleB->position = (Vector2){ screenWidth*0.5f, screenHeight/2 }; - circleB->velocity = (Vector2){ 0, 0 }; - circleC->position = (Vector2){ screenWidth*0.75f, screenHeight/2 }; - circleC->velocity = (Vector2){ 0, 0 }; - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(BLACK); - - DrawFPS(screenWidth - 90, screenHeight - 30); - - // Draw created physics bodies - int bodiesCount = GetPhysicsBodiesCount(); - for (int i = 0; i < bodiesCount; i++) - { - PhysicsBody body = GetPhysicsBody(i); - - int vertexCount = GetPhysicsShapeVerticesCount(i); - for (int j = 0; j < vertexCount; j++) - { - // Get physics bodies shape vertices to draw lines - // Note: GetPhysicsShapeVertex() already calculates rotation transformations - Vector2 vertexA = GetPhysicsShapeVertex(body, j); - - int jj = (((j + 1) < vertexCount) ? (j + 1) : 0); // Get next vertex or first to close the shape - Vector2 vertexB = GetPhysicsShapeVertex(body, jj); - - DrawLineV(vertexA, vertexB, GREEN); // Draw a line between two vertex positions - } - } - - DrawText("Restitution amount", (screenWidth - MeasureText("Restitution amount", 30))/2, 75, 30, WHITE); - DrawText("0", circleA->position.x - MeasureText("0", 20)/2, circleA->position.y - 7, 20, WHITE); - DrawText("0.5", circleB->position.x - MeasureText("0.5", 20)/2, circleB->position.y - 7, 20, WHITE); - DrawText("1", circleC->position.x - MeasureText("1", 20)/2, circleC->position.y - 7, 20, WHITE); - - DrawText("Press 'R' to reset example", 10, 10, 10, WHITE); - - DrawText("Physac", logoX, logoY, 30, WHITE); - DrawText("Powered by", logoX + 50, logoY - 7, 10, WHITE); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - ClosePhysics(); // Unitialize physics - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - diff --git a/ExampleApplication/Examples/physac/physics_restitution.cs b/ExampleApplication/Examples/physac/physics_restitution.cs new file mode 100644 index 0000000..6531286 --- /dev/null +++ b/ExampleApplication/Examples/physac/physics_restitution.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * Physac - Physics restitution * * NOTE 1: Physac requires multi-threading, when InitPhysics() a second thread is created to manage physics calculations. * NOTE 2: Physac requires static C library linkage to avoid dependency on MinGW DLL (-static -lpthread) * * Use the following line to compile: * * gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib.rc.o -static -lraylib -lpthread * -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition * * Copyright (c) 2016-2018 Victor Fisac * ********************************************************************************************/ #define PHYSAC_IMPLEMENTATION #include "physac.h" public static int physics_restitution() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; SetConfigFlags(FLAG_MSAA_4X_HINT); InitWindow(screenWidth, screenHeight, "Physac [raylib] - Physics restitution"); // Physac logo drawing position int logoX = screenWidth - MeasureText("Physac", 30) - 10; int logoY = 15; // Initialize physics and default physics bodies InitPhysics(); // Create floor rectangle physics body PhysicsBody floor = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight }, screenWidth, 100, 10); floor->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions) floor->restitution = 1; // Create circles physics body PhysicsBody circleA = CreatePhysicsBodyCircle((Vector2){ screenWidth*0.25f, screenHeight/2 }, 30, 10); circleA->restitution = 0; PhysicsBody circleB = CreatePhysicsBodyCircle((Vector2){ screenWidth*0.5f, screenHeight/2 }, 30, 10); circleB->restitution = 0.5f; PhysicsBody circleC = CreatePhysicsBodyCircle((Vector2){ screenWidth*0.75f, screenHeight/2 }, 30, 10); circleC->restitution = 1; SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- if (IsKeyPressed('R')) // Reset physics input { // Reset circles physics bodies position and velocity circleA->position = (Vector2){ screenWidth*0.25f, screenHeight/2 }; circleA->velocity = (Vector2){ 0, 0 }; circleB->position = (Vector2){ screenWidth*0.5f, screenHeight/2 }; circleB->velocity = (Vector2){ 0, 0 }; circleC->position = (Vector2){ screenWidth*0.75f, screenHeight/2 }; circleC->velocity = (Vector2){ 0, 0 }; } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(BLACK); DrawFPS(screenWidth - 90, screenHeight - 30); // Draw created physics bodies int bodiesCount = GetPhysicsBodiesCount(); for (int i = 0; i < bodiesCount; i++) { PhysicsBody body = GetPhysicsBody(i); int vertexCount = GetPhysicsShapeVerticesCount(i); for (int j = 0; j < vertexCount; j++) { // Get physics bodies shape vertices to draw lines // Note: GetPhysicsShapeVertex() already calculates rotation transformations Vector2 vertexA = GetPhysicsShapeVertex(body, j); int jj = (((j + 1) < vertexCount) ? (j + 1) : 0); // Get next vertex or first to close the shape Vector2 vertexB = GetPhysicsShapeVertex(body, jj); DrawLineV(vertexA, vertexB, GREEN); // Draw a line between two vertex positions } } DrawText("Restitution amount", (screenWidth - MeasureText("Restitution amount", 30))/2, 75, 30, WHITE); DrawText("0", circleA->position.x - MeasureText("0", 20)/2, circleA->position.y - 7, 20, WHITE); DrawText("0.5", circleB->position.x - MeasureText("0.5", 20)/2, circleB->position.y - 7, 20, WHITE); DrawText("1", circleC->position.x - MeasureText("1", 20)/2, circleC->position.y - 7, 20, WHITE); DrawText("Press 'R' to reset example", 10, 10, 10, WHITE); DrawText("Physac", logoX, logoY, 30, WHITE); DrawText("Powered by", logoX + 50, logoY - 7, 10, WHITE); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- ClosePhysics(); // Unitialize physics CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/physac/physics_shatter.c b/ExampleApplication/Examples/physac/physics_shatter.c deleted file mode 100644 index e34d6ce..0000000 --- a/ExampleApplication/Examples/physac/physics_shatter.c +++ /dev/null @@ -1,121 +0,0 @@ -/******************************************************************************************* -* -* Physac - Body shatter -* -* NOTE 1: Physac requires multi-threading, when InitPhysics() a second thread is created to manage physics calculations. -* NOTE 2: Physac requires static C library linkage to avoid dependency on MinGW DLL (-static -lpthread) -* -* Use the following line to compile: -* -* gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib.rc.o -static -lraylib -lpthread -* -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition -* -* Copyright (c) 2016-2018 Victor Fisac -* -********************************************************************************************/ - -#include "raylib.h" - -#define PHYSAC_IMPLEMENTATION -#include "physac.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - SetConfigFlags(FLAG_MSAA_4X_HINT); - InitWindow(screenWidth, screenHeight, "Physac [raylib] - Body shatter"); - - // Physac logo drawing position - int logoX = screenWidth - MeasureText("Physac", 30) - 10; - int logoY = 15; - bool needsReset = false; - - // Initialize physics and default physics bodies - InitPhysics(); - SetPhysicsGravity(0, 0); - - // Create random polygon physics body to shatter - CreatePhysicsBodyPolygon((Vector2){ screenWidth/2, screenHeight/2 }, GetRandomValue(80, 200), GetRandomValue(3, 8), 10); - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // Delay initialization of variables due to physics reset asynchronous - if (needsReset) - { - // Create random polygon physics body to shatter - CreatePhysicsBodyPolygon((Vector2){ screenWidth/2, screenHeight/2 }, GetRandomValue(80, 200), GetRandomValue(3, 8), 10); - } - - if (IsKeyPressed('R')) // Reset physics input - { - ResetPhysics(); - needsReset = true; - } - - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) // Physics shatter input - { - // Note: some values need to be stored in variables due to asynchronous changes during main thread - int count = GetPhysicsBodiesCount(); - for (int i = count - 1; i >= 0; i--) - { - PhysicsBody currentBody = GetPhysicsBody(i); - if (currentBody != NULL) PhysicsShatter(currentBody, GetMousePosition(), 10/currentBody->inverseMass); - } - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(BLACK); - - // Draw created physics bodies - int bodiesCount = GetPhysicsBodiesCount(); - for (int i = 0; i < bodiesCount; i++) - { - PhysicsBody currentBody = GetPhysicsBody(i); - - int vertexCount = GetPhysicsShapeVerticesCount(i); - for (int j = 0; j < vertexCount; j++) - { - // Get physics bodies shape vertices to draw lines - // Note: GetPhysicsShapeVertex() already calculates rotation transformations - Vector2 vertexA = GetPhysicsShapeVertex(currentBody, j); - - int jj = (((j + 1) < vertexCount) ? (j + 1) : 0); // Get next vertex or first to close the shape - Vector2 vertexB = GetPhysicsShapeVertex(currentBody, jj); - - DrawLineV(vertexA, vertexB, GREEN); // Draw a line between two vertex positions - } - } - - DrawText("Left mouse button in polygon area to shatter body\nPress 'R' to reset example", 10, 10, 10, WHITE); - - DrawText("Physac", logoX, logoY, 30, WHITE); - DrawText("Powered by", logoX + 50, logoY - 7, 10, WHITE); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - ClosePhysics(); // Unitialize physics - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - diff --git a/ExampleApplication/Examples/physac/physics_shatter.cs b/ExampleApplication/Examples/physac/physics_shatter.cs new file mode 100644 index 0000000..21dfd9a --- /dev/null +++ b/ExampleApplication/Examples/physac/physics_shatter.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * Physac - Body shatter * * NOTE 1: Physac requires multi-threading, when InitPhysics() a second thread is created to manage physics calculations. * NOTE 2: Physac requires static C library linkage to avoid dependency on MinGW DLL (-static -lpthread) * * Use the following line to compile: * * gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib.rc.o -static -lraylib -lpthread * -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition * * Copyright (c) 2016-2018 Victor Fisac * ********************************************************************************************/ #define PHYSAC_IMPLEMENTATION #include "physac.h" public static int physics_shatter() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; SetConfigFlags(FLAG_MSAA_4X_HINT); InitWindow(screenWidth, screenHeight, "Physac [raylib] - Body shatter"); // Physac logo drawing position int logoX = screenWidth - MeasureText("Physac", 30) - 10; int logoY = 15; bool needsReset = false; // Initialize physics and default physics bodies InitPhysics(); SetPhysicsGravity(0, 0); // Create random polygon physics body to shatter CreatePhysicsBodyPolygon((Vector2){ screenWidth/2, screenHeight/2 }, GetRandomValue(80, 200), GetRandomValue(3, 8), 10); SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // Delay initialization of variables due to physics reset asynchronous if (needsReset) { // Create random polygon physics body to shatter CreatePhysicsBodyPolygon((Vector2){ screenWidth/2, screenHeight/2 }, GetRandomValue(80, 200), GetRandomValue(3, 8), 10); } if (IsKeyPressed('R')) // Reset physics input { ResetPhysics(); needsReset = true; } if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) // Physics shatter input { // Note: some values need to be stored in variables due to asynchronous changes during main thread int count = GetPhysicsBodiesCount(); for (int i = count - 1; i >= 0; i--) { PhysicsBody currentBody = GetPhysicsBody(i); if (currentBody != NULL) PhysicsShatter(currentBody, GetMousePosition(), 10/currentBody->inverseMass); } } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(BLACK); // Draw created physics bodies int bodiesCount = GetPhysicsBodiesCount(); for (int i = 0; i < bodiesCount; i++) { PhysicsBody currentBody = GetPhysicsBody(i); int vertexCount = GetPhysicsShapeVerticesCount(i); for (int j = 0; j < vertexCount; j++) { // Get physics bodies shape vertices to draw lines // Note: GetPhysicsShapeVertex() already calculates rotation transformations Vector2 vertexA = GetPhysicsShapeVertex(currentBody, j); int jj = (((j + 1) < vertexCount) ? (j + 1) : 0); // Get next vertex or first to close the shape Vector2 vertexB = GetPhysicsShapeVertex(currentBody, jj); DrawLineV(vertexA, vertexB, GREEN); // Draw a line between two vertex positions } } DrawText("Left mouse button in polygon area to shatter body\nPress 'R' to reset example", 10, 10, 10, WHITE); DrawText("Physac", logoX, logoY, 30, WHITE); DrawText("Powered by", logoX + 50, logoY - 7, 10, WHITE); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- ClosePhysics(); // Unitialize physics CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/shaders/shaders_custom_uniform.c b/ExampleApplication/Examples/shaders/shaders_custom_uniform.c deleted file mode 100644 index 32fbab9..0000000 --- a/ExampleApplication/Examples/shaders/shaders_custom_uniform.c +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************************* -* -* raylib [shaders] example - Apply a postprocessing shader and connect a custom uniform variable -* -* NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support, -* OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version. -* -* NOTE: Shaders used in this example are #version 330 (OpenGL 3.3), to test this example -* on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders -* raylib comes with shaders ready for both versions, check raylib/shaders install folder -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available) - - InitWindow(screenWidth, screenHeight, "raylib [shaders] example - custom uniform variable"); - - // Define the camera to look into our 3d world - Camera camera = { 0 }; - camera.position = (Vector3){ 8.0f, 8.0f, 8.0f }; - camera.target = (Vector3){ 0.0f, 1.5f, 0.0f }; - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; - camera.fovy = 45.0f; - camera.type = CAMERA_PERSPECTIVE; - - Model model = LoadModel("resources/models/barracks.obj"); // Load OBJ model - Texture2D texture = LoadTexture("resources/models/barracks_diffuse.png"); // Load model texture (diffuse map) - model.material.maps[MAP_DIFFUSE].texture = texture; // Set model diffuse texture - - Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position - - Shader shader = LoadShader("resources/shaders/glsl330/base.vs", - "resources/shaders/glsl330/swirl.fs"); // Load postpro shader - - // Get variable (uniform) location on the shader to connect with the program - // NOTE: If uniform variable could not be found in the shader, function returns -1 - int swirlCenterLoc = GetShaderLocation(shader, "center"); - - float swirlCenter[2] = { (float)screenWidth/2, (float)screenHeight/2 }; - - // Create a RenderTexture2D to be used for render to texture - RenderTexture2D target = LoadRenderTexture(screenWidth, screenHeight); - - // Setup orbital camera - SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - Vector2 mousePosition = GetMousePosition(); - - swirlCenter[0] = mousePosition.x; - swirlCenter[1] = screenHeight - mousePosition.y; - - // Send new value to the shader to be used on drawing - SetShaderValue(shader, swirlCenterLoc, swirlCenter, 2); - - UpdateCamera(&camera); // Update camera - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginTextureMode(target); // Enable drawing to texture - - BeginMode3D(camera); - - DrawModel(model, position, 0.5f, WHITE); // Draw 3d model with texture - - DrawGrid(10, 1.0f); // Draw a grid - - EndMode3D(); - - DrawText("TEXT DRAWN IN RENDER TEXTURE", 200, 10, 30, RED); - - EndTextureMode(); // End drawing to texture (now we have a texture available for next passes) - - BeginShaderMode(shader); - - // NOTE: Render texture must be y-flipped due to default OpenGL coordinates (left-bottom) - DrawTextureRec(target.texture, (Rectangle){ 0, 0, target.texture.width, -target.texture.height }, (Vector2){ 0, 0 }, WHITE); - - EndShaderMode(); - - DrawText("(c) Barracks 3D model by Alberto Cano", screenWidth - 220, screenHeight - 20, 10, GRAY); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadShader(shader); // Unload shader - UnloadTexture(texture); // Unload texture - UnloadModel(model); // Unload model - UnloadRenderTexture(target); // Unload render texture - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/shaders/shaders_custom_uniform.cs b/ExampleApplication/Examples/shaders/shaders_custom_uniform.cs new file mode 100644 index 0000000..49464e6 --- /dev/null +++ b/ExampleApplication/Examples/shaders/shaders_custom_uniform.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [shaders] example - Apply a postprocessing shader and connect a custom uniform variable * * NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support, * OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version. * * NOTE: Shaders used in this example are #version 330 (OpenGL 3.3), to test this example * on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders * raylib comes with shaders ready for both versions, check raylib/shaders install folder * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int shaders_custom_uniform() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available) InitWindow(screenWidth, screenHeight, "raylib [shaders] example - custom uniform variable"); // Define the camera to look into our 3d world Camera camera = { 0 }; camera.position = (Vector3){ 8.0f, 8.0f, 8.0f }; camera.target = (Vector3){ 0.0f, 1.5f, 0.0f }; camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; camera.fovy = 45.0f; camera.type = CAMERA_PERSPECTIVE; Model model = LoadModel("resources/models/barracks.obj"); // Load OBJ model Texture2D texture = LoadTexture("resources/models/barracks_diffuse.png"); // Load model texture (diffuse map) model.material.maps[MAP_DIFFUSE].texture = texture; // Set model diffuse texture Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position Shader shader = LoadShader("resources/shaders/glsl330/base.vs", "resources/shaders/glsl330/swirl.fs"); // Load postpro shader // Get variable (uniform) location on the shader to connect with the program // NOTE: If uniform variable could not be found in the shader, function returns -1 int swirlCenterLoc = GetShaderLocation(shader, "center"); float swirlCenter[2] = { (float)screenWidth/2, (float)screenHeight/2 }; // Create a RenderTexture2D to be used for render to texture RenderTexture2D target = LoadRenderTexture(screenWidth, screenHeight); // Setup orbital camera SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- Vector2 mousePosition = GetMousePosition(); swirlCenter[0] = mousePosition.x; swirlCenter[1] = screenHeight - mousePosition.y; // Send new value to the shader to be used on drawing SetShaderValue(shader, swirlCenterLoc, swirlCenter, 2); UpdateCamera(&camera); // Update camera //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginTextureMode(target); // Enable drawing to texture BeginMode3D(camera); DrawModel(model, position, 0.5f, WHITE); // Draw 3d model with texture DrawGrid(10, 1.0f); // Draw a grid EndMode3D(); DrawText("TEXT DRAWN IN RENDER TEXTURE", 200, 10, 30, RED); EndTextureMode(); // End drawing to texture (now we have a texture available for next passes) BeginShaderMode(shader); // NOTE: Render texture must be y-flipped due to default OpenGL coordinates (left-bottom) DrawTextureRec(target.texture, (Rectangle){ 0, 0, target.texture.width, -target.texture.height }, (Vector2){ 0, 0 }, WHITE); EndShaderMode(); DrawText("(c) Barracks 3D model by Alberto Cano", screenWidth - 220, screenHeight - 20, 10, GRAY); DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadShader(shader); // Unload shader UnloadTexture(texture); // Unload texture UnloadModel(model); // Unload model UnloadRenderTexture(target); // Unload render texture CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/shaders/shaders_model_shader.c b/ExampleApplication/Examples/shaders/shaders_model_shader.c deleted file mode 100644 index e80d1fd..0000000 --- a/ExampleApplication/Examples/shaders/shaders_model_shader.c +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************************* -* -* raylib [shaders] example - Apply a shader to a 3d model -* -* NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support, -* OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version. -* -* NOTE: Shaders used in this example are #version 330 (OpenGL 3.3), to test this example -* on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders -* raylib comes with shaders ready for both versions, check raylib/shaders install folder -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available) - - InitWindow(screenWidth, screenHeight, "raylib [shaders] example - model shader"); - - // Define the camera to look into our 3d world - Camera camera = { 0 }; - camera.position = (Vector3){ 4.0f, 4.0f, 4.0f }; - camera.target = (Vector3){ 0.0f, 1.0f, -1.0f }; - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; - camera.fovy = 45.0f; - camera.type = CAMERA_PERSPECTIVE; - - Model model = LoadModel("resources/models/watermill.obj"); // Load OBJ model - Texture2D texture = LoadTexture("resources/models/watermill_diffuse.png"); // Load model texture - Shader shader = LoadShader("resources/shaders/glsl330/base.vs", - "resources/shaders/glsl330/grayscale.fs"); // Load model shader - - model.material.shader = shader; // Set shader effect to 3d model - model.material.maps[MAP_DIFFUSE].texture = texture; // Bind texture to model - - Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position - - SetCameraMode(camera, CAMERA_FREE); // Set an orbital camera mode - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update camera - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawModel(model, position, 0.2f, WHITE); // Draw 3d model with texture - - DrawGrid(10, 1.0f); // Draw a grid - - EndMode3D(); - - DrawText("(c) Watermill 3D model by Alberto Cano", screenWidth - 210, screenHeight - 20, 10, GRAY); - - DrawText(FormatText("Camera position: (%.2f, %.2f, %.2f)", camera.position.x, camera.position.y, camera.position.z), 600, 20, 10, BLACK); - DrawText(FormatText("Camera target: (%.2f, %.2f, %.2f)", camera.target.x, camera.target.y, camera.target.z), 600, 40, 10, GRAY); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadShader(shader); // Unload shader - UnloadTexture(texture); // Unload texture - UnloadModel(model); // Unload model - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/shaders/shaders_model_shader.cs b/ExampleApplication/Examples/shaders/shaders_model_shader.cs new file mode 100644 index 0000000..5d3c630 --- /dev/null +++ b/ExampleApplication/Examples/shaders/shaders_model_shader.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [shaders] example - Apply a shader to a 3d model * * NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support, * OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version. * * NOTE: Shaders used in this example are #version 330 (OpenGL 3.3), to test this example * on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders * raylib comes with shaders ready for both versions, check raylib/shaders install folder * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int shaders_model_shader() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available) InitWindow(screenWidth, screenHeight, "raylib [shaders] example - model shader"); // Define the camera to look into our 3d world Camera camera = { 0 }; camera.position = (Vector3){ 4.0f, 4.0f, 4.0f }; camera.target = (Vector3){ 0.0f, 1.0f, -1.0f }; camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; camera.fovy = 45.0f; camera.type = CAMERA_PERSPECTIVE; Model model = LoadModel("resources/models/watermill.obj"); // Load OBJ model Texture2D texture = LoadTexture("resources/models/watermill_diffuse.png"); // Load model texture Shader shader = LoadShader("resources/shaders/glsl330/base.vs", "resources/shaders/glsl330/grayscale.fs"); // Load model shader model.material.shader = shader; // Set shader effect to 3d model model.material.maps[MAP_DIFFUSE].texture = texture; // Bind texture to model Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position SetCameraMode(camera, CAMERA_FREE); // Set an orbital camera mode SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateCamera(&camera); // Update camera //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginMode3D(camera); DrawModel(model, position, 0.2f, WHITE); // Draw 3d model with texture DrawGrid(10, 1.0f); // Draw a grid EndMode3D(); DrawText("(c) Watermill 3D model by Alberto Cano", screenWidth - 210, screenHeight - 20, 10, GRAY); DrawText(FormatText("Camera position: (%.2f, %.2f, %.2f)", camera.position.x, camera.position.y, camera.position.z), 600, 20, 10, BLACK); DrawText(FormatText("Camera target: (%.2f, %.2f, %.2f)", camera.target.x, camera.target.y, camera.target.z), 600, 40, 10, GRAY); DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadShader(shader); // Unload shader UnloadTexture(texture); // Unload texture UnloadModel(model); // Unload model CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/shaders/shaders_postprocessing.c b/ExampleApplication/Examples/shaders/shaders_postprocessing.c deleted file mode 100644 index d3f78fd..0000000 --- a/ExampleApplication/Examples/shaders/shaders_postprocessing.c +++ /dev/null @@ -1,179 +0,0 @@ -/******************************************************************************************* -* -* raylib [shaders] example - Apply a postprocessing shader to a scene -* -* NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support, -* OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version. -* -* NOTE: Shaders used in this example are #version 330 (OpenGL 3.3), to test this example -* on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders -* raylib comes with shaders ready for both versions, check raylib/shaders install folder -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#if defined(PLATFORM_DESKTOP) - #define GLSL_VERSION 330 -#else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB - #define GLSL_VERSION 100 -#endif - -#define MAX_POSTPRO_SHADERS 12 - -typedef enum { - FX_GRAYSCALE = 0, - FX_POSTERIZATION, - FX_DREAM_VISION, - FX_PIXELIZER, - FX_CROSS_HATCHING, - FX_CROSS_STITCHING, - FX_PREDATOR_VIEW, - FX_SCANLINES, - FX_FISHEYE, - FX_SOBEL, - FX_BLOOM, - FX_BLUR, - //FX_FXAA -} PostproShader; - -static const char *postproShaderText[] = { - "GRAYSCALE", - "POSTERIZATION", - "DREAM_VISION", - "PIXELIZER", - "CROSS_HATCHING", - "CROSS_STITCHING", - "PREDATOR_VIEW", - "SCANLINES", - "FISHEYE", - "SOBEL", - "BLOOM", - "BLUR", - //"FXAA" -}; - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available) - - InitWindow(screenWidth, screenHeight, "raylib [shaders] example - postprocessing shader"); - - // Define the camera to look into our 3d world - Camera camera = {{ 2.0f, 3.0f, 2.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; - - Model model = LoadModel("resources/models/church.obj"); // Load OBJ model - Texture2D texture = LoadTexture("resources/models/church_diffuse.png"); // Load model texture (diffuse map) - model.material.maps[MAP_DIFFUSE].texture = texture; // Set model diffuse texture - - Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position - - // Load all postpro shaders - // NOTE 1: All postpro shader use the base vertex shader (DEFAULT_VERTEX_SHADER) - // NOTE 2: We load the correct shader depending on GLSL version - Shader shaders[MAX_POSTPRO_SHADERS]; - - // NOTE: Defining 0 (NULL) for vertex shader forces usage of internal default vertex shader - shaders[FX_GRAYSCALE] = LoadShader(0, FormatText("resources/shaders/glsl%i/grayscale.fs", GLSL_VERSION)); - shaders[FX_POSTERIZATION] = LoadShader(0, FormatText("resources/shaders/glsl%i/posterization.fs", GLSL_VERSION)); - shaders[FX_DREAM_VISION] = LoadShader(0, FormatText("resources/shaders/glsl%i/dream_vision.fs", GLSL_VERSION)); - shaders[FX_PIXELIZER] = LoadShader(0, FormatText("resources/shaders/glsl%i/pixelizer.fs", GLSL_VERSION)); - shaders[FX_CROSS_HATCHING] = LoadShader(0, FormatText("resources/shaders/glsl%i/cross_hatching.fs", GLSL_VERSION)); - shaders[FX_CROSS_STITCHING] = LoadShader(0, FormatText("resources/shaders/glsl%i/cross_stitching.fs", GLSL_VERSION)); - shaders[FX_PREDATOR_VIEW] = LoadShader(0, FormatText("resources/shaders/glsl%i/predator.fs", GLSL_VERSION)); - shaders[FX_SCANLINES] = LoadShader(0, FormatText("resources/shaders/glsl%i/scanlines.fs", GLSL_VERSION)); - shaders[FX_FISHEYE] = LoadShader(0, FormatText("resources/shaders/glsl%i/fisheye.fs", GLSL_VERSION)); - shaders[FX_SOBEL] = LoadShader(0, FormatText("resources/shaders/glsl%i/sobel.fs", GLSL_VERSION)); - shaders[FX_BLOOM] = LoadShader(0, FormatText("resources/shaders/glsl%i/bloom.fs", GLSL_VERSION)); - shaders[FX_BLUR] = LoadShader(0, FormatText("resources/shaders/glsl%i/blur.fs", GLSL_VERSION)); - - int currentShader = FX_GRAYSCALE; - - // Create a RenderTexture2D to be used for render to texture - RenderTexture2D target = LoadRenderTexture(screenWidth, screenHeight); - - // Setup orbital camera - SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update camera - - if (IsKeyPressed(KEY_RIGHT)) currentShader++; - else if (IsKeyPressed(KEY_LEFT)) currentShader--; - - if (currentShader >= MAX_POSTPRO_SHADERS) currentShader = 0; - else if (currentShader < 0) currentShader = MAX_POSTPRO_SHADERS - 1; - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginTextureMode(target); // Enable drawing to texture - - BeginMode3D(camera); - - DrawModel(model, position, 0.1f, WHITE); // Draw 3d model with texture - - DrawGrid(10, 1.0f); // Draw a grid - - EndMode3D(); - - EndTextureMode(); // End drawing to texture (now we have a texture available for next passes) - - // Render previously generated texture using selected postpro shader - BeginShaderMode(shaders[currentShader]); - - // NOTE: Render texture must be y-flipped due to default OpenGL coordinates (left-bottom) - DrawTextureRec(target.texture, (Rectangle){ 0, 0, target.texture.width, -target.texture.height }, (Vector2){ 0, 0 }, WHITE); - - EndShaderMode(); - - DrawRectangle(0, 9, 580, 30, Fade(LIGHTGRAY, 0.7f)); - - DrawText("(c) Church 3D model by Alberto Cano", screenWidth - 200, screenHeight - 20, 10, GRAY); - - DrawText("CURRENT POSTPRO SHADER:", 10, 15, 20, BLACK); - DrawText(postproShaderText[currentShader], 330, 15, 20, RED); - DrawText("< >", 540, 10, 30, DARKBLUE); - - DrawFPS(700, 15); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - - // Unload all postpro shaders - for (int i = 0; i < MAX_POSTPRO_SHADERS; i++) UnloadShader(shaders[i]); - - UnloadTexture(texture); // Unload texture - UnloadModel(model); // Unload model - UnloadRenderTexture(target); // Unload render texture - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} diff --git a/ExampleApplication/Examples/shaders/shaders_postprocessing.cs b/ExampleApplication/Examples/shaders/shaders_postprocessing.cs new file mode 100644 index 0000000..291d25c --- /dev/null +++ b/ExampleApplication/Examples/shaders/shaders_postprocessing.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [shaders] example - Apply a postprocessing shader to a scene * * NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support, * OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version. * * NOTE: Shaders used in this example are #version 330 (OpenGL 3.3), to test this example * on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders * raylib comes with shaders ready for both versions, check raylib/shaders install folder * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #if defined(PLATFORM_DESKTOP) #define GLSL_VERSION 330 #else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB #define GLSL_VERSION 100 #endif #define MAX_POSTPRO_SHADERS 12 typedef enum { FX_GRAYSCALE = 0, FX_POSTERIZATION, FX_DREAM_VISION, FX_PIXELIZER, FX_CROSS_HATCHING, FX_CROSS_STITCHING, FX_PREDATOR_VIEW, FX_SCANLINES, FX_FISHEYE, FX_SOBEL, FX_BLOOM, FX_BLUR, //FX_FXAA } PostproShader; static const char *postproShaderText[] = { "GRAYSCALE", "POSTERIZATION", "DREAM_VISION", "PIXELIZER", "CROSS_HATCHING", "CROSS_STITCHING", "PREDATOR_VIEW", "SCANLINES", "FISHEYE", "SOBEL", "BLOOM", "BLUR", //"FXAA" }; public static int shaders_postprocessing() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available) InitWindow(screenWidth, screenHeight, "raylib [shaders] example - postprocessing shader"); // Define the camera to look into our 3d world Camera camera = {{ 2.0f, 3.0f, 2.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; Model model = LoadModel("resources/models/church.obj"); // Load OBJ model Texture2D texture = LoadTexture("resources/models/church_diffuse.png"); // Load model texture (diffuse map) model.material.maps[MAP_DIFFUSE].texture = texture; // Set model diffuse texture Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position // Load all postpro shaders // NOTE 1: All postpro shader use the base vertex shader (DEFAULT_VERTEX_SHADER) // NOTE 2: We load the correct shader depending on GLSL version Shader shaders[MAX_POSTPRO_SHADERS]; // NOTE: Defining 0 (NULL) for vertex shader forces usage of internal default vertex shader shaders[FX_GRAYSCALE] = LoadShader(0, FormatText("resources/shaders/glsl%i/grayscale.fs", GLSL_VERSION)); shaders[FX_POSTERIZATION] = LoadShader(0, FormatText("resources/shaders/glsl%i/posterization.fs", GLSL_VERSION)); shaders[FX_DREAM_VISION] = LoadShader(0, FormatText("resources/shaders/glsl%i/dream_vision.fs", GLSL_VERSION)); shaders[FX_PIXELIZER] = LoadShader(0, FormatText("resources/shaders/glsl%i/pixelizer.fs", GLSL_VERSION)); shaders[FX_CROSS_HATCHING] = LoadShader(0, FormatText("resources/shaders/glsl%i/cross_hatching.fs", GLSL_VERSION)); shaders[FX_CROSS_STITCHING] = LoadShader(0, FormatText("resources/shaders/glsl%i/cross_stitching.fs", GLSL_VERSION)); shaders[FX_PREDATOR_VIEW] = LoadShader(0, FormatText("resources/shaders/glsl%i/predator.fs", GLSL_VERSION)); shaders[FX_SCANLINES] = LoadShader(0, FormatText("resources/shaders/glsl%i/scanlines.fs", GLSL_VERSION)); shaders[FX_FISHEYE] = LoadShader(0, FormatText("resources/shaders/glsl%i/fisheye.fs", GLSL_VERSION)); shaders[FX_SOBEL] = LoadShader(0, FormatText("resources/shaders/glsl%i/sobel.fs", GLSL_VERSION)); shaders[FX_BLOOM] = LoadShader(0, FormatText("resources/shaders/glsl%i/bloom.fs", GLSL_VERSION)); shaders[FX_BLUR] = LoadShader(0, FormatText("resources/shaders/glsl%i/blur.fs", GLSL_VERSION)); int currentShader = FX_GRAYSCALE; // Create a RenderTexture2D to be used for render to texture RenderTexture2D target = LoadRenderTexture(screenWidth, screenHeight); // Setup orbital camera SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateCamera(&camera); // Update camera if (IsKeyPressed(KEY_RIGHT)) currentShader++; else if (IsKeyPressed(KEY_LEFT)) currentShader--; if (currentShader >= MAX_POSTPRO_SHADERS) currentShader = 0; else if (currentShader < 0) currentShader = MAX_POSTPRO_SHADERS - 1; //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); BeginTextureMode(target); // Enable drawing to texture BeginMode3D(camera); DrawModel(model, position, 0.1f, WHITE); // Draw 3d model with texture DrawGrid(10, 1.0f); // Draw a grid EndMode3D(); EndTextureMode(); // End drawing to texture (now we have a texture available for next passes) // Render previously generated texture using selected postpro shader BeginShaderMode(shaders[currentShader]); // NOTE: Render texture must be y-flipped due to default OpenGL coordinates (left-bottom) DrawTextureRec(target.texture, (Rectangle){ 0, 0, target.texture.width, -target.texture.height }, (Vector2){ 0, 0 }, WHITE); EndShaderMode(); DrawRectangle(0, 9, 580, 30, Fade(LIGHTGRAY, 0.7f)); DrawText("(c) Church 3D model by Alberto Cano", screenWidth - 200, screenHeight - 20, 10, GRAY); DrawText("CURRENT POSTPRO SHADER:", 10, 15, 20, BLACK); DrawText(postproShaderText[currentShader], 330, 15, 20, RED); DrawText("< >", 540, 10, 30, DARKBLUE); DrawFPS(700, 15); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- // Unload all postpro shaders for (int i = 0; i < MAX_POSTPRO_SHADERS; i++) UnloadShader(shaders[i]); UnloadTexture(texture); // Unload texture UnloadModel(model); // Unload model UnloadRenderTexture(target); // Unload render texture CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/shaders/shaders_shapes_textures.c b/ExampleApplication/Examples/shaders/shaders_shapes_textures.c deleted file mode 100644 index e8c36a1..0000000 --- a/ExampleApplication/Examples/shaders/shaders_shapes_textures.c +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************************************* -* -* raylib [shaders] example - Apply a shader to some shape or texture -* -* NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support, -* OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version. -* -* NOTE: Shaders used in this example are #version 330 (OpenGL 3.3), to test this example -* on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders -* raylib comes with shaders ready for both versions, check raylib/shaders install folder -* -* This example has been created using raylib 1.7 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [shaders] example - shapes and texture shaders"); - - Texture2D fudesumi = LoadTexture("resources/fudesumi.png"); - - // NOTE: Using GLSL 330 shader version, on OpenGL ES 2.0 use GLSL 100 shader version - Shader shader = LoadShader("resources/shaders/glsl330/base.vs", - "resources/shaders/glsl330/grayscale.fs"); - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - // Start drawing with default shader - - DrawText("USING DEFAULT SHADER", 20, 40, 10, RED); - - DrawCircle(80, 120, 35, DARKBLUE); - DrawCircleGradient(80, 220, 60, GREEN, SKYBLUE); - DrawCircleLines(80, 340, 80, DARKBLUE); - - - // Activate our custom shader to be applied on next shapes/textures drawings - BeginShaderMode(shader); - - DrawText("USING CUSTOM SHADER", 190, 40, 10, RED); - - DrawRectangle(250 - 60, 90, 120, 60, RED); - DrawRectangleGradientH(250 - 90, 170, 180, 130, MAROON, GOLD); - DrawRectangleLines(250 - 40, 320, 80, 60, ORANGE); - - // Activate our default shader for next drawings - EndShaderMode(); - - DrawText("USING DEFAULT SHADER", 370, 40, 10, RED); - - DrawTriangle((Vector2){430, 80}, - (Vector2){430 - 60, 150}, - (Vector2){430 + 60, 150}, VIOLET); - - DrawTriangleLines((Vector2){430, 160}, - (Vector2){430 - 20, 230}, - (Vector2){430 + 20, 230}, DARKBLUE); - - DrawPoly((Vector2){430, 320}, 6, 80, 0, BROWN); - - // Activate our custom shader to be applied on next shapes/textures drawings - BeginShaderMode(shader); - - DrawTexture(fudesumi, 500, -30, WHITE); // Using custom shader - - // Activate our default shader for next drawings - EndShaderMode(); - - DrawText("(c) Fudesumi sprite by Eiden Marsal", 380, screenHeight - 20, 10, GRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadShader(shader); // Unload shader - UnloadTexture(fudesumi); // Unload texture - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/shaders/shaders_shapes_textures.cs b/ExampleApplication/Examples/shaders/shaders_shapes_textures.cs new file mode 100644 index 0000000..5362f33 --- /dev/null +++ b/ExampleApplication/Examples/shaders/shaders_shapes_textures.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [shaders] example - Apply a shader to some shape or texture * * NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support, * OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version. * * NOTE: Shaders used in this example are #version 330 (OpenGL 3.3), to test this example * on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders * raylib comes with shaders ready for both versions, check raylib/shaders install folder * * This example has been created using raylib 1.7 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int shaders_shapes_textures() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [shaders] example - shapes and texture shaders"); Texture2D fudesumi = LoadTexture("resources/fudesumi.png"); // NOTE: Using GLSL 330 shader version, on OpenGL ES 2.0 use GLSL 100 shader version Shader shader = LoadShader("resources/shaders/glsl330/base.vs", "resources/shaders/glsl330/grayscale.fs"); SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update your variables here //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); // Start drawing with default shader DrawText("USING DEFAULT SHADER", 20, 40, 10, RED); DrawCircle(80, 120, 35, DARKBLUE); DrawCircleGradient(80, 220, 60, GREEN, SKYBLUE); DrawCircleLines(80, 340, 80, DARKBLUE); // Activate our custom shader to be applied on next shapes/textures drawings BeginShaderMode(shader); DrawText("USING CUSTOM SHADER", 190, 40, 10, RED); DrawRectangle(250 - 60, 90, 120, 60, RED); DrawRectangleGradientH(250 - 90, 170, 180, 130, MAROON, GOLD); DrawRectangleLines(250 - 40, 320, 80, 60, ORANGE); // Activate our default shader for next drawings EndShaderMode(); DrawText("USING DEFAULT SHADER", 370, 40, 10, RED); DrawTriangle((Vector2){430, 80}, (Vector2){430 - 60, 150}, (Vector2){430 + 60, 150}, VIOLET); DrawTriangleLines((Vector2){430, 160}, (Vector2){430 - 20, 230}, (Vector2){430 + 20, 230}, DARKBLUE); DrawPoly((Vector2){430, 320}, 6, 80, 0, BROWN); // Activate our custom shader to be applied on next shapes/textures drawings BeginShaderMode(shader); DrawTexture(fudesumi, 500, -30, WHITE); // Using custom shader // Activate our default shader for next drawings EndShaderMode(); DrawText("(c) Fudesumi sprite by Eiden Marsal", 380, screenHeight - 20, 10, GRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadShader(shader); // Unload shader UnloadTexture(fudesumi); // Unload texture CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/shapes/shapes_basic_shapes.cs b/ExampleApplication/Examples/shapes/shapes_basic_shapes.cs index 08bb01d..d1cdd31 100644 --- a/ExampleApplication/Examples/shapes/shapes_basic_shapes.cs +++ b/ExampleApplication/Examples/shapes/shapes_basic_shapes.cs @@ -1,76 +1,8 @@ -/******************************************************************************************* -* -* raylib [shapes] example - Draw basic shapes 2d (rectangle, circle, line...) -* -* This example has been created using raylib 1.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -using Raylib; -using static Raylib.rl; - -public partial class Examples -{ - public static int shapes_basic_shapes() - { - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [shapes] example - basic shapes drawing"); - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("some basic shapes available on raylib", 20, 20, 20, DARKGRAY); - - DrawLine(18, 42, screenWidth - 18, 42, BLACK); - - DrawCircle(screenWidth / 4, 120, 35, DARKBLUE); - DrawCircleGradient(screenWidth / 4, 220, 60, GREEN, SKYBLUE); - DrawCircleLines(screenWidth / 4, 340, 80, DARKBLUE); - - DrawRectangle(screenWidth / 4 * 2 - 60, 100, 120, 60, RED); - DrawRectangleGradientH(screenWidth / 4 * 2 - 90, 170, 180, 130, MAROON, GOLD); - DrawRectangleLines(screenWidth / 4 * 2 - 40, 320, 80, 60, ORANGE); - - DrawTriangle(new Vector2(screenWidth, 80), - new Vector2(screenWidth / 4 * 3 - 60, 150), - new Vector2(screenWidth / 4 * 3 + 60, 150), VIOLET); - - DrawTriangleLines(new Vector2(screenWidth / 4 * 3, 160), - new Vector2(screenWidth / 4 * 3 - 20, 230), - new Vector2(screenWidth / 4 * 3 + 20, 230), DARKBLUE); - - DrawPoly(new Vector2(screenWidth / 4 * 3, 320), 6, 80, 0, BROWN); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; - } + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [shapes] example - Draw basic shapes 2d (rectangle, circle, line...) * * This example has been created using raylib 1.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int shapes_basic_shapes() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [shapes] example - basic shapes drawing"); SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update your variables here //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText("some basic shapes available on raylib", 20, 20, 20, DARKGRAY); DrawLine(18, 42, screenWidth - 18, 42, BLACK); DrawCircle(screenWidth/4, 120, 35, DARKBLUE); DrawCircleGradient(screenWidth/4, 220, 60, GREEN, SKYBLUE); DrawCircleLines(screenWidth/4, 340, 80, DARKBLUE); DrawRectangle(screenWidth/4*2 - 60, 100, 120, 60, RED); DrawRectangleGradientH(screenWidth/4*2 - 90, 170, 180, 130, MAROON, GOLD); DrawRectangleLines(screenWidth/4*2 - 40, 320, 80, 60, ORANGE); DrawTriangle((Vector2){screenWidth/4*3, 80}, (Vector2){screenWidth/4*3 - 60, 150}, (Vector2){screenWidth/4*3 + 60, 150}, VIOLET); DrawTriangleLines((Vector2){screenWidth/4*3, 160}, (Vector2){screenWidth/4*3 - 20, 230}, (Vector2){screenWidth/4*3 + 20, 230}, DARKBLUE); DrawPoly((Vector2){screenWidth/4*3, 320}, 6, 80, 0, BROWN); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } } \ No newline at end of file diff --git a/ExampleApplication/Examples/shapes/shapes_colors_palette.c b/ExampleApplication/Examples/shapes/shapes_colors_palette.c deleted file mode 100644 index dcab862..0000000 --- a/ExampleApplication/Examples/shapes/shapes_colors_palette.c +++ /dev/null @@ -1,97 +0,0 @@ -/******************************************************************************************* -* -* raylib [shapes] example - Draw raylib custom color palette -* -* This example has been created using raylib 1.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [shapes] example - raylib color palette"); - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("raylib color palette", 28, 42, 20, BLACK); - - DrawRectangle(26, 80, 100, 100, DARKGRAY); - DrawRectangle(26, 188, 100, 100, GRAY); - DrawRectangle(26, 296, 100, 100, LIGHTGRAY); - DrawRectangle(134, 80, 100, 100, MAROON); - DrawRectangle(134, 188, 100, 100, RED); - DrawRectangle(134, 296, 100, 100, PINK); - DrawRectangle(242, 80, 100, 100, ORANGE); - DrawRectangle(242, 188, 100, 100, GOLD); - DrawRectangle(242, 296, 100, 100, YELLOW); - DrawRectangle(350, 80, 100, 100, DARKGREEN); - DrawRectangle(350, 188, 100, 100, LIME); - DrawRectangle(350, 296, 100, 100, GREEN); - DrawRectangle(458, 80, 100, 100, DARKBLUE); - DrawRectangle(458, 188, 100, 100, BLUE); - DrawRectangle(458, 296, 100, 100, SKYBLUE); - DrawRectangle(566, 80, 100, 100, DARKPURPLE); - DrawRectangle(566, 188, 100, 100, VIOLET); - DrawRectangle(566, 296, 100, 100, PURPLE); - DrawRectangle(674, 80, 100, 100, DARKBROWN); - DrawRectangle(674, 188, 100, 100, BROWN); - DrawRectangle(674, 296, 100, 100, BEIGE); - - - DrawText("DARKGRAY", 65, 166, 10, BLACK); - DrawText("GRAY", 93, 274, 10, BLACK); - DrawText("LIGHTGRAY", 61, 382, 10, BLACK); - DrawText("MAROON", 186, 166, 10, BLACK); - DrawText("RED", 208, 274, 10, BLACK); - DrawText("PINK", 204, 382, 10, BLACK); - DrawText("ORANGE", 295, 166, 10, BLACK); - DrawText("GOLD", 310, 274, 10, BLACK); - DrawText("YELLOW", 300, 382, 10, BLACK); - DrawText("DARKGREEN", 382, 166, 10, BLACK); - DrawText("LIME", 420, 274, 10, BLACK); - DrawText("GREEN", 410, 382, 10, BLACK); - DrawText("DARKBLUE", 498, 166, 10, BLACK); - DrawText("BLUE", 526, 274, 10, BLACK); - DrawText("SKYBLUE", 505, 382, 10, BLACK); - DrawText("DARKPURPLE", 592, 166, 10, BLACK); - DrawText("VIOLET", 621, 274, 10, BLACK); - DrawText("PURPLE", 620, 382, 10, BLACK); - DrawText("DARKBROWN", 705, 166, 10, BLACK); - DrawText("BROWN", 733, 274, 10, BLACK); - DrawText("BEIGE", 737, 382, 10, BLACK); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/shapes/shapes_colors_palette.cs b/ExampleApplication/Examples/shapes/shapes_colors_palette.cs new file mode 100644 index 0000000..8e42dd2 --- /dev/null +++ b/ExampleApplication/Examples/shapes/shapes_colors_palette.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [shapes] example - Draw raylib custom color palette * * This example has been created using raylib 1.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int shapes_colors_palette() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [shapes] example - raylib color palette"); SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update your variables here //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText("raylib color palette", 28, 42, 20, BLACK); DrawRectangle(26, 80, 100, 100, DARKGRAY); DrawRectangle(26, 188, 100, 100, GRAY); DrawRectangle(26, 296, 100, 100, LIGHTGRAY); DrawRectangle(134, 80, 100, 100, MAROON); DrawRectangle(134, 188, 100, 100, RED); DrawRectangle(134, 296, 100, 100, PINK); DrawRectangle(242, 80, 100, 100, ORANGE); DrawRectangle(242, 188, 100, 100, GOLD); DrawRectangle(242, 296, 100, 100, YELLOW); DrawRectangle(350, 80, 100, 100, DARKGREEN); DrawRectangle(350, 188, 100, 100, LIME); DrawRectangle(350, 296, 100, 100, GREEN); DrawRectangle(458, 80, 100, 100, DARKBLUE); DrawRectangle(458, 188, 100, 100, BLUE); DrawRectangle(458, 296, 100, 100, SKYBLUE); DrawRectangle(566, 80, 100, 100, DARKPURPLE); DrawRectangle(566, 188, 100, 100, VIOLET); DrawRectangle(566, 296, 100, 100, PURPLE); DrawRectangle(674, 80, 100, 100, DARKBROWN); DrawRectangle(674, 188, 100, 100, BROWN); DrawRectangle(674, 296, 100, 100, BEIGE); DrawText("DARKGRAY", 65, 166, 10, BLACK); DrawText("GRAY", 93, 274, 10, BLACK); DrawText("LIGHTGRAY", 61, 382, 10, BLACK); DrawText("MAROON", 186, 166, 10, BLACK); DrawText("RED", 208, 274, 10, BLACK); DrawText("PINK", 204, 382, 10, BLACK); DrawText("ORANGE", 295, 166, 10, BLACK); DrawText("GOLD", 310, 274, 10, BLACK); DrawText("YELLOW", 300, 382, 10, BLACK); DrawText("DARKGREEN", 382, 166, 10, BLACK); DrawText("LIME", 420, 274, 10, BLACK); DrawText("GREEN", 410, 382, 10, BLACK); DrawText("DARKBLUE", 498, 166, 10, BLACK); DrawText("BLUE", 526, 274, 10, BLACK); DrawText("SKYBLUE", 505, 382, 10, BLACK); DrawText("DARKPURPLE", 592, 166, 10, BLACK); DrawText("VIOLET", 621, 274, 10, BLACK); DrawText("PURPLE", 620, 382, 10, BLACK); DrawText("DARKBROWN", 705, 166, 10, BLACK); DrawText("BROWN", 733, 274, 10, BLACK); DrawText("BEIGE", 737, 382, 10, BLACK); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/shapes/shapes_lines_bezier.c b/ExampleApplication/Examples/shapes/shapes_lines_bezier.c deleted file mode 100644 index f413345..0000000 --- a/ExampleApplication/Examples/shapes/shapes_lines_bezier.c +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************************* -* -* raylib [shapes] example - Cubic-bezier lines -* -* This example has been created using raylib 1.7 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2017 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - SetConfigFlags(FLAG_MSAA_4X_HINT); - InitWindow(screenWidth, screenHeight, "raylib [shapes] example - cubic-bezier lines"); - - Vector2 start = { 0, 0 }; - Vector2 end = { screenWidth, screenHeight }; - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) start = GetMousePosition(); - else if (IsMouseButtonDown(MOUSE_RIGHT_BUTTON)) end = GetMousePosition(); - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("USE MOUSE LEFT-RIGHT CLICK to DEFINE LINE START and END POINTS", 15, 20, 20, GRAY); - - DrawLineBezier(start, end, 2.0f, RED); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} diff --git a/ExampleApplication/Examples/shapes/shapes_lines_bezier.cs b/ExampleApplication/Examples/shapes/shapes_lines_bezier.cs new file mode 100644 index 0000000..d01cd68 --- /dev/null +++ b/ExampleApplication/Examples/shapes/shapes_lines_bezier.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [shapes] example - Cubic-bezier lines * * This example has been created using raylib 1.7 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2017 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int shapes_lines_bezier() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; SetConfigFlags(FLAG_MSAA_4X_HINT); InitWindow(screenWidth, screenHeight, "raylib [shapes] example - cubic-bezier lines"); Vector2 start = { 0, 0 }; Vector2 end = { screenWidth, screenHeight }; SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) start = GetMousePosition(); else if (IsMouseButtonDown(MOUSE_RIGHT_BUTTON)) end = GetMousePosition(); //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText("USE MOUSE LEFT-RIGHT CLICK to DEFINE LINE START and END POINTS", 15, 20, 20, GRAY); DrawLineBezier(start, end, 2.0f, RED); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/shapes/shapes_logo_raylib.c b/ExampleApplication/Examples/shapes/shapes_logo_raylib.c deleted file mode 100644 index be94988..0000000 --- a/ExampleApplication/Examples/shapes/shapes_logo_raylib.c +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************************* -* -* raylib [shapes] example - Draw raylib logo using basic shapes -* -* This example has been created using raylib 1.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [shapes] example - raylib logo using shapes"); - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawRectangle(screenWidth/2 - 128, screenHeight/2 - 128, 256, 256, BLACK); - DrawRectangle(screenWidth/2 - 112, screenHeight/2 - 112, 224, 224, RAYWHITE); - DrawText("raylib", screenWidth/2 - 44, screenHeight/2 + 48, 50, BLACK); - - DrawText("this is NOT a texture!", 350, 370, 10, GRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/shapes/shapes_logo_raylib.cs b/ExampleApplication/Examples/shapes/shapes_logo_raylib.cs new file mode 100644 index 0000000..a56e667 --- /dev/null +++ b/ExampleApplication/Examples/shapes/shapes_logo_raylib.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [shapes] example - Draw raylib logo using basic shapes * * This example has been created using raylib 1.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int shapes_logo_raylib() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [shapes] example - raylib logo using shapes"); SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update your variables here //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawRectangle(screenWidth/2 - 128, screenHeight/2 - 128, 256, 256, BLACK); DrawRectangle(screenWidth/2 - 112, screenHeight/2 - 112, 224, 224, RAYWHITE); DrawText("raylib", screenWidth/2 - 44, screenHeight/2 + 48, 50, BLACK); DrawText("this is NOT a texture!", 350, 370, 10, GRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/shapes/shapes_logo_raylib_anim.c b/ExampleApplication/Examples/shapes/shapes_logo_raylib_anim.c deleted file mode 100644 index c6d3796..0000000 --- a/ExampleApplication/Examples/shapes/shapes_logo_raylib_anim.c +++ /dev/null @@ -1,160 +0,0 @@ -/******************************************************************************************* -* -* raylib [shapes] example - raylib logo animation -* -* This example has been created using raylib 1.4 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [shapes] example - raylib logo animation"); - - int logoPositionX = screenWidth/2 - 128; - int logoPositionY = screenHeight/2 - 128; - - int framesCounter = 0; - int lettersCount = 0; - - int topSideRecWidth = 16; - int leftSideRecHeight = 16; - - int bottomSideRecWidth = 16; - int rightSideRecHeight = 16; - - int state = 0; // Tracking animation states (State Machine) - float alpha = 1.0f; // Useful for fading - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (state == 0) // State 0: Small box blinking - { - framesCounter++; - - if (framesCounter == 120) - { - state = 1; - framesCounter = 0; // Reset counter... will be used later... - } - } - else if (state == 1) // State 1: Top and left bars growing - { - topSideRecWidth += 4; - leftSideRecHeight += 4; - - if (topSideRecWidth == 256) state = 2; - } - else if (state == 2) // State 2: Bottom and right bars growing - { - bottomSideRecWidth += 4; - rightSideRecHeight += 4; - - if (bottomSideRecWidth == 256) state = 3; - } - else if (state == 3) // State 3: Letters appearing (one by one) - { - framesCounter++; - - if (framesCounter/12) // Every 12 frames, one more letter! - { - lettersCount++; - framesCounter = 0; - } - - if (lettersCount >= 10) // When all letters have appeared, just fade out everything - { - alpha -= 0.02f; - - if (alpha <= 0.0f) - { - alpha = 0.0f; - state = 4; - } - } - } - else if (state == 4) // State 4: Reset and Replay - { - if (IsKeyPressed('R')) - { - framesCounter = 0; - lettersCount = 0; - - topSideRecWidth = 16; - leftSideRecHeight = 16; - - bottomSideRecWidth = 16; - rightSideRecHeight = 16; - - alpha = 1.0f; - state = 0; // Return to State 0 - } - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - if (state == 0) - { - if ((framesCounter/15)%2) DrawRectangle(logoPositionX, logoPositionY, 16, 16, BLACK); - } - else if (state == 1) - { - DrawRectangle(logoPositionX, logoPositionY, topSideRecWidth, 16, BLACK); - DrawRectangle(logoPositionX, logoPositionY, 16, leftSideRecHeight, BLACK); - } - else if (state == 2) - { - DrawRectangle(logoPositionX, logoPositionY, topSideRecWidth, 16, BLACK); - DrawRectangle(logoPositionX, logoPositionY, 16, leftSideRecHeight, BLACK); - - DrawRectangle(logoPositionX + 240, logoPositionY, 16, rightSideRecHeight, BLACK); - DrawRectangle(logoPositionX, logoPositionY + 240, bottomSideRecWidth, 16, BLACK); - } - else if (state == 3) - { - DrawRectangle(logoPositionX, logoPositionY, topSideRecWidth, 16, Fade(BLACK, alpha)); - DrawRectangle(logoPositionX, logoPositionY + 16, 16, leftSideRecHeight - 32, Fade(BLACK, alpha)); - - DrawRectangle(logoPositionX + 240, logoPositionY + 16, 16, rightSideRecHeight - 32, Fade(BLACK, alpha)); - DrawRectangle(logoPositionX, logoPositionY + 240, bottomSideRecWidth, 16, Fade(BLACK, alpha)); - - DrawRectangle(screenWidth/2 - 112, screenHeight/2 - 112, 224, 224, Fade(RAYWHITE, alpha)); - - DrawText(SubText("raylib", 0, lettersCount), screenWidth/2 - 44, screenHeight/2 + 48, 50, Fade(BLACK, alpha)); - } - else if (state == 4) - { - DrawText("[R] REPLAY", 340, 200, 20, GRAY); - } - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/shapes/shapes_logo_raylib_anim.cs b/ExampleApplication/Examples/shapes/shapes_logo_raylib_anim.cs new file mode 100644 index 0000000..c7c3625 --- /dev/null +++ b/ExampleApplication/Examples/shapes/shapes_logo_raylib_anim.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [shapes] example - raylib logo animation * * This example has been created using raylib 1.4 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int shapes_logo_raylib_anim() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [shapes] example - raylib logo animation"); int logoPositionX = screenWidth/2 - 128; int logoPositionY = screenHeight/2 - 128; int framesCounter = 0; int lettersCount = 0; int topSideRecWidth = 16; int leftSideRecHeight = 16; int bottomSideRecWidth = 16; int rightSideRecHeight = 16; int state = 0; // Tracking animation states (State Machine) float alpha = 1.0f; // Useful for fading SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- if (state == 0) // State 0: Small box blinking { framesCounter++; if (framesCounter == 120) { state = 1; framesCounter = 0; // Reset counter... will be used later... } } else if (state == 1) // State 1: Top and left bars growing { topSideRecWidth += 4; leftSideRecHeight += 4; if (topSideRecWidth == 256) state = 2; } else if (state == 2) // State 2: Bottom and right bars growing { bottomSideRecWidth += 4; rightSideRecHeight += 4; if (bottomSideRecWidth == 256) state = 3; } else if (state == 3) // State 3: Letters appearing (one by one) { framesCounter++; if (framesCounter/12) // Every 12 frames, one more letter! { lettersCount++; framesCounter = 0; } if (lettersCount >= 10) // When all letters have appeared, just fade out everything { alpha -= 0.02f; if (alpha <= 0.0f) { alpha = 0.0f; state = 4; } } } else if (state == 4) // State 4: Reset and Replay { if (IsKeyPressed('R')) { framesCounter = 0; lettersCount = 0; topSideRecWidth = 16; leftSideRecHeight = 16; bottomSideRecWidth = 16; rightSideRecHeight = 16; alpha = 1.0f; state = 0; // Return to State 0 } } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); if (state == 0) { if ((framesCounter/15)%2) DrawRectangle(logoPositionX, logoPositionY, 16, 16, BLACK); } else if (state == 1) { DrawRectangle(logoPositionX, logoPositionY, topSideRecWidth, 16, BLACK); DrawRectangle(logoPositionX, logoPositionY, 16, leftSideRecHeight, BLACK); } else if (state == 2) { DrawRectangle(logoPositionX, logoPositionY, topSideRecWidth, 16, BLACK); DrawRectangle(logoPositionX, logoPositionY, 16, leftSideRecHeight, BLACK); DrawRectangle(logoPositionX + 240, logoPositionY, 16, rightSideRecHeight, BLACK); DrawRectangle(logoPositionX, logoPositionY + 240, bottomSideRecWidth, 16, BLACK); } else if (state == 3) { DrawRectangle(logoPositionX, logoPositionY, topSideRecWidth, 16, Fade(BLACK, alpha)); DrawRectangle(logoPositionX, logoPositionY + 16, 16, leftSideRecHeight - 32, Fade(BLACK, alpha)); DrawRectangle(logoPositionX + 240, logoPositionY + 16, 16, rightSideRecHeight - 32, Fade(BLACK, alpha)); DrawRectangle(logoPositionX, logoPositionY + 240, bottomSideRecWidth, 16, Fade(BLACK, alpha)); DrawRectangle(screenWidth/2 - 112, screenHeight/2 - 112, 224, 224, Fade(RAYWHITE, alpha)); DrawText(SubText("raylib", 0, lettersCount), screenWidth/2 - 44, screenHeight/2 + 48, 50, Fade(BLACK, alpha)); } else if (state == 4) { DrawText("[R] REPLAY", 340, 200, 20, GRAY); } EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_bmfont_ttf.c b/ExampleApplication/Examples/text/text_bmfont_ttf.c deleted file mode 100644 index f71f5dd..0000000 --- a/ExampleApplication/Examples/text/text_bmfont_ttf.c +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************************* -* -* raylib [text] example - BMFont and TTF Fonts loading -* -* This example has been created using raylib 1.4 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2016 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [text] example - bmfont and ttf sprite fonts loading"); - - const char msgBm[64] = "THIS IS AN AngelCode SPRITE FONT"; - const char msgTtf[64] = "THIS SPRITE FONT has been GENERATED from a TTF"; - - // NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required) - Font fontBm = LoadFont("resources/bmfont.fnt"); // BMFont (AngelCode) - Font fontTtf = LoadFont("resources/pixantiqua.ttf"); // TTF font - - Vector2 fontPosition; - - fontPosition.x = screenWidth/2 - MeasureTextEx(fontBm, msgBm, fontBm.baseSize, 0).x/2; - fontPosition.y = screenHeight/2 - fontBm.baseSize/2 - 80; - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update variables here... - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawTextEx(fontBm, msgBm, fontPosition, fontBm.baseSize, 0, MAROON); - DrawTextEx(fontTtf, msgTtf, (Vector2){ 75.0f, 240.0f }, fontTtf.baseSize*0.8f, 2, LIME); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadFont(fontBm); // AngelCode Font unloading - UnloadFont(fontTtf); // TTF Font unloading - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_bmfont_ttf.cs b/ExampleApplication/Examples/text/text_bmfont_ttf.cs new file mode 100644 index 0000000..5e2563c --- /dev/null +++ b/ExampleApplication/Examples/text/text_bmfont_ttf.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [text] example - BMFont and TTF Fonts loading * * This example has been created using raylib 1.4 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2016 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int text_bmfont_ttf() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [text] example - bmfont and ttf sprite fonts loading"); const char msgBm[64] = "THIS IS AN AngelCode SPRITE FONT"; const char msgTtf[64] = "THIS SPRITE FONT has been GENERATED from a TTF"; // NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required) Font fontBm = LoadFont("resources/bmfont.fnt"); // BMFont (AngelCode) Font fontTtf = LoadFont("resources/pixantiqua.ttf"); // TTF font Vector2 fontPosition; fontPosition.x = screenWidth/2 - MeasureTextEx(fontBm, msgBm, fontBm.baseSize, 0).x/2; fontPosition.y = screenHeight/2 - fontBm.baseSize/2 - 80; SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update variables here... //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawTextEx(fontBm, msgBm, fontPosition, fontBm.baseSize, 0, MAROON); DrawTextEx(fontTtf, msgTtf, (Vector2){ 75.0f, 240.0f }, fontTtf.baseSize*0.8f, 2, LIME); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadFont(fontBm); // AngelCode Font unloading UnloadFont(fontTtf); // TTF Font unloading CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_bmfont_unordered.c b/ExampleApplication/Examples/text/text_bmfont_unordered.c deleted file mode 100644 index a514761..0000000 --- a/ExampleApplication/Examples/text/text_bmfont_unordered.c +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************************* -* -* raylib [text] example - BMFont unordered chars loading and drawing -* -* This example has been created using raylib 1.4 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2016 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [text] example - bmfont unordered loading and drawing"); - - // NOTE: Using chars outside the [32..127] limits! - // NOTE: If a character is not found in the font, it just renders a space - const char msg[256] = "ASCII extended characters:\n¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆ\nÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæ\nçèéêëìíîïðñòóôõö÷øùúûüýþÿ"; - - // NOTE: Loaded font has an unordered list of characters (chars in the range 32..255) - Font font = LoadFont("resources/pixantiqua.fnt"); // BMFont (AngelCode) - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update variables here... - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("Font name: PixAntiqua", 40, 50, 20, GRAY); - DrawText(FormatText("Font base size: %i", font.baseSize), 40, 80, 20, GRAY); - DrawText(FormatText("Font chars number: %i", font.charsCount), 40, 110, 20, GRAY); - - DrawTextEx(font, msg, (Vector2){ 40, 180 }, font.baseSize, 0, MAROON); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadFont(font); // AngelCode Font unloading - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_bmfont_unordered.cs b/ExampleApplication/Examples/text/text_bmfont_unordered.cs new file mode 100644 index 0000000..b9649bf --- /dev/null +++ b/ExampleApplication/Examples/text/text_bmfont_unordered.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [text] example - BMFont unordered chars loading and drawing * * This example has been created using raylib 1.4 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2016 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int text_bmfont_unordered() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [text] example - bmfont unordered loading and drawing"); // NOTE: Using chars outside the [32..127] limits! // NOTE: If a character is not found in the font, it just renders a space const char msg[256] = "ASCII extended characters:\n¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆ\nÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæ\nçèéêëìíîïðñòóôõö÷øùúûüýþÿ"; // NOTE: Loaded font has an unordered list of characters (chars in the range 32..255) Font font = LoadFont("resources/pixantiqua.fnt"); // BMFont (AngelCode) SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update variables here... //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText("Font name: PixAntiqua", 40, 50, 20, GRAY); DrawText(FormatText("Font base size: %i", font.baseSize), 40, 80, 20, GRAY); DrawText(FormatText("Font chars number: %i", font.charsCount), 40, 110, 20, GRAY); DrawTextEx(font, msg, (Vector2){ 40, 180 }, font.baseSize, 0, MAROON); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadFont(font); // AngelCode Font unloading CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_font_sdf.c b/ExampleApplication/Examples/text/text_font_sdf.c deleted file mode 100644 index c23a1e2..0000000 --- a/ExampleApplication/Examples/text/text_font_sdf.c +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************************* -* -* raylib [text] example - TTF loading and usage -* -* This example has been created using raylib 1.3.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [text] example - SDF fonts"); - - // NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required) - - const char msg[50] = "Signed Distance Fields"; - - // Default font generation from TTF font - Font fontDefault = { 0 }; - fontDefault.baseSize = 16; - fontDefault.charsCount = 95; - // Parameters > font size: 16, no chars array provided (0), chars count: 95 (autogenerate chars array) - fontDefault.chars = LoadFontData("resources/AnonymousPro-Bold.ttf", 16, 0, 95, false); - // Parameters > chars count: 95, font size: 16, chars padding in image: 4 px, pack method: 0 (default) - Image atlas = GenImageFontAtlas(fontDefault.chars, 95, 16, 4, 0); - fontDefault.texture = LoadTextureFromImage(atlas); - UnloadImage(atlas); - - // SDF font generation from TTF font - // NOTE: SDF chars data is generated with LoadFontData(), it's just a bool option - Font fontSDF = { 0 }; - fontSDF.baseSize = 16; - fontSDF.charsCount = 95; - // Parameters > font size: 16, no chars array provided (0), chars count: 0 (defaults to 95) - fontSDF.chars = LoadFontData("resources/AnonymousPro-Bold.ttf", 16, 0, 0, true); - // Parameters > chars count: 95, font size: 16, chars padding in image: 0 px, pack method: 1 (Skyline algorythm) - atlas = GenImageFontAtlas(fontSDF.chars, 95, 16, 0, 1); - fontSDF.texture = LoadTextureFromImage(atlas); - UnloadImage(atlas); - - // Load SDF required shader (we use default vertex shader) - Shader shader = LoadShader(0, "resources/shaders/sdf.fs"); - SetTextureFilter(fontSDF.texture, FILTER_BILINEAR); // Required for SDF font - - Vector2 fontPosition = { 40, screenHeight/2 - 50 }; - Vector2 textSize = { 0.0f }; - float fontSize = 16.0f; - int currentFont = 0; // 0 - fontDefault, 1 - fontSDF - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - fontSize += GetMouseWheelMove()*8.0f; - - if (fontSize < 6) fontSize = 6; - - if (IsKeyDown(KEY_SPACE)) currentFont = 1; - else currentFont = 0; - - if (currentFont == 0) textSize = MeasureTextEx(fontDefault, msg, fontSize, 0); - else textSize = MeasureTextEx(fontSDF, msg, fontSize, 0); - - fontPosition.x = GetScreenWidth()/2 - textSize.x/2; - fontPosition.y = GetScreenHeight()/2 - textSize.y/2 + 80; - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - if (currentFont == 1) - { - // NOTE: SDF fonts require a custom SDf shader to compute fragment color - BeginShaderMode(shader); // Activate SDF font shader - DrawTextEx(fontSDF, msg, fontPosition, fontSize, 0, BLACK); - EndShaderMode(); // Activate our default shader for next drawings - - DrawTexture(fontSDF.texture, 10, 10, BLACK); - } - else - { - DrawTextEx(fontDefault, msg, fontPosition, fontSize, 0, BLACK); - DrawTexture(fontDefault.texture, 10, 10, BLACK); - } - - if (currentFont == 1) DrawText("SDF!", 320, 20, 80, RED); - else DrawText("default font", 315, 40, 30, GRAY); - - DrawText("FONT SIZE: 16.0", GetScreenWidth() - 240, 20, 20, DARKGRAY); - DrawText(FormatText("RENDER SIZE: %02.02f", fontSize), GetScreenWidth() - 240, 50, 20, DARKGRAY); - DrawText("Use MOUSE WHEEL to SCALE TEXT!", GetScreenWidth() - 240, 90, 10, DARKGRAY); - - DrawText("PRESS SPACE to USE SDF FONT VERSION!", 340, GetScreenHeight() - 30, 20, MAROON); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadFont(fontDefault); // Default font unloading - UnloadFont(fontSDF); // SDF font unloading - - UnloadShader(shader); // Unload SDF shader - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_font_sdf.cs b/ExampleApplication/Examples/text/text_font_sdf.cs new file mode 100644 index 0000000..ec6e2fd --- /dev/null +++ b/ExampleApplication/Examples/text/text_font_sdf.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [text] example - TTF loading and usage * * This example has been created using raylib 1.3.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int text_font_sdf() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [text] example - SDF fonts"); // NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required) const char msg[50] = "Signed Distance Fields"; // Default font generation from TTF font Font fontDefault = { 0 }; fontDefault.baseSize = 16; fontDefault.charsCount = 95; // Parameters > font size: 16, no chars array provided (0), chars count: 95 (autogenerate chars array) fontDefault.chars = LoadFontData("resources/AnonymousPro-Bold.ttf", 16, 0, 95, false); // Parameters > chars count: 95, font size: 16, chars padding in image: 4 px, pack method: 0 (default) Image atlas = GenImageFontAtlas(fontDefault.chars, 95, 16, 4, 0); fontDefault.texture = LoadTextureFromImage(atlas); UnloadImage(atlas); // SDF font generation from TTF font // NOTE: SDF chars data is generated with LoadFontData(), it's just a bool option Font fontSDF = { 0 }; fontSDF.baseSize = 16; fontSDF.charsCount = 95; // Parameters > font size: 16, no chars array provided (0), chars count: 0 (defaults to 95) fontSDF.chars = LoadFontData("resources/AnonymousPro-Bold.ttf", 16, 0, 0, true); // Parameters > chars count: 95, font size: 16, chars padding in image: 0 px, pack method: 1 (Skyline algorythm) atlas = GenImageFontAtlas(fontSDF.chars, 95, 16, 0, 1); fontSDF.texture = LoadTextureFromImage(atlas); UnloadImage(atlas); // Load SDF required shader (we use default vertex shader) Shader shader = LoadShader(0, "resources/shaders/sdf.fs"); SetTextureFilter(fontSDF.texture, FILTER_BILINEAR); // Required for SDF font Vector2 fontPosition = { 40, screenHeight/2 - 50 }; Vector2 textSize = { 0.0f }; float fontSize = 16.0f; int currentFont = 0; // 0 - fontDefault, 1 - fontSDF SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- fontSize += GetMouseWheelMove()*8.0f; if (fontSize < 6) fontSize = 6; if (IsKeyDown(KEY_SPACE)) currentFont = 1; else currentFont = 0; if (currentFont == 0) textSize = MeasureTextEx(fontDefault, msg, fontSize, 0); else textSize = MeasureTextEx(fontSDF, msg, fontSize, 0); fontPosition.x = GetScreenWidth()/2 - textSize.x/2; fontPosition.y = GetScreenHeight()/2 - textSize.y/2 + 80; //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); if (currentFont == 1) { // NOTE: SDF fonts require a custom SDf shader to compute fragment color BeginShaderMode(shader); // Activate SDF font shader DrawTextEx(fontSDF, msg, fontPosition, fontSize, 0, BLACK); EndShaderMode(); // Activate our default shader for next drawings DrawTexture(fontSDF.texture, 10, 10, BLACK); } else { DrawTextEx(fontDefault, msg, fontPosition, fontSize, 0, BLACK); DrawTexture(fontDefault.texture, 10, 10, BLACK); } if (currentFont == 1) DrawText("SDF!", 320, 20, 80, RED); else DrawText("default font", 315, 40, 30, GRAY); DrawText("FONT SIZE: 16.0", GetScreenWidth() - 240, 20, 20, DARKGRAY); DrawText(FormatText("RENDER SIZE: %02.02f", fontSize), GetScreenWidth() - 240, 50, 20, DARKGRAY); DrawText("Use MOUSE WHEEL to SCALE TEXT!", GetScreenWidth() - 240, 90, 10, DARKGRAY); DrawText("PRESS SPACE to USE SDF FONT VERSION!", 340, GetScreenHeight() - 30, 20, MAROON); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadFont(fontDefault); // Default font unloading UnloadFont(fontSDF); // SDF font unloading UnloadShader(shader); // Unload SDF shader CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_format_text.c b/ExampleApplication/Examples/text/text_format_text.c deleted file mode 100644 index ca28be7..0000000 --- a/ExampleApplication/Examples/text/text_format_text.c +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************************* -* -* raylib [text] example - Text formatting -* -* This example has been created using raylib 1.1 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [text] example - text formatting"); - - int score = 100020; - int hiscore = 200450; - int lives = 5; - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText(FormatText("Score: %08i", score), 200, 80, 20, RED); - - DrawText(FormatText("HiScore: %08i", hiscore), 200, 120, 20, GREEN); - - DrawText(FormatText("Lives: %02i", lives), 200, 160, 40, BLUE); - - DrawText(FormatText("Elapsed Time: %02.02f ms", GetFrameTime()*1000), 200, 220, 20, BLACK); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_format_text.cs b/ExampleApplication/Examples/text/text_format_text.cs new file mode 100644 index 0000000..0c6dc61 --- /dev/null +++ b/ExampleApplication/Examples/text/text_format_text.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [text] example - Text formatting * * This example has been created using raylib 1.1 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int text_format_text() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [text] example - text formatting"); int score = 100020; int hiscore = 200450; int lives = 5; SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update your variables here //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText(FormatText("Score: %08i", score), 200, 80, 20, RED); DrawText(FormatText("HiScore: %08i", hiscore), 200, 120, 20, GREEN); DrawText(FormatText("Lives: %02i", lives), 200, 160, 40, BLUE); DrawText(FormatText("Elapsed Time: %02.02f ms", GetFrameTime()*1000), 200, 220, 20, BLACK); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_input_box.c b/ExampleApplication/Examples/text/text_input_box.c deleted file mode 100644 index 5f8d1c0..0000000 --- a/ExampleApplication/Examples/text/text_input_box.c +++ /dev/null @@ -1,116 +0,0 @@ -/******************************************************************************************* -* -* raylib [text] example - Input Box -* -* This example has been created using raylib 1.7 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2017 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#define MAX_INPUT_CHARS 9 - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [text] example - input box"); - - char name[MAX_INPUT_CHARS + 1] = "\0"; // NOTE: One extra space required for line ending char '\0' - int letterCount = 0; - - Rectangle textBox = { screenWidth/2 - 100, 180, 225, 50 }; - bool mouseOnText = false; - - int framesCounter = 0; - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (CheckCollisionPointRec(GetMousePosition(), textBox)) mouseOnText = true; - else mouseOnText = false; - - if (mouseOnText) - { - int key = GetKeyPressed(); - - // NOTE: Only allow keys in range [32..125] - if ((key >= 32) && (key <= 125) && (letterCount < MAX_INPUT_CHARS)) - { - name[letterCount] = (char)key; - letterCount++; - } - - if (IsKeyPressed(KEY_BACKSPACE)) - { - letterCount--; - name[letterCount] = '\0'; - - if (letterCount < 0) letterCount = 0; - } - } - - if (mouseOnText) framesCounter++; - else framesCounter = 0; - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("PLACE MOUSE OVER INPUT BOX!", 240, 140, 20, GRAY); - - DrawRectangleRec(textBox, LIGHTGRAY); - if (mouseOnText) DrawRectangleLines(textBox.x, textBox.y, textBox.width, textBox.height, RED); - else DrawRectangleLines(textBox.x, textBox.y, textBox.width, textBox.height, DARKGRAY); - - DrawText(name, textBox.x + 5, textBox.y + 8, 40, MAROON); - - DrawText(FormatText("INPUT CHARS: %i/%i", letterCount, MAX_INPUT_CHARS), 315, 250, 20, DARKGRAY); - - if (mouseOnText) - { - if (letterCount < MAX_INPUT_CHARS) - { - // Draw blinking underscore char - if (((framesCounter/20)%2) == 0) DrawText("_", textBox.x + 8 + MeasureText(name, 40), textBox.y + 12, 40, MAROON); - } - else DrawText("Press BACKSPACE to delete chars...", 230, 300, 20, GRAY); - } - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - -// Check if any key is pressed -// NOTE: We limit keys check to keys between 32 (KEY_SPACE) and 126 -bool IsAnyKeyPressed() -{ - bool keyPressed = false; - int key = GetKeyPressed(); - - if ((key >= 32) && (key <= 126)) keyPressed = true; - - return keyPressed; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_input_box.cs b/ExampleApplication/Examples/text/text_input_box.cs new file mode 100644 index 0000000..a046b59 --- /dev/null +++ b/ExampleApplication/Examples/text/text_input_box.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [text] example - Input Box * * This example has been created using raylib 1.7 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2017 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #define MAX_INPUT_CHARS 9 public static int text_input_box() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [text] example - input box"); char name[MAX_INPUT_CHARS + 1] = "\0"; // NOTE: One extra space required for line ending char '\0' int letterCount = 0; Rectangle textBox = { screenWidth/2 - 100, 180, 225, 50 }; bool mouseOnText = false; int framesCounter = 0; SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- if (CheckCollisionPointRec(GetMousePosition(), textBox)) mouseOnText = true; else mouseOnText = false; if (mouseOnText) { int key = GetKeyPressed(); // NOTE: Only allow keys in range [32..125] if ((key >= 32) && (key <= 125) && (letterCount < MAX_INPUT_CHARS)) { name[letterCount] = (char)key; letterCount++; } if (IsKeyPressed(KEY_BACKSPACE)) { letterCount--; name[letterCount] = '\0'; if (letterCount < 0) letterCount = 0; } } if (mouseOnText) framesCounter++; else framesCounter = 0; //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText("PLACE MOUSE OVER INPUT BOX!", 240, 140, 20, GRAY); DrawRectangleRec(textBox, LIGHTGRAY); if (mouseOnText) DrawRectangleLines(textBox.x, textBox.y, textBox.width, textBox.height, RED); else DrawRectangleLines(textBox.x, textBox.y, textBox.width, textBox.height, DARKGRAY); DrawText(name, textBox.x + 5, textBox.y + 8, 40, MAROON); DrawText(FormatText("INPUT CHARS: %i/%i", letterCount, MAX_INPUT_CHARS), 315, 250, 20, DARKGRAY); if (mouseOnText) { if (letterCount < MAX_INPUT_CHARS) { // Draw blinking underscore char if (((framesCounter/20)%2) == 0) DrawText("_", textBox.x + 8 + MeasureText(name, 40), textBox.y + 12, 40, MAROON); } else DrawText("Press BACKSPACE to delete chars...", 230, 300, 20, GRAY); } EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } // Check if any key is pressed // NOTE: We limit keys check to keys between 32 (KEY_SPACE) and 126 bool IsAnyKeyPressed() { bool keyPressed = false; int key = GetKeyPressed(); if ((key >= 32) && (key <= 126)) keyPressed = true; return keyPressed; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_raylib_fonts.c b/ExampleApplication/Examples/text/text_raylib_fonts.c deleted file mode 100644 index 3c930ac..0000000 --- a/ExampleApplication/Examples/text/text_raylib_fonts.c +++ /dev/null @@ -1,103 +0,0 @@ -/******************************************************************************************* -* -* raylib [text] example - raylib font loading and usage -* -* NOTE: raylib is distributed with some free to use fonts (even for commercial pourposes!) -* To view details and credits for those fonts, check raylib license file -* -* This example has been created using raylib 1.7 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2017 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#define MAX_FONTS 8 - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [text] example - raylib fonts"); - - // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) - Font fonts[MAX_FONTS]; - - fonts[0] = LoadFont("resources/fonts/alagard.png"); - fonts[1] = LoadFont("resources/fonts/pixelplay.png"); - fonts[2] = LoadFont("resources/fonts/mecha.png"); - fonts[3] = LoadFont("resources/fonts/setback.png"); - fonts[4] = LoadFont("resources/fonts/romulus.png"); - fonts[5] = LoadFont("resources/fonts/pixantiqua.png"); - fonts[6] = LoadFont("resources/fonts/alpha_beta.png"); - fonts[7] = LoadFont("resources/fonts/jupiter_crash.png"); - - const char *messages[MAX_FONTS] = { "ALAGARD FONT designed by Hewett Tsoi", - "PIXELPLAY FONT designed by Aleksander Shevchuk", - "MECHA FONT designed by Captain Falcon", - "SETBACK FONT designed by Brian Kent (AEnigma)", - "ROMULUS FONT designed by Hewett Tsoi", - "PIXANTIQUA FONT designed by Gerhard Grossmann", - "ALPHA_BETA FONT designed by Brian Kent (AEnigma)", - "JUPITER_CRASH FONT designed by Brian Kent (AEnigma)" }; - - const int spacings[MAX_FONTS] = { 2, 4, 8, 4, 3, 4, 4, 1 }; - - Vector2 positions[MAX_FONTS]; - - for (int i = 0; i < MAX_FONTS; i++) - { - positions[i].x = screenWidth/2 - MeasureTextEx(fonts[i], messages[i], fonts[i].baseSize*2, spacings[i]).x/2; - positions[i].y = 60 + fonts[i].baseSize + 45*i; - } - - // Small Y position corrections - positions[3].y += 8; - positions[4].y += 2; - positions[7].y -= 8; - - Color colors[MAX_FONTS] = { MAROON, ORANGE, DARKGREEN, DARKBLUE, DARKPURPLE, LIME, GOLD, RED }; - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("free fonts included with raylib", 250, 20, 20, DARKGRAY); - DrawLine(220, 50, 590, 50, DARKGRAY); - - for (int i = 0; i < MAX_FONTS; i++) - { - DrawTextEx(fonts[i], messages[i], positions[i], fonts[i].baseSize*2, spacings[i], colors[i]); - } - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - - // Fonts unloading - for (int i = 0; i < MAX_FONTS; i++) UnloadFont(fonts[i]); - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_raylib_fonts.cs b/ExampleApplication/Examples/text/text_raylib_fonts.cs new file mode 100644 index 0000000..9f13233 --- /dev/null +++ b/ExampleApplication/Examples/text/text_raylib_fonts.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [text] example - raylib font loading and usage * * NOTE: raylib is distributed with some free to use fonts (even for commercial pourposes!) * To view details and credits for those fonts, check raylib license file * * This example has been created using raylib 1.7 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2017 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #define MAX_FONTS 8 public static int text_raylib_fonts() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [text] example - raylib fonts"); // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) Font fonts[MAX_FONTS]; fonts[0] = LoadFont("resources/fonts/alagard.png"); fonts[1] = LoadFont("resources/fonts/pixelplay.png"); fonts[2] = LoadFont("resources/fonts/mecha.png"); fonts[3] = LoadFont("resources/fonts/setback.png"); fonts[4] = LoadFont("resources/fonts/romulus.png"); fonts[5] = LoadFont("resources/fonts/pixantiqua.png"); fonts[6] = LoadFont("resources/fonts/alpha_beta.png"); fonts[7] = LoadFont("resources/fonts/jupiter_crash.png"); const char *messages[MAX_FONTS] = { "ALAGARD FONT designed by Hewett Tsoi", "PIXELPLAY FONT designed by Aleksander Shevchuk", "MECHA FONT designed by Captain Falcon", "SETBACK FONT designed by Brian Kent (AEnigma)", "ROMULUS FONT designed by Hewett Tsoi", "PIXANTIQUA FONT designed by Gerhard Grossmann", "ALPHA_BETA FONT designed by Brian Kent (AEnigma)", "JUPITER_CRASH FONT designed by Brian Kent (AEnigma)" }; const int spacings[MAX_FONTS] = { 2, 4, 8, 4, 3, 4, 4, 1 }; Vector2 positions[MAX_FONTS]; for (int i = 0; i < MAX_FONTS; i++) { positions[i].x = screenWidth/2 - MeasureTextEx(fonts[i], messages[i], fonts[i].baseSize*2, spacings[i]).x/2; positions[i].y = 60 + fonts[i].baseSize + 45*i; } // Small Y position corrections positions[3].y += 8; positions[4].y += 2; positions[7].y -= 8; Color colors[MAX_FONTS] = { MAROON, ORANGE, DARKGREEN, DARKBLUE, DARKPURPLE, LIME, GOLD, RED }; //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update your variables here //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText("free fonts included with raylib", 250, 20, 20, DARKGRAY); DrawLine(220, 50, 590, 50, DARKGRAY); for (int i = 0; i < MAX_FONTS; i++) { DrawTextEx(fonts[i], messages[i], positions[i], fonts[i].baseSize*2, spacings[i], colors[i]); } EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- // Fonts unloading for (int i = 0; i < MAX_FONTS; i++) UnloadFont(fonts[i]); CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_sprite_fonts.c b/ExampleApplication/Examples/text/text_sprite_fonts.c deleted file mode 100644 index 7ce2fef..0000000 --- a/ExampleApplication/Examples/text/text_sprite_fonts.c +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************************* -* -* raylib [text] example - Font loading and usage -* -* This example has been created using raylib 1.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [text] example - sprite fonts usage"); - - const char msg1[50] = "THIS IS A custom SPRITE FONT..."; - const char msg2[50] = "...and this is ANOTHER CUSTOM font..."; - const char msg3[50] = "...and a THIRD one! GREAT! :D"; - - // NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required) - Font font1 = LoadFont("resources/custom_mecha.png"); // Font loading - Font font2 = LoadFont("resources/custom_alagard.png"); // Font loading - Font font3 = LoadFont("resources/custom_jupiter_crash.png"); // Font loading - - Vector2 fontPosition1, fontPosition2, fontPosition3; - - fontPosition1.x = screenWidth/2 - MeasureTextEx(font1, msg1, font1.baseSize, -3).x/2; - fontPosition1.y = screenHeight/2 - font1.baseSize/2 - 80; - - fontPosition2.x = screenWidth/2 - MeasureTextEx(font2, msg2, font2.baseSize, -2).x/2; - fontPosition2.y = screenHeight/2 - font2.baseSize/2 - 10; - - fontPosition3.x = screenWidth/2 - MeasureTextEx(font3, msg3, font3.baseSize, 2).x/2; - fontPosition3.y = screenHeight/2 - font3.baseSize/2 + 50; - - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update variables here... - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawTextEx(font1, msg1, fontPosition1, font1.baseSize, -3, WHITE); - DrawTextEx(font2, msg2, fontPosition2, font2.baseSize, -2, WHITE); - DrawTextEx(font3, msg3, fontPosition3, font3.baseSize, 2, WHITE); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadFont(font1); // Font unloading - UnloadFont(font2); // Font unloading - UnloadFont(font3); // Font unloading - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_sprite_fonts.cs b/ExampleApplication/Examples/text/text_sprite_fonts.cs new file mode 100644 index 0000000..b130ddd --- /dev/null +++ b/ExampleApplication/Examples/text/text_sprite_fonts.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [text] example - Font loading and usage * * This example has been created using raylib 1.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int text_sprite_fonts() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [text] example - sprite fonts usage"); const char msg1[50] = "THIS IS A custom SPRITE FONT..."; const char msg2[50] = "...and this is ANOTHER CUSTOM font..."; const char msg3[50] = "...and a THIRD one! GREAT! :D"; // NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required) Font font1 = LoadFont("resources/custom_mecha.png"); // Font loading Font font2 = LoadFont("resources/custom_alagard.png"); // Font loading Font font3 = LoadFont("resources/custom_jupiter_crash.png"); // Font loading Vector2 fontPosition1, fontPosition2, fontPosition3; fontPosition1.x = screenWidth/2 - MeasureTextEx(font1, msg1, font1.baseSize, -3).x/2; fontPosition1.y = screenHeight/2 - font1.baseSize/2 - 80; fontPosition2.x = screenWidth/2 - MeasureTextEx(font2, msg2, font2.baseSize, -2).x/2; fontPosition2.y = screenHeight/2 - font2.baseSize/2 - 10; fontPosition3.x = screenWidth/2 - MeasureTextEx(font3, msg3, font3.baseSize, 2).x/2; fontPosition3.y = screenHeight/2 - font3.baseSize/2 + 50; //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update variables here... //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawTextEx(font1, msg1, fontPosition1, font1.baseSize, -3, WHITE); DrawTextEx(font2, msg2, fontPosition2, font2.baseSize, -2, WHITE); DrawTextEx(font3, msg3, fontPosition3, font3.baseSize, 2, WHITE); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadFont(font1); // Font unloading UnloadFont(font2); // Font unloading UnloadFont(font3); // Font unloading CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_ttf_loading.c b/ExampleApplication/Examples/text/text_ttf_loading.c deleted file mode 100644 index 0e964eb..0000000 --- a/ExampleApplication/Examples/text/text_ttf_loading.c +++ /dev/null @@ -1,136 +0,0 @@ -/******************************************************************************************* -* -* raylib [text] example - TTF loading and usage -* -* This example has been created using raylib 1.3.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [text] example - ttf loading"); - - const char msg[50] = "TTF Font"; - - // NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required) - - // TTF Font loading with custom generation parameters - Font font = LoadFontEx("resources/KAISG.ttf", 96, 0, 0); - - // Generate mipmap levels to use trilinear filtering - // NOTE: On 2D drawing it won't be noticeable, it looks like FILTER_BILINEAR - GenTextureMipmaps(&font.texture); - - float fontSize = font.baseSize; - Vector2 fontPosition = { 40, screenHeight/2 - 80 }; - Vector2 textSize; - - SetTextureFilter(font.texture, FILTER_POINT); - int currentFontFilter = 0; // FILTER_POINT - - // NOTE: Drag and drop support only available for desktop platforms: Windows, Linux, OSX -#if defined(PLATFORM_DESKTOP) - int count = 0; - char **droppedFiles; -#endif - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - fontSize += GetMouseWheelMove()*4.0f; - - // Choose font texture filter method - if (IsKeyPressed(KEY_ONE)) - { - SetTextureFilter(font.texture, FILTER_POINT); - currentFontFilter = 0; - } - else if (IsKeyPressed(KEY_TWO)) - { - SetTextureFilter(font.texture, FILTER_BILINEAR); - currentFontFilter = 1; - } - else if (IsKeyPressed(KEY_THREE)) - { - // NOTE: Trilinear filter won't be noticed on 2D drawing - SetTextureFilter(font.texture, FILTER_TRILINEAR); - currentFontFilter = 2; - } - - textSize = MeasureTextEx(font, msg, fontSize, 0); - - if (IsKeyDown(KEY_LEFT)) fontPosition.x -= 10; - else if (IsKeyDown(KEY_RIGHT)) fontPosition.x += 10; - -#if defined(PLATFORM_DESKTOP) - // Load a dropped TTF file dynamically (at current fontSize) - if (IsFileDropped()) - { - droppedFiles = GetDroppedFiles(&count); - - if (count == 1) // Only support one ttf file dropped - { - UnloadFont(font); - font = LoadFontEx(droppedFiles[0], fontSize, 0, 0); - ClearDroppedFiles(); - } - } -#endif - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("Use mouse wheel to change font size", 20, 20, 10, GRAY); - DrawText("Use KEY_RIGHT and KEY_LEFT to move text", 20, 40, 10, GRAY); - DrawText("Use 1, 2, 3 to change texture filter", 20, 60, 10, GRAY); - DrawText("Drop a new TTF font for dynamic loading", 20, 80, 10, DARKGRAY); - - DrawTextEx(font, msg, fontPosition, fontSize, 0, BLACK); - - // TODO: It seems texSize measurement is not accurate due to chars offsets... - //DrawRectangleLines(fontPosition.x, fontPosition.y, textSize.x, textSize.y, RED); - - DrawRectangle(0, screenHeight - 80, screenWidth, 80, LIGHTGRAY); - DrawText(FormatText("Font size: %02.02f", fontSize), 20, screenHeight - 50, 10, DARKGRAY); - DrawText(FormatText("Text size: [%02.02f, %02.02f]", textSize.x, textSize.y), 20, screenHeight - 30, 10, DARKGRAY); - DrawText("CURRENT TEXTURE FILTER:", 250, 400, 20, GRAY); - - if (currentFontFilter == 0) DrawText("POINT", 570, 400, 20, BLACK); - else if (currentFontFilter == 1) DrawText("BILINEAR", 570, 400, 20, BLACK); - else if (currentFontFilter == 2) DrawText("TRILINEAR", 570, 400, 20, BLACK); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- -#if defined(PLATFORM_DESKTOP) - ClearDroppedFiles(); // Clear internal buffers -#endif - UnloadFont(font); // Font unloading - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_ttf_loading.cs b/ExampleApplication/Examples/text/text_ttf_loading.cs new file mode 100644 index 0000000..02bb935 --- /dev/null +++ b/ExampleApplication/Examples/text/text_ttf_loading.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [text] example - TTF loading and usage * * This example has been created using raylib 1.3.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int text_ttf_loading() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [text] example - ttf loading"); const char msg[50] = "TTF Font"; // NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required) // TTF Font loading with custom generation parameters Font font = LoadFontEx("resources/KAISG.ttf", 96, 0, 0); // Generate mipmap levels to use trilinear filtering // NOTE: On 2D drawing it won't be noticeable, it looks like FILTER_BILINEAR GenTextureMipmaps(&font.texture); float fontSize = font.baseSize; Vector2 fontPosition = { 40, screenHeight/2 - 80 }; Vector2 textSize; SetTextureFilter(font.texture, FILTER_POINT); int currentFontFilter = 0; // FILTER_POINT // NOTE: Drag and drop support only available for desktop platforms: Windows, Linux, OSX #if defined(PLATFORM_DESKTOP) int count = 0; char **droppedFiles; #endif SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- fontSize += GetMouseWheelMove()*4.0f; // Choose font texture filter method if (IsKeyPressed(KEY_ONE)) { SetTextureFilter(font.texture, FILTER_POINT); currentFontFilter = 0; } else if (IsKeyPressed(KEY_TWO)) { SetTextureFilter(font.texture, FILTER_BILINEAR); currentFontFilter = 1; } else if (IsKeyPressed(KEY_THREE)) { // NOTE: Trilinear filter won't be noticed on 2D drawing SetTextureFilter(font.texture, FILTER_TRILINEAR); currentFontFilter = 2; } textSize = MeasureTextEx(font, msg, fontSize, 0); if (IsKeyDown(KEY_LEFT)) fontPosition.x -= 10; else if (IsKeyDown(KEY_RIGHT)) fontPosition.x += 10; #if defined(PLATFORM_DESKTOP) // Load a dropped TTF file dynamically (at current fontSize) if (IsFileDropped()) { droppedFiles = GetDroppedFiles(&count); if (count == 1) // Only support one ttf file dropped { UnloadFont(font); font = LoadFontEx(droppedFiles[0], fontSize, 0, 0); ClearDroppedFiles(); } } #endif //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText("Use mouse wheel to change font size", 20, 20, 10, GRAY); DrawText("Use KEY_RIGHT and KEY_LEFT to move text", 20, 40, 10, GRAY); DrawText("Use 1, 2, 3 to change texture filter", 20, 60, 10, GRAY); DrawText("Drop a new TTF font for dynamic loading", 20, 80, 10, DARKGRAY); DrawTextEx(font, msg, fontPosition, fontSize, 0, BLACK); // TODO: It seems texSize measurement is not accurate due to chars offsets... //DrawRectangleLines(fontPosition.x, fontPosition.y, textSize.x, textSize.y, RED); DrawRectangle(0, screenHeight - 80, screenWidth, 80, LIGHTGRAY); DrawText(FormatText("Font size: %02.02f", fontSize), 20, screenHeight - 50, 10, DARKGRAY); DrawText(FormatText("Text size: [%02.02f, %02.02f]", textSize.x, textSize.y), 20, screenHeight - 30, 10, DARKGRAY); DrawText("CURRENT TEXTURE FILTER:", 250, 400, 20, GRAY); if (currentFontFilter == 0) DrawText("POINT", 570, 400, 20, BLACK); else if (currentFontFilter == 1) DrawText("BILINEAR", 570, 400, 20, BLACK); else if (currentFontFilter == 2) DrawText("TRILINEAR", 570, 400, 20, BLACK); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- #if defined(PLATFORM_DESKTOP) ClearDroppedFiles(); // Clear internal buffers #endif UnloadFont(font); // Font unloading CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_writing_anim.c b/ExampleApplication/Examples/text/text_writing_anim.c deleted file mode 100644 index 5563b56..0000000 --- a/ExampleApplication/Examples/text/text_writing_anim.c +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************************* -* -* raylib [text] example - Text Writing Animation -* -* This example has been created using raylib 1.4 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2016 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [text] example - text writing anim"); - - const char message[128] = "This sample illustrates a text writing\nanimation effect! Check it out! ;)"; - - int framesCounter = 0; - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (IsKeyDown(KEY_SPACE)) framesCounter += 8; - else framesCounter++; - - if (IsKeyPressed(KEY_ENTER)) framesCounter = 0; - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText(SubText(message, 0, framesCounter/10), 210, 160, 20, MAROON); - - DrawText("PRESS [ENTER] to RESTART!", 240, 260, 20, LIGHTGRAY); - DrawText("PRESS [SPACE] to SPEED UP!", 239, 300, 20, LIGHTGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/text/text_writing_anim.cs b/ExampleApplication/Examples/text/text_writing_anim.cs new file mode 100644 index 0000000..62bc89b --- /dev/null +++ b/ExampleApplication/Examples/text/text_writing_anim.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [text] example - Text Writing Animation * * This example has been created using raylib 1.4 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2016 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int text_writing_anim() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [text] example - text writing anim"); const char message[128] = "This sample illustrates a text writing\nanimation effect! Check it out! ;)"; int framesCounter = 0; SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- if (IsKeyDown(KEY_SPACE)) framesCounter += 8; else framesCounter++; if (IsKeyPressed(KEY_ENTER)) framesCounter = 0; //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText(SubText(message, 0, framesCounter/10), 210, 160, 20, MAROON); DrawText("PRESS [ENTER] to RESTART!", 240, 260, 20, LIGHTGRAY); DrawText("PRESS [SPACE] to SPEED UP!", 239, 300, 20, LIGHTGRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_image_drawing.cs b/ExampleApplication/Examples/textures/textures_image_drawing.cs index d53ed8d..ce8c8b4 100644 --- a/ExampleApplication/Examples/textures/textures_image_drawing.cs +++ b/ExampleApplication/Examples/textures/textures_image_drawing.cs @@ -1,90 +1,8 @@ -/******************************************************************************************* -* -* raylib [textures] example - Image loading and drawing on it -* -* NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM) -* -* This example has been created using raylib 1.4 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2016 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -using Raylib; -using static Raylib.rl; - -public partial class Examples -{ - public static int textures_image_drawing() - { - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [textures] example - image drawing"); - - // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) - - Image cat = LoadImage("resources/cat.png"); // Load image in CPU memory (RAM) - ImageCrop(cat, new Rectangle(100, 10, 280, 380)); // Crop an image piece - ImageFlipHorizontal(ref cat); // Flip cropped image horizontally - ImageResize(ref cat, 150, 200); // Resize flipped-cropped image - - Image parrots = LoadImage("resources/parrots.png"); // Load image in CPU memory (RAM) - - // Draw one image over the other with a scaling of 1.5f - ImageDraw(parrots, cat, new Rectangle(0, 0, cat.width, cat.height), new Rectangle(30, 40, cat.width * 1.5f, cat.height * 1.5f)); - ImageCrop(parrots, new Rectangle(0, 50, parrots.width, parrots.height - 100)); // Crop resulting image - - UnloadImage(cat); // Unload image from RAM - - // Load custom font for frawing on image - Font font = LoadFont("resources/custom_jupiter_crash.png"); - - // Draw over image using custom font - ImageDrawTextEx(parrots, new Vector2(300, 230), font, "PARROTS CAT", font.baseSize, -2, WHITE); - - UnloadFont(font); // Unload custom spritefont (already drawn used on image) - - Texture2D texture = LoadTextureFromImage(parrots); // Image converted to texture, uploaded to GPU memory (VRAM) - UnloadImage(parrots); // Once image has been converted to texture and uploaded to VRAM, it can be unloaded from RAM - - SetTargetFPS(60); - //--------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawTexture(texture, screenWidth / 2 - texture.width / 2, screenHeight / 2 - texture.height / 2 - 40, WHITE); - DrawRectangleLines(screenWidth / 2 - texture.width / 2, screenHeight / 2 - texture.height / 2 - 40, texture.width, texture.height, DARKGRAY); - - DrawText("We are drawing only one texture from various images composed!", 240, 350, 10, DARKGRAY); - DrawText("Source images have been cropped, scaled, flipped and copied one over the other.", 190, 370, 10, DARKGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(texture); // Texture unloading - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; - } + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [textures] example - Image loading and drawing on it * * NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM) * * This example has been created using raylib 1.4 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2016 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int textures_image_drawing() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [textures] example - image drawing"); // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) Image cat = LoadImage("resources/cat.png"); // Load image in CPU memory (RAM) ImageCrop(&cat, (Rectangle){ 100, 10, 280, 380 }); // Crop an image piece ImageFlipHorizontal(&cat); // Flip cropped image horizontally ImageResize(&cat, 150, 200); // Resize flipped-cropped image Image parrots = LoadImage("resources/parrots.png"); // Load image in CPU memory (RAM) // Draw one image over the other with a scaling of 1.5f ImageDraw(&parrots, cat, (Rectangle){ 0, 0, cat.width, cat.height }, (Rectangle){ 30, 40, cat.width*1.5f, cat.height*1.5f }); ImageCrop(&parrots, (Rectangle){ 0, 50, parrots.width, parrots.height - 100 }); // Crop resulting image UnloadImage(cat); // Unload image from RAM // Load custom font for frawing on image Font font = LoadFont("resources/custom_jupiter_crash.png"); // Draw over image using custom font ImageDrawTextEx(&parrots, (Vector2){ 300, 230 }, font, "PARROTS & CAT", font.baseSize, -2, WHITE); UnloadFont(font); // Unload custom spritefont (already drawn used on image) Texture2D texture = LoadTextureFromImage(parrots); // Image converted to texture, uploaded to GPU memory (VRAM) UnloadImage(parrots); // Once image has been converted to texture and uploaded to VRAM, it can be unloaded from RAM SetTargetFPS(60); //--------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update your variables here //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawTexture(texture, screenWidth/2 - texture.width/2, screenHeight/2 - texture.height/2 - 40, WHITE); DrawRectangleLines(screenWidth/2 - texture.width/2, screenHeight/2 - texture.height/2 - 40, texture.width, texture.height, DARKGRAY); DrawText("We are drawing only one texture from various images composed!", 240, 350, 10, DARKGRAY); DrawText("Source images have been cropped, scaled, flipped and copied one over the other.", 190, 370, 10, DARKGRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadTexture(texture); // Texture unloading CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } } \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_image_generation.c b/ExampleApplication/Examples/textures/textures_image_generation.c deleted file mode 100644 index b9608c8..0000000 --- a/ExampleApplication/Examples/textures/textures_image_generation.c +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************************* -* -* raylib [textures] example - Procedural images generation -* -* This example has been created using raylib 1.8 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2O17 Wilhem Barbier (@nounoursheureux) -* -********************************************************************************************/ - -#include "raylib.h" - -#define NUM_TEXTURES 7 // Currently we have 7 generation algorithms - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [textures] example - procedural images generation"); - - Image verticalGradient = GenImageGradientV(screenWidth, screenHeight, RED, BLUE); - Image horizontalGradient = GenImageGradientH(screenWidth, screenHeight, RED, BLUE); - Image radialGradient = GenImageGradientRadial(screenWidth, screenHeight, 0.0f, WHITE, BLACK); - Image checked = GenImageChecked(screenWidth, screenHeight, 32, 32, RED, BLUE); - Image whiteNoise = GenImageWhiteNoise(screenWidth, screenHeight, 0.5f); - Image perlinNoise = GenImagePerlinNoise(screenWidth, screenHeight, 50, 50, 4.0f); - Image cellular = GenImageCellular(screenWidth, screenHeight, 32); - - Texture2D textures[NUM_TEXTURES]; - textures[0] = LoadTextureFromImage(verticalGradient); - textures[1] = LoadTextureFromImage(horizontalGradient); - textures[2] = LoadTextureFromImage(radialGradient); - textures[3] = LoadTextureFromImage(checked); - textures[4] = LoadTextureFromImage(whiteNoise); - textures[5] = LoadTextureFromImage(perlinNoise); - textures[6] = LoadTextureFromImage(cellular); - - // Unload image data (CPU RAM) - UnloadImage(verticalGradient); - UnloadImage(horizontalGradient); - UnloadImage(radialGradient); - UnloadImage(checked); - UnloadImage(whiteNoise); - UnloadImage(perlinNoise); - UnloadImage(cellular); - - int currentTexture = 0; - - SetTargetFPS(60); - //--------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) - { - // Update - //---------------------------------------------------------------------------------- - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) || IsKeyPressed(KEY_RIGHT)) - { - currentTexture = (currentTexture + 1)%NUM_TEXTURES; // Cycle between the textures - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawTexture(textures[currentTexture], 0, 0, WHITE); - - DrawRectangle(30, 400, 325, 30, Fade(SKYBLUE, 0.5f)); - DrawRectangleLines(30, 400, 325, 30, Fade(WHITE, 0.5f)); - DrawText("MOUSE LEFT BUTTON to CYCLE PROCEDURAL TEXTURES", 40, 410, 10, WHITE); - - switch(currentTexture) - { - case 0: DrawText("VERTICAL GRADIENT", 560, 10, 20, RAYWHITE); break; - case 1: DrawText("HORIZONTAL GRADIENT", 540, 10, 20, RAYWHITE); break; - case 2: DrawText("RADIAL GRADIENT", 580, 10, 20, LIGHTGRAY); break; - case 3: DrawText("CHECKED", 680, 10, 20, RAYWHITE); break; - case 4: DrawText("WHITE NOISE", 640, 10, 20, RED); break; - case 5: DrawText("PERLIN NOISE", 630, 10, 20, RAYWHITE); break; - case 6: DrawText("CELLULAR", 670, 10, 20, RAYWHITE); break; - default: break; - } - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - - // Unload textures data (GPU VRAM) - for (int i = 0; i < NUM_TEXTURES; i++) UnloadTexture(textures[i]); - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} diff --git a/ExampleApplication/Examples/textures/textures_image_generation.cs b/ExampleApplication/Examples/textures/textures_image_generation.cs new file mode 100644 index 0000000..972a2a1 --- /dev/null +++ b/ExampleApplication/Examples/textures/textures_image_generation.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [textures] example - Procedural images generation * * This example has been created using raylib 1.8 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2O17 Wilhem Barbier (@nounoursheureux) * ********************************************************************************************/ #define NUM_TEXTURES 7 // Currently we have 7 generation algorithms public static int textures_image_generation() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [textures] example - procedural images generation"); Image verticalGradient = GenImageGradientV(screenWidth, screenHeight, RED, BLUE); Image horizontalGradient = GenImageGradientH(screenWidth, screenHeight, RED, BLUE); Image radialGradient = GenImageGradientRadial(screenWidth, screenHeight, 0.0f, WHITE, BLACK); Image checked = GenImageChecked(screenWidth, screenHeight, 32, 32, RED, BLUE); Image whiteNoise = GenImageWhiteNoise(screenWidth, screenHeight, 0.5f); Image perlinNoise = GenImagePerlinNoise(screenWidth, screenHeight, 50, 50, 4.0f); Image cellular = GenImageCellular(screenWidth, screenHeight, 32); Texture2D textures[NUM_TEXTURES]; textures[0] = LoadTextureFromImage(verticalGradient); textures[1] = LoadTextureFromImage(horizontalGradient); textures[2] = LoadTextureFromImage(radialGradient); textures[3] = LoadTextureFromImage(checked); textures[4] = LoadTextureFromImage(whiteNoise); textures[5] = LoadTextureFromImage(perlinNoise); textures[6] = LoadTextureFromImage(cellular); // Unload image data (CPU RAM) UnloadImage(verticalGradient); UnloadImage(horizontalGradient); UnloadImage(radialGradient); UnloadImage(checked); UnloadImage(whiteNoise); UnloadImage(perlinNoise); UnloadImage(cellular); int currentTexture = 0; SetTargetFPS(60); //--------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) { // Update //---------------------------------------------------------------------------------- if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) || IsKeyPressed(KEY_RIGHT)) { currentTexture = (currentTexture + 1)%NUM_TEXTURES; // Cycle between the textures } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawTexture(textures[currentTexture], 0, 0, WHITE); DrawRectangle(30, 400, 325, 30, Fade(SKYBLUE, 0.5f)); DrawRectangleLines(30, 400, 325, 30, Fade(WHITE, 0.5f)); DrawText("MOUSE LEFT BUTTON to CYCLE PROCEDURAL TEXTURES", 40, 410, 10, WHITE); switch(currentTexture) { case 0: DrawText("VERTICAL GRADIENT", 560, 10, 20, RAYWHITE); break; case 1: DrawText("HORIZONTAL GRADIENT", 540, 10, 20, RAYWHITE); break; case 2: DrawText("RADIAL GRADIENT", 580, 10, 20, LIGHTGRAY); break; case 3: DrawText("CHECKED", 680, 10, 20, RAYWHITE); break; case 4: DrawText("WHITE NOISE", 640, 10, 20, RED); break; case 5: DrawText("PERLIN NOISE", 630, 10, 20, RAYWHITE); break; case 6: DrawText("CELLULAR", 670, 10, 20, RAYWHITE); break; default: break; } EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- // Unload textures data (GPU VRAM) for (int i = 0; i < NUM_TEXTURES; i++) UnloadTexture(textures[i]); CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_image_loading.c b/ExampleApplication/Examples/textures/textures_image_loading.c deleted file mode 100644 index 54c7358..0000000 --- a/ExampleApplication/Examples/textures/textures_image_loading.c +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************************* -* -* raylib [textures] example - Image loading and texture creation -* -* NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM) -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [textures] example - image loading"); - - // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) - - Image image = LoadImage("resources/raylib_logo.png"); // Loaded in CPU memory (RAM) - Texture2D texture = LoadTextureFromImage(image); // Image converted to texture, GPU memory (VRAM) - - UnloadImage(image); // Once image has been converted to texture and uploaded to VRAM, it can be unloaded from RAM - //--------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawTexture(texture, screenWidth/2 - texture.width/2, screenHeight/2 - texture.height/2, WHITE); - - DrawText("this IS a texture loaded from an image!", 300, 370, 10, GRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(texture); // Texture unloading - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_image_loading.cs b/ExampleApplication/Examples/textures/textures_image_loading.cs new file mode 100644 index 0000000..ff53071 --- /dev/null +++ b/ExampleApplication/Examples/textures/textures_image_loading.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [textures] example - Image loading and texture creation * * NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM) * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int textures_image_loading() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [textures] example - image loading"); // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) Image image = LoadImage("resources/raylib_logo.png"); // Loaded in CPU memory (RAM) Texture2D texture = LoadTextureFromImage(image); // Image converted to texture, GPU memory (VRAM) UnloadImage(image); // Once image has been converted to texture and uploaded to VRAM, it can be unloaded from RAM //--------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update your variables here //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawTexture(texture, screenWidth/2 - texture.width/2, screenHeight/2 - texture.height/2, WHITE); DrawText("this IS a texture loaded from an image!", 300, 370, 10, GRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadTexture(texture); // Texture unloading CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_image_processing.c b/ExampleApplication/Examples/textures/textures_image_processing.c deleted file mode 100644 index 427faa6..0000000 --- a/ExampleApplication/Examples/textures/textures_image_processing.c +++ /dev/null @@ -1,145 +0,0 @@ -/******************************************************************************************* -* -* raylib [textures] example - Image processing -* -* NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM) -* -* This example has been created using raylib 1.4 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2016 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#include // Required for: free() - -#define NUM_PROCESSES 8 - -typedef enum { - NONE = 0, - COLOR_GRAYSCALE, - COLOR_TINT, - COLOR_INVERT, - COLOR_CONTRAST, - COLOR_BRIGHTNESS, - FLIP_VERTICAL, - FLIP_HORIZONTAL -} ImageProcess; - -static const char *processText[] = { - "NO PROCESSING", - "COLOR GRAYSCALE", - "COLOR TINT", - "COLOR INVERT", - "COLOR CONTRAST", - "COLOR BRIGHTNESS", - "FLIP VERTICAL", - "FLIP HORIZONTAL" -}; - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [textures] example - image processing"); - - // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) - - Image image = LoadImage("resources/parrots.png"); // Loaded in CPU memory (RAM) - ImageFormat(&image, UNCOMPRESSED_R8G8B8A8); // Format image to RGBA 32bit (required for texture update) <-- ISSUE - Texture2D texture = LoadTextureFromImage(image); // Image converted to texture, GPU memory (VRAM) - - int currentProcess = NONE; - bool textureReload = false; - - Rectangle selectRecs[NUM_PROCESSES]; - - for (int i = 0; i < NUM_PROCESSES; i++) selectRecs[i] = (Rectangle){ 40, 50 + 32*i, 150, 30 }; - - SetTargetFPS(60); - //--------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (IsKeyPressed(KEY_DOWN)) - { - currentProcess++; - if (currentProcess > 7) currentProcess = 0; - textureReload = true; - } - else if (IsKeyPressed(KEY_UP)) - { - currentProcess--; - if (currentProcess < 0) currentProcess = 7; - textureReload = true; - } - - if (textureReload) - { - UnloadImage(image); // Unload current image data - image = LoadImage("resources/parrots.png"); // Re-load image data - - // NOTE: Image processing is a costly CPU process to be done every frame, - // If image processing is required in a frame-basis, it should be done - // with a texture and by shaders - switch (currentProcess) - { - case COLOR_GRAYSCALE: ImageColorGrayscale(&image); break; - case COLOR_TINT: ImageColorTint(&image, GREEN); break; - case COLOR_INVERT: ImageColorInvert(&image); break; - case COLOR_CONTRAST: ImageColorContrast(&image, -40); break; - case COLOR_BRIGHTNESS: ImageColorBrightness(&image, -80); break; - case FLIP_VERTICAL: ImageFlipVertical(&image); break; - case FLIP_HORIZONTAL: ImageFlipHorizontal(&image); break; - default: break; - } - - Color *pixels = GetImageData(image); // Get pixel data from image (RGBA 32bit) - UpdateTexture(texture, pixels); // Update texture with new image data - free(pixels); // Unload pixels data from RAM - - textureReload = false; - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("IMAGE PROCESSING:", 40, 30, 10, DARKGRAY); - - // Draw rectangles - for (int i = 0; i < NUM_PROCESSES; i++) - { - DrawRectangleRec(selectRecs[i], (i == currentProcess) ? SKYBLUE : LIGHTGRAY); - DrawRectangleLines(selectRecs[i].x, selectRecs[i].y, selectRecs[i].width, selectRecs[i].height, (i == currentProcess) ? BLUE : GRAY); - DrawText(processText[i], selectRecs[i].x + selectRecs[i].width/2 - MeasureText(processText[i], 10)/2, selectRecs[i].y + 11, 10, (i == currentProcess) ? DARKBLUE : DARKGRAY); - } - - DrawTexture(texture, screenWidth - texture.width - 60, screenHeight/2 - texture.height/2, WHITE); - DrawRectangleLines(screenWidth - texture.width - 60, screenHeight/2 - texture.height/2, texture.width, texture.height, BLACK); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(texture); // Unload texture from VRAM - UnloadImage(image); // Unload image from RAM - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_image_processing.cs b/ExampleApplication/Examples/textures/textures_image_processing.cs new file mode 100644 index 0000000..62dfd16 --- /dev/null +++ b/ExampleApplication/Examples/textures/textures_image_processing.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [textures] example - Image processing * * NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM) * * This example has been created using raylib 1.4 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2016 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #include // Required for: free() #define NUM_PROCESSES 8 typedef enum { NONE = 0, COLOR_GRAYSCALE, COLOR_TINT, COLOR_INVERT, COLOR_CONTRAST, COLOR_BRIGHTNESS, FLIP_VERTICAL, FLIP_HORIZONTAL } ImageProcess; static const char *processText[] = { "NO PROCESSING", "COLOR GRAYSCALE", "COLOR TINT", "COLOR INVERT", "COLOR CONTRAST", "COLOR BRIGHTNESS", "FLIP VERTICAL", "FLIP HORIZONTAL" }; public static int textures_image_processing() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [textures] example - image processing"); // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) Image image = LoadImage("resources/parrots.png"); // Loaded in CPU memory (RAM) ImageFormat(&image, UNCOMPRESSED_R8G8B8A8); // Format image to RGBA 32bit (required for texture update) <-- ISSUE Texture2D texture = LoadTextureFromImage(image); // Image converted to texture, GPU memory (VRAM) int currentProcess = NONE; bool textureReload = false; Rectangle selectRecs[NUM_PROCESSES]; for (int i = 0; i < NUM_PROCESSES; i++) selectRecs[i] = (Rectangle){ 40, 50 + 32*i, 150, 30 }; SetTargetFPS(60); //--------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- if (IsKeyPressed(KEY_DOWN)) { currentProcess++; if (currentProcess > 7) currentProcess = 0; textureReload = true; } else if (IsKeyPressed(KEY_UP)) { currentProcess--; if (currentProcess < 0) currentProcess = 7; textureReload = true; } if (textureReload) { UnloadImage(image); // Unload current image data image = LoadImage("resources/parrots.png"); // Re-load image data // NOTE: Image processing is a costly CPU process to be done every frame, // If image processing is required in a frame-basis, it should be done // with a texture and by shaders switch (currentProcess) { case COLOR_GRAYSCALE: ImageColorGrayscale(&image); break; case COLOR_TINT: ImageColorTint(&image, GREEN); break; case COLOR_INVERT: ImageColorInvert(&image); break; case COLOR_CONTRAST: ImageColorContrast(&image, -40); break; case COLOR_BRIGHTNESS: ImageColorBrightness(&image, -80); break; case FLIP_VERTICAL: ImageFlipVertical(&image); break; case FLIP_HORIZONTAL: ImageFlipHorizontal(&image); break; default: break; } Color *pixels = GetImageData(image); // Get pixel data from image (RGBA 32bit) UpdateTexture(texture, pixels); // Update texture with new image data free(pixels); // Unload pixels data from RAM textureReload = false; } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawText("IMAGE PROCESSING:", 40, 30, 10, DARKGRAY); // Draw rectangles for (int i = 0; i < NUM_PROCESSES; i++) { DrawRectangleRec(selectRecs[i], (i == currentProcess) ? SKYBLUE : LIGHTGRAY); DrawRectangleLines(selectRecs[i].x, selectRecs[i].y, selectRecs[i].width, selectRecs[i].height, (i == currentProcess) ? BLUE : GRAY); DrawText(processText[i], selectRecs[i].x + selectRecs[i].width/2 - MeasureText(processText[i], 10)/2, selectRecs[i].y + 11, 10, (i == currentProcess) ? DARKBLUE : DARKGRAY); } DrawTexture(texture, screenWidth - texture.width - 60, screenHeight/2 - texture.height/2, WHITE); DrawRectangleLines(screenWidth - texture.width - 60, screenHeight/2 - texture.height/2, texture.width, texture.height, BLACK); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadTexture(texture); // Unload texture from VRAM UnloadImage(image); // Unload image from RAM CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_image_text.c b/ExampleApplication/Examples/textures/textures_image_text.c deleted file mode 100644 index 78d25c1..0000000 --- a/ExampleApplication/Examples/textures/textures_image_text.c +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************************* -* -* raylib [texture] example - Image text drawing using TTF generated spritefont -* -* This example has been created using raylib 1.8 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2017 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [texture] example - image text drawing"); - - // TTF Font loading with custom generation parameters - Font font = LoadFontEx("resources/KAISG.ttf", 64, 95, 0); - - Image parrots = LoadImage("resources/parrots.png"); // Load image in CPU memory (RAM) - - // Draw over image using custom font - ImageDrawTextEx(&parrots, (Vector2){ 20, 20 }, font, "[Parrots font drawing]", font.baseSize, 0, WHITE); - - Texture2D texture = LoadTextureFromImage(parrots); // Image converted to texture, uploaded to GPU memory (VRAM) - UnloadImage(parrots); // Once image has been converted to texture and uploaded to VRAM, it can be unloaded from RAM - - Vector2 position = { screenWidth/2 - texture.width/2, screenHeight/2 - texture.height/2 - 20 }; - - bool showFont = false; - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (IsKeyDown(KEY_SPACE)) showFont = true; - else showFont = false; - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - if (!showFont) - { - // Draw texture with text already drawn inside - DrawTextureV(texture, position, WHITE); - - // Draw text directly using sprite font - DrawTextEx(font, "[Parrots font drawing]", (Vector2){ position.x + 20, - position.y + 20 + 280 }, font.baseSize, 0, WHITE); - } - else DrawTexture(font.texture, screenWidth/2 - font.texture.width/2, 50, BLACK); - - DrawText("PRESS SPACE to SEE USED SPRITEFONT ", 290, 420, 10, DARKGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(texture); // Texture unloading - - UnloadFont(font); // Unload custom spritefont - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_image_text.cs b/ExampleApplication/Examples/textures/textures_image_text.cs new file mode 100644 index 0000000..0398618 --- /dev/null +++ b/ExampleApplication/Examples/textures/textures_image_text.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [texture] example - Image text drawing using TTF generated spritefont * * This example has been created using raylib 1.8 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2017 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int textures_image_text() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [texture] example - image text drawing"); // TTF Font loading with custom generation parameters Font font = LoadFontEx("resources/KAISG.ttf", 64, 95, 0); Image parrots = LoadImage("resources/parrots.png"); // Load image in CPU memory (RAM) // Draw over image using custom font ImageDrawTextEx(&parrots, (Vector2){ 20, 20 }, font, "[Parrots font drawing]", font.baseSize, 0, WHITE); Texture2D texture = LoadTextureFromImage(parrots); // Image converted to texture, uploaded to GPU memory (VRAM) UnloadImage(parrots); // Once image has been converted to texture and uploaded to VRAM, it can be unloaded from RAM Vector2 position = { screenWidth/2 - texture.width/2, screenHeight/2 - texture.height/2 - 20 }; bool showFont = false; SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- if (IsKeyDown(KEY_SPACE)) showFont = true; else showFont = false; //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); if (!showFont) { // Draw texture with text already drawn inside DrawTextureV(texture, position, WHITE); // Draw text directly using sprite font DrawTextEx(font, "[Parrots font drawing]", (Vector2){ position.x + 20, position.y + 20 + 280 }, font.baseSize, 0, WHITE); } else DrawTexture(font.texture, screenWidth/2 - font.texture.width/2, 50, BLACK); DrawText("PRESS SPACE to SEE USED SPRITEFONT ", 290, 420, 10, DARKGRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadTexture(texture); // Texture unloading UnloadFont(font); // Unload custom spritefont CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_logo_raylib.c b/ExampleApplication/Examples/textures/textures_logo_raylib.c deleted file mode 100644 index f2f9312..0000000 --- a/ExampleApplication/Examples/textures/textures_logo_raylib.c +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************************* -* -* raylib [textures] example - Texture loading and drawing -* -* This example has been created using raylib 1.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture loading and drawing"); - - // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) - Texture2D texture = LoadTexture("resources/raylib_logo.png"); // Texture loading - //--------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawTexture(texture, screenWidth/2 - texture.width/2, screenHeight/2 - texture.height/2, WHITE); - - DrawText("this IS a texture!", 360, 370, 10, GRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(texture); // Texture unloading - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_logo_raylib.cs b/ExampleApplication/Examples/textures/textures_logo_raylib.cs new file mode 100644 index 0000000..01658e0 --- /dev/null +++ b/ExampleApplication/Examples/textures/textures_logo_raylib.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [textures] example - Texture loading and drawing * * This example has been created using raylib 1.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int textures_logo_raylib() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture loading and drawing"); // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) Texture2D texture = LoadTexture("resources/raylib_logo.png"); // Texture loading //--------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update your variables here //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawTexture(texture, screenWidth/2 - texture.width/2, screenHeight/2 - texture.height/2, WHITE); DrawText("this IS a texture!", 360, 370, 10, GRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadTexture(texture); // Texture unloading CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_particles_blending.c b/ExampleApplication/Examples/textures/textures_particles_blending.c deleted file mode 100644 index 842ac77..0000000 --- a/ExampleApplication/Examples/textures/textures_particles_blending.c +++ /dev/null @@ -1,135 +0,0 @@ -/******************************************************************************************* -* -* raylib example - particles blending -* -* This example has been created using raylib 1.7 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2017 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#define MAX_PARTICLES 200 - -// Particle structure with basic data -typedef struct { - Vector2 position; - Color color; - float alpha; - float size; - float rotation; - bool active; // NOTE: Use it to activate/deactive particle -} Particle; - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [textures] example - particles blending"); - - // Particles pool, reuse them! - Particle mouseTail[MAX_PARTICLES]; - - // Initialize particles - for (int i = 0; i < MAX_PARTICLES; i++) - { - mouseTail[i].position = (Vector2){ 0, 0 }; - mouseTail[i].color = (Color){ GetRandomValue(0, 255), GetRandomValue(0, 255), GetRandomValue(0, 255), 255 }; - mouseTail[i].alpha = 1.0f; - mouseTail[i].size = (float)GetRandomValue(1, 30)/20.0f; - mouseTail[i].rotation = GetRandomValue(0, 360); - mouseTail[i].active = false; - } - - float gravity = 3.0f; - - Texture2D smoke = LoadTexture("resources/smoke.png"); - - int blending = BLEND_ALPHA; - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - - // Activate one particle every frame and Update active particles - // NOTE: Particles initial position should be mouse position when activated - // NOTE: Particles fall down with gravity and rotation... and disappear after 2 seconds (alpha = 0) - // NOTE: When a particle disappears, active = false and it can be reused. - for (int i = 0; i < MAX_PARTICLES; i++) - { - if (!mouseTail[i].active) - { - mouseTail[i].active = true; - mouseTail[i].alpha = 1.0f; - mouseTail[i].position = GetMousePosition(); - i = MAX_PARTICLES; - } - } - - for (int i = 0; i < MAX_PARTICLES; i++) - { - if (mouseTail[i].active) - { - mouseTail[i].position.y += gravity; - mouseTail[i].alpha -= 0.01f; - - if (mouseTail[i].alpha <= 0.0f) mouseTail[i].active = false; - - mouseTail[i].rotation += 5.0f; - } - } - - if (IsKeyPressed(KEY_SPACE)) - { - if (blending == BLEND_ALPHA) blending = BLEND_ADDITIVE; - else blending = BLEND_ALPHA; - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(DARKGRAY); - - BeginBlendMode(blending); - - // Draw active particles - for (int i = 0; i < MAX_PARTICLES; i++) - { - if (mouseTail[i].active) DrawTexturePro(smoke, (Rectangle){ 0, 0, smoke.width, smoke.height }, - (Rectangle){ mouseTail[i].position.x, mouseTail[i].position.y, smoke.width*mouseTail[i].size, smoke.height*mouseTail[i].size }, - (Vector2){ smoke.width*mouseTail[i].size/2, smoke.height*mouseTail[i].size/2 }, mouseTail[i].rotation, - Fade(mouseTail[i].color, mouseTail[i].alpha)); - } - - EndBlendMode(); - - DrawText("PRESS SPACE to CHANGE BLENDING MODE", 180, 20, 20, BLACK); - - if (blending == BLEND_ALPHA) DrawText("ALPHA BLENDING", 290, screenHeight - 40, 20, BLACK); - else DrawText("ADDITIVE BLENDING", 280, screenHeight - 40, 20, RAYWHITE); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(smoke); - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_particles_blending.cs b/ExampleApplication/Examples/textures/textures_particles_blending.cs new file mode 100644 index 0000000..0ea6ded --- /dev/null +++ b/ExampleApplication/Examples/textures/textures_particles_blending.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib example - particles blending * * This example has been created using raylib 1.7 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2017 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #define MAX_PARTICLES 200 // Particle structure with basic data typedef struct { Vector2 position; Color color; float alpha; float size; float rotation; bool active; // NOTE: Use it to activate/deactive particle } Particle; public static int textures_particles_blending() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [textures] example - particles blending"); // Particles pool, reuse them! Particle mouseTail[MAX_PARTICLES]; // Initialize particles for (int i = 0; i < MAX_PARTICLES; i++) { mouseTail[i].position = (Vector2){ 0, 0 }; mouseTail[i].color = (Color){ GetRandomValue(0, 255), GetRandomValue(0, 255), GetRandomValue(0, 255), 255 }; mouseTail[i].alpha = 1.0f; mouseTail[i].size = (float)GetRandomValue(1, 30)/20.0f; mouseTail[i].rotation = GetRandomValue(0, 360); mouseTail[i].active = false; } float gravity = 3.0f; Texture2D smoke = LoadTexture("resources/smoke.png"); int blending = BLEND_ALPHA; SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // Activate one particle every frame and Update active particles // NOTE: Particles initial position should be mouse position when activated // NOTE: Particles fall down with gravity and rotation... and disappear after 2 seconds (alpha = 0) // NOTE: When a particle disappears, active = false and it can be reused. for (int i = 0; i < MAX_PARTICLES; i++) { if (!mouseTail[i].active) { mouseTail[i].active = true; mouseTail[i].alpha = 1.0f; mouseTail[i].position = GetMousePosition(); i = MAX_PARTICLES; } } for (int i = 0; i < MAX_PARTICLES; i++) { if (mouseTail[i].active) { mouseTail[i].position.y += gravity; mouseTail[i].alpha -= 0.01f; if (mouseTail[i].alpha <= 0.0f) mouseTail[i].active = false; mouseTail[i].rotation += 5.0f; } } if (IsKeyPressed(KEY_SPACE)) { if (blending == BLEND_ALPHA) blending = BLEND_ADDITIVE; else blending = BLEND_ALPHA; } //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(DARKGRAY); BeginBlendMode(blending); // Draw active particles for (int i = 0; i < MAX_PARTICLES; i++) { if (mouseTail[i].active) DrawTexturePro(smoke, (Rectangle){ 0, 0, smoke.width, smoke.height }, (Rectangle){ mouseTail[i].position.x, mouseTail[i].position.y, smoke.width*mouseTail[i].size, smoke.height*mouseTail[i].size }, (Vector2){ smoke.width*mouseTail[i].size/2, smoke.height*mouseTail[i].size/2 }, mouseTail[i].rotation, Fade(mouseTail[i].color, mouseTail[i].alpha)); } EndBlendMode(); DrawText("PRESS SPACE to CHANGE BLENDING MODE", 180, 20, 20, BLACK); if (blending == BLEND_ALPHA) DrawText("ALPHA BLENDING", 290, screenHeight - 40, 20, BLACK); else DrawText("ADDITIVE BLENDING", 280, screenHeight - 40, 20, RAYWHITE); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadTexture(smoke); CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_raw_data.c b/ExampleApplication/Examples/textures/textures_raw_data.c deleted file mode 100644 index b038792..0000000 --- a/ExampleApplication/Examples/textures/textures_raw_data.c +++ /dev/null @@ -1,95 +0,0 @@ -/******************************************************************************************* -* -* raylib [textures] example - Load textures from raw data -* -* NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM) -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#include // Required for malloc() and free() - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture from raw data"); - - // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) - - // Load RAW image data (512x512, 32bit RGBA, no file header) - Image fudesumiRaw = LoadImageRaw("resources/fudesumi.raw", 384, 512, UNCOMPRESSED_R8G8B8A8, 0); - Texture2D fudesumi = LoadTextureFromImage(fudesumiRaw); // Upload CPU (RAM) image to GPU (VRAM) - UnloadImage(fudesumiRaw); // Unload CPU (RAM) image data - - // Generate a checked texture by code (1024x1024 pixels) - int width = 1024; - int height = 1024; - - // Dynamic memory allocation to store pixels data (Color type) - Color *pixels = (Color *)malloc(width*height*sizeof(Color)); - - for (int y = 0; y < height; y++) - { - for (int x = 0; x < width; x++) - { - if (((x/32+y/32)/1)%2 == 0) pixels[y*height + x] = ORANGE; - else pixels[y*height + x] = GOLD; - } - } - - // Load pixels data into an image structure and create texture - Image checkedIm = LoadImageEx(pixels, width, height); - Texture2D checked = LoadTextureFromImage(checkedIm); - UnloadImage(checkedIm); // Unload CPU (RAM) image data - - // Dynamic memory must be freed after using it - free(pixels); // Unload CPU (RAM) pixels data - //--------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawTexture(checked, screenWidth/2 - checked.width/2, screenHeight/2 - checked.height/2, Fade(WHITE, 0.5f)); - DrawTexture(fudesumi, 430, -30, WHITE); - - DrawText("CHECKED TEXTURE ", 84, 100, 30, BROWN); - DrawText("GENERATED by CODE", 72, 164, 30, BROWN); - DrawText("and RAW IMAGE LOADING", 46, 226, 30, BROWN); - - DrawText("(c) Fudesumi sprite by Eiden Marsal", 310, screenHeight - 20, 10, BROWN); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(fudesumi); // Texture unloading - UnloadTexture(checked); // Texture unloading - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_raw_data.cs b/ExampleApplication/Examples/textures/textures_raw_data.cs new file mode 100644 index 0000000..ab04008 --- /dev/null +++ b/ExampleApplication/Examples/textures/textures_raw_data.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [textures] example - Load textures from raw data * * NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM) * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #include // Required for malloc() and free() public static int textures_raw_data() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture from raw data"); // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) // Load RAW image data (512x512, 32bit RGBA, no file header) Image fudesumiRaw = LoadImageRaw("resources/fudesumi.raw", 384, 512, UNCOMPRESSED_R8G8B8A8, 0); Texture2D fudesumi = LoadTextureFromImage(fudesumiRaw); // Upload CPU (RAM) image to GPU (VRAM) UnloadImage(fudesumiRaw); // Unload CPU (RAM) image data // Generate a checked texture by code (1024x1024 pixels) int width = 1024; int height = 1024; // Dynamic memory allocation to store pixels data (Color type) Color *pixels = (Color *)malloc(width*height*sizeof(Color)); for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { if (((x/32+y/32)/1)%2 == 0) pixels[y*height + x] = ORANGE; else pixels[y*height + x] = GOLD; } } // Load pixels data into an image structure and create texture Image checkedIm = LoadImageEx(pixels, width, height); Texture2D checked = LoadTextureFromImage(checkedIm); UnloadImage(checkedIm); // Unload CPU (RAM) image data // Dynamic memory must be freed after using it free(pixels); // Unload CPU (RAM) pixels data //--------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update your variables here //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawTexture(checked, screenWidth/2 - checked.width/2, screenHeight/2 - checked.height/2, Fade(WHITE, 0.5f)); DrawTexture(fudesumi, 430, -30, WHITE); DrawText("CHECKED TEXTURE ", 84, 100, 30, BROWN); DrawText("GENERATED by CODE", 72, 164, 30, BROWN); DrawText("and RAW IMAGE LOADING", 46, 226, 30, BROWN); DrawText("(c) Fudesumi sprite by Eiden Marsal", 310, screenHeight - 20, 10, BROWN); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadTexture(fudesumi); // Texture unloading UnloadTexture(checked); // Texture unloading CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_rectangle.c b/ExampleApplication/Examples/textures/textures_rectangle.c deleted file mode 100644 index e124774..0000000 --- a/ExampleApplication/Examples/textures/textures_rectangle.c +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************************************* -* -* raylib [textures] example - Texture loading and drawing a part defined by a rectangle -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#define MAX_FRAME_SPEED 15 -#define MIN_FRAME_SPEED 1 - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [texture] example - texture rectangle"); - - // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) - Texture2D scarfy = LoadTexture("resources/scarfy.png"); // Texture loading - - Vector2 position = { 350.0f, 280.0f }; - Rectangle frameRec = { 0.0f, 0.0f, (float)scarfy.width/6, (float)scarfy.height }; - int currentFrame = 0; - - int framesCounter = 0; - int framesSpeed = 8; // Number of spritesheet frames shown by second - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - framesCounter++; - - if (framesCounter >= (60/framesSpeed)) - { - framesCounter = 0; - currentFrame++; - - if (currentFrame > 5) currentFrame = 0; - - frameRec.x = (float)currentFrame*(float)scarfy.width/6; - } - - if (IsKeyPressed(KEY_RIGHT)) framesSpeed++; - else if (IsKeyPressed(KEY_LEFT)) framesSpeed--; - - if (framesSpeed > MAX_FRAME_SPEED) framesSpeed = MAX_FRAME_SPEED; - else if (framesSpeed < MIN_FRAME_SPEED) framesSpeed = MIN_FRAME_SPEED; - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawTexture(scarfy, 15, 40, WHITE); - DrawRectangleLines(15, 40, scarfy.width, scarfy.height, LIME); - DrawRectangleLines(15 + frameRec.x, 40 + frameRec.y, frameRec.width, frameRec.height, RED); - - DrawText("FRAME SPEED: ", 165, 210, 10, DARKGRAY); - DrawText(FormatText("%02i FPS", framesSpeed), 575, 210, 10, DARKGRAY); - DrawText("PRESS RIGHT/LEFT KEYS to CHANGE SPEED!", 290, 240, 10, DARKGRAY); - - for (int i = 0; i < MAX_FRAME_SPEED; i++) - { - if (i < framesSpeed) DrawRectangle(250 + 21*i, 205, 20, 20, RED); - DrawRectangleLines(250 + 21*i, 205, 20, 20, MAROON); - } - - DrawTextureRec(scarfy, frameRec, position, WHITE); // Draw part of the texture - - DrawText("(c) Scarfy sprite by Eiden Marsal", screenWidth - 200, screenHeight - 20, 10, GRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(scarfy); // Texture unloading - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_rectangle.cs b/ExampleApplication/Examples/textures/textures_rectangle.cs new file mode 100644 index 0000000..e02c061 --- /dev/null +++ b/ExampleApplication/Examples/textures/textures_rectangle.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [textures] example - Texture loading and drawing a part defined by a rectangle * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2014 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #define MAX_FRAME_SPEED 15 #define MIN_FRAME_SPEED 1 public static int textures_rectangle() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [texture] example - texture rectangle"); // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) Texture2D scarfy = LoadTexture("resources/scarfy.png"); // Texture loading Vector2 position = { 350.0f, 280.0f }; Rectangle frameRec = { 0.0f, 0.0f, (float)scarfy.width/6, (float)scarfy.height }; int currentFrame = 0; int framesCounter = 0; int framesSpeed = 8; // Number of spritesheet frames shown by second SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- framesCounter++; if (framesCounter >= (60/framesSpeed)) { framesCounter = 0; currentFrame++; if (currentFrame > 5) currentFrame = 0; frameRec.x = (float)currentFrame*(float)scarfy.width/6; } if (IsKeyPressed(KEY_RIGHT)) framesSpeed++; else if (IsKeyPressed(KEY_LEFT)) framesSpeed--; if (framesSpeed > MAX_FRAME_SPEED) framesSpeed = MAX_FRAME_SPEED; else if (framesSpeed < MIN_FRAME_SPEED) framesSpeed = MIN_FRAME_SPEED; //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawTexture(scarfy, 15, 40, WHITE); DrawRectangleLines(15, 40, scarfy.width, scarfy.height, LIME); DrawRectangleLines(15 + frameRec.x, 40 + frameRec.y, frameRec.width, frameRec.height, RED); DrawText("FRAME SPEED: ", 165, 210, 10, DARKGRAY); DrawText(FormatText("%02i FPS", framesSpeed), 575, 210, 10, DARKGRAY); DrawText("PRESS RIGHT/LEFT KEYS to CHANGE SPEED!", 290, 240, 10, DARKGRAY); for (int i = 0; i < MAX_FRAME_SPEED; i++) { if (i < framesSpeed) DrawRectangle(250 + 21*i, 205, 20, 20, RED); DrawRectangleLines(250 + 21*i, 205, 20, 20, MAROON); } DrawTextureRec(scarfy, frameRec, position, WHITE); // Draw part of the texture DrawText("(c) Scarfy sprite by Eiden Marsal", screenWidth - 200, screenHeight - 20, 10, GRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadTexture(scarfy); // Texture unloading CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_srcrec_dstrec.c b/ExampleApplication/Examples/textures/textures_srcrec_dstrec.c deleted file mode 100644 index 53ffd1d..0000000 --- a/ExampleApplication/Examples/textures/textures_srcrec_dstrec.c +++ /dev/null @@ -1,81 +0,0 @@ -/******************************************************************************************* -* -* raylib [textures] example - Texture source and destination rectangles -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [textures] examples - texture source and destination rectangles"); - - // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) - Texture2D scarfy = LoadTexture("resources/scarfy.png"); // Texture loading - - int frameWidth = scarfy.width/6; - int frameHeight = scarfy.height; - - // NOTE: Source rectangle (part of the texture to use for drawing) - Rectangle sourceRec = { 0, 0, frameWidth, frameHeight }; - - // NOTE: Destination rectangle (screen rectangle where drawing part of texture) - Rectangle destRec = { screenWidth/2, screenHeight/2, frameWidth*2, frameHeight*2 }; - - // NOTE: Origin of the texture (rotation/scale point), it's relative to destination rectangle size - Vector2 origin = { frameWidth, frameHeight }; - - int rotation = 0; - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - rotation++; - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - // NOTE: Using DrawTexturePro() we can easily rotate and scale the part of the texture we draw - // sourceRec defines the part of the texture we use for drawing - // destRec defines the rectangle where our texture part will fit (scaling it to fit) - // origin defines the point of the texture used as reference for rotation and scaling - // rotation defines the texture rotation (using origin as rotation point) - DrawTexturePro(scarfy, sourceRec, destRec, origin, rotation, WHITE); - - DrawLine(destRec.x, 0, destRec.x, screenHeight, GRAY); - DrawLine(0, destRec.y, screenWidth, destRec.y, GRAY); - - DrawText("(c) Scarfy sprite by Eiden Marsal", screenWidth - 200, screenHeight - 20, 10, GRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(scarfy); // Texture unloading - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_srcrec_dstrec.cs b/ExampleApplication/Examples/textures/textures_srcrec_dstrec.cs new file mode 100644 index 0000000..a0d45df --- /dev/null +++ b/ExampleApplication/Examples/textures/textures_srcrec_dstrec.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [textures] example - Texture source and destination rectangles * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int textures_srcrec_dstrec() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [textures] examples - texture source and destination rectangles"); // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) Texture2D scarfy = LoadTexture("resources/scarfy.png"); // Texture loading int frameWidth = scarfy.width/6; int frameHeight = scarfy.height; // NOTE: Source rectangle (part of the texture to use for drawing) Rectangle sourceRec = { 0, 0, frameWidth, frameHeight }; // NOTE: Destination rectangle (screen rectangle where drawing part of texture) Rectangle destRec = { screenWidth/2, screenHeight/2, frameWidth*2, frameHeight*2 }; // NOTE: Origin of the texture (rotation/scale point), it's relative to destination rectangle size Vector2 origin = { frameWidth, frameHeight }; int rotation = 0; SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- rotation++; //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); // NOTE: Using DrawTexturePro() we can easily rotate and scale the part of the texture we draw // sourceRec defines the part of the texture we use for drawing // destRec defines the rectangle where our texture part will fit (scaling it to fit) // origin defines the point of the texture used as reference for rotation and scaling // rotation defines the texture rotation (using origin as rotation point) DrawTexturePro(scarfy, sourceRec, destRec, origin, rotation, WHITE); DrawLine(destRec.x, 0, destRec.x, screenHeight, GRAY); DrawLine(0, destRec.y, screenWidth, destRec.y, GRAY); DrawText("(c) Scarfy sprite by Eiden Marsal", screenWidth - 200, screenHeight - 20, 10, GRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadTexture(scarfy); // Texture unloading CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_to_image.c b/ExampleApplication/Examples/textures/textures_to_image.c deleted file mode 100644 index 37c3b5a..0000000 --- a/ExampleApplication/Examples/textures/textures_to_image.c +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************************* -* -* raylib [textures] example - Retrieve image data from texture: GetTextureData() -* -* NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM) -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2015 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main() -{ - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture to image"); - - // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) - - Image image = LoadImage("resources/raylib_logo.png"); // Load image data into CPU memory (RAM) - Texture2D texture = LoadTextureFromImage(image); // Image converted to texture, GPU memory (RAM -> VRAM) - UnloadImage(image); // Unload image data from CPU memory (RAM) - - image = GetTextureData(texture); // Retrieve image data from GPU memory (VRAM -> RAM) - UnloadTexture(texture); // Unload texture from GPU memory (VRAM) - - texture = LoadTextureFromImage(image); // Recreate texture from retrieved image data (RAM -> VRAM) - UnloadImage(image); // Unload retrieved image data from CPU memory (RAM) - //--------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawTexture(texture, screenWidth/2 - texture.width/2, screenHeight/2 - texture.height/2, WHITE); - - DrawText("this IS a texture loaded from an image!", 300, 370, 10, GRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(texture); // Texture unloading - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/ExampleApplication/Examples/textures/textures_to_image.cs b/ExampleApplication/Examples/textures/textures_to_image.cs new file mode 100644 index 0000000..3fbab99 --- /dev/null +++ b/ExampleApplication/Examples/textures/textures_to_image.cs @@ -0,0 +1,8 @@ + +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ + /******************************************************************************************* * * raylib [textures] example - Retrieve image data from texture: GetTextureData() * * NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM) * * This example has been created using raylib 1.3 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * * Copyright (c) 2015 Ramon Santamaria (@raysan5) * ********************************************************************************************/ public static int textures_to_image() { // Initialization //-------------------------------------------------------------------------------------- int screenWidth = 800; int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture to image"); // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) Image image = LoadImage("resources/raylib_logo.png"); // Load image data into CPU memory (RAM) Texture2D texture = LoadTextureFromImage(image); // Image converted to texture, GPU memory (RAM -> VRAM) UnloadImage(image); // Unload image data from CPU memory (RAM) image = GetTextureData(texture); // Retrieve image data from GPU memory (VRAM -> RAM) UnloadTexture(texture); // Unload texture from GPU memory (VRAM) texture = LoadTextureFromImage(image); // Recreate texture from retrieved image data (RAM -> VRAM) UnloadImage(image); // Unload retrieved image data from CPU memory (RAM) //--------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- // TODO: Update your variables here //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); ClearBackground(RAYWHITE); DrawTexture(texture, screenWidth/2 - texture.width/2, screenHeight/2 - texture.height/2, WHITE); DrawText("this IS a texture loaded from an image!", 300, 370, 10, GRAY); EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- UnloadTexture(texture); // Texture unloading CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } +} \ No newline at end of file diff --git a/ExampleApplication/Physac.cs b/ExampleApplication/Physac.cs new file mode 100644 index 0000000..6899bd3 --- /dev/null +++ b/ExampleApplication/Physac.cs @@ -0,0 +1,168 @@ + +using System.Runtime.InteropServices; + +namespace Raylib +{ + #region Raylib-cs Enums + + public enum PhysicsShapeType + { + PHYSICS_CIRCLE, + PHYSICS_POLYGON + } + + #endregion + + #region Raylib-cs Types + + // Mat2 type (used for polygon shape rotation matrix) + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct Mat2 + { + public float m00; + public float m01; + public float m10; + public float m11; + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct PolygonData + { + public uint vertexCount; // Current used vertex and normals count + //public Vector2 positions[PHYSAC_MAX_VERTICES]; // Polygon vertex positions vectors + //public Vector2 normals[PHYSAC_MAX_VERTICES]; // Polygon vertex normals vectors + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct PhysicsShape + { + public PhysicsShapeType type; // Physics shape type (circle or polygon) + //public PhysicsBodyData body; // Shape physics body reference + public float radius; // Circle shape radius (used for circle shapes) + public Mat2 transform; // Vertices transform matrix 2x2 + public PolygonData vertexData; // Polygon shape vertices position and normals data (just used for polygon shapes) + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct PhysicsBodyData + { + public uint id; // Reference unique identifier + public bool enabled; // Enabled dynamics state (collisions are calculated anyway) + public Vector2 position; // Physics body shape pivot + public Vector2 velocity; // Current linear velocity applied to position + public Vector2 force; // Current linear force (reset to 0 every step) + public float angularVelocity; // Current angular velocity applied to orient + public float torque; // Current angular force (reset to 0 every step) + public float orient; // Rotation in radians + public float inertia; // Moment of inertia + public float inverseInertia; // Inverse value of inertia + public float mass; // Physics body mass + public float inverseMass; // Inverse value of mass + public float staticFriction; // Friction when the body has not movement (0 to 1) + public float dynamicFriction; // Friction when the body has movement (0 to 1) + public float restitution; // Restitution coefficient of the body (0 to 1) + public bool useGravity; // Apply gravity force to dynamics + public bool isGrounded; // Physics grounded on other body state + public bool freezeOrient; // Physics rotation constraint + public PhysicsShape shape; // Physics body shape information (type, radius, vertices, normals) + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct PhysicsManifoldData + { + public uint id; // Reference unique identifier + //public PhysicsBody bodyA; // Manifold first physics body reference + //public PhysicsBody bodyB; // Manifold second physics body reference + public float penetration; // Depth of penetration from collision + public Vector2 normal; // Normal direction vector from 'a' to 'b' + //public Vector2 contacts[2]; // Points of contact during collision + public uint contactsCount; // Current collision number of contacts + public float restitution; // Mixed restitution during collision + public float dynamicFriction; // Mixed dynamic friction during collision + public float staticFriction; // Mixed static friction during collision + } + + #endregion + + public static partial class rl + { + #region Raylib-cs Variables + + // Used by DllImport to load the native library. + // private const string nativeLibName = "raylib.dll"; + public const int PHYSAC_MAX_BODIES = 64; + public const int PHYSAC_MAX_MANIFOLDS = 4096; + public const int PHYSAC_MAX_VERTICES = 24; + public const int PHYSAC_CIRCLE_VERTICES = 24; + + public const float PHYSAC_DESIRED_DELTATIME = 1.0f / 60.0f; + public const float PHYSAC_MAX_TIMESTEP = 0.02f; + public const int PHYSAC_COLLISION_ITERATIONS = 100; + public const float PHYSAC_PENETRATION_ALLOWANCE = 0.05f; + public const float PHYSAC_PENETRATION_CORRECTION = 0.4f; + + public const float PHYSAC_PI = 3.14159265358979323846f; + public const float PHYSAC_DEG2RAD = (PHYSAC_PI / 180.0f); + + #endregion + + #region Raylib-cs Functions + + [DllImport(nativeLibName)] + public static extern void InitPhysics(); // Initializes physics values, pointers and creates physics loop thread + + [DllImport(nativeLibName)] + public static extern bool IsPhysicsEnabled(); // Returns true if physics thread is currently enabled + + [DllImport(nativeLibName)] + public static extern void SetPhysicsGravity(float x, float y); // Sets physics global gravity force + + [DllImport(nativeLibName)] + public static extern PhysicsBodyData CreatePhysicsBodyCircle(Vector2 pos, float radius, float density); // Creates a new circle physics body with generic parameters + + [DllImport(nativeLibName)] + public static extern PhysicsBodyData CreatePhysicsBodyRectangle(Vector2 pos, float width, float height, float density); // Creates a new rectangle physics body with generic parameters + + [DllImport(nativeLibName)] + public static extern PhysicsBodyData CreatePhysicsBodyPolygon(Vector2 pos, float radius, int sides, float density); // Creates a new polygon physics body with generic parameters + + [DllImport(nativeLibName)] + public static extern void PhysicsAddForce(PhysicsBodyData body, Vector2 force); // Adds a force to a physics body + + [DllImport(nativeLibName)] + public static extern void PhysicsAddTorque(PhysicsBodyData body, float amount); // Adds an angular force to a physics body + + [DllImport(nativeLibName)] + public static extern void PhysicsShatter(PhysicsBodyData body, Vector2 position, float force); // Shatters a polygon shape physics body to little physics bodies with explosion force + + [DllImport(nativeLibName)] + public static extern int GetPhysicsBodiesCount(); // Returns the current amount of created physics bodies + + [DllImport(nativeLibName)] + public static extern PhysicsBodyData GetPhysicsBody(int index); // Returns a physics body of the bodies pool at a specific index + + [DllImport(nativeLibName)] + public static extern int GetPhysicsShapeType(int index); // Returns the physics body shape type (PHYSICS_CIRCLE or PHYSICS_POLYGON) + + [DllImport(nativeLibName)] + public static extern int GetPhysicsShapeVerticesCount(int index); // Returns the amount of vertices of a physics body shape + + [DllImport(nativeLibName)] + public static extern Vector2 GetPhysicsShapeVertex(PhysicsBodyData body, int vertex); // Returns transformed position of a body shape (body position + vertex transformed position) + + [DllImport(nativeLibName)] + public static extern void SetPhysicsBodyRotation(PhysicsBodyData body, float radians); // Sets physics body shape transform based on radians parameter + + [DllImport(nativeLibName)] + public static extern void DestroyPhysicsBody(PhysicsBodyData body); // Unitializes and destroy a physics body + + [DllImport(nativeLibName)] + public static extern void ResetPhysics(); // Destroys created physics bodies and manifolds and resets global values + + [DllImport(nativeLibName)] + public static extern void ClosePhysics(); // Unitializes physics pointers and closes physics loop thread + + #endregion + + } +} diff --git a/ExampleApplication/Program.cs b/ExampleApplication/Program.cs index c458356..220b87b 100644 --- a/ExampleApplication/Program.cs +++ b/ExampleApplication/Program.cs @@ -6,9 +6,11 @@ namespace ExampleApplication static class Program { static void Main(string[] args) - { + { + var a = new Vector2(100, 30); + var b = new Vector2(100, 30); + var c = Vector2Add(a, b); Examples.core_basic_window(); - // DrawControl.Run(); } } } \ No newline at end of file diff --git a/ExampleApplication/Raygui.cs b/ExampleApplication/Raygui.cs new file mode 100644 index 0000000..94f2d16 --- /dev/null +++ b/ExampleApplication/Raygui.cs @@ -0,0 +1,27 @@ + +using System; +using System.Runtime.InteropServices; + +namespace Raylib +{ + #region Raylib-cs Enums + + #endregion + + #region Raylib-cs Types + + + #endregion + + public static partial class rl + { + #region Raylib-cs Variables + + #endregion + + #region Raylib-cs Functions + + #endregion + + } +} diff --git a/ExampleApplication/Raylib-cs/Raylib.cs b/ExampleApplication/Raylib-cs/Raylib.cs deleted file mode 100644 index 6588608..0000000 --- a/ExampleApplication/Raylib-cs/Raylib.cs +++ /dev/null @@ -1,1841 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -// quick reference -// http://www.raylib.com/cheatsheet/cheatsheet.html -namespace Raylib -{ - #region Raylib# Enums - - public enum LogType - { - LOG_INFO = 1, - LOG_WARNING = 2, - LOG_ERROR = 4, - LOG_DEBUG = 8, - LOG_OTHER = 16 - } - - public enum ShaderLocationIndex - { - LOC_VERTEX_POSITION = 0, - LOC_VERTEX_TEXCOORD01 = 1, - LOC_VERTEX_TEXCOORD02 = 2, - LOC_VERTEX_NORMAL = 3, - LOC_VERTEX_TANGENT = 4, - LOC_VERTEX_COLOR = 5, - LOC_MATRIX_MVP = 6, - LOC_MATRIX_MODEL = 7, - LOC_MATRIX_VIEW = 8, - LOC_MATRIX_PROJECTION = 9, - LOC_VECTOR_VIEW = 10, - LOC_COLOR_DIFFUSE = 11, - LOC_COLOR_SPECULAR = 12, - LOC_COLOR_AMBIENT = 13, - LOC_MAP_ALBEDO = 14, - LOC_MAP_METALNESS = 15, - LOC_MAP_NORMAL = 16, - LOC_MAP_ROUGHNESS = 17, - LOC_MAP_OCCLUSION = 18, - LOC_MAP_EMISSION = 19, - LOC_MAP_HEIGHT = 20, - LOC_MAP_CUBEMAP = 21, - LOC_MAP_IRRADIANCE = 22, - LOC_MAP_PREFILTER = 23, - LOC_MAP_BRDF = 24 - } - - public enum TexmapIndex - { - MAP_ALBEDO = 0, - MAP_METALNESS = 1, - MAP_NORMAL = 2, - MAP_ROUGHNESS = 3, - MAP_OCCLUSION = 4, - MAP_EMISSION = 5, - MAP_HEIGHT = 6, - MAP_CUBEMAP = 7, - MAP_IRRADIANCE = 8, - MAP_PREFILTER = 9, - MAP_BRDF = 10 - } - - public enum PixelFormat - { - UNCOMPRESSED_GRAYSCALE = 1, - UNCOMPRESSED_GRAY_ALPHA = 2, - UNCOMPRESSED_R5G6B5 = 3, - UNCOMPRESSED_R8G8B8 = 4, - UNCOMPRESSED_R5G5B5A1 = 5, - UNCOMPRESSED_R4G4B4A4 = 6, - UNCOMPRESSED_R8G8B8A8 = 7, - UNCOMPRESSED_R32 = 8, - UNCOMPRESSED_R32G32B32 = 9, - UNCOMPRESSED_R32G32B32A32 = 10, - COMPRESSED_DXT1RGB = 11, - COMPRESSED_DXT1RGBA = 12, - COMPRESSED_DXT3RGBA = 13, - COMPRESSED_DXT5RGBA = 14, - COMPRESSED_ETC1RGB = 15, - COMPRESSED_ETC2RGB = 16, - COMPRESSED_ETC2EAC_RGBA = 17, - COMPRESSED_PVRT_RGB = 18, - COMPRESSED_PVRT_RGBA = 19, - COMPRESSED_ASTC_4x4RGBA = 20, - COMPRESSED_ASTC_8x8RGBA = 21 - } - - public enum TextureFilterMode - { - FILTER_POINT = 0, - FILTER_BILINEAR = 1, - FILTER_TRILINEAR = 2, - FILTER_ANISOTROPIC_4X = 3, - FILTER_ANISOTROPIC_8X = 4, - FILTER_ANISOTROPIC_16X = 5 - } - - public enum TextureWrapMode - { - WRAP_REPEAT = 0, - WRAP_CLAMP = 1, - WRAP_MIRROR = 2 - } - - public enum BlendMode - { - BLEND_ALPHA = 0, - BLEND_ADDITIVE = 1, - BLEND_MULTIPLIED = 2 - } - - [Flags] - public enum Gestures - { - GESTURE_NONE = 0, - GESTURE_TAP = 1, - GESTURE_DOUBLETAP = 2, - GESTURE_HOLD = 4, - GESTURE_DRAG = 8, - GESTURE_SWIPE_RIGHT = 16, - GESTURE_SWIPE_LEFT = 32, - GESTURE_SWIPE_UP = 64, - GESTURE_SWIPE_DOWN = 128, - GESTURE_PINCH_IN = 256, - GESTURE_PINCH_OUT = 512 - } - - public enum CameraMode - { - CAMERA_CUSTOM = 0, - CAMERA_FREE = 1, - CAMERA_ORBITAL = 2, - CAMERA_FIRST_PERSON = 3, - CAMERA_THIRD_PERSON = 4 - } - - public enum CameraType - { - CAMERA_PERSPECTIVE = 0, - CAMERA_ORTHOGRAPHIC = 1 - } - - public enum VrDeviceType - { - HMD_DEFAULT_DEVICE = 0, - HMD_OCULUS_RIFT_DK2 = 1, - HMD_OCULUS_RIFT_CV1 = 2, - HMD_OCULUS_GO = 3, - HMD_VALVE_HTC_VIVE = 4, - HMD_SONY_PSVR = 5 - } - - [Flags] - public enum Flag - { - SHOW_LOGO = 1, - FULLSCREEN_MODE = 2, - WINDOW_RESIZABLE = 4, - WINDOW_UNDECORATED = 8, - WINDOW_TRANSPARENT = 16, - MSAA_4X_HINT = 32, - VSYNC_HINT = 64 - } - - // Keyboard Function Keys - public enum Key - { - SPACE = 32, - ESCAPE = 256, - ENTER = 257, - TAB = 258, - BACKSPACE = 259, - INSERT = 260, - DELETE = 261, - RIGHT = 262, - LEFT = 263, - DOWN = 264, - UP = 265, - PAGE_UP = 266, - PAGE_DOWN = 267, - HOME = 268, - END = 269, - CAPS_LOCK = 280, - SCROLL_LOCK = 281, - NUM_LOCK = 282, - PRINT_SCREEN = 283, - PAUSE = 284, - F1 = 290, - F2 = 291, - F3 = 292, - F4 = 293, - F5 = 294, - F6 = 295, - F7 = 296, - F8 = 297, - F9 = 298, - F10 = 299, - F11 = 300, - F12 = 301, - LEFT_SHIFT = 340, - LEFT_CONTROL = 341, - LEFT_ALT = 342, - RIGHT_SHIFT = 344, - RIGHT_CONTROL = 345, - RIGHT_ALT = 346, - GRAVE = 96, - SLASH = 47, - BACKSLASH = 92, - - // Keyboard Alpha Numeric Keys - ZERO = 48, - ONE = 49, - TWO = 50, - THREE = 51, - FOUR = 52, - FIVE = 53, - SIX = 54, - SEVEN = 55, - EIGHT = 56, - NINE = 57, - A = 65, - B = 66, - C = 67, - D = 68, - E = 69, - F = 70, - G = 71, - H = 72, - I = 73, - J = 74, - K = 75, - L = 76, - M = 77, - N = 78, - O = 79, - P = 80, - Q = 81, - R = 82, - S = 83, - T = 84, - U = 85, - V = 86, - W = 87, - X = 88, - Y = 89, - Z = 90, - - // Android Physical Buttons - BACK = 4, - MENU = 82, - VOLUME_UP = 24, - VOLUME_DOWN = 25 - } - - // Mouse Buttons - public enum Mouse - { - LEFT_BUTTON = 0, - RIGHT_BUTTON = 1, - MIDDLE_BUTTON = 2 - } - - public enum Gamepad - { - PLAYER1 = 0, - PLAYER2 = 1, - PLAYER3 = 2, - PLAYER4 = 3, - PS3BUTTON_TRIANGLE = 0, - PS3BUTTON_CIRCLE = 1, - PS3BUTTON_CROSS = 2, - PS3BUTTON_SQUARE = 3, - PS3BUTTON_L1 = 6, - PS3BUTTON_R1 = 7, - PS3BUTTON_L2 = 4, - PS3BUTTON_R2 = 5, - PS3BUTTON_START = 8, - PS3BUTTON_SELECT = 9, - PS3BUTTON_UP = 24, - PS3BUTTON_RIGHT = 25, - PS3BUTTON_DOWN = 26, - PS3BUTTON_LEFT = 27, - PS3BUTTON_PS = 12, - PS3AXIS_LEFT_X = 0, - PS3AXIS_LEFT_Y = 1, - PS3AXIS_RIGHT_X = 2, - PS3AXIS_RIGHT_Y = 5, - PS3AXIS_L2 = 3, - PS3AXIS_R2 = 4, - XBOX_BUTTON_A = 0, - XBOX_BUTTON_B = 1, - XBOX_BUTTON_X = 2, - XBOX_BUTTON_Y = 3, - XBOX_BUTTON_LB = 4, - XBOX_BUTTON_RB = 5, - XBOX_BUTTON_SELECT = 6, - XBOX_BUTTON_START = 7, - XBOX_BUTTON_UP = 10, - XBOX_BUTTON_RIGHT = 11, - XBOX_BUTTON_DOWN = 12, - XBOX_BUTTON_LEFT = 13, - XBOX_BUTTON_HOME = 8, - ANDROID_DPAD_UP = 19, - ANDROID_DPAD_DOWN = 20, - ANDROID_DPAD_LEFT = 21, - ANDROID_DPAD_RIGHT = 22, - ANDROID_DPAD_CENTER = 23, - ANDROID_BUTTON_A = 96, - ANDROID_BUTTON_B = 97, - ANDROID_BUTTON_C = 98, - ANDROID_BUTTON_X = 99, - ANDROID_BUTTON_Y = 100, - ANDROID_BUTTON_Z = 101, - ANDROID_BUTTON_L1 = 102, - ANDROID_BUTTON_R1 = 103, - ANDROID_BUTTON_L2 = 104, - ANDROID_BUTTON_R2 = 105, - XBOX_AXIS_LEFT_X = 0, - XBOX_AXIS_LEFT_Y = 1, - XBOX_AXIS_RIGHT_X = 2, - XBOX_AXIS_RIGHT_Y = 3, - XBOX_AXIS_LT = 4, - XBOX_AXIS_RT = 5 - } - - #endregion - - #region Raylib# Types - - // Vector2 type - public struct Vector2 - { - public float x; - public float y; - - public Vector2(float x, float y) - { - this.x = x; - this.y = y; - } - } - - // Vector3 type - public struct Vector3 - { - public float x; - public float y; - public float z; - - public Vector3(float x, float y, float z) - { - this.x = x; - this.y = y; - this.z = z; - } - } - - // Vector4 type - public struct Vector4 - { - public float x; - public float y; - public float z; - public float w; - - public Vector4(float x, float y, float z, float w) - { - this.x = x; - this.y = y; - this.z = z; - this.w = w; - } - } - - // Matrix type (OpenGL style 4x4 - right handed, column major) - public struct Matrix - { - public float m0, m4, m8, m12; - public float m1, m5, m9, m13; - public float m2, m6, m10, m14; - public float m3, m7, m11, m15; - } - - // Color type, RGBA (32bit) - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct Color - { - public byte r; - public byte g; - public byte b; - public byte a; - - public Color(byte r, byte g, byte b, byte a) - { - this.r = r; - this.g = g; - this.b = b; - this.a = a; - } - } - - // Rectangle type - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct Rectangle - { - public float x; - public float y; - public float width; - public float height; - - public Rectangle(float x, float y, float width, float height) - { - this.x = x; - this.y = y; - this.width = width; - this.height = height; - } - } - - // Image type, bpp always RGBA (32bit) - // NOTE: Data stored in CPU memory (RAM) - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct Image - { - public IntPtr data; // Image raw data - public int width; // Image base width - public int height; // Image base height - public int mipmaps; // Mipmap levels, 1 by default - public int format; // Data format (PixelFormat type) - } - - // Texture2D type - // NOTE: Data stored in GPU memory - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct Texture2D - { - public uint id; // OpenGL texture id - public int width; // Texture base width - public int height; // Texture base height - public int mipmaps; // Mipmap levels, 1 by default - public int format; // Data format (PixelFormat type) - } - - // RenderTexture2D type, for texture rendering - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct RenderTexture2D - { - public uint id; // OpenGL Framebuffer Object (FBO) id - public Texture2D texture; // Color buffer attachment texture - public Texture2D depth; // Depth buffer attachment texture - } - - // RenderTexture type, same as RenderTexture2D - // typedef RenderTexture2D RenderTexture; - - // Font character info - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct CharInfo - { - public int value; // Character value (Unicode) - public Rectangle rec; // Character rectangle in sprite font - public int offsetX; // Character offset X when drawing - public int offsetY; // Character offset Y when drawing - public int advanceX; // Character advance position X - public byte[] data; // Character pixel data (grayscale) - } - - // Font type, includes texture and charSet array data - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct Font - { - public Texture2D texture; // Font texture - public int baseSize; // Base size (default chars height) - public int charsCount; // Number of characters - public CharInfo[] chars; // Characters info data - } - - // public static Color Font Font // Font type fallback, defaults to Font - - // Camera type, defines a camera position/orientation in 3d space - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct Camera3D - { - public Vector3 position; // Camera position - public Vector3 target; // Camera target it looks-at - public Vector3 up; // Camera up vector (rotation over its axis) - - public float fovy; // Camera field-of-view apperture in Y (degrees) in perspective, used as near plane width in orthographic - - public CameraType type; // Camera type, defines projection type: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC - - public Camera3D(Vector3 position, Vector3 target, Vector3 up, float fovy = 90, - CameraType type = CameraType.CAMERA_PERSPECTIVE) - { - this.position = position; - this.target = target; - this.up = up; - this.fovy = fovy; - this.type = type; - } - } - - // public static Color Camera Camera3D // Camera type fallback, defaults to Camera3D - - // Camera2D type, defines a 2d camera - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct Camera2D - { - public Vector2 offset; // Camera offset (displacement from target) - public Vector2 target; // Camera target (rotation and zoom origin) - public float rotation; // Camera rotation in degrees - public float zoom; // Camera zoom (scaling), should be 1.0f by default - } - - // Bounding box type - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct BoundingBox - { - public Vector3 min; // Minimum vertex box-corner - public Vector3 max; // Maximum vertex box-corner - } - - // Vertex data definning a mesh - // NOTE: Data stored in CPU memory (and GPU) - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct Mesh - { - public int vertexCount; // Number of vertices stored in arrays - public int triangleCount; // Number of triangles stored (indexed or not) - - public float[] vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) - public float[] texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) - public float[] texcoords2; // Vertex second texture coordinates (useful for lightmaps) (shader-location = 5) - public float[] normals; // Vertex normals (XYZ - 3 components per vertex) (shader-location = 2) - public float[] tangents; // Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4) - public byte[] colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) - public ushort[] indices; // Vertex indices (in case vertex data comes indexed) - - public uint vaoId; // OpenGL Vertex Array Object id - public unsafe fixed uint vboId[7]; // OpenGL Vertex Buffer Objects id (7 types of vertex data) - } - - // Shader type (generic) - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public unsafe struct Shader - { - public uint id; // Shader program id - public fixed int locs[rl.MAX_SHADER_LOCATIONS]; // Shader locations array - } - - // Material texture map - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct MaterialMap - { - public Texture2D texture; // Material map texture - public Color color; // Material map color - public float value; // Material map value - } - - // Material type (generic) - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct Material - { - public Shader shader; // Material shader - // public MaterialMap[] maps = new MaterialMap[rl.MAX_MATERIAL_MAPS]; // Material maps - public float[] param; // Material generic parameters (if required) - } - - // Model type - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct Model - { - public Mesh mesh; // Vertex data buffers (RAM and VRAM) - public Matrix transform; // Local transform matrix - public Material material; // Shader and textures data - } - - // Ray type (useful for raycast) - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct Ray - { - public Vector3 position; // Ray position (origin) - public Vector3 direction; // Ray direction - - public Ray(Vector3 position, Vector3 direction) - { - this.position = position; - this.direction = direction; - } - } - - // Raycast hit information - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct RayHitInfo - { - public bool hit; // Did the ray hit something? - public float distance; // Distance to nearest hit - public Vector3 position; // Position of nearest hit - public Vector3 normal; // Surface normal of hit - } - - // Wave type, defines audio wave data - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct Wave - { - public uint sampleCount; // Number of samples - public uint sampleRate; // Frequency (samples per second) - public uint sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported) - public uint channels; // Number of channels (1-mono, 2-stereo) - public IntPtr data; // Buffer data pointer - } - - // Sound source type - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct Sound - { - public IntPtr audioBuffer; // Pointer to internal data used by the audio system - public uint source; // Audio source id - public uint buffer; // Audio buffer id - public int format; // Audio format specifier - } - - // Audio stream type - // NOTE: Useful to create custom audio streams not bound to a specific file - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public class AudioStream - { - public uint sampleRate; // Frequency (samples per second) - public uint sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported) - public uint channels; // Number of channels (1-mono, 2-stereo) - public IntPtr audioBuffer; // Pointer to internal data used by the audio system. - public int format; // Audio format specifier - - public uint source; // Audio source id - public uint[] buffers = new uint[2]; // Audio buffers (double buffering) - } - - // Head-Mounted-Display device parameters - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public class VrDeviceInfo - { - public int hResolution; // HMD horizontal resolution in pixels - public int vResolution; // HMD vertical resolution in pixels - public float hScreenSize; // HMD horizontal size in meters - public float vScreenSize; // HMD vertical size in meters - public float vScreenCenter; // HMD screen center in meters - public float eyeToScreenDistance; // HMD distance between eye and display in meters - public float lensSeparationDistance; // HMD lens separation distance in meters - - public float interpupillaryDistance; // HMD IPD (distance between pupils) in meters - public float[] lensDistortionValues = new float[4]; // HMD lens distortion constant parameters - public float[] chromaAbCorrection = new float[4]; // HMD chromatic aberration correction parameters - } - - #endregion - - public static partial class rl - { - #region Raylib# Variables - - /* Used by DllImport to load the native library. */ - private const string nativeLibName = "raylib.dll"; - public const int MAX_SHADER_LOCATIONS = 32; - public const int MAX_MATERIAL_MAPS = 12; - - // colors - - // Custom raylib color palette for amazing visuals - public static Color LIGHTGRAY = new Color(200, 200, 200, 255); // Light Gray - public static Color GRAY = new Color(130, 130, 130, 255); // Gray - public static Color DARKGRAY = new Color(80, 80, 80, 255); // Dark Gray - public static Color YELLOW = new Color(253, 249, 0, 255); // Yellow - public static Color GOLD = new Color(255, 203, 0, 255); // Gold - public static Color ORANGE = new Color(255, 161, 0, 255); // Orange - public static Color PINK = new Color(255, 109, 194, 255); // Pink - public static Color RED = new Color(230, 41, 55, 255); // Red - public static Color MAROON = new Color(190, 33, 55, 255); // Maroon - public static Color GREEN = new Color(0, 228, 48, 255); // Green - public static Color LIME = new Color(0, 158, 47, 255); // Lime - public static Color DARKGREEN = new Color(0, 117, 44, 255); // Dark Green - public static Color SKYBLUE = new Color(102, 191, 255, 255); // Sky Blue - public static Color BLUE = new Color(0, 121, 241, 255); // Blue - public static Color DARKBLUE = new Color(0, 82, 172, 255); // Dark Blue - public static Color PURPLE = new Color(200, 122, 255, 255); // Purple - public static Color VIOLET = new Color(135, 60, 190, 255); // Violet - public static Color DARKPURPLE = new Color(112, 31, 126, 255); // Dark Purple - public static Color BEIGE = new Color(211, 176, 131, 255); // Beige - public static Color BROWN = new Color(127, 106, 79, 255); // Brown - public static Color DARKBROWN = new Color(76, 63, 47, 255); // Dark Brown - public static Color WHITE = new Color(255, 255, 255, 255); // White - public static Color BLACK = new Color(0, 0, 0, 255); // Black - public static Color BLANK = new Color(0, 0, 0, 0); // Transparent - public static Color MAGENTA = new Color(255, 0, 255, 255); // Magenta - public static Color RAYWHITE = new Color(245, 245, 245, 255); // Ray White - - #endregion - - #region Raylib.h - - // Window-related functions - [DllImport(nativeLibName)] - public static extern void - InitWindow(int width, int height, string title); // Initialize Window and Graphics Context (OpenGL) - - [DllImport(nativeLibName)] - public static extern void CloseWindow(); // Close window and unload OpenGL context - - [DllImport(nativeLibName)] - public static extern bool WindowShouldClose(); // Check if KEY_ESCAPE pressed or Close icon pressed - - [DllImport(nativeLibName)] - public static extern bool IsWindowMinimized(); // Check if window has been minimized (or lost focus) - - [DllImport(nativeLibName)] - public static extern void ToggleFullscreen(); // Toggle fullscreen mode (only PLATFORM_DESKTOP) - - [DllImport(nativeLibName)] - public static extern void SetWindowIcon(Image image); // Set icon for window (only PLATFORM_DESKTOP) - - [DllImport(nativeLibName)] - public static extern void SetWindowTitle(string title); // Set title for window (only PLATFORM_DESKTOP) - - [DllImport(nativeLibName)] - public static extern void - SetWindowPosition(int x, int y); // Set window position on screen (only PLATFORM_DESKTOP) - - [DllImport(nativeLibName)] - public static extern void SetWindowMonitor(int monitor); // Set monitor for the current window (fullscreen mode) - - [DllImport(nativeLibName)] - public static extern void - SetWindowMinSize(int width, int height); // Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) - - [DllImport(nativeLibName)] - public static extern int GetScreenWidth(); // Get current screen width - - [DllImport(nativeLibName)] - public static extern int GetScreenHeight(); // Get current screen height - - // Cursor-related functions - [DllImport(nativeLibName)] - public static extern void ShowCursor(); // Shows cursor - - [DllImport(nativeLibName)] - public static extern void HideCursor(); // Hides cursor - - [DllImport(nativeLibName)] - public static extern bool IsCursorHidden(); // Check if cursor is not visible - - [DllImport(nativeLibName)] - public static extern void EnableCursor(); // Enables cursor (unlock cursor) - - [DllImport(nativeLibName)] - public static extern void DisableCursor(); // Disables cursor (lock cursor) - - // Drawing-related functions - [DllImport(nativeLibName)] - public static extern void ClearBackground(Color color); // Set background color (framebuffer clear color) - - [DllImport(nativeLibName)] - public static extern void BeginDrawing(); // Setup canvas (framebuffer) to start drawing - - [DllImport(nativeLibName)] - public static extern void EndDrawing(); // End canvas drawing and swap buffers (double buffering) - - [DllImport(nativeLibName)] - public static extern void Begin2dMode(Camera2D camera); // Initialize 2D mode with custom camera (2D) - - [DllImport(nativeLibName)] - public static extern void End2dMode(); // Ends 2D mode with custom camera - - [DllImport(nativeLibName)] - public static extern void Begin3dMode(Camera3D camera3D); // Initializes 3D mode with custom camera (3D) - - [DllImport(nativeLibName)] - public static extern void End3dMode(); // Ends 3D mode and returns to default 2D orthographic mode - - [DllImport(nativeLibName)] - public static extern void BeginTextureMode(RenderTexture2D target); // Initializes render texture for drawing - - [DllImport(nativeLibName)] - public static extern void EndTextureMode(); // Ends drawing to render texture - - // Screen-space-related functions - [DllImport(nativeLibName)] - public static extern Ray - GetMouseRay(Vector2 mousePosition, Camera3D camera3D); // Returns a ray trace from mouse position - - [DllImport(nativeLibName)] - public static extern Vector2 - GetWorldToScreen(Vector3 position, - Camera3D camera3D); // Returns the screen space position for a 3d world space position - - [DllImport(nativeLibName)] - public static extern Matrix GetCameraMatrix(Camera3D camera3D); // Returns camera transform matrix (view matrix) - - // Timming-related functions - [DllImport(nativeLibName)] - public static extern void SetTargetFPS(int fps); // Set target FPS (maximum) - - [DllImport(nativeLibName)] - public static extern int GetFPS(); // Returns current FPS - - [DllImport(nativeLibName)] - public static extern float GetFrameTime(); // Returns time in seconds for last frame drawn - - // Color-related functions - [DllImport(nativeLibName)] - public static extern int GetHexValue(Color color); // Returns hexadecimal value for a Color - - [DllImport(nativeLibName)] - public static extern Color GetColor(int hexValue); // Returns a Color struct from hexadecimal value - - [DllImport(nativeLibName)] - public static extern Color - Fade(Color color, float alpha); // Color fade-in or fade-out, alpha goes from 0.0f to 1.0f - - [DllImport(nativeLibName)] - public static extern float[] ColorToFloat(Color color); // Converts Color to float array and normalizes - - // Math useful functions (available from raymath.h) - [DllImport(nativeLibName)] - public static extern float[] VectorToFloat(Vector3 vec); // Returns Vector3 as float array - - [DllImport(nativeLibName)] - public static extern float[] MatrixToFloat(Matrix mat); // Returns Matrix as float array - - [DllImport(nativeLibName)] - public static extern Vector3 Vector3Zero(); // Vector with components value 0.0f - - [DllImport(nativeLibName)] - public static extern Vector3 Vector3One(); // Vector with components value 1.0f - - [DllImport(nativeLibName)] - public static extern Matrix MatrixIdentity(); // Returns identity matrix - - // Misc. functions - [DllImport(nativeLibName)] - public static extern void ShowLogo(); // Activate raylib logo at startup (can be done with flags) - - [DllImport(nativeLibName)] - public static extern void SetConfigFlags(char flags); // Setup window configuration flags (view FLAGS) - - [DllImport(nativeLibName)] - public static extern void - TraceLog(int logType, string text, object[] args); // Show trace log messages (INFO, WARNING, ERROR, DEBUG) - - [DllImport(nativeLibName)] - public static extern void - TakeScreenshot(string fileName); // Takes a screenshot of current screen (saved a .png) - - [DllImport(nativeLibName)] - public static extern int - GetRandomValue(int min, int max); // Returns a random value between min and max (both included) - - // Files management functions - [DllImport(nativeLibName)] - public static extern bool IsFileExtension(string fileName, string ext); // Check file extension - - [DllImport(nativeLibName)] - public static extern string GetExtension(string fileName); // Get file extension - - [DllImport(nativeLibName)] - public static extern string GetDirectoryPath(string fileName); // Get directory for a given fileName (with path) - - [DllImport(nativeLibName)] - public static extern string GetWorkingDirectory(); // Get current working directory - - [DllImport(nativeLibName)] - public static extern bool ChangeDirectory(string dir); // Change working directory, returns true if success - - [DllImport(nativeLibName)] - public static extern bool IsFileDropped(); // Check if a file has been dropped into window - - [DllImport(nativeLibName)] - public static extern char[][] GetDroppedFiles(int[] count); // Get dropped files names - - [DllImport(nativeLibName)] - public static extern void ClearDroppedFiles(); // Clear dropped files paths buffer - - // Persistent storage management - [DllImport(nativeLibName)] - public static extern void - StorageSaveValue(int position, int value); // Save integer value to storage file (to defined position) - - [DllImport(nativeLibName)] - public static extern int - StorageLoadValue(int position); // Load integer value from storage file (from defined position) - - // Input-related functions: keyboard - [DllImport(nativeLibName)] - public static extern bool IsKeyPressed(int key); // Detect if a key has been pressed once - - [DllImport(nativeLibName)] - public static extern bool IsKeyDown(int key); // Detect if a key is being pressed - - [DllImport(nativeLibName)] - public static extern bool IsKeyReleased(int key); // Detect if a key has been released once - - [DllImport(nativeLibName)] - public static extern bool IsKeyUp(int key); // Detect if a key is NOT being pressed - - [DllImport(nativeLibName)] - public static extern int GetKeyPressed(); // Get latest key pressed - - [DllImport(nativeLibName)] - public static extern void SetExitKey(int key); // Set a custom key to exit program (default is ESC) - - // Input-related functions: gamepads - [DllImport(nativeLibName)] - public static extern bool IsGamepadAvailable(int gamepad); // Detect if a gamepad is available - - [DllImport(nativeLibName)] - public static extern bool IsGamepadName(int gamepad, string name); // Check gamepad name (if available) - - [DllImport(nativeLibName)] - public static extern string GetGamepadName(int gamepad); // Return gamepad internal name id - - [DllImport(nativeLibName)] - public static extern bool - IsGamepadButtonPressed(int gamepad, int button); // Detect if a gamepad button has been pressed once - - [DllImport(nativeLibName)] - public static extern bool - IsGamepadButtonDown(int gamepad, int button); // Detect if a gamepad button is being pressed - - [DllImport(nativeLibName)] - public static extern bool - IsGamepadButtonReleased(int gamepad, int button); // Detect if a gamepad button has been released once - - [DllImport(nativeLibName)] - public static extern bool - IsGamepadButtonUp(int gamepad, int button); // Detect if a gamepad button is NOT being pressed - - [DllImport(nativeLibName)] - public static extern int GetGamepadButtonPressed(); // Get the last gamepad button pressed - - [DllImport(nativeLibName)] - public static extern int GetGamepadAxisCount(int gamepad); // Return gamepad axis count for a gamepad - - [DllImport(nativeLibName)] - public static extern float - GetGamepadAxisMovement(int gamepad, int axis); // Return axis movement value for a gamepad axis - - // Input-related functions: mouse - [DllImport(nativeLibName)] - public static extern bool IsMouseButtonPressed(int button); // Detect if a mouse button has been pressed once - - [DllImport(nativeLibName)] - public static extern bool IsMouseButtonDown(int button); // Detect if a mouse button is being pressed - - [DllImport(nativeLibName)] - public static extern bool IsMouseButtonReleased(int button); // Detect if a mouse button has been released once - - [DllImport(nativeLibName)] - public static extern bool IsMouseButtonUp(int button); // Detect if a mouse button is NOT being pressed - - [DllImport(nativeLibName)] - public static extern int GetMouseX(); // Returns mouse position X - - [DllImport(nativeLibName)] - public static extern int GetMouseY(); // Returns mouse position Y - - [DllImport(nativeLibName)] - public static extern Vector2 GetMousePosition(); // Returns mouse position XY - - [DllImport(nativeLibName)] - public static extern void SetMousePosition(Vector2 position); // Set mouse position XY - - [DllImport(nativeLibName)] - public static extern int GetMouseWheelMove(); // Returns mouse wheel movement Y - - // Input-related functions: touch - [DllImport(nativeLibName)] - public static extern int GetTouchX(); // Get touch position X for touch point 0 (relative to screen size) - - [DllImport(nativeLibName)] - public static extern int GetTouchY(); // Get touch position Y for touch point 0 (relative to screen size) - - [DllImport(nativeLibName)] - public static extern Vector2 - GetTouchPosition(int index); // Get touch position XY for a touch point index (relative to screen size) - - // Gestures-related functions - [DllImport(nativeLibName)] - public static extern void SetGesturesEnabled(uint gestureFlags); // Enable a set of gestures using flags - - [DllImport(nativeLibName)] - public static extern bool IsGestureDetected(int gesture); // Check if a gesture have been detected - - [DllImport(nativeLibName)] - public static extern int GetGestureDetected(); // Get latest detected gesture - - // Get touch points count - [DllImport(nativeLibName)] - public static extern int GetTouchPointsCount(); - - // Get gesture hold time in milliseconds - [DllImport(nativeLibName)] - public static extern float GetGestureHoldDuration(); - - // Get gesture drag vector - [DllImport(nativeLibName)] - public static extern Vector2 GetGestureDragVector(); - - // Get gesture drag angle - [DllImport(nativeLibName)] - public static extern float GetGestureDragAngle(); - - // Get gesture pinch delta - [DllImport(nativeLibName)] - public static extern Vector2 GetGesturePinchVector(); - - // Get gesture pinch angle - [DllImport(nativeLibName)] - public static extern float GetGesturePinchAngle(); - - // Camera-related functions - - // Set camera mode (multiple camera modes available) - [DllImport(nativeLibName)] - public static extern void SetCameraMode(Camera3D camera3D, int mode); - - // Update camera position for selected mode - [DllImport(nativeLibName)] - public static extern void UpdateCamera(Camera3D camera3D); - - // Set camera pan key to combine with mouse movement (free camera) - [DllImport(nativeLibName)] - public static extern void SetCameraPanControl(int panKey); - - [DllImport(nativeLibName)] - public static extern void - SetCameraAltControl(int altKey); // Set camera alt key to combine with mouse movement (free camera) - - [DllImport(nativeLibName)] - public static extern void - SetCameraSmoothZoomControl(int szKey); // Set camera smooth zoom key to combine with mouse (free camera) - - [DllImport(nativeLibName)] - public static extern void SetCameraMoveControls(int frontKey, int backKey, int rightKey, int leftKey, int upKey, - int downKey); // Set camera move controls (1st person and 3rd person cameras) - - // module: shapes - - // Basic shapes drawing functions - [DllImport(nativeLibName)] - public static extern void DrawPixel(int posX, int posY, Color color); // Draw a pixel - - [DllImport(nativeLibName)] - public static extern void DrawPixelV(Vector2 position, Color color); // Draw a pixel (Vector version) - - [DllImport(nativeLibName)] - public static extern void - DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw a line - - [DllImport(nativeLibName)] - public static extern void - DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (Vector version) - - [DllImport(nativeLibName)] - public static extern void - DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line defining thickness - - [DllImport(nativeLibName)] - public static extern void - DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, - Color color); // Draw a line using cubic-bezier curves in-out - - [DllImport(nativeLibName)] - public static extern void - DrawCircle(int centerX, int centerY, float radius, Color color); // Draw a color-filled circle - - [DllImport(nativeLibName)] - public static extern void - DrawCircleGradient(int centerX, int centerY, float radius, Color color1, - Color color2); // Draw a gradient-filled circle - - [DllImport(nativeLibName)] - public static extern void - DrawCircleV(Vector2 center, float radius, Color color); // Draw a color-filled circle (Vector version) - - [DllImport(nativeLibName)] - public static extern void - DrawCircleLines(int centerX, int centerY, float radius, Color color); // Draw circle outline - - [DllImport(nativeLibName)] - public static extern void - DrawRectangle(int posX, int posY, int width, int height, Color color); // Draw a color-filled rectangle - - [DllImport(nativeLibName)] - public static extern void DrawRectangleRec(Rectangle rec, Color color); // Draw a color-filled rectangle - - [DllImport(nativeLibName)] - public static extern void - DrawRectanglePro(Rectangle rec, Vector2 origin, float rotation, - Color color); // Draw a color-filled rectangle with pro parameters - - [DllImport(nativeLibName)] - public static extern void DrawRectangleGradientV(int posX, int posY, int width, int height, Color color1, - Color color2); // Draw a vertical-gradient-filled rectangle - - [DllImport(nativeLibName)] - public static extern void DrawRectangleGradientH(int posX, int posY, int width, int height, Color color1, - Color color2); // Draw a horizontal-gradient-filled rectangle - - [DllImport(nativeLibName)] - public static extern void - DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, - Color col4); // Draw a gradient-filled rectangle with custom vertex colors - - [DllImport(nativeLibName)] - public static extern void - DrawRectangleV(Vector2 position, Vector2 size, - Color color); // Draw a color-filled rectangle (Vector version) - - [DllImport(nativeLibName)] - public static extern void - DrawRectangleLines(int posX, int posY, int width, int height, Color color); // Draw rectangle outline - - [DllImport(nativeLibName)] - public static extern void - DrawRectangleT(int posX, int posY, int width, int height, - Color color); // Draw rectangle using text character - - [DllImport(nativeLibName)] - public static extern void - DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw a color-filled triangle - - [DllImport(nativeLibName)] - public static extern void - DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline - - [DllImport(nativeLibName)] - public static extern void - DrawPoly(Vector2 center, int sides, float radius, float rotation, - Color color); // Draw a regular polygon (Vector version) - - [DllImport(nativeLibName)] - public static extern void - DrawPolyEx(Vector2[] points, int numPoints, Color color); // Draw a closed polygon defined by points - - [DllImport(nativeLibName)] - public static extern void DrawPolyExLines(Vector2[] points, int numPoints, Color color); // Draw polygon lines - - // Basic shapes collision detection functions - [DllImport(nativeLibName)] - public static extern bool - CheckCollisionRecs(Rectangle rec1, Rectangle rec2); // Check collision between two rectangles - - [DllImport(nativeLibName)] - public static extern bool - CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, - float radius2); // Check collision between two circles - - [DllImport(nativeLibName)] - public static extern bool - CheckCollisionCircleRec(Vector2 center, float radius, - Rectangle rec); // Check collision between circle and rectangle - - [DllImport(nativeLibName)] - public static extern Rectangle - GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision - - [DllImport(nativeLibName)] - public static extern bool - CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle - - [DllImport(nativeLibName)] - public static extern bool - CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius); // Check if point is inside circle - - [DllImport(nativeLibName)] - public static extern bool - CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, - Vector2 p3); // Check if point is inside a triangle - - // module: textures - - // Image/Texture2D data loading/unloading functions - [DllImport(nativeLibName)] - public static extern Image LoadImage(string fileName); // Load an image into CPU memory (RAM) - - [DllImport(nativeLibName)] - public static extern Image - LoadImageEx(Color[] pixels, int width, int height); // Load image data from Color array data (RGBA - 32bit) - - [DllImport(nativeLibName)] - public static extern Image - LoadImagePro(IntPtr data, int width, int height, int format); // Load image from raw data with parameters - - [DllImport(nativeLibName)] - public static extern Image - LoadImageRaw(string fileName, int width, int height, int format, - int headerSize); // Load image data from RAW file - - [DllImport(nativeLibName)] - public static extern Texture2D LoadTexture(string fileName); // Load an image as texture into GPU memory - - [DllImport(nativeLibName)] - public static extern Texture2D LoadTextureFromImage(Image image); // Load a texture from image data - - [DllImport(nativeLibName)] - public static extern RenderTexture2D - LoadRenderTexture(int width, int height); // Load a texture to be used for rendering - - [DllImport(nativeLibName)] - public static extern void UnloadImage(Image image); // Unload image from CPU memory (RAM) - - [DllImport(nativeLibName)] - public static extern void UnloadTexture(Texture2D texture); // Unload texture from GPU memory - - [DllImport(nativeLibName)] - public static extern void UnloadRenderTexture(RenderTexture2D target); // Unload render texture from GPU memory - - [DllImport(nativeLibName)] - public static extern Color[] GetImageData(Image image); // Get pixel data from image as a Color struct array - - [DllImport(nativeLibName)] - public static extern Image - GetTextureData(Texture2D texture); // Get pixel data from GPU texture and return an Image - - [DllImport(nativeLibName)] - public static extern void UpdateTexture(Texture2D texture, IntPtr pixels); // Update GPU texture with new data - - [DllImport(nativeLibName)] - public static extern void SaveImageAs(string fileName, Image image); // Save image to a PNG file - - // Image manipulation functions - - [DllImport(nativeLibName)] - public static extern void ImageToPOT(Image image, Color fillColor); // Convert image to POT (power-of-two) - - [DllImport(nativeLibName)] - public static extern void ImageFormat(Image image, int newFormat); // Convert image data to desired format - - [DllImport(nativeLibName)] - public static extern void ImageAlphaMask(Image image, Image alphaMask); // Apply alpha mask to image - - [DllImport(nativeLibName)] - public static extern void - ImageDither(Image image, int rBpp, int gBpp, int bBpp, - int aBpp); // Dither image data to 16bpp or lower (Floyd-Steinberg dithering) - - [DllImport(nativeLibName)] - public static extern Image ImageCopy(Image image); // Create an image duplicate (useful for transformations) - - [DllImport(nativeLibName)] - public static extern void ImageCrop( Image image, Rectangle crop); // Crop an image to a defined rectangle - - [DllImport(nativeLibName)] - public static extern void - ImageResize(ref Image image, int newWidth, int newHeight); // Resize and image (bilinear filtering) - - [DllImport(nativeLibName)] - public static extern void - ImageResizeNN(Image image, int newWidth, - int newHeight); // Resize and image (Nearest-Neighbor scaling algorithm) - - [DllImport(nativeLibName)] - public static extern Image - ImageText(string text, int fontSize, Color color); // Create an image from text (default font) - - [DllImport(nativeLibName)] - public static extern Image - ImageTextEx(Font font, string text, int fontSize, int spacing, - Color tint); // Create an image from text (custom sprite font) - - [DllImport(nativeLibName)] - public static extern void - ImageDraw(Image dst, Image src, Rectangle srcRec, - Rectangle dstRec); // Draw a source image within a destination image - - [DllImport(nativeLibName)] - public static extern void - ImageDrawText(Image dst, Vector2 position, string text, int fontSize, - Color color); // Draw text (default font) within an image (destination) - - [DllImport(nativeLibName)] - public static extern void ImageDrawTextEx(Image dst, Vector2 position, Font font, string text, - int fontSize, int spacing, Color color); // Draw text (custom sprite font) within image - - [DllImport(nativeLibName)] - public static extern void ImageFlipVertical(Image image); // Flip image vertically - - [DllImport(nativeLibName)] - public static extern void ImageFlipHorizontal(ref Image image); // Flip image horizontally - - [DllImport(nativeLibName)] - public static extern void ImageColorTint(Image image, Color color); // Modify image color: tint - - [DllImport(nativeLibName)] - public static extern void ImageColorInvert(Image image); // Modify image color: invert - - [DllImport(nativeLibName)] - public static extern void ImageColorGrayscale(Image image); // Modify bimage color: grayscale - - [DllImport(nativeLibName)] - public static extern void - ImageColorContrast(Image image, float contrast); // Modify image color: contrast (-100 to 100) - - [DllImport(nativeLibName)] - public static extern void - ImageColorBrightness(Image image, int brightness); // Modify image color: brightness (-255 to 255) - - // Image generation functions - [DllImport(nativeLibName)] - public static extern Image - GenImageGradientV(int width, int height, Color top, Color bottom); // Generate image: vertical gradient - - [DllImport(nativeLibName)] - public static extern Image - GenImageGradientH(int width, int height, Color left, Color right); // Generate image: horizontal gradient - - [DllImport(nativeLibName)] - public static extern Image GenImageGradientRadial(int width, int height, float density, Color inner, - Color outer); // Generate image: radial gradient - - [DllImport(nativeLibName)] - public static extern Image GenImageChecked(int width, int height, int checksX, int checksY, Color col1, - Color col2); // Generate image: checked - - [DllImport(nativeLibName)] - public static extern Image - GenImageWhiteNoise(int width, int height, float factor); // Generate image: white noise - - [DllImport(nativeLibName)] - public static extern Image - GenImagePerlinNoise(int width, int height, float scale); // Generate image: perlin noise - - [DllImport(nativeLibName)] - public static extern Image - GenImageCellular(int width, int height, - int tileSize); // Generate image: cellular algorithm. Bigger tileSize means bigger cells - - // Texture2D configuration functions - [DllImport(nativeLibName)] - public static extern void GenTextureMipmaps(Texture2D texture); // Generate GPU mipmaps for a texture - - [DllImport(nativeLibName)] - public static extern void - SetTextureFilter(Texture2D texture, int filterMode); // Set texture scaling filter mode - - [DllImport(nativeLibName)] - public static extern void SetTextureWrap(Texture2D texture, int wrapMode); // Set texture wrapping mode - - // Texture2D drawing functions - [DllImport(nativeLibName)] - public static extern void DrawTexture(Texture2D texture, int posX, int posY, Color tint); // Draw a Texture2D - - [DllImport(nativeLibName)] - public static extern void - DrawTextureV(Texture2D texture, Vector2 position, - Color tint); // Draw a Texture2D with position defined as Vector2 - - [DllImport(nativeLibName)] - public static extern void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, - Color tint); // Draw a Texture2D with extended parameters - - [DllImport(nativeLibName)] - public static extern void - DrawTextureRec(Texture2D texture, Rectangle sourceRec, Vector2 position, - Color tint); // Draw a part of a texture defined by a rectangle - - [DllImport(nativeLibName)] - public static extern void DrawTexturePro(Texture2D texture, Rectangle sourceRec, Rectangle destRec, - Vector2 origin, // Draw a part of a texture defined by a rectangle with 'pro' parameters - float rotation, Color tint); - - // module: text - - // Font loading/unloading functions - [DllImport(nativeLibName)] - public static extern Font GetDefaultFont(); // Get the default Font - - [DllImport(nativeLibName)] - public static extern Font LoadFont(string fileName); // Load a Font image into GPU memory - - [DllImport(nativeLibName)] - public static extern Font - LoadFontEx(string fileName, int fontSize, int numChars, - int fontChars); // Load a Font from TTF font with parameters - - [DllImport(nativeLibName)] - public static extern void UnloadFont(Font spriteFont); // Unload Font from GPU memory - - // Text drawing functions - [DllImport(nativeLibName)] - public static extern void DrawFPS(int posX, int posY); // Shows current FPS on top-left corner - - [DllImport(nativeLibName)] - public static extern void - DrawText(string text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) - - [DllImport(nativeLibName)] - public static extern void DrawTextEx(Font spriteFont, string text, Vector2 position, int fontSize, - int spacing, Color tint); // Draw text using Font and additional parameters - - // Text misc. functions - [DllImport(nativeLibName)] - public static extern int MeasureText(string text, int fontSize); // Measure string width for default font - - [DllImport(nativeLibName)] - public static extern Vector2 - MeasureTextEx(Font spriteFont, string text, int fontSize, - int spacing); // Measure string size for Font - - [DllImport(nativeLibName)] - public static extern string - FormatText(string text, object[] args); // Formatting of text with variables to 'embed' - - [DllImport(nativeLibName)] - public static extern string SubText(string text, int position, int length); // Get a piece of a text string - - // module: models - - // Basic geometric 3D shapes drawing functions - [DllImport(nativeLibName)] - public static extern void - DrawLine3D(Vector3 startPos, Vector3 endPos, Color color); // Draw a line in 3D world space - - [DllImport(nativeLibName)] - public static extern void DrawCircle3D(Vector3 center, float radius, Vector3 rotationAxis, float rotationAngle, - Color color); // Draw a circle in 3D world space - - [DllImport(nativeLibName)] - public static extern void - DrawCube(Vector3 position, float width, float height, float length, Color color); // Draw cube - - [DllImport(nativeLibName)] - public static extern void DrawCubeV(Vector3 position, Vector3 size, Color color); // Draw cube (Vector version) - - [DllImport(nativeLibName)] - public static extern void - DrawCubeWires(Vector3 position, float width, float height, float length, Color color); // Draw cube wires - - [DllImport(nativeLibName)] - public static extern void DrawCubeTexture(Texture2D texture, Vector3 position, float width, float height, - float length, Color color); // Draw cube textured - - [DllImport(nativeLibName)] - public static extern void DrawSphere(Vector3 centerPos, float radius, Color color); // Draw sphere - - [DllImport(nativeLibName)] - public static extern void - DrawSphereEx(Vector3 centerPos, float radius, int rings, int slices, - Color color); // Draw sphere with extended parameters - - [DllImport(nativeLibName)] - public static extern void - DrawSphereWires(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere wires - - [DllImport(nativeLibName)] - public static extern void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float height, - int slices, Color color); // Draw a cylinder/cone - - [DllImport(nativeLibName)] - public static extern void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, - int slices, Color color); // Draw a cylinder/cone wires - - [DllImport(nativeLibName)] - public static extern void DrawPlane(Vector3 centerPos, Vector2 size, Color color); // Draw a plane XZ - - [DllImport(nativeLibName)] - public static extern void DrawRay(Ray ray, Color color); // Draw a ray line - - [DllImport(nativeLibName)] - public static extern void DrawGrid(int slices, float spacing); // Draw a grid (centered at (0, 0, 0)) - - [DllImport(nativeLibName)] - public static extern void DrawGizmo(Vector3 position); // Draw simple gizmo - - // Model loading/unloading functions - [DllImport(nativeLibName)] - public static extern Model LoadModel(string fileName); // Load model from files (mesh and material) - - [DllImport(nativeLibName)] - public static extern Model LoadModelFromMesh(Mesh mesh); // Load model from generated mesh - - [DllImport(nativeLibName)] - public static extern void UnloadModel(Model model); // Unload model from memory (RAM and/or VRAM) - - // Mesh loading/unloading functions - [DllImport(nativeLibName)] - public static extern Mesh LoadMesh(string fileName); // Load mesh from file - - [DllImport(nativeLibName)] - public static extern void UnloadMesh(Mesh mesh); // Unload mesh from memory (RAM and/or VRAM) - - // Mesh generation functions - [DllImport(nativeLibName)] - public static extern Mesh - GenMeshPlane(float width, float length, int resX, int resZ); // Generate plane mesh (with subdivisions) - - [DllImport(nativeLibName)] - public static extern Mesh GenMeshCube(float width, float height, float length); // Generate cuboid mesh - - [DllImport(nativeLibName)] - public static extern Mesh - GenMeshSphere(float radius, int rings, int slices); // Generate sphere mesh (standard sphere) - - [DllImport(nativeLibName)] - public static extern Mesh - GenMeshHemiSphere(float radius, int rings, int slices); // Generate half-sphere mesh (no bottom cap) - - [DllImport(nativeLibName)] - public static extern Mesh GenMeshCylinder(float radius, float height, int slices); // Generate cylinder mesh - - [DllImport(nativeLibName)] - public static extern Mesh GenMeshTorus(float radius, float size, int radSeg, int sides); // Generate torus mesh - - [DllImport(nativeLibName)] - public static extern Mesh - GenMeshKnot(float radius, float size, int radSeg, int sides); // Generate trefoil knot mesh - - [DllImport(nativeLibName)] - public static extern Mesh - GenMeshHeightmap(Image heightmap, Vector3 size); // Generate heightmap mesh from image data - - [DllImport(nativeLibName)] - public static extern Mesh - GenMeshCubicmap(Image cubicmap, Vector3 cubeSize); // Generate cubes-based map mesh from image data - - // Material loading/unloading functions - [DllImport(nativeLibName)] - public static extern Material LoadMaterial(string fileName); // Load material from file - - [DllImport(nativeLibName)] - public static extern Material - LoadMaterialDefault(); // Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) - - [DllImport(nativeLibName)] - public static extern void UnloadMaterial(Material material); // Unload material from GPU memory (VRAM) - - // Model drawing functions - [DllImport(nativeLibName)] - public static extern void - DrawModel(Model model, Vector3 position, float scale, Color tint); // Draw a model (with texture if set) - - [DllImport(nativeLibName)] - public static extern void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, - Vector3 scale, Color tint); // Draw a model with extended parameters - - [DllImport(nativeLibName)] - public static extern void - DrawModelWires(Model model, Vector3 position, float scale, - Color tint); // Draw a model wires (with texture if set) - - [DllImport(nativeLibName)] - public static extern void DrawModelWiresEx(Model model, Vector3 position, Vector3 rotationAxis, - float rotationAngle, Vector3 scale, Color tint); // Draw a model wires - - [DllImport(nativeLibName)] - public static extern void DrawBoundingBox(BoundingBox box, Color color); // Draw bounding box (wires) - - [DllImport(nativeLibName)] - public static extern void DrawBillboard(Camera3D camera3D, Texture2D texture, Vector3 center, float size, - Color tint); // Draw a billboard texture - - [DllImport(nativeLibName)] - public static extern void DrawBillboardRec(Camera3D camera3D, Texture2D texture, Rectangle sourceRec, - Vector3 center, float size, Color tint); // Draw a billboard texture defined by sourceRec - - // Collision detection functions - [DllImport(nativeLibName)] - public static extern bool - CheckCollisionSpheres(Vector3 centerA, float radiusA, Vector3 centerB, - float radiusB); // Detect collision between two spheres - - [DllImport(nativeLibName)] - public static extern bool CheckCollisionBoxes(Vector3 minBBox1, Vector3 maxBBox1, Vector3 minBBox2, - Vector3 maxBBox2); // Detect collision between two boxes - - [DllImport(nativeLibName)] - public static extern bool CheckCollisionBoxSphere(Vector3 minBBox, Vector3 maxBBox, Vector3 centerSphere, - float radiusSphere); // Detect collision between box and sphere - - [DllImport(nativeLibName)] - public static extern bool - CheckCollisionRaySphere(Ray ray, Vector3 spherePosition, - float sphereRadius); // Detect collision between ray and sphere - - [DllImport(nativeLibName)] - public static extern bool CheckCollisionRaySphereEx(Ray ray, Vector3 spherePosition, float sphereRadius, - ref Vector3 collisionPoint); // Detect collision between ray and sphere ex. - - [DllImport(nativeLibName)] - public static extern bool - CheckCollisionRayBox(Ray ray, Vector3 minBBox, Vector3 maxBBox); // Detect collision between ray and box - - [DllImport(nativeLibName)] - public static extern BoundingBox CalculateBoundingBox(Mesh mesh); // Calculate mesh bounding box limits - - [DllImport(nativeLibName)] - public static extern RayHitInfo - GetCollisionRayMesh(Ray ray, ref Mesh mesh); // Get collision info between ray and mesh - - [DllImport(nativeLibName)] - public static extern RayHitInfo - GetCollisionRayTriangle(Ray ray, Vector3 p1, Vector3 p2, - Vector3 p3); // Get collision info between ray and triangle - - [DllImport(nativeLibName)] - public static extern RayHitInfo - GetCollisionRayGround(Ray ray, - float groundHeight); // Get collision info between ray and ground plane (Y-normal plane) - - // module: shaders (rlgl) - - // Shader loading/unloading functions - [DllImport(nativeLibName)] - public static extern string LoadText(string fileName); // Load chars array from text file - - [DllImport(nativeLibName)] - public static extern Shader - LoadShader(string vsFileName, string fsFileName); // Load a custom shader and bind default locations - - [DllImport(nativeLibName)] - public static extern void UnloadShader(Shader shader); // Unload a custom shader from memory - - [DllImport(nativeLibName)] - public static extern Shader GetDefaultShader(); // Get default shader - - [DllImport(nativeLibName)] - public static extern Texture2D GetDefaultTexture(); // Get default texture - - // Shader access functions - [DllImport(nativeLibName)] - public static extern int GetShaderLocation(Shader shader, string uniformName); // Get shader uniform location - - [DllImport(nativeLibName)] - public static extern void - SetShaderValue(Shader shader, int uniformLoc, float[] value, int size); // Set shader uniform value (float) - - [DllImport(nativeLibName)] - public static extern void - SetShaderValuei(Shader shader, int uniformLoc, int[] value, int size); // Set shader uniform value (int) - - [DllImport(nativeLibName)] - public static extern void - SetShaderValueMatrix(Shader shader, int uniformLoc, Matrix mat); // Set shader uniform value (matrix 4x4) - - [DllImport(nativeLibName)] - public static extern void - SetMatrixProjection(Matrix proj); // Set a custom projection matrix (replaces internal projection matrix) - - [DllImport(nativeLibName)] - public static extern void - SetMatrixModelview(Matrix view); // Set a custom modelview matrix (replaces internal modelview matrix) - - // Shading beegin/end functions - [DllImport(nativeLibName)] - public static extern void BeginShaderMode(Shader shader); // Begin custom shader drawing - - [DllImport(nativeLibName)] - public static extern void EndShaderMode(); // End custom shader drawing (use default shader) - - [DllImport(nativeLibName)] - public static extern void BeginBlendMode(int mode); // Begin blending mode (alpha, additive, multiplied) - - [DllImport(nativeLibName)] - public static extern void EndBlendMode(); // End blending mode (reset to default: alpha blending) - - // VR control functions - [DllImport(nativeLibName)] - public static extern VrDeviceInfo - GetVrDeviceInfo(int vrDeviceType); // Get VR device information for some standard devices - - [DllImport(nativeLibName)] - public static extern void - InitVrSimulator(VrDeviceInfo info); // Init VR simulator for selected device parameters - - [DllImport(nativeLibName)] - public static extern void CloseVrSimulator(); // Close VR simulator for current device - - [DllImport(nativeLibName)] - public static extern bool IsVrSimulatorReady(); // Detect if VR simulator is ready - - [DllImport(nativeLibName)] - public static extern void - UpdateVrTracking(Camera3D camera3D); // Update VR tracking (position and orientation) and camera - - [DllImport(nativeLibName)] - public static extern void ToggleVrMode(); // Enable/Disable VR experience - - [DllImport(nativeLibName)] - public static extern void BeginVrDrawing(); // Begin VR simulator stereo rendering - - [DllImport(nativeLibName)] - public static extern void EndVrDrawing(); // End VR simulator stereo rendering - - //module: audio - - // Audio device management functions - [DllImport(nativeLibName)] - public static extern void InitAudioDevice(); // Initialize audio device and context - - [DllImport(nativeLibName)] - public static extern void CloseAudioDevice(); // Close the audio device and context (and music stream) - - [DllImport(nativeLibName)] - public static extern bool IsAudioDeviceReady(); // Check if audio device is ready - - [DllImport(nativeLibName)] - public static extern void SetMasterVolume(float volume); // Set master volume (listener) - - // Wave/Sound loading/unloading functions - [DllImport(nativeLibName)] - public static extern Wave LoadWave(string fileName); // Load wave data from file into RAM - - [DllImport(nativeLibName)] - public static extern Wave LoadWaveEx(float[] data, int sampleCount, int sampleRate, int sampleSize, - int channels); // Load wave data from float array data (32bit) - - [DllImport(nativeLibName)] - public static extern Sound LoadSound(string fileName); // Load sound to memory - - [DllImport(nativeLibName)] - public static extern Sound LoadSoundFromWave(Wave wave); // Load sound to memory from wave data - - [DllImport(nativeLibName)] - public static extern void - UpdateSound(Sound sound, IntPtr data, int numSamples); // Update sound buffer with new data - - [DllImport(nativeLibName)] - public static extern void UnloadWave(Wave wave); // Unload wave data - - [DllImport(nativeLibName)] - public static extern void UnloadSound(Sound sound); // Unload sound - - // Wave/Sound management functions - - [DllImport(nativeLibName)] - public static extern void PlaySound(Sound sound); // Play a sound - - [DllImport(nativeLibName)] - public static extern void PauseSound(Sound sound); // Pause a sound - - [DllImport(nativeLibName)] - public static extern void ResumeSound(Sound sound); // Resume a paused sound - - [DllImport(nativeLibName)] - public static extern void StopSound(Sound sound); // Stop playing a sound - - [DllImport(nativeLibName)] - public static extern bool IsSoundPlaying(Sound sound); // Check if a sound is currently playing - - [DllImport(nativeLibName)] - public static extern void - SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level) - - [DllImport(nativeLibName)] - public static extern void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) - - [DllImport(nativeLibName)] - public static extern void - WaveFormat(Wave wave, int sampleRate, int sampleSize, - int channels); // Convert wave data to desired format - - [DllImport(nativeLibName)] - public static extern Wave WaveCopy(Wave wave); // Copy a wave to a new wave - - [DllImport(nativeLibName)] - public static extern void - WaveCrop(Wave wave, int initSample, int finalSample); // Crop a wave to defined samples range - - [DllImport(nativeLibName)] - public static extern float[] GetWaveData(Wave wave); // Get samples data from wave as a floats array - - // Music management functions - [DllImport(nativeLibName)] - public static extern IntPtr LoadMusicStream(string fileName); // Load music stream from file - - [DllImport(nativeLibName)] - public static extern void UnloadMusicStream(IntPtr music); // Unload music stream - - [DllImport(nativeLibName)] - public static extern void PlayMusicStream(IntPtr music); // Start music playing - - [DllImport(nativeLibName)] - public static extern void UpdateMusicStream(IntPtr music); // Updates buffers for music streaming - - [DllImport(nativeLibName)] - public static extern void StopMusicStream(IntPtr music); // Stop music playing - - [DllImport(nativeLibName)] - public static extern void PauseMusicStream(IntPtr music); // Pause music playing - - [DllImport(nativeLibName)] - public static extern void ResumeMusicStream(IntPtr music); // Resume playing paused music - - [DllImport(nativeLibName)] - public static extern bool IsMusicPlaying(IntPtr music); // Check if music is playing - - [DllImport(nativeLibName)] - public static extern void SetMusicVolume(IntPtr music, float volume); // Set volume for music (1.0 is max level) - - [DllImport(nativeLibName)] - public static extern void SetMusicPitch(IntPtr music, float pitch); // Set pitch for a music (1.0 is base level) - - [DllImport(nativeLibName)] - public static extern void SetMusicLoopCount(IntPtr music, float count); // Set music loop count (loop repeats) - - [DllImport(nativeLibName)] - public static extern float GetMusicTimeLength(IntPtr music); // Get music time length (in seconds) - - [DllImport(nativeLibName)] - public static extern float GetMusicTimePlayed(IntPtr music); // Get current music time played (in seconds) - - // AudioStream management functions - [DllImport(nativeLibName)] - public static extern AudioStream - InitAudioStream(uint sampleRate, uint sampleSize, - uint channels); // Init audio stream (to stream raw audio pcm data) - - [DllImport(nativeLibName)] - public static extern void - UpdateAudioStream(AudioStream stream, IntPtr data, int numSamples); // Update audio stream buffers with data - - [DllImport(nativeLibName)] - public static extern void CloseAudioStream(AudioStream stream); // Close audio stream and free memory - - [DllImport(nativeLibName)] - public static extern bool - IsAudioBufferProcessed(AudioStream stream); // Check if any audio stream buffers requires refill - - [DllImport(nativeLibName)] - public static extern void PlayAudioStream(AudioStream stream); // Play audio stream - - [DllImport(nativeLibName)] - public static extern void PauseAudioStream(AudioStream stream); // Pause audio stream - - [DllImport(nativeLibName)] - public static extern void ResumeAudioStream(AudioStream stream); // Resume audio stream - - [DllImport(nativeLibName)] - public static extern void StopAudioStream(AudioStream stream); // Stop audio stream - - #endregion - } -} \ No newline at end of file diff --git a/ExampleApplication/Raylib.cs b/ExampleApplication/Raylib.cs new file mode 100644 index 0000000..0bbcd46 --- /dev/null +++ b/ExampleApplication/Raylib.cs @@ -0,0 +1,1654 @@ + +using System; +using System.Runtime.InteropServices; + +namespace Raylib +{ + #region Raylib-cs Enums + + public enum LogType + { + LOG_INFO = 1, + LOG_WARNING = 2, + LOG_ERROR = 4, + LOG_DEBUG = 8, + LOG_OTHER = 16 + } + + public enum ShaderLocationIndex + { + LOC_VERTEX_POSITION = 0, + LOC_VERTEX_TEXCOORD01 = 1, + LOC_VERTEX_TEXCOORD02 = 2, + LOC_VERTEX_NORMAL = 3, + LOC_VERTEX_TANGENT = 4, + LOC_VERTEX_COLOR = 5, + LOC_MATRIX_MVP = 6, + LOC_MATRIX_MODEL = 7, + LOC_MATRIX_VIEW = 8, + LOC_MATRIX_PROJECTION = 9, + LOC_VECTOR_VIEW = 10, + LOC_COLOR_DIFFUSE = 11, + LOC_COLOR_SPECULAR = 12, + LOC_COLOR_AMBIENT = 13, + LOC_MAP_ALBEDO = 14, + LOC_MAP_METALNESS = 15, + LOC_MAP_NORMAL = 16, + LOC_MAP_ROUGHNESS = 17, + LOC_MAP_OCCLUSION = 18, + LOC_MAP_EMISSION = 19, + LOC_MAP_HEIGHT = 20, + LOC_MAP_CUBEMAP = 21, + LOC_MAP_IRRADIANCE = 22, + LOC_MAP_PREFILTER = 23, + LOC_MAP_BRDF = 24 + } + + public enum TexmapIndex + { + MAP_ALBEDO = 0, + MAP_METALNESS = 1, + MAP_NORMAL = 2, + MAP_ROUGHNESS = 3, + MAP_OCCLUSION = 4, + MAP_EMISSION = 5, + MAP_HEIGHT = 6, + MAP_CUBEMAP = 7, + MAP_IRRADIANCE = 8, + MAP_PREFILTER = 9, + MAP_BRDF = 10 + } + + public enum PixelFormat + { + UNCOMPRESSED_GRAYSCALE = 1, + UNCOMPRESSED_GRAY_ALPHA = 2, + UNCOMPRESSED_R5G6B5 = 3, + UNCOMPRESSED_R8G8B8 = 4, + UNCOMPRESSED_R5G5B5A1 = 5, + UNCOMPRESSED_R4G4B4A4 = 6, + UNCOMPRESSED_R8G8B8A8 = 7, + UNCOMPRESSED_R32 = 8, + UNCOMPRESSED_R32G32B32 = 9, + UNCOMPRESSED_R32G32B32A32 = 10, + COMPRESSED_DXT1RGB = 11, + COMPRESSED_DXT1RGBA = 12, + COMPRESSED_DXT3RGBA = 13, + COMPRESSED_DXT5RGBA = 14, + COMPRESSED_ETC1RGB = 15, + COMPRESSED_ETC2RGB = 16, + COMPRESSED_ETC2EAC_RGBA = 17, + COMPRESSED_PVRT_RGB = 18, + COMPRESSED_PVRT_RGBA = 19, + COMPRESSED_ASTC_4x4RGBA = 20, + COMPRESSED_ASTC_8x8RGBA = 21 + } + + public enum TextureFilterMode + { + FILTER_POINT = 0, + FILTER_BILINEAR = 1, + FILTER_TRILINEAR = 2, + FILTER_ANISOTROPIC_4X = 3, + FILTER_ANISOTROPIC_8X = 4, + FILTER_ANISOTROPIC_16X = 5 + } + + public enum TextureWrapMode + { + WRAP_REPEAT = 0, + WRAP_CLAMP = 1, + WRAP_MIRROR = 2 + } + + public enum BlendMode + { + BLEND_ALPHA = 0, + BLEND_ADDITIVE = 1, + BLEND_MULTIPLIED = 2 + } + + [Flags] + public enum Gestures + { + GESTURE_NONE = 0, + GESTURE_TAP = 1, + GESTURE_DOUBLETAP = 2, + GESTURE_HOLD = 4, + GESTURE_DRAG = 8, + GESTURE_SWIPE_RIGHT = 16, + GESTURE_SWIPE_LEFT = 32, + GESTURE_SWIPE_UP = 64, + GESTURE_SWIPE_DOWN = 128, + GESTURE_PINCH_IN = 256, + GESTURE_PINCH_OUT = 512 + } + + public enum CameraMode + { + CAMERA_CUSTOM = 0, + CAMERA_FREE = 1, + CAMERA_ORBITAL = 2, + CAMERA_FIRST_PERSON = 3, + CAMERA_THIRD_PERSON = 4 + } + + public enum CameraType + { + CAMERA_PERSPECTIVE = 0, + CAMERA_ORTHOGRAPHIC = 1 + } + + public enum VrDeviceType + { + HMD_DEFAULT_DEVICE = 0, + HMD_OCULUS_RIFT_DK2 = 1, + HMD_OCULUS_RIFT_CV1 = 2, + HMD_OCULUS_GO = 3, + HMD_VALVE_HTC_VIVE = 4, + HMD_SONY_PSVR = 5 + } + + [Flags] + public enum Flag + { + SHOW_LOGO = 1, + FULLSCREEN_MODE = 2, + WINDOW_RESIZABLE = 4, + WINDOW_UNDECORATED = 8, + WINDOW_TRANSPARENT = 16, + MSAA_4X_HINT = 32, + VSYNC_HINT = 64 + } + + // Keyboard Function Keys + public enum Key + { + SPACE = 32, + ESCAPE = 256, + ENTER = 257, + TAB = 258, + BACKSPACE = 259, + INSERT = 260, + DELETE = 261, + RIGHT = 262, + LEFT = 263, + DOWN = 264, + UP = 265, + PAGE_UP = 266, + PAGE_DOWN = 267, + HOME = 268, + END = 269, + CAPS_LOCK = 280, + SCROLL_LOCK = 281, + NUM_LOCK = 282, + PRINT_SCREEN = 283, + PAUSE = 284, + F1 = 290, + F2 = 291, + F3 = 292, + F4 = 293, + F5 = 294, + F6 = 295, + F7 = 296, + F8 = 297, + F9 = 298, + F10 = 299, + F11 = 300, + F12 = 301, + LEFT_SHIFT = 340, + LEFT_CONTROL = 341, + LEFT_ALT = 342, + RIGHT_SHIFT = 344, + RIGHT_CONTROL = 345, + RIGHT_ALT = 346, + GRAVE = 96, + SLASH = 47, + BACKSLASH = 92, + + // Keyboard Alpha Numeric Keys + ZERO = 48, + ONE = 49, + TWO = 50, + THREE = 51, + FOUR = 52, + FIVE = 53, + SIX = 54, + SEVEN = 55, + EIGHT = 56, + NINE = 57, + A = 65, + B = 66, + C = 67, + D = 68, + E = 69, + F = 70, + G = 71, + H = 72, + I = 73, + J = 74, + K = 75, + L = 76, + M = 77, + N = 78, + O = 79, + P = 80, + Q = 81, + R = 82, + S = 83, + T = 84, + U = 85, + V = 86, + W = 87, + X = 88, + Y = 89, + Z = 90, + + // Android Physical Buttons + BACK = 4, + MENU = 82, + VOLUME_UP = 24, + VOLUME_DOWN = 25 + } + + // Mouse Buttons + public enum Mouse + { + LEFT_BUTTON = 0, + RIGHT_BUTTON = 1, + MIDDLE_BUTTON = 2 + } + + public enum Gamepad + { + PLAYER1 = 0, + PLAYER2 = 1, + PLAYER3 = 2, + PLAYER4 = 3, + PS3BUTTON_TRIANGLE = 0, + PS3BUTTON_CIRCLE = 1, + PS3BUTTON_CROSS = 2, + PS3BUTTON_SQUARE = 3, + PS3BUTTON_L1 = 6, + PS3BUTTON_R1 = 7, + PS3BUTTON_L2 = 4, + PS3BUTTON_R2 = 5, + PS3BUTTON_START = 8, + PS3BUTTON_SELECT = 9, + PS3BUTTON_UP = 24, + PS3BUTTON_RIGHT = 25, + PS3BUTTON_DOWN = 26, + PS3BUTTON_LEFT = 27, + PS3BUTTON_PS = 12, + PS3AXIS_LEFT_X = 0, + PS3AXIS_LEFT_Y = 1, + PS3AXIS_RIGHT_X = 2, + PS3AXIS_RIGHT_Y = 5, + PS3AXIS_L2 = 3, + PS3AXIS_R2 = 4, + XBOX_BUTTON_A = 0, + XBOX_BUTTON_B = 1, + XBOX_BUTTON_X = 2, + XBOX_BUTTON_Y = 3, + XBOX_BUTTON_LB = 4, + XBOX_BUTTON_RB = 5, + XBOX_BUTTON_SELECT = 6, + XBOX_BUTTON_START = 7, + XBOX_BUTTON_UP = 10, + XBOX_BUTTON_RIGHT = 11, + XBOX_BUTTON_DOWN = 12, + XBOX_BUTTON_LEFT = 13, + XBOX_BUTTON_HOME = 8, + ANDROID_DPAD_UP = 19, + ANDROID_DPAD_DOWN = 20, + ANDROID_DPAD_LEFT = 21, + ANDROID_DPAD_RIGHT = 22, + ANDROID_DPAD_CENTER = 23, + ANDROID_BUTTON_A = 96, + ANDROID_BUTTON_B = 97, + ANDROID_BUTTON_C = 98, + ANDROID_BUTTON_X = 99, + ANDROID_BUTTON_Y = 100, + ANDROID_BUTTON_Z = 101, + ANDROID_BUTTON_L1 = 102, + ANDROID_BUTTON_R1 = 103, + ANDROID_BUTTON_L2 = 104, + ANDROID_BUTTON_R2 = 105, + XBOX_AXIS_LEFT_X = 0, + XBOX_AXIS_LEFT_Y = 1, + XBOX_AXIS_RIGHT_X = 2, + XBOX_AXIS_RIGHT_Y = 3, + XBOX_AXIS_LT = 4, + XBOX_AXIS_RT = 5 + } + + #endregion + + #region Raylib-cs Types + + // Color type, RGBA (32bit) + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct Color + { + public byte r; + public byte g; + public byte b; + public byte a; + + public Color(byte r, byte g, byte b, byte a) + { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + } + + // Rectangle type + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct Rectangle + { + public float x; + public float y; + public float width; + public float height; + + public Rectangle(float x, float y, float width, float height) + { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + } + } + + // Image type, bpp always RGBA (32bit) + // NOTE: Data stored in CPU memory (RAM) + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct Image + { + public IntPtr data; // Image raw data + public int width; // Image base width + public int height; // Image base height + public int mipmaps; // Mipmap levels, 1 by default + public int format; // Data format (PixelFormat type) + } + + // Texture2D type + // NOTE: Data stored in GPU memory + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct Texture2D + { + public uint id; // OpenGL texture id + public int width; // Texture base width + public int height; // Texture base height + public int mipmaps; // Mipmap levels, 1 by default + public int format; // Data format (PixelFormat type) + } + + // RenderTexture2D type, for texture rendering + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct RenderTexture2D + { + public uint id; // OpenGL Framebuffer Object (FBO) id + public Texture2D texture; // Color buffer attachment texture + public Texture2D depth; // Depth buffer attachment texture + } + + // RenderTexture type, same as RenderTexture2D + // typedef RenderTexture2D RenderTexture; + + // Font character info + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct CharInfo + { + public int value; // Character value (Unicode) + public Rectangle rec; // Character rectangle in sprite font + public int offsetX; // Character offset X when drawing + public int offsetY; // Character offset Y when drawing + public int advanceX; // Character advance position X + public byte[] data; // Character pixel data (grayscale) + } + + // Font type, includes texture and charSet array data + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct Font + { + public Texture2D texture; // Font texture + public int baseSize; // Base size (default chars height) + public int charsCount; // Number of characters + public CharInfo[] chars; // Characters info data + } + + // Camera type, defines a camera position/orientation in 3d space + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct Camera3D + { + public Vector3 position; // Camera position + public Vector3 target; // Camera target it looks-at + public Vector3 up; // Camera up vector (rotation over its axis) + + public float fovy; // Camera field-of-view apperture in Y (degrees) in perspective, used as near plane width in orthographic + + public CameraType type; // Camera type, defines projection type: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC + + public Camera3D(Vector3 position, Vector3 target, Vector3 up, float fovy = 90, + CameraType type = CameraType.CAMERA_PERSPECTIVE) + { + this.position = position; + this.target = target; + this.up = up; + this.fovy = fovy; + this.type = type; + } + } + + // Camera2D type, defines a 2d camera + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct Camera2D + { + public Vector2 offset; // Camera offset (displacement from target) + public Vector2 target; // Camera target (rotation and zoom origin) + public float rotation; // Camera rotation in degrees + public float zoom; // Camera zoom (scaling), should be 1.0f by default + } + + // Bounding box type + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct BoundingBox + { + public Vector3 min; // Minimum vertex box-corner + public Vector3 max; // Maximum vertex box-corner + } + + // Vertex data definning a mesh + // NOTE: Data stored in CPU memory (and GPU) + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct Mesh + { + public int vertexCount; // Number of vertices stored in arrays + public int triangleCount; // Number of triangles stored (indexed or not) + + public float[] vertices; // Vertex position (XYZ - 3 components per vertex) (shader-location = 0) + public float[] texcoords; // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) + public float[] texcoords2; // Vertex second texture coordinates (useful for lightmaps) (shader-location = 5) + public float[] normals; // Vertex normals (XYZ - 3 components per vertex) (shader-location = 2) + public float[] tangents; // Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4) + public byte[] colors; // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3) + public ushort[] indices; // Vertex indices (in case vertex data comes indexed) + + public uint vaoId; // OpenGL Vertex Array Object id + public unsafe fixed uint vboId[7]; // OpenGL Vertex Buffer Objects id (7 types of vertex data) + } + + // Shader type (generic) + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public unsafe struct Shader + { + public uint id; // Shader program id + public fixed int locs[rl.MAX_SHADER_LOCATIONS]; // Shader locations array + } + + // Material texture map + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct MaterialMap + { + public Texture2D texture; // Material map texture + public Color color; // Material map color + public float value; // Material map value + } + + // Material type (generic) + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct Material + { + public Shader shader; // Material shader + // public MaterialMap[] maps = new MaterialMap[rl.MAX_MATERIAL_MAPS]; // Material maps + public float[] param; // Material generic parameters (if required) + } + + // Model type + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct Model + { + public Mesh mesh; // Vertex data buffers (RAM and VRAM) + public Matrix transform; // Local transform matrix + public Material material; // Shader and textures data + } + + // Ray type (useful for raycast) + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct Ray + { + public Vector3 position; // Ray position (origin) + public Vector3 direction; // Ray direction + + public Ray(Vector3 position, Vector3 direction) + { + this.position = position; + this.direction = direction; + } + } + + // Raycast hit information + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct RayHitInfo + { + public bool hit; // Did the ray hit something? + public float distance; // Distance to nearest hit + public Vector3 position; // Position of nearest hit + public Vector3 normal; // Surface normal of hit + } + + // Wave type, defines audio wave data + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct Wave + { + public uint sampleCount; // Number of samples + public uint sampleRate; // Frequency (samples per second) + public uint sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported) + public uint channels; // Number of channels (1-mono, 2-stereo) + public IntPtr data; // Buffer data pointer + } + + // Sound source type + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct Sound + { + public IntPtr audioBuffer; // Pointer to internal data used by the audio system + public uint source; // Audio source id + public uint buffer; // Audio buffer id + public int format; // Audio format specifier + } + + // Audio stream type + // NOTE: Useful to create custom audio streams not bound to a specific file + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public class AudioStream + { + public uint sampleRate; // Frequency (samples per second) + public uint sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported) + public uint channels; // Number of channels (1-mono, 2-stereo) + public IntPtr audioBuffer; // Pointer to internal data used by the audio system. + public int format; // Audio format specifier + + public uint source; // Audio source id + public uint[] buffers = new uint[2]; // Audio buffers (double buffering) + } + + // Head-Mounted-Display device parameters + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public class VrDeviceInfo + { + public int hResolution; // HMD horizontal resolution in pixels + public int vResolution; // HMD vertical resolution in pixels + public float hScreenSize; // HMD horizontal size in meters + public float vScreenSize; // HMD vertical size in meters + public float vScreenCenter; // HMD screen center in meters + public float eyeToScreenDistance; // HMD distance between eye and display in meters + public float lensSeparationDistance; // HMD lens separation distance in meters + + public float interpupillaryDistance; // HMD IPD (distance between pupils) in meters + public float[] lensDistortionValues = new float[4]; // HMD lens distortion constant parameters + public float[] chromaAbCorrection = new float[4]; // HMD chromatic aberration correction parameters + } + + #endregion + + public static partial class rl + { + #region Raylib-cs Variables + + // Used by DllImport to load the native library. + public const string nativeLibName = "raylib.dll"; + public const int MAX_SHADER_LOCATIONS = 32; + public const int MAX_MATERIAL_MAPS = 12; + + // colors + + // Custom raylib color palette for amazing visuals + public static Color LIGHTGRAY = new Color(200, 200, 200, 255); // Light Gray + public static Color GRAY = new Color(130, 130, 130, 255); // Gray + public static Color DARKGRAY = new Color(80, 80, 80, 255); // Dark Gray + public static Color YELLOW = new Color(253, 249, 0, 255); // Yellow + public static Color GOLD = new Color(255, 203, 0, 255); // Gold + public static Color ORANGE = new Color(255, 161, 0, 255); // Orange + public static Color PINK = new Color(255, 109, 194, 255); // Pink + public static Color RED = new Color(230, 41, 55, 255); // Red + public static Color MAROON = new Color(190, 33, 55, 255); // Maroon + public static Color GREEN = new Color(0, 228, 48, 255); // Green + public static Color LIME = new Color(0, 158, 47, 255); // Lime + public static Color DARKGREEN = new Color(0, 117, 44, 255); // Dark Green + public static Color SKYBLUE = new Color(102, 191, 255, 255); // Sky Blue + public static Color BLUE = new Color(0, 121, 241, 255); // Blue + public static Color DARKBLUE = new Color(0, 82, 172, 255); // Dark Blue + public static Color PURPLE = new Color(200, 122, 255, 255); // Purple + public static Color VIOLET = new Color(135, 60, 190, 255); // Violet + public static Color DARKPURPLE = new Color(112, 31, 126, 255); // Dark Purple + public static Color BEIGE = new Color(211, 176, 131, 255); // Beige + public static Color BROWN = new Color(127, 106, 79, 255); // Brown + public static Color DARKBROWN = new Color(76, 63, 47, 255); // Dark Brown + public static Color WHITE = new Color(255, 255, 255, 255); // White + public static Color BLACK = new Color(0, 0, 0, 255); // Black + public static Color BLANK = new Color(0, 0, 0, 0); // Transparent + public static Color MAGENTA = new Color(255, 0, 255, 255); // Magenta + public static Color RAYWHITE = new Color(245, 245, 245, 255); // Ray White + + #endregion + + #region Raylib-cs Functions + + [DllImport(nativeLibName)] + public static extern IntPtr InitWindow(int width, int height, string title); // Initialize window and OpenGL context + + [DllImport(nativeLibName)] + public static extern void CloseWindow(); // Close window and unload OpenGL context + + [DllImport(nativeLibName)] + public static extern bool IsWindowReady(); // Check if window has been initialized successfully + + [DllImport(nativeLibName)] + public static extern bool WindowShouldClose(); // Check if KEY_ESCAPE pressed or Close icon pressed + + [DllImport(nativeLibName)] + public static extern bool IsWindowMinimized(); // Check if window has been minimized (or lost focus) + + [DllImport(nativeLibName)] + public static extern void ToggleFullscreen(); // Toggle fullscreen mode (only PLATFORM_DESKTOP) + + [DllImport(nativeLibName)] + public static extern void SetWindowIcon(Image image); // Set icon for window (only PLATFORM_DESKTOP) + + [DllImport(nativeLibName)] + public static extern void SetWindowTitle(string title); // Set title for window (only PLATFORM_DESKTOP) + + [DllImport(nativeLibName)] + public static extern void SetWindowPosition(int x, int y); // Set window position on screen (only PLATFORM_DESKTOP) + + [DllImport(nativeLibName)] + public static extern void SetWindowMonitor(int monitor); // Set monitor for the current window (fullscreen mode) + + [DllImport(nativeLibName)] + public static extern void SetWindowMinSize(int width, int height); // Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) + + [DllImport(nativeLibName)] + public static extern void SetWindowSize(int width, int height); // Set window dimensions + + [DllImport(nativeLibName)] + public static extern int GetScreenWidth(); // Get current screen width + + [DllImport(nativeLibName)] + public static extern int GetScreenHeight(); // Get current screen height + + [DllImport(nativeLibName)] + public static extern string GetClipboard(); // Get current clipboard text + + [DllImport(nativeLibName)] + public static extern void SetClipboard(string text); // Set current clipboard text + + [DllImport(nativeLibName)] + public static extern void ShowCursor(); // Shows cursor + + [DllImport(nativeLibName)] + public static extern void HideCursor(); // Hides cursor + + [DllImport(nativeLibName)] + public static extern bool IsCursorHidden(); // Check if cursor is not visible + + [DllImport(nativeLibName)] + public static extern void EnableCursor(); // Enables cursor (unlock cursor) + + [DllImport(nativeLibName)] + public static extern void DisableCursor(); // Disables cursor (lock cursor) + + [DllImport(nativeLibName)] + public static extern void ClearBackground(Color color); // Set background color (framebuffer clear color) + + [DllImport(nativeLibName)] + public static extern void BeginDrawing(); // Setup canvas (framebuffer) to start drawing + + [DllImport(nativeLibName)] + public static extern void EndDrawing(); // End canvas drawing and swap buffers (double buffering) + + [DllImport(nativeLibName)] + public static extern void BeginMode2D(Camera2D camera); // Initialize 2D mode with custom camera (2D) + + [DllImport(nativeLibName)] + public static extern void EndMode2D(); // Ends 2D mode with custom camera + + [DllImport(nativeLibName)] + public static extern void BeginMode3D(Camera3D camera); // Initializes 3D mode with custom camera (3D) + + [DllImport(nativeLibName)] + public static extern void EndMode3D(); // Ends 3D mode and returns to default 2D orthographic mode + + [DllImport(nativeLibName)] + public static extern void BeginTextureMode(RenderTexture2D target); // Initializes render texture for drawing + + [DllImport(nativeLibName)] + public static extern void EndTextureMode(); // Ends drawing to render texture + + [DllImport(nativeLibName)] + public static extern Ray GetMouseRay(Vector2 mousePosition, Camera3D camera); // Returns a ray trace from mouse position + + [DllImport(nativeLibName)] + public static extern Vector2 GetWorldToScreen(Vector3 position, Camera3D camera); // Returns the screen space position for a 3d world space position + + [DllImport(nativeLibName)] + public static extern Matrix GetCameraMatrix(Camera3D camera); // Returns camera transform matrix (view matrix) + + [DllImport(nativeLibName)] + public static extern void SetTargetFPS(int fps); // Set target FPS (maximum) + + [DllImport(nativeLibName)] + public static extern int GetFPS(); // Returns current FPS + + [DllImport(nativeLibName)] + public static extern float GetFrameTime(); // Returns time in seconds for last frame drawn + + [DllImport(nativeLibName)] + public static extern double GetTime(); // Returns elapsed time in seconds since InitWindow() + + [DllImport(nativeLibName)] + public static extern int ColorToInt(Color color); // Returns hexadecimal value for a Color + + [DllImport(nativeLibName)] + public static extern Vector4 ColorNormalize(Color color); // Returns color normalized as float [0..1] + + [DllImport(nativeLibName)] + public static extern Vector3 ColorToHSV(Color color); // Returns HSV values for a Color + + [DllImport(nativeLibName)] + public static extern Color GetColor(int hexValue); // Returns a Color struct from hexadecimal value + + [DllImport(nativeLibName)] + public static extern Color Fade(Color color, float alpha); // Color fade-in or fade-out, alpha goes from 0.0f to 1.0f + + [DllImport(nativeLibName)] + public static extern void ShowLogo(); // Activate raylib logo at startup (can be done with flags) + + [DllImport(nativeLibName)] + public static extern void SetConfigFlags(byte flags); // Setup window configuration flags (view FLAGS) + + [DllImport(nativeLibName)] + public static extern void SetTraceLog(byte types); // Enable trace log message types (bit flags based) + + [DllImport(nativeLibName)] + public static extern void TraceLog(int logType, string text, params object[] args); // Show trace log messages (LOG_INFO, LOG_WARNING, LOG_ERROR, LOG_DEBUG) + + [DllImport(nativeLibName)] + public static extern void TakeScreenshot(string fileName); // Takes a screenshot of current screen (saved a .png) + + [DllImport(nativeLibName)] + public static extern int GetRandomValue(int min, int max); // Returns a random value between min and max (both included) + + [DllImport(nativeLibName)] + public static extern bool IsFileExtension(string fileName, string ext);// Check file extension + + [DllImport(nativeLibName)] + public static extern string GetExtension(string fileName); // Get pointer to extension for a filename string + + [DllImport(nativeLibName)] + public static extern string GetFileName(string filePath); // Get pointer to filename for a path string + + [DllImport(nativeLibName)] + public static extern string GetDirectoryPath(string fileName); // Get full path for a given fileName (uses static string) + + [DllImport(nativeLibName)] + public static extern string GetWorkingDirectory(); // Get current working directory (uses static string) + + [DllImport(nativeLibName)] + public static extern bool ChangeDirectory(string dir); // Change working directory, returns true if success + + [DllImport(nativeLibName)] + public static extern bool IsFileDropped(); // Check if a file has been dropped into window + + [DllImport(nativeLibName)] + public static extern char[] GetDroppedFiles(int[] count); // Get dropped files names + + [DllImport(nativeLibName)] + public static extern void ClearDroppedFiles(); // Clear dropped files paths buffer + + [DllImport(nativeLibName)] + public static extern void StorageSaveValue(int position, int value); // Save integer value to storage file (to defined position) + + [DllImport(nativeLibName)] + public static extern int StorageLoadValue(int position); // Load integer value from storage file (from defined position) + + [DllImport(nativeLibName)] + public static extern bool IsKeyPressed(int key); // Detect if a key has been pressed once + + [DllImport(nativeLibName)] + public static extern bool IsKeyDown(int key); // Detect if a key is being pressed + + [DllImport(nativeLibName)] + public static extern bool IsKeyReleased(int key); // Detect if a key has been released once + + [DllImport(nativeLibName)] + public static extern bool IsKeyUp(int key); // Detect if a key is NOT being pressed + + [DllImport(nativeLibName)] + public static extern int GetKeyPressed(); // Get latest key pressed + + [DllImport(nativeLibName)] + public static extern void SetExitKey(int key); // Set a custom key to exit program (default is ESC) + + [DllImport(nativeLibName)] + public static extern bool IsGamepadAvailable(int gamepad); // Detect if a gamepad is available + + [DllImport(nativeLibName)] + public static extern bool IsGamepadName(int gamepad, string name); // Check gamepad name (if available) + + [DllImport(nativeLibName)] + public static extern string GetGamepadName(int gamepad); // Return gamepad internal name id + + [DllImport(nativeLibName)] + public static extern bool IsGamepadButtonPressed(int gamepad, int button); // Detect if a gamepad button has been pressed once + + [DllImport(nativeLibName)] + public static extern bool IsGamepadButtonDown(int gamepad, int button); // Detect if a gamepad button is being pressed + + [DllImport(nativeLibName)] + public static extern bool IsGamepadButtonReleased(int gamepad, int button); // Detect if a gamepad button has been released once + + [DllImport(nativeLibName)] + public static extern bool IsGamepadButtonUp(int gamepad, int button); // Detect if a gamepad button is NOT being pressed + + [DllImport(nativeLibName)] + public static extern int GetGamepadButtonPressed(); // Get the last gamepad button pressed + + [DllImport(nativeLibName)] + public static extern int GetGamepadAxisCount(int gamepad); // Return gamepad axis count for a gamepad + + [DllImport(nativeLibName)] + public static extern float GetGamepadAxisMovement(int gamepad, int axis); // Return axis movement value for a gamepad axis + + [DllImport(nativeLibName)] + public static extern bool IsMouseButtonPressed(int button); // Detect if a mouse button has been pressed once + + [DllImport(nativeLibName)] + public static extern bool IsMouseButtonDown(int button); // Detect if a mouse button is being pressed + + [DllImport(nativeLibName)] + public static extern bool IsMouseButtonReleased(int button); // Detect if a mouse button has been released once + + [DllImport(nativeLibName)] + public static extern bool IsMouseButtonUp(int button); // Detect if a mouse button is NOT being pressed + + [DllImport(nativeLibName)] + public static extern int GetMouseX(); // Returns mouse position X + + [DllImport(nativeLibName)] + public static extern int GetMouseY(); // Returns mouse position Y + + [DllImport(nativeLibName)] + public static extern Vector2 GetMousePosition(); // Returns mouse position XY + + [DllImport(nativeLibName)] + public static extern void SetMousePosition(Vector2 position); // Set mouse position XY + + [DllImport(nativeLibName)] + public static extern void SetMouseScale(float scale); // Set mouse scaling + + [DllImport(nativeLibName)] + public static extern int GetMouseWheelMove(); // Returns mouse wheel movement Y + + [DllImport(nativeLibName)] + public static extern int GetTouchX(); // Returns touch position X for touch point 0 (relative to screen size) + + [DllImport(nativeLibName)] + public static extern int GetTouchY(); // Returns touch position Y for touch point 0 (relative to screen size) + + [DllImport(nativeLibName)] + public static extern Vector2 GetTouchPosition(int index); // Returns touch position XY for a touch point index (relative to screen size) + + [DllImport(nativeLibName)] + public static extern void SetGesturesEnabled(uint gestureFlags); // Enable a set of gestures using flags + + [DllImport(nativeLibName)] + public static extern bool IsGestureDetected(int gesture); // Check if a gesture have been detected + + [DllImport(nativeLibName)] + public static extern int GetGestureDetected(); // Get latest detected gesture + + [DllImport(nativeLibName)] + public static extern int GetTouchPointsCount(); // Get touch points count + + [DllImport(nativeLibName)] + public static extern float GetGestureHoldDuration(); // Get gesture hold time in milliseconds + + [DllImport(nativeLibName)] + public static extern Vector2 GetGestureDragVector(); // Get gesture drag vector + + [DllImport(nativeLibName)] + public static extern float GetGestureDragAngle(); // Get gesture drag angle + + [DllImport(nativeLibName)] + public static extern Vector2 GetGesturePinchVector(); // Get gesture pinch delta + + [DllImport(nativeLibName)] + public static extern float GetGesturePinchAngle(); // Get gesture pinch angle + + [DllImport(nativeLibName)] + public static extern void SetCameraMode(Camera3D camera, int mode); // Set camera mode (multiple camera modes available) + + [DllImport(nativeLibName)] + public static extern void UpdateCamera(Camera3D camera); // Update camera position for selected mode + + [DllImport(nativeLibName)] + public static extern void SetCameraPanControl(int panKey); // Set camera pan key to combine with mouse movement (free camera) + + [DllImport(nativeLibName)] + public static extern void SetCameraAltControl(int altKey); // Set camera alt key to combine with mouse movement (free camera) + + [DllImport(nativeLibName)] + public static extern void SetCameraSmoothZoomControl(int szKey); // Set camera smooth zoom key to combine with mouse (free camera) + + [DllImport(nativeLibName)] + public static extern void SetCameraMoveControls(int frontKey, int backKey, int rightKey, int leftKey, int upKey, int downKey); // Set camera move controls (1st person and 3rd person cameras) + + [DllImport(nativeLibName)] + public static extern void DrawPixel(int posX, int posY, Color color); // Draw a pixel + + [DllImport(nativeLibName)] + public static extern void DrawPixelV(Vector2 position, Color color); // Draw a pixel (Vector version) + + [DllImport(nativeLibName)] + public static extern void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw a line + + [DllImport(nativeLibName)] + public static extern void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (Vector version) + + [DllImport(nativeLibName)] + public static extern void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line defining thickness + + [DllImport(nativeLibName)] + public static extern void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line using cubic-bezier curves in-out + + [DllImport(nativeLibName)] + public static extern void DrawCircle(int centerX, int centerY, float radius, Color color); // Draw a color-filled circle + + [DllImport(nativeLibName)] + public static extern void DrawCircleGradient(int centerX, int centerY, float radius, Color color1, Color color2); // Draw a gradient-filled circle + + [DllImport(nativeLibName)] + public static extern void DrawCircleV(Vector2 center, float radius, Color color); // Draw a color-filled circle (Vector version) + + [DllImport(nativeLibName)] + public static extern void DrawCircleLines(int centerX, int centerY, float radius, Color color); // Draw circle outline + + [DllImport(nativeLibName)] + public static extern void DrawRectangle(int posX, int posY, int width, int height, Color color); // Draw a color-filled rectangle + + [DllImport(nativeLibName)] + public static extern void DrawRectangleV(Vector2 position, Vector2 size, Color color); // Draw a color-filled rectangle (Vector version) + + [DllImport(nativeLibName)] + public static extern void DrawRectangleRec(Rectangle rec, Color color); // Draw a color-filled rectangle + + [DllImport(nativeLibName)] + public static extern void DrawRectanglePro(Rectangle rec, Vector2 origin, float rotation, Color color); // Draw a color-filled rectangle with pro parameters + + [DllImport(nativeLibName)] + public static extern void DrawRectangleGradientV(int posX, int posY, int width, int height, Color color1, Color color2);// Draw a vertical-gradient-filled rectangle + + [DllImport(nativeLibName)] + public static extern void DrawRectangleGradientH(int posX, int posY, int width, int height, Color color1, Color color2);// Draw a horizontal-gradient-filled rectangle + + [DllImport(nativeLibName)] + public static extern void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4); // Draw a gradient-filled rectangle with custom vertex colors + + [DllImport(nativeLibName)] + public static extern void DrawRectangleLines(int posX, int posY, int width, int height, Color color); // Draw rectangle outline + + [DllImport(nativeLibName)] + public static extern void DrawRectangleLinesEx(Rectangle rec, int lineThick, Color color); // Draw rectangle outline with extended parameters + + [DllImport(nativeLibName)] + public static extern void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw a color-filled triangle + + [DllImport(nativeLibName)] + public static extern void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline + + [DllImport(nativeLibName)] + public static extern void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color color); // Draw a regular polygon (Vector version) + + [DllImport(nativeLibName)] + public static extern void DrawPolyEx(Vector2[] points, int numPoints, Color color); // Draw a closed polygon defined by points + + [DllImport(nativeLibName)] + public static extern void DrawPolyExLines(Vector2[] points, int numPoints, Color color); // Draw polygon lines + + [DllImport(nativeLibName)] + public static extern bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2); // Check collision between two rectangles + + [DllImport(nativeLibName)] + public static extern bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2); // Check collision between two circles + + [DllImport(nativeLibName)] + public static extern bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec); // Check collision between circle and rectangle + + [DllImport(nativeLibName)] + public static extern Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision + + [DllImport(nativeLibName)] + public static extern bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle + + [DllImport(nativeLibName)] + public static extern bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius); // Check if point is inside circle + + [DllImport(nativeLibName)] + public static extern bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3); // Check if point is inside a triangle + + [DllImport(nativeLibName)] + public static extern Image LoadImage(string fileName); // Load image from file into CPU memory (RAM) + + [DllImport(nativeLibName)] + public static extern Image LoadImageEx(Color pixels, int width, int height); // Load image from Color array data (RGBA - 32bit) + + [DllImport(nativeLibName)] + public static extern Image LoadImagePro(IntPtr data, int width, int height, int format); // Load image from raw data with parameters + + [DllImport(nativeLibName)] + public static extern Image LoadImageRaw(string fileName, int width, int height, int format, int headerSize); // Load image from RAW file data + + [DllImport(nativeLibName)] + public static extern void ExportImage(string fileName, Image image); // Export image as a PNG file + + [DllImport(nativeLibName)] + public static extern Texture2D LoadTexture(string fileName); // Load texture from file into GPU memory (VRAM) + + [DllImport(nativeLibName)] + public static extern Texture2D LoadTextureFromImage(Image image); // Load texture from image data + + [DllImport(nativeLibName)] + public static extern RenderTexture2D LoadRenderTexture(int width, int height); // Load texture for rendering (framebuffer) + + [DllImport(nativeLibName)] + public static extern void UnloadImage(Image image); // Unload image from CPU memory (RAM) + + [DllImport(nativeLibName)] + public static extern void UnloadTexture(Texture2D texture); // Unload texture from GPU memory (VRAM) + + [DllImport(nativeLibName)] + public static extern void UnloadRenderTexture(RenderTexture2D target); // Unload render texture from GPU memory (VRAM) + + [DllImport(nativeLibName)] + public static extern Color[] GetImageData(Image image); // Get pixel data from image as a Color struct array + + [DllImport(nativeLibName)] + public static extern Vector4[] GetImageDataNormalized(Image image); // Get pixel data from image as Vector4 array (float normalized) + + [DllImport(nativeLibName)] + public static extern int GetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes (image or texture) + + [DllImport(nativeLibName)] + public static extern Image GetTextureData(Texture2D texture); // Get pixel data from GPU texture and return an Image + + [DllImport(nativeLibName)] + public static extern void UpdateTexture(Texture2D texture, byte[] pixels); // Update GPU texture with new data + + [DllImport(nativeLibName)] + public static extern Image ImageCopy(Image image); // Create an image duplicate (useful for transformations) + + [DllImport(nativeLibName)] + public static extern void ImageToPOT(Image image, Color fillColor); // Convert image to POT (power-of-two) + + [DllImport(nativeLibName)] + public static extern void ImageFormat(Image image, int newFormat); // Convert image data to desired format + + [DllImport(nativeLibName)] + public static extern void ImageAlphaMask(Image image, Image alphaMask); // Apply alpha mask to image + + [DllImport(nativeLibName)] + public static extern void ImageAlphaClear(Image image, Color color, float threshold); // Clear alpha channel to desired color + + [DllImport(nativeLibName)] + public static extern void ImageAlphaCrop(Image image, float threshold); // Crop image depending on alpha value + + [DllImport(nativeLibName)] + public static extern void ImageAlphaPremultiply(Image image); // Premultiply alpha channel + + [DllImport(nativeLibName)] + public static extern void ImageCrop(Image image, Rectangle crop); // Crop an image to a defined rectangle + + [DllImport(nativeLibName)] + public static extern void ImageResize(Image image, int newWidth, int newHeight); // Resize image (bilinear filtering) + + [DllImport(nativeLibName)] + public static extern void ImageResizeNN(Image image, int newWidth,int newHeight); // Resize image (Nearest-Neighbor scaling algorithm) + + [DllImport(nativeLibName)] + public static extern void ImageResizeCanvas(Image image, int newWidth, int newHeight, int offsetX, int offsetY, Color color); // Resize canvas and fill with color + + [DllImport(nativeLibName)] + public static extern void ImageMipmaps(Image image); // Generate all mipmap levels for a provided image + + [DllImport(nativeLibName)] + public static extern void ImageDither(Image image, int rBpp, int gBpp, int bBpp, int aBpp); // Dither image data to 16bpp or lower (Floyd-Steinberg dithering) + + [DllImport(nativeLibName)] + public static extern Image ImageText(string text, int fontSize, Color color); // Create an image from text (default font) + + [DllImport(nativeLibName)] + public static extern Image ImageTextEx(Font font, string text, float fontSize, float spacing, Color tint); // Create an image from text (custom sprite font) + + [DllImport(nativeLibName)] + public static extern void ImageDraw(Image dst, Image src, Rectangle srcRec, Rectangle dstRec); // Draw a source image within a destination image + + [DllImport(nativeLibName)] + public static extern void ImageDrawRectangle(Image dst, Vector2 position, Rectangle rec, Color color); // Draw rectangle within an image + + [DllImport(nativeLibName)] + public static extern void ImageDrawText(Image dst, Vector2 position, string text, int fontSize, Color color); // Draw text (default font) within an image (destination) + + [DllImport(nativeLibName)] + public static extern void ImageDrawTextEx(Image dst, Vector2 position, Font font, string text, float fontSize, float spacing, Color color); // Draw text (custom sprite font) within an image (destination) + + [DllImport(nativeLibName)] + public static extern void ImageFlipVertical(Image image); // Flip image vertically + + [DllImport(nativeLibName)] + public static extern void ImageFlipHorizontal(Image image); // Flip image horizontally + + [DllImport(nativeLibName)] + public static extern void ImageRotateCW(Image image); // Rotate image clockwise 90deg + + [DllImport(nativeLibName)] + public static extern void ImageRotateCCW(Image image); // Rotate image counter-clockwise 90deg + + [DllImport(nativeLibName)] + public static extern void ImageColorTint(Image image, Color color); // Modify image color: tint + + [DllImport(nativeLibName)] + public static extern void ImageColorInvert(Image image); // Modify image color: invert + + [DllImport(nativeLibName)] + public static extern void ImageColorGrayscale(Image image); // Modify image color: grayscale + + [DllImport(nativeLibName)] + public static extern void ImageColorContrast(Image image, float contrast); // Modify image color: contrast (-100 to 100) + + [DllImport(nativeLibName)] + public static extern void ImageColorBrightness(Image image, int brightness); // Modify image color: brightness (-255 to 255) + + [DllImport(nativeLibName)] + public static extern void ImageColorReplace(Image image, Color color, Color replace); // Modify image color: replace color + + [DllImport(nativeLibName)] + public static extern Image GenImageColor(int width, int height, Color color); // Generate image: plain color + + [DllImport(nativeLibName)] + public static extern Image GenImageGradientV(int width, int height, Color top, Color bottom); // Generate image: vertical gradient + + [DllImport(nativeLibName)] + public static extern Image GenImageGradientH(int width, int height, Color left, Color right); // Generate image: horizontal gradient + + [DllImport(nativeLibName)] + public static extern Image GenImageGradientRadial(int width, int height, float density, Color inner, Color outer); // Generate image: radial gradient + + [DllImport(nativeLibName)] + public static extern Image GenImageChecked(int width, int height, int checksX, int checksY, Color col1, Color col2); // Generate image: checked + + [DllImport(nativeLibName)] + public static extern Image GenImageWhiteNoise(int width, int height, float factor); // Generate image: white noise + + [DllImport(nativeLibName)] + public static extern Image GenImagePerlinNoise(int width, int height, int offsetX, int offsetY, float scale); // Generate image: perlin noise + + [DllImport(nativeLibName)] + public static extern Image GenImageCellular(int width, int height, int tileSize); // Generate image: cellular algorithm. Bigger tileSize means bigger cells + + [DllImport(nativeLibName)] + public static extern void GenTextureMipmaps(Texture2D texture); // Generate GPU mipmaps for a texture + + [DllImport(nativeLibName)] + public static extern void SetTextureFilter(Texture2D texture, int filterMode); // Set texture scaling filter mode + + [DllImport(nativeLibName)] + public static extern void SetTextureWrap(Texture2D texture, int wrapMode); // Set texture wrapping mode + + [DllImport(nativeLibName)] + public static extern void DrawTexture(Texture2D texture, int posX, int posY, Color tint); // Draw a Texture2D + + [DllImport(nativeLibName)] + public static extern void DrawTextureV(Texture2D texture, Vector2 position, Color tint); // Draw a Texture2D with position defined as Vector2 + + [DllImport(nativeLibName)] + public static extern void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint); // Draw a Texture2D with extended parameters + + [DllImport(nativeLibName)] + public static extern void DrawTextureRec(Texture2D texture, Rectangle sourceRec, Vector2 position, Color tint); // Draw a part of a texture defined by a rectangle + + [DllImport(nativeLibName)] + public static extern void DrawTexturePro(Texture2D texture, Rectangle sourceRec, Rectangle destRec, Vector2 origin, float rotation, Color tint); // Draw a part of a texture defined by a rectangle with 'pro' parameters + + [DllImport(nativeLibName)] + public static extern Font GetFontDefault(); // Get the default Font + + [DllImport(nativeLibName)] + public static extern Font LoadFont(string fileName); // Load font from file into GPU memory (VRAM) + + [DllImport(nativeLibName)] + public static extern Font LoadFontEx(string fileName, int fontSize, int charsCount, int[] fontChars); // Load font from file with extended parameters + + [DllImport(nativeLibName)] + public static extern CharInfo[] LoadFontData(string fileName, int fontSize, int[] fontChars, int charsCount, bool sdf); // Load font data for further use + + [DllImport(nativeLibName)] + public static extern Image GenImageFontAtlas(CharInfo[] chars, int fontSize, int charsCount, int padding, int packMethod); // Generate image font atlas using chars info + + [DllImport(nativeLibName)] + public static extern void UnloadFont(Font font); // Unload Font from GPU memory (VRAM) + + [DllImport(nativeLibName)] + public static extern void DrawFPS(int posX, int posY); // Shows current FPS + + [DllImport(nativeLibName)] + public static extern void DrawText(string text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) + + [DllImport(nativeLibName)] + public static extern void DrawTextEx(Font font, string text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text using font and additional parameters + + [DllImport(nativeLibName)] + public static extern int MeasureText(string text, int fontSize); // Measure string width for default font + + [DllImport(nativeLibName)] + public static extern Vector2 MeasureTextEx(Font font, string text, float fontSize, float spacing); // Measure string size for Font + + [DllImport(nativeLibName)] + public static extern string FormatText(string text, params object[] args); // Formatting of text with variables to 'embed' + + [DllImport(nativeLibName)] + public static extern string SubText(string text, int position, int length); // Get a piece of a text string + + [DllImport(nativeLibName)] + public static extern int GetGlyphIndex(Font font, int character); // Get index position for a unicode character on font + + [DllImport(nativeLibName)] + public static extern void DrawLine3D(Vector3 startPos, Vector3 endPos, Color color); // Draw a line in 3D world space + + [DllImport(nativeLibName)] + public static extern void DrawCircle3D(Vector3 center, float radius, Vector3 rotationAxis, float rotationAngle, Color color); // Draw a circle in 3D world space + + [DllImport(nativeLibName)] + public static extern void DrawCube(Vector3 position, float width, float height, float length, Color color); // Draw cube + + [DllImport(nativeLibName)] + public static extern void DrawCubeV(Vector3 position, Vector3 size, Color color); // Draw cube (Vector version) + + [DllImport(nativeLibName)] + public static extern void DrawCubeWires(Vector3 position, float width, float height, float length, Color color); // Draw cube wires + + [DllImport(nativeLibName)] + public static extern void DrawCubeTexture(Texture2D texture, Vector3 position, float width, float height, float length, Color color); // Draw cube textured + + [DllImport(nativeLibName)] + public static extern void DrawSphere(Vector3 centerPos, float radius, Color color); // Draw sphere + + [DllImport(nativeLibName)] + public static extern void DrawSphereEx(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere with extended parameters + + [DllImport(nativeLibName)] + public static extern void DrawSphereWires(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere wires + + [DllImport(nativeLibName)] + public static extern void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone + + [DllImport(nativeLibName)] + public static extern void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone wires + + [DllImport(nativeLibName)] + public static extern void DrawPlane(Vector3 centerPos, Vector2 size, Color color); // Draw a plane XZ + + [DllImport(nativeLibName)] + public static extern void DrawRay(Ray ray, Color color); // Draw a ray line + + [DllImport(nativeLibName)] + public static extern void DrawGrid(int slices, float spacing); // Draw a grid (centered at (0, 0, 0)) + + [DllImport(nativeLibName)] + public static extern void DrawGizmo(Vector3 position); // Draw simple gizmo + + [DllImport(nativeLibName)] + public static extern Model LoadModel(string fileName); // Load model from files (mesh and material) + + [DllImport(nativeLibName)] + public static extern Model LoadModelFromMesh(Mesh mesh); // Load model from generated mesh + + [DllImport(nativeLibName)] + public static extern void UnloadModel(Model model); // Unload model from memory (RAM and/or VRAM) + + [DllImport(nativeLibName)] + public static extern Mesh LoadMesh(string fileName); // Load mesh from file + + [DllImport(nativeLibName)] + public static extern void UnloadMesh(Mesh mesh); // Unload mesh from memory (RAM and/or VRAM) + + [DllImport(nativeLibName)] + public static extern void ExportMesh(string fileName, Mesh mesh); // Export mesh as an OBJ file + + [DllImport(nativeLibName)] + public static extern BoundingBox MeshBoundingBox(Mesh mesh); // Compute mesh bounding box limits + + [DllImport(nativeLibName)] + public static extern void MeshTangents(Mesh mesh); // Compute mesh tangents + + [DllImport(nativeLibName)] + public static extern void MeshBinormals(Mesh mesh); // Compute mesh binormals + + [DllImport(nativeLibName)] + public static extern Mesh GenMeshPlane(float width, float length, int resX, int resZ); // Generate plane mesh (with subdivisions) + + [DllImport(nativeLibName)] + public static extern Mesh GenMeshCube(float width, float height, float length); // Generate cuboid mesh + + [DllImport(nativeLibName)] + public static extern Mesh GenMeshSphere(float radius, int rings, int slices); // Generate sphere mesh (standard sphere) + + [DllImport(nativeLibName)] + public static extern Mesh GenMeshHemiSphere(float radius, int rings, int slices); // Generate half-sphere mesh (no bottom cap) + + [DllImport(nativeLibName)] + public static extern Mesh GenMeshCylinder(float radius, float height, int slices); // Generate cylinder mesh + + [DllImport(nativeLibName)] + public static extern Mesh GenMeshTorus(float radius, float size, int radSeg, int sides); // Generate torus mesh + + [DllImport(nativeLibName)] + public static extern Mesh GenMeshKnot(float radius, float size, int radSeg, int sides); // Generate trefoil knot mesh + + [DllImport(nativeLibName)] + public static extern Mesh GenMeshHeightmap(Image heightmap, Vector3 size); // Generate heightmap mesh from image data + + [DllImport(nativeLibName)] + public static extern Mesh GenMeshCubicmap(Image cubicmap, Vector3 cubeSize); // Generate cubes-based map mesh from image data + + [DllImport(nativeLibName)] + public static extern Material LoadMaterial(string fileName); // Load material from file + + [DllImport(nativeLibName)] + public static extern Material LoadMaterialDefault(); // Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) + + [DllImport(nativeLibName)] + public static extern void UnloadMaterial(Material material); // Unload material from GPU memory (VRAM) + + [DllImport(nativeLibName)] + public static extern void DrawModel(Model model, Vector3 position, float scale, Color tint); // Draw a model (with texture if set) + + [DllImport(nativeLibName)] + public static extern void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model with extended parameters + + [DllImport(nativeLibName)] + public static extern void DrawModelWires(Model model, Vector3 position, float scale, Color tint); // Draw a model wires (with texture if set) + + [DllImport(nativeLibName)] + public static extern void DrawModelWiresEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model wires (with texture if set) with extended parameters + + [DllImport(nativeLibName)] + public static extern void DrawBoundingBox(BoundingBox box, Color color); // Draw bounding box (wires) + + [DllImport(nativeLibName)] + public static extern void DrawBillboard(Camera3D camera, Texture2D texture, Vector3 center, float size, Color tint); // Draw a billboard texture + + [DllImport(nativeLibName)] + public static extern void DrawBillboardRec(Camera3D camera, Texture2D texture, Rectangle sourceRec, Vector3 center, float size, Color tint); // Draw a billboard texture defined by sourceRec + + [DllImport(nativeLibName)] + public static extern bool CheckCollisionSpheres(Vector3 centerA, float radiusA, Vector3 centerB, float radiusB); // Detect collision between two spheres + + [DllImport(nativeLibName)] + public static extern bool CheckCollisionBoxes(BoundingBox box1, BoundingBox box2); // Detect collision between two bounding boxes + + [DllImport(nativeLibName)] + public static extern bool CheckCollisionBoxSphere(BoundingBox box, Vector3 centerSphere, float radiusSphere); // Detect collision between box and sphere + + [DllImport(nativeLibName)] + public static extern bool CheckCollisionRaySphere(Ray ray, Vector3 spherePosition, float sphereRadius); // Detect collision between ray and sphere + + [DllImport(nativeLibName)] + public static extern bool CheckCollisionRaySphereEx(Ray ray, Vector3 spherePosition, float sphereRadius, Vector3 collisionPoint); // Detect collision between ray and sphere, returns collision point + + [DllImport(nativeLibName)] + public static extern bool CheckCollisionRayBox(Ray ray, BoundingBox box); // Detect collision between ray and box + + [DllImport(nativeLibName)] + public static extern RayHitInfo GetCollisionRayModel(Ray ray, Model model); // Get collision info between ray and model + + [DllImport(nativeLibName)] + public static extern RayHitInfo GetCollisionRayTriangle(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3); // Get collision info between ray and triangle + + [DllImport(nativeLibName)] + public static extern RayHitInfo GetCollisionRayGround(Ray ray, float groundHeight); // Get collision info between ray and ground plane (Y-normal plane) + + [DllImport(nativeLibName)] + public static extern string LoadText(string fileName); // Load chars array from text file + + [DllImport(nativeLibName)] + public static extern Shader LoadShader(string vsFileName, string fsFileName); // Load shader from files and bind default locations + + [DllImport(nativeLibName)] + public static extern Shader LoadShaderCode(string vsCode, string fsCode); // Load shader from code strings and bind default locations + + [DllImport(nativeLibName)] + public static extern void UnloadShader(Shader shader); // Unload shader from GPU memory (VRAM) + + [DllImport(nativeLibName)] + public static extern Shader GetShaderDefault(); // Get default shader + + [DllImport(nativeLibName)] + public static extern Texture2D GetTextureDefault(); // Get default texture + + [DllImport(nativeLibName)] + public static extern int GetShaderLocation(Shader shader, string uniformName); // Get shader uniform location + + [DllImport(nativeLibName)] + public static extern void SetShaderValue(Shader shader, int uniformLoc, float[] value, int size); // Set shader uniform value (float) + + [DllImport(nativeLibName)] + public static extern void SetShaderValuei(Shader shader, int uniformLoc, int[] value, int size); // Set shader uniform value (int) + + [DllImport(nativeLibName)] + public static extern void SetShaderValueMatrix(Shader shader, int uniformLoc, Matrix mat); // Set shader uniform value (matrix 4x4) + + [DllImport(nativeLibName)] + public static extern void SetMatrixProjection(Matrix proj); // Set a custom projection matrix (replaces internal projection matrix) + + [DllImport(nativeLibName)] + public static extern void SetMatrixModelview(Matrix view); // Set a custom modelview matrix (replaces internal modelview matrix) + + [DllImport(nativeLibName)] + public static extern Matrix GetMatrixModelview(); // Get internal modelview matrix + + [DllImport(nativeLibName)] + public static extern Texture2D GenTextureCubemap(Shader shader, Texture2D skyHDR, int size); // Generate cubemap texture from HDR texture + + [DllImport(nativeLibName)] + public static extern Texture2D GenTextureIrradiance(Shader shader, Texture2D cubemap, int size); // Generate irradiance texture using cubemap data + + [DllImport(nativeLibName)] + public static extern Texture2D GenTexturePrefilter(Shader shader, Texture2D cubemap, int size); // Generate prefilter texture using cubemap data + + [DllImport(nativeLibName)] + public static extern Texture2D GenTextureBRDF(Shader shader, Texture2D cubemap, int size); // Generate BRDF texture using cubemap data + + [DllImport(nativeLibName)] + public static extern void BeginShaderMode(Shader shader); // Begin custom shader drawing + + [DllImport(nativeLibName)] + public static extern void EndShaderMode(); // End custom shader drawing (use default shader) + + [DllImport(nativeLibName)] + public static extern void BeginBlendMode(int mode); // Begin blending mode (alpha, additive, multiplied) + + [DllImport(nativeLibName)] + public static extern void EndBlendMode(); // End blending mode (reset to default: alpha blending) + + [DllImport(nativeLibName)] + public static extern VrDeviceInfo GetVrDeviceInfo(int vrDeviceType); // Get VR device information for some standard devices + + [DllImport(nativeLibName)] + public static extern void InitVrSimulator(VrDeviceInfo info); // Init VR simulator for selected device parameters + + [DllImport(nativeLibName)] + public static extern void CloseVrSimulator(); // Close VR simulator for current device + + [DllImport(nativeLibName)] + public static extern bool IsVrSimulatorReady(); // Detect if VR simulator is ready + + [DllImport(nativeLibName)] + public static extern void SetVrDistortionShader(Shader shader); // Set VR distortion shader for stereoscopic rendering + + [DllImport(nativeLibName)] + public static extern void UpdateVrTracking(Camera3D camera); // Update VR tracking (position and orientation) and camera + + [DllImport(nativeLibName)] + public static extern void ToggleVrMode(); // Enable/Disable VR experience + + [DllImport(nativeLibName)] + public static extern void BeginVrDrawing(); // Begin VR simulator stereo rendering + + [DllImport(nativeLibName)] + public static extern void EndVrDrawing(); // End VR simulator stereo rendering + + [DllImport(nativeLibName)] + public static extern void InitAudioDevice(); // Initialize audio device and context + + [DllImport(nativeLibName)] + public static extern void CloseAudioDevice(); // Close the audio device and context + + [DllImport(nativeLibName)] + public static extern bool IsAudioDeviceReady(); // Check if audio device has been initialized successfully + + [DllImport(nativeLibName)] + public static extern void SetMasterVolume(float volume); // Set master volume (listener) + + [DllImport(nativeLibName)] + public static extern Wave LoadWave(string fileName); // Load wave data from file + + [DllImport(nativeLibName)] + public static extern Wave LoadWaveEx(IntPtr data, int sampleCount, int sampleRate, int sampleSize, int channels); // Load wave data from raw array data + + [DllImport(nativeLibName)] + public static extern Sound LoadSound(string fileName); // Load sound from file + + [DllImport(nativeLibName)] + public static extern Sound LoadSoundFromWave(Wave wave); // Load sound from wave data + + [DllImport(nativeLibName)] + public static extern void UpdateSound(Sound sound, byte[] data, int samplesCount);// Update sound buffer with new data + + [DllImport(nativeLibName)] + public static extern void UnloadWave(Wave wave); // Unload wave data + + [DllImport(nativeLibName)] + public static extern void UnloadSound(Sound sound); // Unload sound + + [DllImport(nativeLibName)] + public static extern void PlaySound(Sound sound); // Play a sound + + [DllImport(nativeLibName)] + public static extern void PauseSound(Sound sound); // Pause a sound + + [DllImport(nativeLibName)] + public static extern void ResumeSound(Sound sound); // Resume a paused sound + + [DllImport(nativeLibName)] + public static extern void StopSound(Sound sound); // Stop playing a sound + + [DllImport(nativeLibName)] + public static extern bool IsSoundPlaying(Sound sound); // Check if a sound is currently playing + + [DllImport(nativeLibName)] + public static extern void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level) + + [DllImport(nativeLibName)] + public static extern void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) + + [DllImport(nativeLibName)] + public static extern void WaveFormat(out Wave wave, int sampleRate, int sampleSize, int channels); // Convert wave data to desired format + + [DllImport(nativeLibName)] + public static extern Wave WaveCopy(Wave wave); // Copy a wave to a new wave + + [DllImport(nativeLibName)] + public static extern void WaveCrop(out Wave wave, int initSample, int finalSample); // Crop a wave to defined samples range + + [DllImport(nativeLibName)] + public static extern float[] GetWaveData(Wave wave); // Get samples data from wave as a floats array + + [DllImport(nativeLibName)] + public static extern IntPtr LoadMusicStream(string fileName); // Load IntPtr stream from file + + [DllImport(nativeLibName)] + public static extern void UnloadMusicStream(IntPtr music); // Unload IntPtr stream + + [DllImport(nativeLibName)] + public static extern void PlayMusicStream(IntPtr music); // Start IntPtr playing + + [DllImport(nativeLibName)] + public static extern void UpdateMusicStream(IntPtr music); // Updates buffers for IntPtr streaming + + [DllImport(nativeLibName)] + public static extern void StopMusicStream(IntPtr music); // Stop IntPtr playing + + [DllImport(nativeLibName)] + public static extern void PauseMusicStream(IntPtr music); // Pause IntPtr playing + + [DllImport(nativeLibName)] + public static extern void ResumeMusicStream(IntPtr music); // Resume playing paused music + + [DllImport(nativeLibName)] + public static extern bool IsMusicPlaying(IntPtr music); // Check if IntPtr is playing + + [DllImport(nativeLibName)] + public static extern void SetMusicVolume(IntPtr music, float volume); // Set volume for IntPtr (1.0 is max level) + + [DllImport(nativeLibName)] + public static extern void SetMusicPitch(IntPtr music, float pitch); // Set pitch for a IntPtr (1.0 is base level) + + [DllImport(nativeLibName)] + public static extern void SetMusicLoopCount(IntPtr music, int count); // Set IntPtr loop count (loop repeats) + + [DllImport(nativeLibName)] + public static extern float GetMusicTimeLength(IntPtr music); // Get IntPtr time length (in seconds) + + [DllImport(nativeLibName)] + public static extern float GetMusicTimePlayed(IntPtr music); // Get current IntPtr time played (in seconds) + + [DllImport(nativeLibName)] + public static extern AudioStream InitAudioStream(uint sampleRate, uint sampleSize, uint channels); // Init audio stream (to stream raw audio pcm data) + + [DllImport(nativeLibName)] + public static extern void UpdateAudioStream(AudioStream stream, byte[] data, int samplesCount); // Update audio stream buffers with data + + [DllImport(nativeLibName)] + public static extern void CloseAudioStream(AudioStream stream); // Close audio stream and free memory + + [DllImport(nativeLibName)] + public static extern bool IsAudioBufferProcessed(AudioStream stream); // Check if any audio stream buffers requires refill + + [DllImport(nativeLibName)] + public static extern void PlayAudioStream(AudioStream stream); // Play audio stream + + [DllImport(nativeLibName)] + public static extern void PauseAudioStream(AudioStream stream); // Pause audio stream + + [DllImport(nativeLibName)] + public static extern void ResumeAudioStream(AudioStream stream); // Resume audio stream + + [DllImport(nativeLibName)] + public static extern bool IsAudioStreamPlaying(AudioStream stream); // Check if audio stream is playing + + [DllImport(nativeLibName)] + public static extern void StopAudioStream(AudioStream stream); // Stop audio stream + + [DllImport(nativeLibName)] + public static extern void SetAudioStreamVolume(AudioStream stream, float volume); // Set volume for audio stream (1.0 is max level) + + [DllImport(nativeLibName)] + public static extern void SetAudioStreamPitch(AudioStream stream, float pitch); // Set pitch for audio stream (1.0 is base level) + + #endregion + } +} diff --git a/ExampleApplication/Raymath.cs b/ExampleApplication/Raymath.cs new file mode 100644 index 0000000..a327f2c --- /dev/null +++ b/ExampleApplication/Raymath.cs @@ -0,0 +1,462 @@ + +using System.Runtime.InteropServices; + +namespace Raylib +{ + #region Raylib-cs Types + + // Vector2 type + public struct Vector2 + { + public float x; + public float y; + + public Vector2(float x, float y) + { + this.x = x; + this.y = y; + } + + public override bool Equals(object obj) + { + return (obj is Vector2) && Equals((Vector2)obj); + } + + public override int GetHashCode() + { + return x.GetHashCode() + y.GetHashCode(); + } + + // utility for c functions Vector2Zero -> Zero etc + [DllImport(rl.nativeLibName, EntryPoint = "Vector2Zero")] + public static extern Vector2 Zero(); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector2One")] + public static extern Vector2 One(); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector2Add")] + public static extern Vector2 operator +(Vector2 v1, Vector2 v2); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector2Subtract")] + public static extern Vector2 operator -(Vector2 v1, Vector2 v2); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector2Length")] + public static extern float Length(Vector2 v); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector2DotProduct")] + public static extern float DotProduct(Vector2 v1, Vector2 v2); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector2Distance")] + public static extern float Distance(Vector2 v1, Vector2 v2); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector2Angle")] + public static extern float Angle(Vector2 v1, Vector2 v2); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector2Scale")] + public static extern Vector2 Scale(Vector2 v, float scale); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector2Negate")] + public static extern Vector2 Negate(Vector2 v); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector2Divide")] + public static extern Vector2 Divide(Vector2 v, float div); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector2Normalize")] + public static extern Vector2 Normalize(Vector2 v); + + public static bool operator ==(Vector2 v1, Vector2 v2) + { + return (v1.x == v2.x && v1.y == v2.y); + } + + public static bool operator !=(Vector2 v1, Vector2 v2) + { + return !(v1 == v2); + } + } + + // Vector3 type + public struct Vector3 + { + public float x; + public float y; + public float z; + + public Vector3(float x, float y, float z) + { + this.x = x; + this.y = y; + this.z = z; + } + + public override bool Equals(object obj) + { + return (obj is Vector3) && Equals((Vector3)obj); + } + + public override int GetHashCode() + { + return x.GetHashCode() + y.GetHashCode() + z.GetHashCode(); + } + + // utility for c functions Vector3Zero -> Zero etc + [DllImport(rl.nativeLibName, EntryPoint = "Vector3Zero")] + public static extern Vector3 Zero(); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector3One")] + public static extern Vector3 One(); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector3Add")] + public static extern Vector3 operator +(Vector3 v1, Vector3 v3); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector3Subtract")] + public static extern Vector3 operator -(Vector3 v1, Vector3 v3); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector3Length")] + public static extern float Length(Vector3 v); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector3DotProduct")] + public static extern float DotProduct(Vector3 v1, Vector3 v3); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector3Distance")] + public static extern float Distance(Vector3 v1, Vector3 v3); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector3Angle")] + public static extern float Angle(Vector3 v1, Vector3 v3); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector3Scale")] + public static extern Vector3 Scale(Vector3 v, float scale); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector3Negate")] + public static extern Vector3 Negate(Vector3 v); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector3Divide")] + public static extern Vector3 Divide(Vector3 v, float div); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector3Normalize")] + public static extern Vector3 Normalize(Vector3 v); + + // operators + [DllImport(rl.nativeLibName, EntryPoint = "Vector3Scale")] + public static extern Vector3 operator *(Vector3 v1, Vector3 v3); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector3Divide")] + public static extern Vector3 operator /(Vector3 v1, Vector3 v3); + + [DllImport(rl.nativeLibName, EntryPoint = "Vector3Negate")] + public static extern Vector3 operator -(Vector3 v1); + + public static bool operator ==(Vector3 v1, Vector3 v2) + { + return (v1.x == v2.x && v1.y == v2.y && v1.z == v2.z); + } + + public static bool operator !=(Vector3 v1, Vector3 v2) + { + return !(v1 == v2); + } + } + + // Vector4 type + public struct Vector4 + { + public float x; + public float y; + public float z; + public float w; + + public Vector4(float x, float y, float z, float w) + { + this.x = x; + this.y = y; + this.z = z; + this.w = w; + } + } + + // Matrix type (OpenGL style 4x4 - right handed, column major) + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct Matrix + { + public float m0, m4, m8, m12; + public float m1, m5, m9, m13; + public float m2, m6, m10, m14; + public float m3, m7, m11, m15; + } + + // Quaternion type + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + public struct Quaternion + { + public float x; + public float y; + public float z; + public float w; + } + + #endregion + + public static partial class rl + { + #region Raylib-cs Functions + + // Clamp float value + [DllImport(nativeLibName)] + public static extern float Clamp(float value, float min, float max); + + // Vector with components value 0.0f + [DllImport(nativeLibName)] + public static extern Vector2 Vector2Zero(); + + // Vector with components value 1.0f + [DllImport(nativeLibName)] + public static extern Vector2 Vector2One(); + + // Add two vectors (v1 + v2) + [DllImport(nativeLibName)] + public static extern Vector2 Vector2Add(Vector2 v1, Vector2 v2); + + // Subtract two vectors (v1 - v2) + [DllImport(nativeLibName)] + public static extern Vector2 Vector2Subtract(Vector2 v1, Vector2 v2); + + // Calculate vector length + [DllImport(nativeLibName)] + public static extern float Vector2Length(Vector2 v); + + // Calculate two vectors dot product + [DllImport(nativeLibName)] + public static extern float Vector2DotProduct(Vector2 v1, Vector2 v2); + + // Calculate distance between two vectors + [DllImport(nativeLibName)] + public static extern float Vector2Distance(Vector2 v1, Vector2 v2); + + // Calculate angle from two vectors in X-axis + [DllImport(nativeLibName)] + public static extern float Vector2Angle(Vector2 v1, Vector2 v2); + + // Scale vector (multiply by value) + [DllImport(nativeLibName)] + public static extern Vector2 Vector2Scale(Vector2 v, float scale); + + // Negate vector + [DllImport(nativeLibName)] + public static extern Vector2 Vector2Negate(Vector2 v); + + // Divide vector by a float value + [DllImport(nativeLibName)] + public static extern Vector2 Vector2Divide(Vector2 v, float div); + + // Normalize provided vector + [DllImport(nativeLibName)] + public static extern Vector2 Vector2Normalize(Vector2 v); + + + // Vector with components value 0.0f + [DllImport(nativeLibName)] + public static extern Vector3 Vector3Zero(); + + // Vector with components value 1.0f + [DllImport(nativeLibName)] + public static extern Vector3 Vector3One(); + + // Add two vectors + [DllImport(nativeLibName)] + public static extern Vector3 Vector3Add(Vector3 v1, Vector3 v2); + + // Substract two vectors + [DllImport(nativeLibName)] + public static extern Vector3 Vector3Subtract(Vector3 v1, Vector3 v2); + + // Multiply vector by scalar + [DllImport(nativeLibName)] + public static extern Vector3 Vector3Multiply(Vector3 v, float scalar); + + // Multiply vector by vector + [DllImport(nativeLibName)] + public static extern Vector3 Vector3MultiplyV(Vector3 v1, Vector3 v2); + + // Calculate two vectors cross product + [DllImport(nativeLibName)] + public static extern Vector3 Vector3CrossProduct(Vector3 v1, Vector3 v2); + + // Calculate one vector perpendicular vector + [DllImport(nativeLibName)] + public static extern Vector3 Vector3Perpendicular(Vector3 v); + + // Calculate vector length + [DllImport(nativeLibName)] + public static extern float Vector3Length(Vector3 v); + + // Calculate two vectors dot product + [DllImport(nativeLibName)] + public static extern float Vector3DotProduct(Vector3 v1, Vector3 v2); + + // Calculate distance between two vectors + [DllImport(nativeLibName)] + public static extern float Vector3Distance(Vector3 v1, Vector3 v2); + + // Scale provided vector + [DllImport(nativeLibName)] + public static extern Vector3 Vector3Scale(Vector3 v, float scale); + + // Negate provided vector (invert direction) + [DllImport(nativeLibName)] + public static extern Vector3 Vector3Negate(Vector3 v); + + // Normalize provided vector + [DllImport(nativeLibName)] + public static extern Vector3 Vector3Normalize(Vector3 v); + + // Orthonormalize provided vectors + // Makes vectors normalized and orthogonal to each other + // Gram-Schmidt function implementation + [DllImport(nativeLibName)] + public static extern void Vector3OrthoNormalize(out Vector3 v1, out Vector3 v2); + + // Transforms a Vector3 by a given Matrix + [DllImport(nativeLibName)] + public static extern Vector3 Vector3Transform(Vector3 v, Matrix mat); + + // Transform a vector by quaternion rotation + [DllImport(nativeLibName)] + public static extern Vector3 Vector3RotateByQuaternion(Vector3 v, Quaternion q); + + // Calculate linear interpolation between two vectors + [DllImport(nativeLibName)] + public static extern Vector3 Vector3Lerp(Vector3 v1, Vector3 v2, float amount); + + // Calculate reflected vector to normal + [DllImport(nativeLibName)] + public static extern Vector3 Vector3Reflect(Vector3 v, Vector3 normal); + + // Return min value for each pair of components + [DllImport(nativeLibName)] + public static extern Vector3 Vector3Min(Vector3 v1, Vector3 v2); + + // Return max value for each pair of components + [DllImport(nativeLibName)] + public static extern Vector3 Vector3Max(Vector3 v1, Vector3 v2); + + // Compute barycenter coordinates (u, v, w) for point p with respect to triangle (a, b, c) + // NOTE: Assumes P is on the plane of the triangle + [DllImport(nativeLibName)] + public static extern Vector3 Vector3Barycenter(Vector3 p, Vector3 a, Vector3 b, Vector3 c); + + // Returns Vector3 as float array + [DllImport(nativeLibName)] + public static extern float[] Vector3ToFloatV(Vector3 v); + + [DllImport(nativeLibName)] + public static extern float MatrixDeterminant(Matrix mat); + + [DllImport(nativeLibName)] + public static extern float MatrixTrace(Matrix mat); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixTranspose(Matrix mat); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixInvert(Matrix mat); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixNormalize(Matrix mat); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixIdentity(); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixAdd(Matrix left, Matrix right); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixSubstract(Matrix left, Matrix right); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixTranslate(float x, float y, float z); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixRotate(Vector3 axis, float angle); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixRotateX(float angle); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixRotateY(float angle); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixRotateZ(float angle); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixScale(float x, float y, float z); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixMultiply(Matrix left, Matrix right); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixFrustum(double left, double right, double bottom, double top, double near, double far); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixPerspective(double fovy, double aspect, double near, double far); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixOrtho(double left, double right, double bottom, double top, double near, double far); + + [DllImport(nativeLibName)] + public static extern Matrix MatrixLookAt(Vector3 eye, Vector3 target, Vector3 up); + + [DllImport(nativeLibName)] + public static extern float[] MatrixToFloatV(Matrix mat); + + [DllImport(nativeLibName)] + public static extern Quaternion QuaternionIdentity(); + + [DllImport(nativeLibName)] + public static extern float QuaternionLength(Quaternion q); + + [DllImport(nativeLibName)] + public static extern Quaternion QuaternionNormalize(Quaternion q); + + [DllImport(nativeLibName)] + public static extern Quaternion QuaternionInvert(Quaternion q); + + [DllImport(nativeLibName)] + public static extern Quaternion QuaternionMultiply(Quaternion q1, Quaternion q2); + + [DllImport(nativeLibName)] + public static extern Quaternion QuaternionLerp(Quaternion q1, Quaternion q2, float amount); + + [DllImport(nativeLibName)] + public static extern Quaternion QuaternionNlerp(Quaternion q1, Quaternion q2, float amount); + + [DllImport(nativeLibName)] + public static extern Quaternion QuaternionSlerp(Quaternion q1, Quaternion q2, float amount); + + [DllImport(nativeLibName)] + public static extern Quaternion QuaternionFromVector3ToVector3(Vector3 from, Vector3 to); + + [DllImport(nativeLibName)] + public static extern Quaternion QuaternionFromMatrix(Matrix mat); + + [DllImport(nativeLibName)] + public static extern Matrix QuaternionToMatrix(Quaternion q); + + [DllImport(nativeLibName)] + public static extern Quaternion QuaternionFromAxisAngle(Vector3 axis, float angle); + + [DllImport(nativeLibName)] + public static extern void QuaternionToAxisAngle(Quaternion q, out Vector3 outAxis, float[] outAngle); + + [DllImport(nativeLibName)] + public static extern Quaternion QuaternionFromEuler(float roll, float pitch, float yaw); + + [DllImport(nativeLibName)] + public static extern Vector3 QuaternionToEuler(Quaternion q); + + [DllImport(nativeLibName)] + public static extern Quaternion QuaternionTransform(Quaternion q, Matrix mat); + + #endregion + + } +} diff --git a/ExampleApplication/Rlgl.cs b/ExampleApplication/Rlgl.cs new file mode 100644 index 0000000..94f2d16 --- /dev/null +++ b/ExampleApplication/Rlgl.cs @@ -0,0 +1,27 @@ + +using System; +using System.Runtime.InteropServices; + +namespace Raylib +{ + #region Raylib-cs Enums + + #endregion + + #region Raylib-cs Types + + + #endregion + + public static partial class rl + { + #region Raylib-cs Variables + + #endregion + + #region Raylib-cs Functions + + #endregion + + } +} diff --git a/ExampleApplication/bin/Debug/ExampleApplication.exe b/ExampleApplication/bin/Debug/ExampleApplication.exe index 77c36c108190d1d269e578b1ed41c5f32df48abe..bace953d1b6f9c8cd19c69e54213a86feef3cd3b 100644 GIT binary patch literal 44544 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 literal 38912 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 RA?{pvjJW?N`u}|m{C^(ArIr8y diff --git a/ExampleApplication/bin/Debug/raylib.dll b/ExampleApplication/bin/Debug/raylib.dll index 6a9ef2bff6b921a5f77105819f6663bed404a3c5..b2c8d51bcac0ae453335d7561feede8573404e31 100644 GIT binary patch literal 3138048 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

>Gg!$M272J)5p;IFq-YZ8A^D~V=|Hi=~ok~lYn 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�wYO~(h=&!k)XdGu}5iYCwr^r6N}64_Sy*g1Z;p1 zs+YS!&>YdLasF)>8*S~+96v(l9aCc|Ob7vcopu&Z)VDPZ@O)=mebZEZpO52k;$%@g zL;guaSzqfg{q0AJ+p~7M{>!7A9u5kbhM^C>AuHX!rpToD#y}a5(x!-G2p4Um%tY z?GA(yHK~ISQ{fKYe#EONzr9ai3EqY|JX^1rhGaDje?v47Gq4iZ>wf!&N4mi$ZZ1ak zufSIL<~2(1^7~!+E^nuoNZQy{umqkVyLj%$34api&RVTAicUkWdI^kYfv~oPpo?LT zYIM*=&Sga15BwVncxdE0c)S}iiy0HiUZ8aso%6z2aBGfiRoe;owoO)Tw3V95jyycIOrnG5U+WT7a~UJ}I4 z#}ZCP$Tai3;WCWF)DCM$8ZNMZhX^rT{0=e%%na-d*2-Ft92IM?!U!4*$d*e>+eFvQ zU@Q8g6hqqTkJXT-=npTa{yU&jI{KrxU>f~#v%>66%*zy}|Kfq{4@*6J_)wWH&f8gM zFum%GISTuTMxBvM(UVaZz!kPM211&f{{QOcl`MTs>x5%7Xqu4sdFWJY|MYlts%?P~ zAk0*~QAOxZ!y%*Yqn?dhPD1|i14tNawR3Ymwt9Ak`xxd0!&fd2-whipJDdGSRBSS2e&>_+qQ6mFhKWONxv=x#5e z67*+SA*drRG00SI>uH3|8|G?C+q{g@aSi-~TwURg)q5d*}9R?0+2W zs6fLZsDP$Fu`9E-#Ywx${{(0LVdmcv_wRQVNtTYXI%i7T>cC;m=&jxBj{~x7{ZZ6b z`Xl{Y^v4oR>gQRM4g-=NYXj7lFNmA0g2`9P7H zLpXSG-$fpcsp_gEe9D81f$#!}B@+G%bI zSA8$dyc@l%PaUe7Ik_*JY03P%p-0EyWhA#>>MwL?$tbtPi@I;1b^K_s2wBNw%|kNS zRfa0I4uTltDg9q)!xE^5GXDEG+VI}NXv6-BF>$y$90=efeV)jJd^NsEq-KaMt3i8! z-zw5={Pqi^7aHOJ8jW~gw7Zc1-QH}3#cy6T!p3hoDfvxe_X59RXMB7g?3Z^OV;3vJ zTITX>l#}gb2&OPTUYKTUwx*hW>_5@$&tWlT-_`eGv#qWC1EH|WE&(^|S>XAeL*)1B zv&$zTPP+#u!_M~%mbjV6C$I)(M`d)0!E;V%1g!_5gq174MNynz~`)0DqqqLr4D% z^^hI?qpzo(zlZj7@OM^9{+8Iiz~6hIy(@pSwRa#U4z%~;f1te`jP|y5wzs6OqrJR4 zv+;Z>v3sSxV~ht_Wa?=0zWYE#y9#CtR1A~2v6G-(z!=W*VHINlnz?l>{J00`J;6@z zk+2Sc-oNUg_Z?79$zOjy(7|7C_jb^G8!P>N2y{;>eqC`>{xAJVo>QV@HKLg{s$Ng{mAZLbGyRGr`uyf^7`9&$dd&!DebUFEpOp2X#= zkIMP%#|G#j<`p8)c1oe`v|?qtN7$uNCMn(<3D|jPoRf#j6b}{h$L^@N<_8-Om0>ag z4?XxP$a@^LP|hjGG-w8y-c$p(>ot@WCp~ zi!+1WVcRAW`sN0dq>PDNjx>DFSWrI_C46`wSgtjE;)n|eg3>*jF43@dPv7>CvoSu6!mH+?(<8Q%#MRa4%pH4RBk#RS|LVEiv8V21f$q>7=is;R9` zWvEjrAV%`?qDJ@jR?O)$2?+BJ!d?arw>VD=;0$>Jlvu2g(}0LD{ORy!OXa zbtAr8S=EbB)uoB#n*yaoc%4QKe#4PvfAH+l-M@N-@yY?2~Zd zqS!c9J>EoAe#kDWrcw$e12be-Lvg1!_@&wN!@A0F$^*&%{~@v)jX`@vVyT~n2JK9g zhy4HQ+!JHUTIUXeT){eb092sgumYCxX^MNysk^OuN;PG^X~m|)w(S%U#>{ct=OQ4M zd;tN`ua5|b#HEw#1=E-{x+~1bi1~}?p&|c{ec5bF{0_q=VQhG#O@uf1LxVFgI2@Y@ z=`oLte|4=43>t-dSQ01A$K*<@6L+zRV9v+UZ)~!(+h;%UHpejl1E z{chURd@0vM61x}l^Oo@I(aw6$+0WwFV|ym^>*0*yMB4hLQi5NbU&&PZ(RthK{h=5# ziXVMC6lV6v1sxp>xvUEqGKtMvane>vg+0JeqyJ^A|HgXZC-?iP|HD32{|9m${Pcy_ z!B4J~{3Nk^g`alY{(j!qw)TGTv9!1QduZ>oJyd(2@i^N1eP>5|b5pigV)sIOVZ$mm z3<^zo3xxb_q{5c+RE!EYypD;OhA^J?pkd&4rTYnb7*oa>G_uHWTpP@}srr*+`r=9kjb3psk(0ub^jGa1ugoRS-UZ6H`h%cAB z&(*Vuc=xPfA7rGU8H5%l$Ui)g1*O~a=9h;S_O}ycGFoeoW zV_trHUfG5MpNI?d6}D7)J?#clT%|H<%Z!dpBpM#*33Jw zo4Lp|Xf`}o6nHiKyx)T1)zYn8ZMM^%`rlXJ_rQGniEiVq555xKy6a8w)(B{-jcW^Q51w{a=aQ3-iw&Xm2}vd$(d;M*GnlXzvN4m}37o%hBE{ zu$ryCJ5sh+Vt=RY{mRzAzhGs8_O98C_MRyUZODIGTSt2rPif1?fhlyq9WyupW<{B*I1?TtX^ffh zA(dtb)3j4*{8}4Q)LQZ#Low6Ec>BaQA)Wl)9^diX1LNbv&uz5ZsMd4Q*U`EGqG*Tw z2Wbv|Ij_BgU+Poxi^T2)e%S-<{pK@Udq02?5aZ*n*U;V(qG&_@Wjfkh-p2R952UG;J0|B}R;IRs`iP=7`0`XR;b~F#DT!bVgLk21g9x|13L*@H zn#}=Ih!pZN#NC2vF#n?p^H`crvkgqvL@Ft zKQKz8dMKIA>jU+WA?S3h2P~b+bn%{8Fox;`c8F9c`mVgL7wk{_V)eI z)|cHrkiPt|7VW)86j$v3{px7%Q|XTOZc5o+iQNnB-F?+=?fbUo4uV|}to!wPGnfBHDe8D5l{5pPc+3|HeMvYf|#R#O?+DPv~#Xk-+m+ zoTt$rzpQNL@$OAqY$Kuf7HRnBFQDPqiiR5U&;2(WZW-iOf{cw51 zd-gucCO2FTfzP4Qk2)#JP|f$AZIzLOGGdq8nNxf%P39c0AWRkxOjIAtDjX2AkFq`4 z&4CB0(=UeF#&nI@`%bLhc0)8IadzuIlg5Lhy>TM1nd;j;@7UNP`yFA6SJ#0prbG30 z`o~-;sD^O)1olLTp>ar|7Yb^~Kk`S1$haCaJYTj*9M%8s@4F`w_CR|(+S}VrHR8h> zj(_-0QJ0zdgQF2o!Ou2%zsuL!e&4;Vx?ykIy6T*_g#Nu)^&04ztorKj9aaD7CsZ95 zBpDXbV0sK!N5QhXn3@-2=?@fC=U+BrmTyI)cCS6BzG-XECus$%Q-z3^|+_QP-BTrGz`(`pD8pFa1GSj_41EhK;zLl|$7;oo>&;5G}* z{U%}p(Zy0mbR=G)+-?+LwvA6yW*Gh{d9jh8ZIFFU+WsgFw8H^C)r8h&p@ERK|OxyZ@^#WA@6?8Hc4&WDDvto?hTv(opVS{BGF*&wNYKf z;r+c=nZ(eOR;natFiEbNMEe#e?C8kAa%il2K#~|z@j8{{BqsUdS7#|k)e^1{%t5(A zFhtjcKO=AD3L!CuD@0Ey3Q8gW3?eAzHY={b^-)VGY$J9nf-Si}BIN()R-e722B6*z z?_mh1xLG1cU36Ci5~LyQsiZiIRPo!m=#IhA8vcum?q*XqoGV~VKW+XZ7u_wq2-6oY zx-)L5@Y(W2*i-3;L^bkEMi@1gn$J!z;VZ=~d#5s)UV~ZHih<$Al$1x%u5ur7#y7(NkpD1K_ z?F7U8Pmw9CbtV2AXm2y|fBXmVmo^{&72;nGe6!V$G2)!&XK*d?4{bjFmBdeLKK_Zs z-wcJQnFQ!X{Ck>@|3d@tFKa&j%fv5gKK|Xr@7R3&Gl>5Q*rA#2J)ZbaG#~#&$eD(U z=Hq{=1OMda<3COOp1?O5>QQnq?ImW!5=O*@$JOY)g%Na=F)^-V1mCwdBf^Z>h=^tq zWi;{cY(9Q>;Kwd)X6E04!(yY%s{Mms*8M%7^UJ!wM_{)5dv1prQ#s0v*(&qU7E}?A zGUqRPd|D4z8ARPl_`UQ(+;xfHkMZY0_-Opa@%K@g!WlfhhwH5idbqy8-w*g}i}+mp z9gM#t@pl6LCgJa5{LRJRKFFsB{?0)DkKwxl>2Jm#%exo9PvY-${2hhwG5G6GR|BqV(m^NPMbj zz#;#*&wX~)WD#6R8+dG{v1*cz>DjvU3Kj_-_Nf78I>QCAlZ&c3?qMWTwR7Kuob?Mg zKt($-8Fb|r0G&k8kYv!AUjlSELAJ4V9oAH8Y;9Afcw=nsxenPq`_F;T+f?hDU~{BB z@ljBD8#Fz!|9tARFF*RD64R8~pur>QKN%q4!q5M`_G!8@1X3@|EQdN&1&(km~ zWR&}`vQ?jjY3p`mVr5925k>j4+n`Qo@gm>^dU|$4E6V*}SGxQEKcrdHNz_7cv5A;@tZ{HET46O@dl=RkWx`Q=sqUBmrwbk(`rw9M@CDJ% z!&WG6_c;qcE<79_^?pDO%Yvq+KkzF1rr{{e>WJSet9kcOAjZ9aR*CbOIO?AEA~TGr zxbZ5(F;<2zSQ(zGG898k)cdB&u#aSTtV-NNGW2dzpmqWppg`FIa(@U=+}lINRbyWh zm0!W_&0tql@^zJP2_oX&?NMpr9Yl(18wsM}DynT(!F&YYQNaQPKU2X%1a%b*1Zqph zf|iZX7mJM|H2Wo7dxh7)VXugcc_}aMU7$)FuBvsYR0~;qmovYJyQfs^Ooh}iSalO zh2s81cmSvoyzx`a9w)~}mJHcYGNgw00=kz;>VvG*AL1LSPqk7PTd8kg>U}Yd)nf>N z7uQ35)L&3tMKQZ)x++00cE7a)dLjz2WZ1$!BHxTHMNj2F0K{WzePBnW)aJgQp8pNG zN?k4;s$K!gxq^L+h{*iq_#R%8NxybMiOhdQV)_J6GZRG?Fp>TigjA#?)AKm8zYW$? z7+4VdFVMm$DG;t8qM1=?W_ST}x4!#?7clQgNguV>SejW>oz~exKu6k=2h2C%KKx1g zlN$-6aNaF=RvBd$#0J-Vx~6Sm^`I_LS!6FTD8;Zi~%f47eIQtkFe4iF?Z-OF^7MkZ?IO30K`ll!*G# z7Rd+hDJm_{tB?gm0_bSqNEWz?Z2^#21D9nG|7sx^=TVSH#4szvyChEIMn-hmEPU=c zPD;|x@-Un%MTHMU*r*gBETa8XXHsbg3@B)gq@mktR9pLi%;GaJGtWYUkd^j~L{-h_ z7X~-;(C*=f@sMLw`-{R*v@$T3DGVWIRJ%rDEV1YDpu$+rpQv`0!dPL)cvN9jD~zKR zMvWbVXUR~HI)%|!VQjKvtWg+S6h;SyQE$gsr!aJd@%{ZIfSi`ITKj~;*r6~!Qy9?T z67+aVVNgb(Et?evtrb=tFDZ;%h4Gxi5V2#@bc4dkQy7mbjC^|@uPTfJg>j3*D70g2 zRu}<=F-KvHwPU=kFeWODa}~y9JI3D?hA?eZD^(aX>=^%4802HLc7(#1Z^z)B1EAsp zg>kULSY*feP+{DrFgyxli5=q;g|S>=e7{WkWrZE%3x!dwFy2=fHFk^!g;6IM-gU&_ zZvOIB7>MDL0B$@9_{w>sYJl--A58W{2L`#D%1dtauig_ieWVN?gS+P=-!YPELRJ9N z`z5kJhY=Jh4FsaaS!u`}!^wM+S>iCW#ELlqCca`9gXi)Wa3ylRbHXcnxYyXZ5@;p3p^1KD{Il zQgVzoL-)UCP>WHj8soJYLdZfi3nDR9V~&LH#C?q`DcOc*YqMa;e~sOu$|=@nfnRh) ztgqt3F!A+Oeei>IpxKJ@&I*DaM8l=NSuxzqVzsQ3N@9mw&~wT`1C_liEjHAOpJIzo zk6{67j&xmOaXDFs({fxEk>BL1fimKa#ikMP_54u2i2v-#wo1Wg!$1Dp${^i|ow4r6Efy@pBEsBqIF1O>JZlTnZ7Au9=nPwQMr<%thp9_3^|j{` z1OrUCCF&iEIN_I^YPk-cOt_WIr!~y|m6tbp`Zo%Y=TkIT_lZF@vU< z*>}YyXigp)C-YWD9d3W{term}WrubY%|5AV;IZ=#YZ6%FLk*GXVwEXwGkJMI1@nx} z2W8X@$xlj#gC6@PP634vbGQ8JxuDRZwQLD@%ViRVb};-Oh{34_jP*UI9W<$C{U6|W zN`Zv_pGTo%u5XVA3)xjU!qid=u9!You&ppz>|#hFYsohK4setq)?MYajh#qi%9yCT zttTEYs?HU*+(c&9i#{hms^wiI;L``y*uKH+;egKoN3bFb`GsX)eZD+m9A|N3yj`2Ad2S5eYG3TD7+eHFowh?!VMac)T9g8>6^?+Zu~ z+7T~@)=?VJA6+9_*JViC==MQm23vzC6p)NF1Ji3HO=xynRyw+WOHs8CMRDO5U4VdI z3$L46c@m!SwN;-Z9YdfX(~gNo88ap-D62XE$SMRP*=cdF->6l3tRhmi2#ErH<8e&4 z&(uVsd}bn0@rnB0u-0^!o7q=)leZ-Rk$qCM@m OD~RfH%uGDtKEiYZ&Su>DN{!i}N4#U6!2BDHN(~-* z85mgcwnMkE8kmFcgR__ry?0pQ6ONf%4+)Fm6JJ5tct>E%x)nkr zQNKENmbyPS)z(TA@+gs>Lf0CR;b4 zLI#|v9;`$Farwp-*|+c zH?2WW#``C;CcA>XA_PlJ^B&AReFDslkUM$$j-|-=36$Q0rTmTZrdIPH%>QaNw-Exu z4Q~PACWSB;VTCZ;2#9}>L5m;7q@~2g zFp$CMU~nVtRQ64E)2DB8hQn7*n+aFosv01pp~Ef{-@EJ^F~8HFui7;aQ$yeCH2xe| zoxz{|s>A%rsjlQtyXq?bq(e=yZfSbwh90gD@%K6YV))yRzklPeRSh)~CG;uLqRI@$ z&Zialj6}Ps6fPi4olWoPsk((Ni&RZyWM72SIP0~qJ{{i;wCKgX_sr_$3YUzp#YuB~ zyR2QDXep%JLI9Cqbj6$;3d>+u1Tq=ugg_bt?GVrqDDMlqNp7cd8Y6s(qCAn3@xx2< z%G*|BdX2}5swV&!2OQMJrC*>x6NCqDRW;Y?IhK0SHx6{{kVM@VzTtCup35v!(=zYO z&*cj8#1$Mp)V2$Nxz{)^F~8)pLZ*J0@&ujs*T0$iAq5xuA_r+)!ST=vArR#fB<#o( zLT`Y+Clf~F_-j-=R5~aAxf0K=DMBcgMJ@9P6;}_Myhs)J$j3<&aUGzZ@+CB8(1!z} z)$~cUUz%jL|48I%n_sg?8?~aqYX!WmmKQIH4gpyo5MO%r6)A+|37{4C2GNQxt2ofu zl#%#^!2tXGjF;9`Fsg}ZzsVt$sP8O$f1T~D?`?p|mgV^?+h9-b4Kd?s4I>e)ue_08 zo=TdVi&lbnA@TUH+6gMY7?l$1CPh0Ba&Q^>?L%0Vpj*)d%x>Y5{MwR%$P3ly>mXIi zd~9_5^H_~l)yzI`)mCJh3@p7u#w5m$XO+G$MrSdCDKWbOvq;?Pi&n%}xz^>g0~`gN zE+i$#%)1CQosu$}4=!hc!AMEavuYa(45GkbO3a6VS+r8iG$@x`8tW5K=OK2G7aw~> zm~SG;&}!yuvX`3%B>JBvbG#N(R62ZC7WNU|h-m+M%p9*|;8ojHhvYM%IZRhyM*18c zDLEVqpZs|UVt^4tzqv3TkCYzXp)RtHv1*7r($*ubiT(M}@py5h4onxB0A%*c69lJ7 zc9n{!1aM?`4&u=}ho`J(Hh__m>_};0712#uqhIG$A9Gr;F;ylcqzT!w} zHZsW)3xFg0PUv4$tOmm5nVIOoe?BC_M20qm$zR@){>(+w_hx@Kx&O(6*_|@;r4YY* zUl>=Z)P(9_pp6PT8k`p}=eIHHY%h*iDQUG>76Dk1U-dW9`9rwWe~xjD9T)-cd?i)^ z#sl}uC<9y8`b2w@&SPVlYc*#*+Gdlc1%ySklOHj;b5k24d+Q#g9XaX(IPSgUQgjyu z5l;wusvbkl&@zC+RWAZPw1)rA4enDRf&H<#3AT%!r7Vj z`)Aa@i_b63Q>Ak9(f3Osiks!xgEl zSb-noUf>jR9e3m=rM^YLTL`anqinYh85 z#W3ut+?s7=orbbh)(YWcRK;_BKYQ-0&sP3}i>71n%2kl>){p zq#=TJ!rKML>Ei-uIuv0jZI*KT`^GKwBF6>#ZUZY}L#+;-0@me^3wyG`!;FtYet3+J z8T>GIzf@uEP^qQJ4o-43;QblFhRY;-6nE`nvCLhIZ~Y$Vpbe)Xgc}}FZW~a5FQAea zNDLlD5%xn^adEh0szPlCc=>+Du%ZR6+<1YwKl6QeC?|{3sqiMo^_FZA8~Pp0Q>ads z)MT-AG(;Mp`n%u8v9VSu^jDp|ZUzZXO@AzAzbj~`v2HFA2_S4GXLKh?&uYvd$GaB7W1lOjle1@86??2 zGj=s7GR&bLDaB;e+Ai5(WT4>8HOA|=s2@|*YN6pqt-HD{Dw^nMRfTU6}! zoyHQAR!WoK`}3Ud_uTKDxx*jRw%woef_t9tInQ~{bDr~@bDr~mX`4)37|1PsYst{u zmZU(TTz{|u=k9q>HTG|LfZ4T?u-am*Yrq;@9?_k=^eyEW&e(~_mU_gG(VbU8mr=}c zl+#3%8ya>IXE=)qS{V=rt~oL;P*t^#F|NdFRqYU3qol;&;76Um)*EA-x&)5U2H)Xu z4o~1@5;%Y8pVycGHBqf{%b|j6p#smuu!;?BPN~(pJ#tu{j>#whv zj-Wv<%@E81UvoRR=L{$ z+@_*iy2!0GY0@d!2uAoiCaL>uyOo9xeZ^bwlqQG>?_FwmNZWNAzEO;QlQpGUfj$2pFSxLk>eT5dOaL z7hZx9S@%^UOfL%Ia=L=CpW!n+_GVRH`B^hx>JMkI+*0VS>mbwxbk{8rT=zkKnLGt` zNOH4Fb>|RPndGkbx%vI0v2XUSk7t@ML&gKoS;JR%6mgJ;E)Y=uaI$wcH_(bPJ;9~C zQ2+*Sw@RYa+^E(6sby>xTB%#5Qfh8e*gV1p^HEIjE3mzQc8arIli8RK(AmO!q3UE-S^-s3;AE=zHJ@%XD1Q zl$EX3(fW^N#hhXuZQ*8El^cw8aKyRdi|W33*D=!5?1c}Rsy@ES;(TA-;Lt|K$N8Y* zTv+#i4?h~`yV<6Gi~0{P>R(&ba@BAh_eW3Iw{PI$szEc3C#Xe1u4}MnY(E`hu|qO; zxV1c2kF+~CwQ8A(H|NiZKYN=y#)~}oaQ3{mA^wrG& z(dn0ZEJ5|BAOH8Bt?$dmm+`f?L+U4+}wud$Ii` zqJ;Hw2Fz|&sSUi@BKnpJ4vi_Z^Xdk)0mL%(^(itwRPOe9;%Tr+yCrlR*9F0*2+q5y z%TgfZ(j%q*@R~_ZAf3zR?&~m-b}pN@uY(Oe2)B9esG>!s*^_u?HaPEjql!j7_U7sv z<*Ch6Sl}tN4WW>C6c!Ajz?{1%jA49sCpo{H)LdTU*@fp8Y7kdcqt3KCq1H<@@EMNV zs9r*#{JA+pAf+PQedD(fu~eJ@TnZ-hJBdL*fi6EeHZoYql%XN@rJ}G)!PKE4873Pn zWZKY>F=)}rks#rPZ!94z7R5$ka zW9(VG4x*xf&T@}dmt&lPO%7)*INXZa6S;wl14BKXFr>~VR^js4r-s+$#q;#ReUavU z8@z$9IAlw%ySN#`PJQmypdT5^XW#gHE@IxNSTAK)>*E>oLmziFD)>-ouyA=G$P8 z?K;QrcOv2I7b_3iRi-t8$1c(Q_c{^jgO1IZFl+U*Z{owUEDZzmHreA+w|)7z)G;?5 zmm2+r<5F+t|1WMnF7-I>Ufk}#IWG0?&mWh1-G<{*&*JxPW)V_H)*M+o>PY)b*Wn!I zVEa8hbL5dnB)$&_j$U*5Umuq`jQ>GQKc!>*HKRuH&;8Y|`Pb`@OLg3MTxui#f5!jk z^dG(-hPON5aUS2tiC6KLVgsiBq1B^nM~@zr9$k0X=#l?Mr4JuD@I?v9{2^427bR%^6uv|L4!fC;afT zVd+!Z$-Qh)OZL?M%Qd5Vc4eN7%})$LZjX`2RU(@J-UV{@ z)Yg{EqDh}$BC|y5M(|9B(;nkIREcABjoyT_0x8LxSM@Z!k`FpMI|e(T!xDdwO@8P2?5)7)Zpd<;2$7X zl9|`oFl5(G2z8&+DqAOD>xSLnU}Fo_rf+OVclgm8&3^62_u!bSma^L=RVCd>!f0&9 zgp#ujdD&A_m%Tgk!<3GKB(s?rlv5gcnRa)?aU{I#smM(}~tsRe=bLG@dH4qgyAz037D z67hg7euszh*po1LQi`lTGaDg1TW}`Xx*TTM8UZsqD6bq2Hr(#51d}RfCWW| zSe?Nrp@`8x9)r}UT;0}swTcVG?E>`;u41(|a+Bavf-YYKQY(#p-TU=LJ2sUp^UvBb z!TJ*pZG7FEBAjUn9Krfy$O*)31-~aU!@-R23tCwddi6qq)wDA1*+-YQ5WVV&EP zM;Rkg5_46ZE7E97q|uT{!+O_E6_Fj!>+yrg{j|J|mrYN^Fs`nyjA1PNWjRL6kQSr~ zX&iD3@`shQ-LLN&`HHJ4GqB>D_*v*~c|)qW#DKDfQS5Ud7Ch z>z!?vOlR+C49`_7(u>JzHn@-9mh2sYo&vxvzEZw-^c-W3?aT@DELyQK1RuBKJ1nr` zqc|r3d7SWZRzMP>vpqR{&p|13<8S$;^lH9agSkIkj$ZOopLdxMrq;i2sg&$|7-~im8QiXdq z7$G|H(61~EJYJE7ySfiK3!dI~<>T{?UYw6}hR~~)kAGy@YG4u@cEgEZecmefhgGmc zjQxD|yFjtIONsYh7U}mBCG;DGNQGBj>56kd3Vbn}G4@jhT1~NhHLujw)L=zHZ>M%Y zUtPWZ7e*>BV>J{>Qq{`%JIwbEtwvsPOc574qH$fCGKACYX`soN-IyzHHIw;tSsDRSkHZYsCLyS8(3+nnwvK{w>S%z26m=7fvkq` zzPlvkoS9Czwv#k`lqCX+zE#cK*egO)9W{yJoT4idWuzR-Hvb#f!D$iLT11 zQw-NPkBS;DAYHE#y-NJ|KQAY~eFz0vdx^GM6ntdU&t4Zf=HNp^;#cF~2dq^Xk$UoB z9DF>%!CQw=7>NT#HV)3NyeAPH;gM)$7q|x8`GN*LfuQRo7Aaj2TYCWRv zSH36YPv1ywy~Za-mJGMlsk>%$+Q(coItm}z0kycOsZNieyy|FXo)`E?KK6JBBJvyOCM6!odl zrGxpf{&z@C9;q>kZ%S~j(bqbhWS>G6CD~u&BH1U+ac#}D)<5QgUHGZYcH)L#`dbrs z@Ob2@)WU1=3=jLF3FnYnCF8$hF2notFXzhvwZen1-v{L##V zQLU;tv=q!=^UJJmW!|TeKcDw1MqlR^VT@YArdtExY_l4c&p&Me_wTIb_D8e!F25wQ z2|sidjJG0+sI8d_x^g9ZBCPp8CXHjysfpVb1r-!@1$%{JTe6#c(`@}1FGv0BA1>RH zM<+SpCX-Q2swEA}_d$&k3f|$|;`z9gly0uaSG`Vn2|Mqjrlv?5^mopjob;ozMfV)7 zhU_8NosF}}Uv-RWI38c?5M%4@)(YHQUi>%IQku${W|#3PgD`I*PTHY*aSVwZ z*02B4HGTUT?0lC_jKMgB%|=VhMoYWN<9+?QD<$}Q)xHcr+<2nfECf7+3Du*jMZwRm zO=ELJAL&f^HTFB(Vg5yP2=G`BB(eI#u7kq52rR}P+}XAcZQFN$VG+A?MRmwMmhD@`bgl8s3I=yvnBu|;bHxRTf=S`4;A2P=eW*GqM9=A}z4gO_zp@Din?%0wlbCYHx^_l#JcRsJ@?Wm>JLtK52L2103G05Z zg$0FLO7m}Bb)L%r&Q<3V|H8Vl@mKw>UJIQvS=Te$prL1^CxO{CQtm_OI)#-!=vBGS1)q{B1m-ND=L5DJPD!Kv^~ zj4_n+pAo2>{}h*;|HPbNCrF0|KGph+^N9!WrZL2;g%mCd!( zB7(M-42wqNim?P(ZV#WK)iJ3dC*$8|XI$|*BEyRA(G9-`-u@-ET4=XKXu%Z}_W|M_Kya&t_l1fyx=nE+?KM?`W1)Sd0?o0aaLUkB&B_p6qYP;i#ue8S zMs71~bPZn@u_ALTP=GJPTwsF!G97Ou&0&Hb<}XD#m!EM#2c#l9TVPmZ{G&p6iVqdS zuNBUS%A8=gP^PJeL}kR*dQMK3rCY7ut`^$IKs$tb+pjpSLr6GQJt?MR8^qxt?#WOR7B6NiL&Mv(&5_}dWHYQB@^MoWfIQKn~8l0Eplv$z2rV0 z2~_rHHlJya)oN^`{>-iym{-vuFSA~??g3tOau1!zR7XSO;f?E|UAG>1_m3qn-F_*n%d1zyhK@{VPQOGs@~50t<`om+t5~FP`>Q&`T8{dlI?U(v zXr=^x5&EoPUhTf_o?ho8in8WWs{Waq`Owj*q5?TAGS!HQhTGu9rQQ47{TNh9p^3nuvFh$_v)M?Pq*qRW~8qczmKdsGQOYOIU1G%Y1bFaL+N9 zFNrXyRYIhpZ)U^W%rTc^Kv`7zXirMr51yzenC-SkcuVkL#6d~vFPqvEu(xASs~&*|*s!;#nzY(o@UL zRPwVlsDQib9Bbd{orZ5(RWIj9 zc;}$qi4op33k&-34I5S?`Aqni^gp2{ADO$P$ki%PU2M1$!Kv``WTH(Zye%R4sXtcT?7)h z!fy$F;p0Vq-tcaImNR=rx2$^cg0+GBE9=TR>XEvgxM_rQ*V0XH=7j*?0MQu5_3!*N zBM!r9%}%BPvJM0@MHzCoL5W&%zi)_s=++ybcYUz-eaQOG4vN=n;(q2D-pGsxnz-xJ zu}0kat^*FQKW9Vv-1yxCemY_tGZYwIHrMbt%Dw+Fi_JBB3pCoWLz-*&^bpd+$1FD2 z@WF`mfkx0a26^}b)9>I>B&OQ59XI^Z8kZkU4NMr4=rV~`1EKQViO_z-GGIB|ZlH9q zGYEGP*JPpkE3W+LvvLOE(-mn{8wlGB!UrRA2g<(N2sGzv1h^=ZOvf6d&`A$TUNQ!EgBqC{BxGbQx-=hV*?!}VGOT+s8byEi&W_^qu z9~#mr9IScrF^Ysv;X5T%lX6OhH_=9D)@nay!quO#f{yp_m@yN64hkx5Stz)+YdgHU zn&*ci&&CKdFVmw9&+t)t$M6G}n0~x4Cc%jE(K?3jG!r|t)b-0OaO*KW)OrbHKTGpV z=}whzSzF5YP6_c^+Z3Iv+!V32n&-mEvtnicE!8~Fj65q6Iv&sP23sE->5B4$)+Hg* zg!%P+V777c+tQe^+m&UtNM<=*8Jf6NngfwGvf&<}vETbiJ$F0IcSELk*|rL9-qB}t zTG9j*3kr8^4>5F@agNByloFZis*%y*qnPAySS890M3&Cr`^zaTsCx^<$VQZMIg!^S z6UiB`EJ+V>+s2Nu=(HuglX179pI&!$5+O14*rBje-PHN< z?9ysHu++&vuU9!&mb<=lk*k@vB^Hlax7&MxqM0}Ro4x<$q`w{4qF+;R_;)Cwt_1#K zt{~7@AGqO~*dcgY$XKB9E{AK6PhidiQ>3uJ#epbhPp!#b zeK+|Y7Sx<(ULk$i+oAxMJQ**4D;Z`X@rbDDMA3rQsV0wvucifB=gGHzP`62zbK}Ux zu@68lil%9inB2ha2jD!;rV_8pc}(=+I3G%G80Xc=#l8v7Bk@oYaiHdZGMArJmJd3` z{Ly9O%07}Ws-~CAVv#41VrCrD@B}nZG^QefdJ-5@kpLX3l#&UQk>Ug#QX!B;w^#)# z?T)oP+F0q|%lX$2GaovZrr%wbq8g<8!tdbN1ND6kpD*MT@*%a)|J}$HTk{$un0Qej zF$F>wI*p)G-QTwymzrL;=ac!=id?Dgaa^{Z)a}9@JU;vz`uXm<@9|Np`!>JbbytDj zS9d?K{vPB6)q|~dUwp9juu~swJ$zqj{8tF!GTV(j2O0K%47-K5rffR49&~2c)Nhyk zy~Y1wQ%|-aaL47unDKTiKDFM@zqxi}dZvvNyWOl!&a3TEVNkFK18JWZBa-kO(gb!|&pUs+Z4jb`l__A8nI`p?yFeu-GvfLR`N}r!;E6uX zcI3c|D1_&oCTb?vA1y_$yWVDU-A#lSzFNRgd_F#5;F`pjuyXAsE~_&k@pTF-)tz#F z+zYyEm4e0ihb49jcDJVe`&2CmT3yLP0uf;|#~3)`Y#;G1h}L$lsudc4x|>R{?xvE< zMw;mcWP^WXa)7Ixy(+&FMSr_ejf*JEr~$!S z)s7SH2StDrQ3(RtDLqnZxt1DwD$|5xI8Q(H?du@ ztXiEiced>|3IDFZ@%?n%MFz#&%vT1YsgRmnwIG^=QVZhJr18+DWF*XcX)a+$j@Cz| z^AoilRRzuSY!gyTr&kX|(q*}{6<3R4BcyLT;;iMikxco$L-o~u3^NO5O0?ch zPH_!|(=JgTlrrD3U%Mus3O~TiH7^}zhzFIr&*JCqy4y)Pu2wm|^<0&s-oKIJA9ROb z?%#)YH&OxL-Q?gU!LV9-XIhqDJn7t`7^y4iEd+3RG{3r@Rqn-vaILiYD>NF2P3>!) zM~Lmxou^&8^IYWVt@BpApKYD<)H;=dxx^U7+R#MZX{nx#`Y~JWhOJaq!D9&~#+z3| zvk_fVV3&E!VdxW|WNe)}cn!2#r-uLjSDMwBU$^E~4YZxt-Q5w#)_DZQmODc1G1Dz{#Z}30 zZkM!#9-`;58zwOWW{)1jU6K&W-pVs2qwJun+ZioR3Z<6XybCXFQI<#juJo_jTQA6! zwkUCI;Z1n9jOv?N+B@oB3yWBCT#>;R$*fMlV&ENYpB~8RAY3_zD3e9;iZZUHCOsrv z=_JE5iE!_agvN0DE2vISgEVU=`Wy+lG$*IqStnUpPB+x$7)!~LEs$eRtz?%KSi5h> z#<}!E!R}#~n2K1vvX;jyf6x2R154?8oZ|2t_G0y8!T6^*{bw89!=JO;@2&z7!mqwl zD(4>CT4c4B!e_FpKm3#nS%z$*>g;+tdGK6JJ+H|ifi}Lv=U8SXuhv{dvES}uuOqn6 zPT-N4spckpq%d-0)fDWmIE9Kn91nqFmwM#UU0+iUlCk1-bBvb~HQ{Ml% zrI{6O2!;lCxQP;feRk8ipuuCg!wp|aQf|pYI(uuo4TyS*=@zzP8ZztvNwomy!E}u( zpGC7v!sFv43XIyo!&j$A4_;r;6}^|VieKX->S{oXdh#t(texHM9x&Sgn)8Tn)cxuE zurfkM8_vqef&G$&_(!lP|7R!RPKen2MXyxN-90x2Fkw#GP%Wri^YJ_gTXq^=JZFO* znn!SRFa8JAxGMWyT#~bhok-G}LU(0RUuz>_W`j0T2U{CSGEeO;H8)IeZCufWec2cp zMe^1t*}X(Qy}o8?M$=TSX`Vs3pLr3iZyE6iZGCUsHq`2#!ecYCy60-iX&bdO!E>9! zN_FQp$CErem@+Ha46n@aCNiOi2Q$h|q0crE3+%IJOB}RT^_@Qqg3+JRRbD{`qTw5~ z1le8OK`4(b$YE$o!>K?}Klhoq1^ip4l3a>gQpQc9nB*}~V*5Q2MdEHZfSEHleDizs z2-pzM)A5A%B4`%^kn);V>o%?##BY_PHO>a!5W#ugDcJ;JhT2{73dWzQ$Zn5xIEki- zjYtY9b3R9$OCaHsjG&n8Arz|Yfel2pj5xz1_JcT#*`kc|VEoxJvmbe@XBKWW6-a1P zf}0!O2$djENI8+?d?JggC6afE93Ln0vWi4hbR=?QB9Un%LQWJ?PULr=jbY|s3JQt(uetPHm`o^7tz!TdrT;fYbnh92 z$Dd9_C))5fVhDpt9F;+Yv5#37re&01SuV9+F8|r4tn?UL9Faji!XM2sn$t`MHe=j? zgr3^axn(w9Skb!r302JL8KEF>c+3qw8TXb!PaGt2lVt!i89kI-UvVv7`qQMUV0HR( zd8?COEQb!9>E^Yfo}OJ{WJ{FP*AG4f6LUvqA_@|E_))Y2>@^PC@lwfh93+n3lDS+LlOY&zHYm8Nx&spB zmMhTUCMd22L#9v=^J?6^vicF-$~0 zH(YWSsW4JeEaQGo6C)px82McR+ zlg|X*9)z&2llji?S}%0-PIx$=ZSgMbt=zv;5jX|^4=AFturp(v*NhE*5>uUo^&3!Oug!e^SNxQkZL|*W?$> zU+dg_{^V1bH$5tI0%2{byuuc^u!Z^jZ$W9Fo%!9_eXWaU_9NrorlK3h87|=x- zI4`aPT2*`YioW9YK*#MNt>SthFbUlt;I^8TJa8w7KOVSq0MKn7+T0h!(T^fP^SG0uuB@4L9K_&A~A zy>r3a4Rli`)8Zyr!&B>-&fbe(v3AwmzT&e$h4sRdrF&D;u5;b1hD}Yv(?FoBc2#p< zaSTvleF3~2(7oAOBvcP{>)_KzV3P^&>@V%;v$GCwTmNS8^7x&wdKaOMKsQblJ&jnP zN4k@N9K9*RYs#eEwCsB0ZyJ7%zZt^2N&Gbf-TNu!yanj^{2ubF{%*yUtH`hJD+{mR zet2JTE>LQv@a6&S%nE9gAAfzt1s+=Hp>_`~_RyssTH>J&4=wZ1au2QaP?v{Rd+0i# zl}upu*+u(T&${o&=pTMhJpIg(=pRsBU2zur2XtRra$XPg;H(>w)drxZ`eyWbqwr1= z-Yr1uGaJFX4d`p<2yc_e+wAe~0a}yGfY%H3ne%Q$R$GC>r{4sWx!ue-5`-(x^s&BEI$y!Q%k7tq97;e|kNH@wFcx>9(%1Ex$v4f-ojcCYyH(|yHupyCs6c{{^hpnIQq=H9;Ir9e-d^>(N%0ZO&b ztap=b#isM9q08|5TGO>R^%a)`<>^kiLX<+Y>w?1{RGC!7Gisra32cp8A{udg`6@J2(g8EE23M}gM@?(sCh(jWR~cxfPw=~6pK0d)v6 z{+4;X<%XviE4^QrhgN&&IuEV!&|08rmfAX?mu-Gi7wsR=sMqJAw;pKa`g_sD4M2I6 z5&Z+YHh=zB^be?ZQa+9T0iE#aT3VG&Kxd_P(+6w@`sB2?>_Y#9_xe0kdVwZf`zl(g ztw0k8#u2w4Xy=i$s59GycXcE3+YVHpt`BMdfbLE|g7vTiXyxW_{+#v?X!Ps5;SZ6d zCcJD$6Z!{Kd&FGmg~CfUZ>9g0-^v#7b_1Qzm51IQ`K5%n7bul#UP=3BetFVJsmc4~ z+3-i}0bUNg4A9O|!W#oLizkfHKjC$y$ZtK+D9dky{EXfNpcANu=%4wiWEwrxpNFP-XoiQHfocz530@1(1M3S7w0{;_(?$Oabo>#YLC$l5X1zL%BWv@UHWCYk<;M_mRe0AeZhspd(g& zhw{B1=&5m{w;t&9ug-D~s^yjgggJlGc z&t}QuRv;(wenB}&Xq)%j4uoNj-=p4dhld{X&`uBS@=)lZ$33)LP*ZIN{R8Uc5_O)*wjUZ18c(?BgXsXY1zl{2|%Nd7x#JLnO)Kd)Kq`%`PhFRZ!*voH$I{E59o{M$$rsjrK$dW@TPgZ z89?V9mx0q}psw?U*J5}loQM87JnHXkptl&kxx#y|@a7rb`QWuVJhXiQ&=of}L2n_@ za?3|M&=XIWq<=sZ8-4PnKu2y7e@lS$hyFPTD$Bgzav-{WLRWgfE)T8t&~+YKq0rabxw zl(|{PorfX^c3{TMGKzN-^`v>Ic?EyN{=Xm#tG;j5QO1H$NcI)EqY^I zD1JF0N3R~p@z-E@r~VH8bD_}71L=?U52)FoChs@dLsL976)10b)4bmd4>fzJ#X|)T z&Gyh-K{dyd?mQr>7f_oIUEraGg07xRooNTEW$caq`Or%}v;>GIg3u12yg|!+=yDIO z1iII3!Y-gDIsxoIA9|gK)&M!%aV=12c~L;pOa^Ow$VjE8a_s`pTXhbDL^@1aHyHF;>Vho*RFs)wd|XoiQH zJ=EeMo$+-1&Gyh-56$yXn}-&7XrYJNJ+#pZl^ zLu);>&O_IGXuXFvcxa=CZt>7<9@^xg%^tePL%kl_>Y;uQZS&A}4?XIk9UgkjLpwdR z%R`}u9{1305AE^LUJpI%A?rpcO!QA3ia}b}anKkKH3Biy3tkIQjX_I*WKz;bc)w*p zt{yE1lA6;;0ny+Bbpa`9+6W(d9Z;?LtpRfM)_O=QA1?0o9$F9NVr&3%sci&uT-^fX z(zp%C#oYwtVr=$)_jst+Lt8zh>2w!&n}@c0=ur>t0CMR*=AoTHE+4yq9DkwrdmPBg zWjB!HbdUGj>!D{olw!5W#YlT7-W$$4{i6*qaNDfp~rxngmwZs?ss{=5XhzRxQBLoygeS;>!D{oq>At8r9G7K z&=?QpJXG(Y1`kc}P~Jm2x#TD}d1$hSrg&(oho*UGhKHIx)Z(Fnhh}?du7~D%sLewQ zJhae5?H*d}p-Vlq#6uk(S_b5_bGe6BdZ-J?Y4&O$m-Fj<=o%nbf@?kAI`4PA$6F8N z%5npcqp}gmQNG28-Uj68Z31#!ZT5cmc&Hc1>G)QU*AL{{oNYiZjqM)qQ4j3^a%nsU zlZk%s4vB23~Ea1twiC_I`PlRCYiI7_nce;74cJesl{i?x@jJ*}kAETBC8qBf<3%Ij4&sjo%A<4-r8{A@Xb^#v; zBn}1d>+d$VbBn%G%NLUJ2B1=)@4HpGzxUJ9!=;vD?nJ!|diI0G^jM-jSgdo-Va_>R zjw4wLwh~oa>+LY1%YY&&1KlMfFTp68Ra^8cjk$7kIco!x*)hx(tVY7vF`UL>XORf8 znPJDv8Pn|;qa6xC6I7$EH4Tt?YQx>qy(l2;)iE(A!SI1&6rtG6pw`E$+_n=1WxxoZ zt`YXw3(n8SP}bGXwS^LSL4-P_Zqwyg2S@@N@gsx8JX`G zUJJ~mNrYh=Yk+NIjj-ze{q1>nF)2J797RsqcmqtaYo9(4x9zjZeEhwjb*D#bGl_Zj zY8SjER49$TkwA8_u$RoGij*-XRa&KBo+#gHU`yngpzOBN*DZ_)WV9pR5-2AQN>_0S zQQ1&AEyf!Y;~@?)qV!;-A!dYaqM~kRw2x zHR`VW5^zhYt_z1$$)_5UBX@?3Nj-=#piF?4Qm^w|o&`8GaZ+Q(CE zqsvQvFG=7f3A`kMmn86#1YVNBizb1g=Xo@A^rz^X8Kn3vr976Tuu|Q}#>87owWK}t zJP$_DvUl4l7cD%8AI!O{$Nm}XsjqcH-kiLS*Y~l-90%iRPQLYw-qHmVFpn(GnCEu8 zo$wr|5r!}|3I}rnhk5h%L=ca1V5f&a|1WTZIfaU`3d5203_G2Fm{%wAkpnUT&F%TgWhd$72H2#gGG#$j0dH}2~za>%QMLtcrR$m`6z@&q%+ zQ&e`*J0y2D<`Ycv5TTMO2raBeh(VqF!xR~}z45POW4p`Z_%CAFx}&DEG!hGfHi_t? zQ!Fc$(>Tr}KHPcIYcQ#gJe+iF zcf2VgR`n)3YIC!;Rs1ips_niDyPBi&q~H#dWOVNC%*uMI!s*ddb8p4jVJ;NMc(N z%8yGlqKA()=yg65?W|5^NEf(F4DqW!P95Gx;;E%bRDSaA++v{}7scX?=CPg{ugn*P z&-!&lz-EbnHIkMeckdBC-QX3R5t5&qeh@@kq3GS|YX|#TGo-!HpJ)gc4Y@H5!P(&V z{IVZ{U;VLy7(s9+1WHvTOX*eQTHlek>A;*!sYjli=jq(i3mO-CT*L1WqykSubFwBd zdNxCH0ZKD_biK|GP18|Y9WH7Sbv&AY8zVT+9F!7Z8ltC#4C31J(s2p>$4n(wNtpW) z@&jLji_R^I%2iRHIYgEUVyQX7lFmWJEKPxjy5C=CH<7~ZgLFD8XWpf}(}+gAR`B?q z*6KV;vy5n^L~Uw_J7AdokPxZ_YPu$^u(%A6?kH2qA)-JM4RF3oxF%`NpGL3*z9E7o z@U95Xle-%tNt?u70mt%gMc#B3ATvG5uWtO{Y^uI{w(6TZPE>@t&QE7i@j@yJr(*8C zfQp$xP~i-w=wdSM6ssn`c<2M1^gCmm2AjsK$f)#aLhBh1aWb-!t-pLz6-h-mMp>;* zNX)&vaY3egcI||LpXt^pwJnWx^jcBH)Dr>H`7n!T!7k2If1=Y?w>Q$Cd?O`qT}iYW ztV1{y{i0cC|N9B==RPM>uINQ8^#ut_bg{xpbx+j9mT1P1WjT~jmUFcUzMQ!1+)@Cr zzEFT`EbXQzzFc3JHq3m|CdJB`i?6dwrvZf>PYt(Ap-WAuuuG?*_~F|gAHgmq5S=Sj z*lL((>&@R?2l>5Uj9`~mj~nb%g6}y3<#o5GPJ!79+sS#vw$nqeLf60Zd(tr5$wY_k zwCrRNxH(7UKcek4LiumL?O5{k##h2p;)vU&tP3WzU1ERuF3xP%^>^J(1HBJFT9rYIO2_68pRmQlv>;AUt8NTK^3FaJZ5@p zd)99IiHHlQML3u`5l&`$YfCnWZa}tZbK0}F7BZ##M}f7Dc1US(-_t7YF7JixS@&n% zRge*d>gX-2YQVqW@Rzp5sf~nN3+@9Bck+R7M}hlI!|l+mOp|o^)P7m{Q{{XPr+F!k zZr)FBZRc(bEG~^Q_`_}*?;xxupy+Z!%0dN{y>(`06c=KQP&U^S^WdUYl+ogYjgu&= zsRtV;QD!f9am)}TYXh&O{G1oorL?)&808&1FqT4V8p}_DXl|B4LX$l92yZLQXPs@N|+=&lW%VhY(5>#ktR$ zn{wG?yG~XwVg*38N7Zcoc2UrXgu1(Il!FzcFYG?<{$p4IjJ4QRX9jvwAgr(vR#7^R z5bKkQ+N)?|H(|XDA*tduk~*WnjzFmB?@;nL%3_UFcK`8*QmZV%&;H@$66N@oKPaCq ztIDO>K~0nJRMX@R+^yRKDvMA4CTor8T)_*y5pS;C!KwyuRjoaOTs<7P38R&zV?2c~ z7yKyfLc0ca{JY;0o6(Qd>sq%BAn8v-LBWbBH>#vj-KEn~`!?NzxCNOA@a*ua^+Z7x zgk0%@lg$kSuPS#)Ev16J z4nR$6De1+k9`&URWR|H5KgR5?AS7PpOq%O*!}{OKwkkFpt?;s~h*uthP;oJBddh8l z(A=2|+NcE1{D}wzjzHq-5m(UN#VMl9RN9Et0tJO%-v^mR4%>!%{oy}pRKm4u5MVO{ zzxq?b3Rc0&<(4ykxm=CkY@iuHsOWR2M2oj@`OsDh`>*q!=T0bvN7Vp9MO$8JiJ2n;W9Va_9 zDxod111oG<=OJ5mC(-`y3~bp^vdhhul>w;L^;=#g8aJ=u^N(oD{_h{Hy_CZjS_0)+ zUAuEmqc4A>M;Fy0G2GD@G`fe_KNLet)TGg0noU^tYJsN282d26ug-nCotBT@CTK7_ zM86}wO`tG(u8Ow_zSf|sH2iG>=96rak~ath>NbFE6Z5$hPZ4BP51C1(vbSbRaiv{- zG?n(PPwd`jb1k|v;DxKCu39=4Vg+9M-aNc-IB^PV})$eI@<%3LhN#bEPMr<5dj`_BqbO^Ha zv=p!vVpOSp{cz9!`S!pj)Oj3YoLzPzWS62tmj7f)nFm44iS<8IFa4LHVijO6a)03} zzzf|#9e`d7v%-m|R`gc5WtJ-;^STo9JfxPWW(5;OkjDu(JZ;s?lwNU`j|bGQS$%L; zm|y)_xIUKi#0uuHz-V?yGcWE6Ow1y@RkBl2MB`x5oJI_U2`A@ur=Aj=$$U$SyJaa4 zeHQlhVr>Z;yo)%B&&JfpoASE24zTVgfEW=O0$#YeVBOz@jEsR;Myy788F7IfUodjU zYe=0YlPmi$Z*7NcprEkt=TaOC56}4(aBy=jKiYQFBS6P`d^C6@gF`r9=nXs zn0eL=@)n{74?Af$s9LC7t+QYzF!6t|ro35RiJtdvF zV#dVk`r}`g5|4@ADUh7qAw+K=M&8OXrT6UKpcX_*|Z@T$aNmffqT4 zBg}uJ+UwOF#}8I*M2d;R?1{S-1yaagF|7P|1EjkF_9# zr$3e{J>XEZ+&3Z$XA_Pu)xB=Vt5}fExYfLOo~oN5$A0cKI)BH?onB0tcSdv{C04v6E6;(oPojH~4a*%ePRH zoZQm9TYh#IJ*(izC^x)nTCq~wf|7DGs`7%(l4lj$>6K+R>o1rAkMBv#)=u$uM_DanB|q-&8@b+;~ogYMSFq}kni zX(4D`j9tFQR4MV?qVtFs4A+k)`7dhT%j{KI@rT-N`~Lg?cc5x}FH2@4rRfK!A4HXs z&Ar0VL^<^JG%!HyW#Csj=~@PbT4j*8G-=g$rAdc7P1Y0~>psIarv)kt-9QFToc%SDd%`I2CCeYxv_FescobD#6sF8_>JgX5)Lcz5yg9dq; zIriu!4RVu32zHR=@L&FmHmtm3HAi&rV(wg#OLe@)y$@2FGe+f%O`&+|%3ns6F&drA z@~NdK^BkF?!Gj8UOJ3BIPt3|=;70Rx(MrvE3S$}tGc9}PoXjPZfxSfHQ<^jFlJ1!t zRgKW+fO;-Hd?8O1UVBkpZ3AqRdbVa(oFLd40j;rrPAdOQ`ig_ zKxf*U=MauNSG1uzmO^Z2bnG=gGDMt0rp0VDIUC{N_@HW3tM zPY-UBB+hgBIn3qf6R#mZ|M9FzVn14{fwx=!xF}78^bg{mIfZWgf7UbGgN0Qlp)#}@ zzO|W!%oD9m6Je{i2xH$qy1g;0w&WsM-R3#}q=Fgc3g$y6n4*3EMC3f1Y2h<^qy0si zdP*~I%Yv@WA?@p*-kM%$v8^%rQC7R^a(jh<%BJlVmS8Qj8lXnf14 z98%3h%BoRyU-KA#sYG^Pb6>MHUz_!-IgLvCr9d$X-81t^1oLD3*93AD-Vl*11rmVT z8KYhbB!ljP1~bAe*&JPWpX1E1RZ8U zssrcuCrrl=9A|albk%{vUe$qtk25F4oT*Zu9gHpfa^Jq0t^~ECKTuNPtu)IcGn@@h z1gQ!SX=WSPQa+6B!#D(RTI_Gir&OeToW^(96~38)Er==(ikMRV4@*=LdHsZ>1&3u+fp;y1u-X~(W(BlQ&zA(heRm#D4>d_ z*#mw{50B>Q2i}XmFz)pI)?v>!(4KxTS^-=LjsLCPR(X9_gS>u;&`npL4w$IsA)lRF z^qcCSmniN8=xfeM=7ZY3sc$UGQeeQj^+8K!pCX#4U?S4z1tf92UOpC+aTt0&qBl-x~Iewnmd#9TOc;BOB-GZzj6Z6aLJakrGZ= zv&UI`j#{8(y9>F&*PPKyH7DY|7BL#S4!qJLUj5nesj#1|9-7B_-t+5~`PDvupI>gv zP3Cu_!b*14aAdTruUv_5sd^#(^6Y(@^Z&@1F$rVKjY3O3;!S5k z9{EX$mz`QNET;8`4UYK0>5kn=V)ysTgt1$@^o+Pz|Lg(jLo{1({;^i9f4i1qeey{a zD_MPlXao2Axan;1t!{H^EJ@4iSDrITKC<@`Zsn;Ih2{1WiSS*O;l}X$2`8#nrsG^9 zMRt|-hqDt=)#(!6+50kf;|aE3=463aZILL{m0o!`e7}wlrfCT%>qPd>KolPNiJk=> zMeoud{_6L}xD)a6qqBF~dl?*s0xw9Q^dtqfwc9l-woz`XdQhXCLvTH$KIalZ4}2^Bj&LA5bBKU3e!M z`o*&e8OYeE>y=i#)*0M0Tq`jiP>tqaJcMarN?o1k>5k|IM^p}#TsuoEax3oc|4HqBDQ)~+Dzy$X zDeb1TXcGpWE>o=}hkvrxIaOj~H3}8U;y`>~@r=oPK-0womsmP#MaFcDb@g*>)}B#` zGZI&XPMCBjWy*&L*;0=1s0lLmvN{&1D0u@zh=s4+`lS+XXZYq;=KwkFvTxWO5iW4z|Po;|*0_O6edZVDk^`^qDtw z7fc%}BGY1F_T<}lQaiL6W(|!)!sc5hls@8DsU0Gu8X(se)@(Y_`u^@r z=N3z6sanb2G`uY`y!bx8N&lvKCO5ZOo&xNgmRhRyLlNpT=7@bYu{jtW@v3cZf|amb z&SUahn+@`5>ehw5+9FkyE1b0oxWCzq{yB>up_c1Elbrx*7k94-{7;-ysCgdWS zF}GRV05&bNnm%?}ck#u5(k7rwM{#nyQus7JZe?L8Kli2egrb+puwabII9!4u4=XYKsSI@c4p_LLU1Q%Ez9&Z2TA1s;y4I--W zXk|9c--^0gR!5JJRW{O2+%b%d6V1*l{t``yXxbvtER|?F8t3why!hofJiqfyObbj* z?ItF6g$-3CFQ)nbStW~yrnLhX+fkPT)R=*9J;MYDYjT6Hl~EM7^{D}hrs6ZX>sI6g635 z6AtvCbJca8g9azMPEF8J+J?ez4(90GmPFuYV9lGjn-Sb>w%{qzzBFzza2*YsK(ZJ9 zQ0=7VG;jk=zeF=B;V89Phc=fYF_8(s|GaXp;f2mloQZO7RAV)j5@)H@lg!X8W$w^3 zG^FgGfBq`D>G+kZwjEwjiBo{K;2@X+bSo#otWMg(g#2m5b5^qOKq2Z&bCULDtyM+d zH4(j&EQdc(r~kb3oy;%r?8ZY-P@VxdHFbPk&HODqHJNH2WR6kW1LPAaRH*F?CSRU^ zZnteSd$!7bL#9db>iz4HYoanLmzAaa*~jSBiBcoznuVu zMa`HsrhB$8fq{KmR`kSQF#AA&urcF1w@6I;jb?LhPYt+e!nSCVz<#6IRNOsLG+`6% zdDp`s&5-|0*3ZiJc9|*~8aqYZ$3-Nc(Aaf^Maw490HP2uW>R$nXt51~vx7N}vjf(5 zdlrjQDOiXT&Zd4b@ADqyrq!=h$5_NID6&90w}`g$wp92acITG$-dm8z-srsrIqv~G z*%K!)2^+2zLvDU?2^btWDXuj4UA^Ileztqxud|bTVNNVqvAE<zgEK*yw)D(ItR3&}p-W6lb@^jl0t@{>l?}gXrM)i08^YeL~hdHN$Ok>$a!2 zQ2{oyY4F=^4{);!XB|xH5AD~^lvGESx*~|VPd?du(77e!0|b?V>*9c%1?Z%=pwgVQ zp*MJ6L5#LFYawE6Q{KvN=N1v*<4%5=trL8!@ z8~-U#I+wMiI^IBmH3{F^@Aym%=KXAENFwVT!QLEG#PFM^F){H|6>DsznfL5dQOwqK z=ZbX7Rtvr*>37-&p;X7K8Di6iy1gvg>qnnz3l86hkor_5W9_2Yua0kh@ZUuELNomQ zi1^m|ULN5K&G41o>h!JGJtx8!T6c|<1YzE+9{xV z*c%U;OuW|g!<~+hE6M>)X?UjgON~9H>0nGiQ_3cfc!5ynS`|fl`~KJxA)hyWIE{A8 zv}Mw#S1|fVQioy9!N~Ufj{VE)Zr?w~H+?O^L#^yabH~X(Dt|Qc zfvTKR_m$VvVUAhKY+6neqYjNd=cm*K3ORA<@iFEKeIH>n-@9I6q(yQZT_)Elsz_;C z=u6#vIB;_z>R_ho>aXr3>O*7S?g3n?Gj$-k7); zCg>p)De7d|3?F^FPF6Gi7Va1B-K>7>E3Vzjn;>?NyCr!<~>(#5Csyeb|SAcza2;((nNppIG)>>7ILeFb3|bTfBJDP%9Kn}3$wvDu1sUF@eO zSBmAICXirsC8`pq`!?3B``*}V-M2L+oP1X+5nZzSNf)vaFHTeOt3P**s*V(Q;WNnc zokHA~gS8|fKZnWtLBQGI23sevk7yl5d`9aiwb|l@e6ctpmxXp6fLu$hr8*34D7kj>`ax`#q#kgxkJgrC|k*FBc)wO1*Ry2-)Hk7><@Fc}k&Xg4A+ikCW2Z~P-xvLl2 zYz9oGN!#DC@82LAv ze=Z8Y$Z1YX@~k6-f)&_5~8d$ zMpwal024%2e50@qH5^0I(Y={c4kuW9R9{F#L{9BxV-BXjDE#%^HAC!fATPSVOP}T^2YlQB| z<)UWYqc=wAT~VqLwQ}ao>SsLl#`hV>$r-WjBGioBf$tDit1b!^*fVHMlLEM zics2JYCT)scTbnOYPg+E_-K?wgdcH<%%b=$4&NI2Jy9;jmU6i+Gd^|2+@)_-&P7Ll zUGl5#c&&<4`1B>G{kb^1$WV}9+9;0eDuw{;MCDhuklcaCBLxvP*~-q%jjeT=3pP3b zK$KmlJg!)edSPtRj0(CuTUND!8;sn$EFk>N&1H*ZYNW5C4~L&Jg;`LHyvKGQ$>7^8_9A_qe9&GJ4q!n%6dkl?t`kd|pqu5LB> zG7H`JxMGL%kKFm*b&W%A>=MJDA2|H^fy194xF*S}pbv|2T)X7zS^Ws~T_ckln;U_? zYs0G3cMX}NKQ*H7(qXc|n#f!beOFle4!3OSN8de-7Uxhc{Tps7*DD!yt_W)@ixA~6 z7vYXq4=q9k*ZoG`Rg173+Y~-3!f%0pC`I^phX3Lf;hYiZ|LGUu57t*J!cmn)$kxYl z5sp7;Xb~#7?sR!qEy8l_WD(Yae<(%xi$-g|d`;^xRe0fQ;k6^s|I;tRSA40m2nRm< z#6BL(>7q)fmcD|raTeW$bze4-yYW}{j$*Hk5j6Xi3;GS7AE*|`_Q6(Q*SiY3Jf0lX z$KdfIYY3;-Z8)($b-BhTbzcBd87qMMV$EgVxMZ&tX)z;vtIbB2E@)xiq>+}oWzqvP zOWQ|1tThg|=E3cb14py7Y~VlLW-HAxhR5Ha)l!=n2*(@j_6OQ&R6YJvc!;s}z3beX zYAMj#f-aGM|5kjsa)r+qd(~{%GRaFGFG=7f3A`kMmn85%TmsKyE3H;i>3y}eW$Cf; z_SuT9+!wx_Ui8lfkEt5?N>(!Hw)!D)5Z%_$`$!IEt0~>D+ge+})CnYb;B<$kXZN2> zVeIBNhiuarOr`$R-xj!uxJ_XkFEb~YCdV$TGM`e=j0aZ-wA!8oD~ZUQ47y|9~4^Cge@Evb_!t;rS6#xptKG{IWmbd0hEcuP{Q^E zl{_ffVJP29qOdStx97)0`MfEK(ge!C4MVvqi85Jxm~_RJNvf0AQ954fKN{T*Rf(u` zSyRgP9DIoxc8`!xbsXbA8XUrvAPn4%dDdqat7;;m&+b440Mb<;4(f;?n4B?;$sa7z zpk1etJGbc9(LMp%aUmAc6w8TAz0eB5$Ci}~F~(XZtlxJeu8oS^z8kG8 zM{ZN(?~5a!e4(5?HS+5}9NMxJ7ODko>|8;s@M`w)64Tn*_{6}pZy<*|dn1C~GwTO+ zwW8XNzUF#efx(v8L>$`@nRap9!-)=c3Rz~?eTy8OTW(?cmTgI`?eZlt~iB(38_i6s+@R&6nN4l7!xy5GE zuxPej^P_h`a86p=sk{)TjD&n%HROS@+U6HG#ZyvC)7%koTI9h=jR|ok;gn0r`@^kJ zNy>bx+r(*O)}4%5ciqRBb@a7v%*v~s6vqG7E0q3+TYxVt`?i15j7sK8Do&$mu0uxD zLY+?dAXOk?L}^omCS6wIvf!~A$F1NB(xi*p6Sv+dl-Ng66vB6Fy05hnqPno4AXj0F zEsV`BD6;g^ZNQEW8er(mDexpvsYkQw==TzwaNE7q1MZ*Z4F6&pSMAnML~bkDoxN2YFaNI>_^n zA5zM53Sn(Ym58UJf2-OQ%vn$Edgtxbu3N6L`JVy_9)uzN0u?ivsVLP3Qa^}&@X=wf zl(3_X>DF?+VH5j_-SHDLZo!MrMWl9hW1)0DTi9ohJ}f+1XzpNw?FQBMB|CJKvs)rr zh12@r^Vu_8c_ynV%1vH6dLCt;&{4^mvd-h!u6{PcJn>O&go&==JmGt`5vKEBD4P4f zqKz;SHaDwIxBdUiN82+O0~aMJO|6Z+-(2C%3hSqx@+n2+*MNWwl>DM?AXQ3?D-+(J7GMbX=;!9 zT9pBuG5l(#T5Vh|a_b|vA#x}5wdREuHGzGtP3{XLk5u|vBgh(UF9kX` z6n_3nnOF1JT)j|9azoyVc_}u0x8|dbiQKO!16hBlw2-(siC^1Dy|^+?Q`I;^O2ko1 zn@ES7Mnq2cI405&QX-Col87_8Y8)ZOapGJ|8;SRHd)AjntsOKu)A<3nMprXs&f}^nGbx>k^0E;hbg8SuTge zb}Qxb*JtBaK~57bccow@840r>bC2A|IL0*1ZCvjUFZi^&KRZ8K;AoLM%xXv9j3h+b zxPXk(a&6{c zP`-3>!7b6jsQX&EIyd{te)dK1z^)?l)HlpJXsd_P3}5w^q{g6QG@Ldi{j3Mf-Zv-h z`ailZyE<|5-&xni*b9mW!e0~^mUVkP>&DDc7B(N*Sy+d`)uhvNdFK_2K1wVS64 zs>0#03Xs1Nk%Zcno^8AA4{!V=dJ-FvHg|RGQOfTIaP;?}9T}mo5|Q#Ph3;5Mxe=_g zBOH9LwBt7$d=^41bne2@ZJv~kW#Ep~Y7=ktUD(&lc~TeRF1Om5(Su1zbdeZ_KA4S& zKi9w75{Vj3yUx%?nz}`tf%crm**khvpsTsidEh*{pY5|V|+^O9^O z!9$d+BJ1+&+JSGFXuBv_{jrS=-u1^WKFicDFgXgrFBvpgznsi6Sif8xXRvfZW7R_l&l!s<(?o>JnoE&v-)VsYiPWEyQGT+cPg<(`@uqboxkIS3p}yALA}U>0gsm_(c;Wt&I4H8Q8mTzc-N+qmh;zPyWa6AFNqQX@26v-D(V_;7HU$(~sU`jm?XE7AC|b~jMwpi~rZMEvF*xJYM z`#opo-n*OK5D=@s_uxbJ-aB*V%$YN1X3orN`Rb)rIAO+xa5V4D zl0F>92mWEQz#TU8y3o90{VejGe;mrSHF0vQ(~i_?M4Q*OcqLTIK;7s^t@B@R#w++n zirh!P$q_&-xiEGx2)99URF+o*^mPT=!PtI4bl;2!(MO`KzXr`-2)dodMK-6|Kw__L z4X@K(*JuD6rBWyh((Y%U9A12*JToG+W1VxRQmmV;;#&*d+R^~G-lh%XCZ9f)|Fcw;c} zFaPG39QMiuNwSGA4<`P4ATcaucboXcVB${(5)Z@-Te)5XqnK#D!(d+K4Ee+8-OMY9UZ*zJt8kJ2v)V5$X`emEymqC$*p%fR&;G=;Ieg-UPEbLyeL!88y z+)*Pl?~9)2%$xlpwgB-Pimq7-IH;EVz(1KG;$3tFJfW-M7c)fsMx8krE6^G9LscS& z=sh)ICqLkHlCbx)A1uSpuoqB06d{ulVoQ(i-XVncDSp|w@@`><0)}Y-^90I&qh;{Z z(Mma)W8tuTUu$b9=8(r=q#p4RZ(*bf*SJ~mA%n=eXpmV)va%-k^JOj9=8+0qR2}Ze znqlucYo>M}3Tq|Mf|XjoVQQ9UBkC${`L&&!2>`@!O8s7m{T(ES=yYMb*@GrIFU& zr`(E_#-}bLZQDSTEZD)?`}1Ezh_hiM#>IDK;j!Qj$Nq@@9N5o+{Tz6AH~^)xfIsUV z^uUGhGQ;rG3xH75(7umg7;y#IVG#5dF&_rzFfK~SjoK+7rSa}CdSm9XXT9;B*&A%r z8x>nRE1~ZXS$2TFgn28`g%<{F4{pCl#+Y+|fT1IC1IL(ci3-prc5D^U4&nS#Oc1IP z70u&d#@5|ite3}PgeeDZcNTzY8tQNsaS&I(6XCue(s1tWZKeC}(m5iU`ZyV{flVs1 z6a(=q@^JV_Pb;ZP7B35bsH^WZ8#5ofRcVP$rVog23J+P8>hcrfqHxS>H6FLjVF5}a z_xK_%0ol_W53e@h4Kbz3^Q-yd4`;g-%?d6@uOlX$~@c~x@B(si`JmJl%wK=}CXsuY2t zis_BNLPqdjY6kS3f`&rmr~xKV77fAvS8-aBwk662O6%{juKy~;_ZOd1&Bxh5x!mVA zgW2s*BoAAs<+S%XBb%qAq&Vsvoctl|b!dTnhMLRMk*7a#G$vlE;k&Drvv0{j6PD%SG$ zA{33ONcugQiZaCAf-RE42ym{{(u%{ATG|l=a$Ki5F2w^mqK{I;^|Zqf_nE(8@~fUs z8?S;~N#LDW+C(=6yWE!M_>g78@GHIHdFQh?9Hy1A?oO$Uo4$w2_{jCF3>fo9@4~L_ zQx?yQC=L#4+Rp{ZYgdmSEjOE{#V<8{_=33cY6wl+V>K6a#8JLm17}~jtX)bOY!q7T z4QvwoR)qcjX?Jxg7b8pE6=Sw$St|iozd5+dgdoMSo{c-yXW4rNq$^s>inC(WkX@;p z5hq!%VFuDn!z#!cb&obWk`%G07J{p#LNE>3$FGI zpTM9uw&%n1?I0eSgSNPf`Y!65401;|jkMAhLXq4xf5ikn-gg9|j%qseL97CJ#k`79 zI%kKRjXZ~PHeBVb_S+(7-!I3E{SB;Tm|O7J;Py<}%c_aNefaeybz=em|BBWqiKeQ zpb(S6E|m&YPD^jJWoMKog5mC+*aC_|iyqqdNFSGS1RvLj-lpPc*p;{cc?yd!UjIXd zH87~`l(+&d8gAjEiB7Hpf37*DuVpdg(^esCgooLk8X6P3L*2c$!ERD#qZ(U30 z&zMhBsZ|u$VR_h{3#|u-mL>_Se2!hY)UXSCjZB8~I|AZ3Jxuj`89z1_7$1GAcj(CEZO!;&NYl(mtQ5DMZYZQt>TNi@Jq*6Gmdme6^#$zg8fpa5I} z63i+JyTUNnLc*9~fg&6th&mS(Q`n)9iV=-N9{GN>p9Yhd#`oST@nUY(0U6F0CuUY# z5SfcrQtikWAxXl_ORQF_#Ke)^IMKjvC=59+(K!9W_L}GSmAn;Sg%x=a5UG#AM`sb> ztd*o+`4USbW}dJM!#i{5(@(s^`?85q3l6Jaa;J?CBeuvBcYYxP9+0@Fr{#ck7>J>| z2CyFbSJfQUQ@bBd&$Z*64ndSJda56PtjncR-4&3?Tr0Nnus_uu$>nmVJETBWWcO#jGABA znASjyrdegubOd5Fjg8q7h|x3~O`08n7)`?%9^00Ovk(vWm`ir;f-&X$5UjBdW8Gp2 zj<)^+IPx`;y=y>B#WLn;SukW}8MVr)M6i4T>n{XkJwvl9sv-{pBK2ESgZE_-conMM zWh(%3o0!d=af-?&&f8rw4@;KUT`~|?U*Om87TI0KCA>8&T)RugSkGp!qe_6%c9;BQ zcS&@HReRK3W+oyb^!gs)G3RGfQu);K;DLb>0M&jWqn+8X_^YXOzlBK!%t;{J@M3`9 zAPyHc@5$y2YAcv=QZo0e%83w zZFgDs1KGQ*GhfA=Qup;a{glh(ZfnC7=FRDH$Smzp&7u#t+m^_#eh)t1@uh`*rDE>K z^S_7#{(6(0p;i}|p<+_r%Qmb#Ug%+}i=!t_ja_pT#)E!QC5S46zvLMv3Jw#ixjIA) zc%N2`nbs7%(;|J6c~+WdIiF@y${ANLKHUm7n7!F>&8aI4uHJqz-m}iKuacf_5ij_C z>w$}rt2aSfU9pjIdia$^$Goc6xEFxyfj~qVBd!22kjrKFJgQ!6Zn!K>#F3c6_L9s} znF2AmR=fjvm`a%i<~)p88_c`38d*$W#Dp3on=rfLwK%@RxUyp&vrT}zWi!(4_T&5* zI_fFBo|vF>BsKj3OqsFA4$i(A&K{Qq6Y#SW>sLqmd)uw%9_V%7nR{j5?JHC z$HP(#Lv5Jyi^JvsILN zabm#XUoz+6HdejlkdvW8kx)Y6=&V4c zt0##S1yi(5o%HrZKdW8}eLxDm^(kcPuTSB_RFPzlynjY=l1vfgez2Yy11}( z;!RMlHk_mjONjd#;^=^oi%$e6%z=biVPN*UWO?@^*0ZMVR?R}>7Z9!<#L0f>M!dMq zzmbg=zC$$l(2bU;ag3IdAZ~`UgO((h{g>WA zZ#HVULtfH!m<_*5!=n$nKn{Vr8+pUARnr-mv0;y!GYuJYnQ=QYVK1{151094geEY;56dc+jpU&-x-Y0IV-!HxBzbiAl{zBsnko+;73k`8DM5QUJ7t zzu5O|mF>;RKA?zcnE`N$z4qx8JTmQ^j!+Q`Rx zbn!O~D>*vv!?wgr2a^{mesLrkjj1r9uflfYKPCnCPDihn?Z)=CD9%Ikj3JCo1+6gh zgKdZ63XwxWKr}T1zX7DUfl+j(aj8i_jV0lV=*kz7J2J%U#K=-6y?%{^Oz@N|^dEGt zB$tn>vwoccg9=&-64C~h(mvT*krzRlfhv>ap0&}AH&$6S8`tM6p3zHhFQ>buoJ^;LgTs!!cga0RMC z(Bl3aL2K>|8t0f`@!tTJ+H*Qso{wCBVuGL%C(Bb(ps|>yJPm5Msq8u-5m9VfNKmrE z)IE0Ih~A6AWr}`~!84V3ECM#7{0KCLcW@pT*1BLhAdy@6SV`Lx@@|I~&XdTnSyHnS zN0_kTul9AZnjnnESvlc4K> zyuKY(f?mWFeTQM!4#^$2drG)>lT#d@s8r1utE>W@C1tvhxvP7;ENFrb91P>WPJQIR zyH&t`E>9zp_8M5p!4sVL(PCLTXtPW=25v;q~vZnpIN&gpGFxN zNK{NJ@~`BXYiXr7^K#9ihY7tHLl60aavEf4#rV#A0jiQE3J36!%&hOCYQR~^-}a#5 zW+l*x?vU6yg2?^o6l%J$5ofO%h0CcX_HY!w`UC6={zbcjueC~7u#IbuAFeZ90W;KW z)9sQuECNs;sEctz42a0r51iAb)pVjfy=tnE5_;r@g}%9lY`uQcFoENM$Db_DkqR$H zy9WkIEhs+Iq_gA>Df09b2AAJc9E0sVY+8d%{*&s*yHr1(wkKtL)Ok&N9Q09YbP^98v z0t!()x>BeA5L3jU10)sEmA?}jaIv6(8x2Mhfij~MbqKvyDT-UANE|4bN^sACmPhVu zwib_;)Z+2-C9y82r6ci zmlNLus?1bLiBU&5L79NhE6IU4IVdt><+^<&6Q}Gu@?Sm({|~qc*&X-2JO(EJ9-!(=?haXpNY}u<+(KZ={7Fq-sfVgJLB3@U z`U_1wHx%RjomdSovFbKsxBfjs^*Wtq>e-g0*$urkJ#K)Vnq`(^ZKg!Q`~ z_lJOl6D%y$YJ5vq2~6jR2`=<-B7hNV{8=HlJ~Tr2>!OO_$UvzB!qh-Ln8 zvG;+cLarr7A1OJIYX%R4yg~_w1QXH;VK8CK011Z%6Jp0Tkg(~TLb(+M6T#P3FcFN= zy|RH{*n{YCpT!z$-|);19K6C(vGa~?IPOM>@~+==E!e zI)D2pz+w5Hy@Xr8h3WzPngy5tL1@_AK?5(ifUQZosh4m|CGIzB@+x;7)BhQ|bRk;$ zrddLUq+w27gpTDY2p+R{&w88{X-VlJs;_R9y3JcG|48j|byxvtIo=+ecm*lrtOh2~JGIylsOW|8jGibb2(B646v@!alHoCiPn77ZvGlQY z6qi2Cd8dE7N|rvhEJ49fNt#7$?w*2|d>}nnz^9JlqRAPO(m3${l%~9uDMP`O9w`&6 zM=yzFE(R4?oVLigFiwIHlk6YEA}qO-7_?AxWoy|_p5zj`?Dt}24ofjHhq(N(dI{4> zzqg{!Paj3Ktf(_1Kg_TQ^bV9aSJ6#=h4WUry}bG9=Tj|<>PqrB*&JsPNMH2Co@-8T zIyEhUx@rPOF*OPrLD6-EISzM4=RJNQ8 z0s$mx@ocPl8Xk(YKo+D$`R&A8)sEqtRMp<TnilpH!(i;9Pj2BQ#(uzY5mPWq6@$u)c}O6%x7}0E`$#2rMPh?3wQk2v<8J*jeK{ zEx(w6z*@cn0!EC<=v_TY_+`Vr2UNgICP53JyZ@Hvq~7m!SyJvCa-=Y%H9&mQ|H707 zH&`0F)73E?hr+#<$e?Yi4dn`oh9&1uLtwkfpB~sSV=AT-i%O(;=cPHIda^2+saKWL z!L&eC3XS&AGi=*YcP-7R(WAi@aDpL~$#hMzyL=4wCwu^;?>|wL;=vashaNWR0h|(P zk7qgvxhP5Mq*qeuEsN?AWYArM>R-9Dp24sNYly7m2g^0{a=g3$L3>0Ma^Wm?Vi1h( zueul=9Oj(jWC-+|;3SL|=1#*FE7cg-b_j!;F#dNR%%0gOUhb!*XU;4_&wK++U@$*q zMKr-#AX?7x$bm1&MQl8(fs^(iCq@=-I5Y$sW8MNES&MgMBM@?ay6+%8xhNkdy}W}E zF_JVSrZ`CemDQj!R#RcNwM|J7gnZ53A4w=>L9yxY)09Mj*&H_jCM{cd;~}K&^$yZj zs$|6&@;#weLvm?@@g>F2vT!QsD&^%*S%EYL;iY^C+=lv54(*v_zTKX4aOrdVSDg=% zeOC96gZeZkr4lc*mJu&2v6P6w{~BfLox67KaR$-njFtP8nkK_B&#sC^3Y9`Ygrmcd}DTrkN$EZ3&JM;sC6Hhh7`tj0uUV z5)I8qVvyka%uIZz!zKL%o*J(2 z+}&kZHfBB28g-6mc}ZU5-W}4I^X#ZV>#a1Qk?ns&Db5bCqdZ6 zc$Z)s9l*wS#l|#OsvNzh=kDqjCm!OpA>F-L{O)moSHVs%<)W@|kuWZF zMmqCtQY7cIIS>H7*$Vb%=oize9w6pLdIoKEIPEZqT^f{zF0__N=H^4$pzbEU(tkJ` z@rpJhy9!E9HFgXdqs~LXiDZdcOxKKb?Ds2zfj67LI0BOnu1tf^Wxi_uBoZZp17tBj zC$;YAV>rl}Qp5OF%4{K62={MC3xwclnF7OKb%}2flMkyj3qCjkks_Fwj$Zs3AeLmf zltMtvgu(z;mqBCO^l#AEj->+l<1okcF*-GW=^`1^lb2u|UOCx}=}f089MABy3r_mf zxdR??`bxdbNYX-pX3m0j6+)GtYPbQq!qMxyS$`UVS~Ky8IB{ypHN&E3?fQ9 zlNLzt`5AQ{XW)Dj=P+Al zxka9}G`oZCENSsTC}IF%RIP!7nUuiKk*C{MYJGpyMW%n9B3&DKhykv zIK9XH-JxqSJch%dH9%)gWAv_Mak{%mDO_htk6BX;2W1Go3b$sBBJZ-=#zN8z(QZtl z#PY$ZUaAra5TFl-57sEP|EWCsqybR>vl20R-*@1Ji5k`{cv|AKG4ml#lhW-XQk0uZ z#i}6HMe3`hV-c_C(j<>Plp}*25iX}5`iq0v03GSka6tI_Qy9Hr6>4Vx!0`?YS^oX3 zIpfbN%7dMwjLjZ@HX_d3tg*XBke+s4K?9|cY1t5lzBV;l7cRD--kEo9&Sry_2xtlC zk{BzX&)YQKg%w1$o=i?HtOUU zNWh4@R*j}x(bNFN*tu$v*za8NCv)n zeB2^g%Z=U~V@RQ;l==Scid@>)gOXg@Ed?dmOzK20o!N{ZE0$hEWTRqZE!<|k_Qy7x z4eE;}?b%}^MtqeL>CxSR0(u#uN4K5A5GgAnWdIETA&2}xI|4wU*kRX!48wwHOCXXM zOk@cotr0oMQy0|L1zf z_N^wIxu79>;TVV730#8reStzAcg?g7g3C8rzMZL zJ{sg9EsbxO>h}N{B)VFVV0rk;h1Me}mI1K3kQJBoZLg9-QM-WP*fb#BA9ir!Ax=)S ztcBpX4kJ-jDumytQw)nCe@PRQ9MGu}ukKMhzhT_JZUKQfvV>pEjgTAA;FqhSeBydA z{2m>>VMi&5#H~p9fe+=G1ttld`7Q;YH zb2a!tzNzK6!;2p4-dTh>q;b-E|2MHDmV^~n|D>4@BG{yFX>J(WJRAe=WCf+)M0m|^ z$qY@-m+Qb}-vpi9YDYIvoSC50eePjk{{sm3(F_qZe?k~?BpM{TQBp@Qd;*mq>AuNy z_vA@;pPw#z;WNz7Y}jbJPcz*$fbr;U#YbOMmxi&?plir>Mfp^$n19fIV8vv<(*a(2 z1obPLIqP! zG$}oD0{mIgFJ<2sGuLBn40MEr!K?9+=>H(%!5gLgt2kgz_zn10hq%Z}_eZ*$VF_0ImOKdo5k+`z)PbyNN5ORcqERix)l5P2l zWQ0IUWkvn0`}-9sGaHt)nIFJf6qPqjsHDOnwkGHQb%u&5DYq4Fs>&~jl*`nOIfikwl!aAwAFJxMkLI?> zOE;k?ajev2eg|Vsl&4tRKRybVM|&0+MZZT2^_BZjo-m9$-5ls)#2hoM+DY!Lm) zgJjN+U^wdW<>&bD`I6IJ30sDp+Pz18)&-saHF5ovno`SVt`~1~{{87_&N-^Ke9Mq5opkGP|LtRd-+$AdM5tR58-` z9b(9beN-*he;EddS47L(3F~?W_!?d-N(k$EiH6fl7VP^!&9C7>83VsUO>FDqfMlEK zdSsF6cYMq6%50P;bRD5&oJ_=7?s#swU}^5$D@8NJ1d!Y(#Hv| zx8@s-{usuIHt3A_4Qh;I8z-phcx<$FiHJE#sff0oixOzeaq#^T2G(m~mWGNNE*XH`zS_5gYa2JT_2*lt@*Femc zK+LeLm>r0*?Lh`(qW1=4xhL0CFK%fNU}}#}9Iv)jJbc%#T?o?~b}x*a&;nl|7ecv( ze>@#cGsMvyX)@_M|CNnO(ue)}VAal$_Fk)`c!1&Al@zSL>`H0~q{*(N zV8sr$DRxLbU<*W^c9Yk7OQ<#eBTzr!A~%Cc7oW@v6_wgz(ud{g*Js>(H<)LuJb_=H zb0nP`f9+*>KPij5P~6$+W||&lulwVjI=h3hzP}fv=|j!ke$m- z#10{CU-cpF-`dyIK9olRSVwEWwEzY3%!-q(=+p!k^3=!E_eb_Z}Rs2&rVg}?Xs(&>Kk z_H$rA2ljK|J;edBx52pKIRzKJO)scg$lVufauYC-=V(oHV~p0FO&p=>Bj>#;w?omi zL*uxqt|rO#k;xJnlRHbW|7-kEils};u_MN6Zgh=VKjHyR57g?olccv|@PkdmHx|>Sr5oVBPC)=fLkJ zlx;BgGbYeLs=>CRt`!KY=yQIv6mLVSmu(IZK zxzqpTmx&4h03+WylUx<&Xn?2$1X3=TDJg2=ufjh3Rh054R~{O2m;J#euaC?WoKQam z%^Z2UOP;d;>Nk_jB*3fDxsmb6$DQo~)J29##_+GGgcviGx=1~;qJ+dXoVG=>xu3V> ztV0Ea(yIyVUb!&{@NAQ8dTx7rob%Jq9c+4DiQuKDRSVk8h9s)u|HSsV@5PyC*jy>S zxxYJ)6M?jGm@WryT{-WP6>_3-uLqAoa?j6SwxYXG=U$g}1<(YxqFu(NBY$}5C}X9* z76E1}I(Qdd4}#?`Iv(VN0?oVVaAP{XOtcGrE&)y+`al`bzt)j-aD=lhu@r8*^~%>! zbj_WJ!RD>Grw-QA;&jBjDsmm7vDm4Pnx&9ASU*pkDn~|IkthDk0TjOTA5MbcE&CqS zp?x0@<}kmeB6;}}w98fs#j8oOt#cI;CY{sZPu|hj$wLg?k{T3erg2LoQGpUSjzMXG zhv#UNV!1%*G_;UcO{&b#vFZ$7^kPo%Oex@KCKjOWMGJJle2GbohLkg4USyhS2 z(bfZzn@8_HLofH+CK{V?P|6mEemsSESUxb!URd`!ii#4-Lz@pQwcDjSvYU_31+Z1Y zMUEA;Qyy)dY?DTg_0^N(02?8P0`APl`R1V1dYpjd?v@OZbW{Um!_d2Lh}b6g7*h&- zj{OW@%Q=JbX`7kt+W*N@KAo6G~irB*oFeL`rtK%Me{SrQ`RD$txrGYegU~CiJCZb z2eZ{4^EXGL$4vcNdQ5gU>@h!hp!Ar%_&{KBm+w-Yzfd!zohl6}fnO#nsV)?O%&Xe7 zNhloD^ddOAQcYxIriyD#mDfjxU7{1U29uq#xi+;KsW_4QeS^lgn)tgVyw(UpePpYN z?=bP2uGUm#glKfJ9_^RfYV#U`KepOgV-B6U0AWpUb z8|+s(AaBvyjJ2;vP8i77$wQ3s-6y1n9*CgrmOLRyE6frUwj>Ba%1p#5K{ieavR^{b z7WqO;!ZU}UDIln?id1XHv36$383G<@xNlLqzquF#i3tQR5zP2D+>yCqDP9ISVS3kl z?DsYS1B@p$yySQ?ljF$(^j?ASgexwnz{vOK>0-rl{dTU9r#XzEHwUtB`MQ9W%5W2D zHfcCP0}f|tb{b~OGz&}`^!G7yqoI$mN+R`Wl`M6c8xCtzHu>QO0?9E>;j}E!#;!e( zgoiRMl80Pyp(|x_c?^GQyU~$yIu~78j$a&x#V_5*#k?Gp?)u1m7qRRyTV_XjP(R`p zgrniJEwvL92$&^}8&@Url?`cjSYFYJv^m3kqa4AvC@*5_MKj&L5Xm9;^YC!b7sbyf zN6GLDe7qq?$*7enD)>0!;6miIE2|7e?VQr)CF+wP8w8^f2g&&%JQQdnRx~j|fc8ot zX~aVH^PiPQEP>jH`P!ySc3e2Z*Z)r~Sv(o}lWr~oarI_EpGv&|NLP=>$y>Z!Hv&9j zNDDeK7=@XO@5H%MTM{mHBr;uHQ6(N83xU4^3~foe5FoB}^(e)@Y(VUzJn(YGUI<*V zmmBbH)nU{U`hs`BBb@JlA^X0>K`}MDN!Ye3$rIA#L-c;}vAMwWT7`g}2w%{a#ImIY z386FyfkfMoVhtI#=SB4IuN|0T>33u?MZNFAd-0G@caak7Y8k6e?NWwKB?lID50;X* zlYe*bsC=1szYr_xwh?s4Y^mygq1cb0%VirecyjvA$@4GCXN;lcyS>?u4KEb2J+)A+aY(-@iau!V0;n zJRLdmiK8%>t8bBCEf(h~AE#f_X|R|fM=;|7Bw4){3GqFmR-Wp~ZcoOMe)U_JO1)~; z-S88?8kCAy#x3UU*i{s7s3g-6J}`BHP8>CLVFRl*Q=W^^sc<)wihcQWo=&0Nx82kdky- zZhRYj_7<%XUy*2os$cACA;Qb3iW%)a=khQ!Ptcz8cf*hJ)c+^E`d@Mu%5C`S^Y^(A z2KgHsS@&h~*K?VRBqP2D90=mJs%7sF0%(Q3iv`A_of|ns(DY+uTEGgi`ICW+_Bng^ zoS(Cw?9b0z&-eM6S6)Ai`&Vhspbc>Dh!gZ%ou5ub&&X;n>k2)zW(lO60$Qr6N8jD4$tySn@q2+Sc*8qm)`6?{#(=(#Ff#D zw6-{Ct7s18NVV5n4WKCBdb_$29U3TNYjzQ*FfJYWOpo1c-3}_$7CljHo}9Jl=G3@q z(LOjEv;p8rX@X;wY{~FL7T`*NmmjAEK#{giyfreSIuHRIeguqnx(Kk)JQsn_T_6e^ znyhTf-Rh3^U&1+#~}vy z-|p}#Y6dIn;w|`2J7f{Jhz^Ec1!3;R=U&%ao}pw=K?VIWQR$*Qm$UUw&#r80ieNhh zjXvvEc7q4z8gF_{KWG8wwdZhx7_i;n7^A+1Y} z7O58N{x{6qS;40X&5<9RBZ{3|^b);rM2CEq%8oYhM=N^>`#SjKRs!b(IK35ehj+fb zD~?I~$AJRR)O4cS)K0(s2qhQYm;NTXjI0&{o&a;)PeEbwm;loebl&taZn#1R$@MgH zGI<9wzIijtDmWel@g_+&x8PlE(D-HmUx0BXLfjw``?-SN+G&M}e(C<~O#BS1i`~~= z^@;)ZX0u|@Ii!$-99Op@0K{JhV)w8Y@pI|J__>`d-y=WcgKAvw0ieA8k)=0hcjFCM zOS2m|cg4}0|NCRMH{S?g3OEz7Q$>B^PDAs-ew}?8s|XRL3HIw6FsHi24R?DARieyv z##7Amv;jKbc|fUyB5|41n1E-mqTx?5ybPqj)`2w%e6Uki%-SDML4UlK;7+?>a~vji z58A-$mVtBiDd>-%d4yu-u#oJJuhpfDyYcys_s6;GAyPH$p1i7=kzF;l5|?@kp~?i7 z$YTOiT8-gPXB&;7y;9OROymCb8zSl<1P!Kefj##@sX3@0Uztggv{6z&R%bbzt0(Xr zz6}+GO)Zo`w4!)g)-;(Q&WjzW<>&TAo9yEncO zXJEI7n~UmIFnU*NEdf1ewI~0F(y!4sz0oOqbhvj+;Jj}*Ca#Fym57^z)o=`p^}`-_ zC;J(=bVb2^FEq67=|D(7eZ;VMEdEIo^Y@E`OCY~ z4ugGv-hR6DV}(;z=cL?$9I2h^6NkRQ8Gdh(@X}NXzOf$HflpKr3xah~0wvqZx-%zX zMNs|OAwn#lDiFnj@u@tjlJ}@seye*r%Qe~8-zIjsHhF_d&Zn}xO5&q(F?w3wz2vO` zg6~~t#Fwr`qu%vnuiKG5b+u{Zk|i0w#USPr=eY1YH0qp*heo9xA|o?XUCVGI5CQzK zQxg^NBJ&_l)Faqply{VrPaN6DFEDb^FD*f7T+A25NB}?V)I^*Zb3q|O6-8nlS|lVu z4lUEwtGg(l6H?TY(_%P5^Qc$lsMrKiq|;6VGBTk(FaZ&Z5U49~ASi|;?nhzaX${|X z{~bo$f_IKwA)hbJN$4$aK3M&J&o>%%`T{)&0|5>|mT#NNrq5nZAp?PapIIbZ#2iDZK}7x3d5# z4X`&Hd~Xs2aG9u2+t6jr1NOmpS?>X@;oT#lV1K3(>3s{dEuGbmto4z+v0( zuUGbHe{Fn`(GI)<{SiBC0#>1$b{t^qf03x{gySyJ=0)&qfj(w4z}r%d%qmfV?=HSM z{AM?CQ%moVlO7xYSgH%Yn%MVC@*?<`FfvIRA(MTh^Ts}9VpnA5qCbI%k~oOyMm&s& za^QET-$^N~S=e7bKmH(N5{T&(Rt1Gq1FUdn#zQ!Nb05HQ*3;Rr9C-hE!db9>NrqRy z^RnxgTtIWhFZjBafa~;3Er!%qGa%=w;6MV@bMv8M{VpBEI^bYsJj>1i@9YeSRu@;M z;MMK@j&M5JpVKd}UGr2xx>JY_a#{l{r?0C7r<+87k!}EZ_cf;r^0SNOvGeyUvia#E z4({{u3w~1c{PuFe<0u^UvqS~b$aN;Ry%1j7%jfWdew}+Y;~a)+=Z+Ivd9EfQdR&4M zbtdBl{dlh??!o|pZJOa|l99H96T0AFDSDS=Q-nhhu%JgJ ztqOk;Nngl8^_+eSs#i`MEUNeyaglH8w>h|e6~NW82e@#zZ|ZkBxc)PMt9B1?6=m+@ zuzC%CAg5#`h_(0d93y0m6D(LSqo1d7P6yE7gZ9Iv4hc0&SbTL4 z025fmEdnIFvUPHu5lUtKZJYCUBUV;POLJ-^ml%z{>h!WkxrEHjB-HaYmSNmK{lM29 zcL;vpEB0B3m%$@{4ggvd>kCA80kz;m&^!&2#$Kc(v@5zm*CBS!=sj3AQ z(S9m`_PbN0WP5^EJCn=$86&v7C-1@D9Pw# z$S>2$>|`hNY=?9*#nSiWb}~=1%W(9DsdT3_yI?1y0k)I*<5+Yu7gLLoPNp0gz4tqr zecx?)829z~{WZ*R3XI=65<}n38owDj(D<#R{@}*%FML=8Fn9chHf+Xkc$pjI_&sUR zsCGYo@0dJTvf^Ld-T1w34{!}?{9gJ^X{_@diTEn^3^#9TL zT~Pk7U>AhpdnWgvZpJtfnD4DaT!G>HYn%q<*I(JUiT+vxkLw&q?N431@U@iLuC0AELN& zM-g8~ohe_jk;mxMoZN{e8r;{{ageT!L?os@GE&pY+8nhH9pURD=Seu1UO1d%7~x}; z9Y^)!#bC_u@v$}a5`KAb7#flcpZ-*K2V%Iq(oOC3X4Os$3>;sV)n>WLuKz@8olLO? zF>u_C)5t|Ujr;-bc)zCy4pdwLeN>cftB($TLiRZK$MOp_yJjI8fy|eA)Inysge(Df<*7a&bGJl(8&cG$bkWCSz30`vcu3W4w^SA^ZFg!*Ae)5gP~m!U}!+#o{S{=55APzKWrgoVR$-pItEnckR+> zeCn$3+JR!@YjOJ}WjKH0_*(eXRuSJCUs1FxbD_||Ya{a~klYH!YHkBW4;44KT=dJ2 zKEAdH5G`kr*~SQ@An59sz9*Pms{U#Ch;#8WsWUCr_3m$ z_sb)f+H-Srz>=lCH?o%y^D>fpQ7Kg0!Xg7z?%Q+c~9&u9jW1&G5~VkDD?O zBJU0~lH)?JkXf*S(7c;)t#MY~LZw1R35oq|h5UFfq*5uMzzNW>1ugFn3g$}wExl0- z^*3CsoRu{>&6bQZ6cn)V+TF_65S6ciM36!X3-5tIR7&CUB%V3$pF>ktWh#Np{afrX zvN!_WhF2ceMV5XbM{vSl3?La|grTMw4S#6x1HHg`g|Uw9kF_7qJre%AGKU06MSuQ# z;9L8HXA7}c?gB+lR)mpL0JK$llp^_s(e@@{Xqkg@}oDo)rK(&7bt?k zu-RXG^(|vUFXHcre~0hKZ;lCF`HeB5NAcdWeoUwx-+lO7b?biLj^2X6|FW02um4=$ z1#_YvxAVIN^q&ho{pSJbKOGob_FRwoEK(UQXLowc83gt8n4i>%9<%h$ym}1v7wzur zBR{I(O~e@Mr93qlSLELAtieA3esh0txv0Ak{GxpDxT8CmVJz~iV|8jdq$IP1s#{hg z4^n$ne{{TMJlH1$!T$`r*?GwY%LU;d$p??E*|^-1?5R${EYkUslxSbeapHE>>!2A~ z#cLp4Y6KMD9D>85CFN>UJ1*)6hfPx_Jl{MRhp>3eK@`qi<~=FszMdw z>}rxQt^lB#e!3T`*QEZ$uyCrTM^%KTqL+;Y8@jO$9TLtL*e}~Vj<(rm&KhiP z{c1ihRq2S`%_fJ=$NKear#R5}<8Hg&vSD zX2VVYk=qC##n59`-EbLHOfImVHeUoK=$mXq#^YrkL&oA|IbV*z3rXpV;YIMk zSAPZiXKZwogHWvVl3p5wdKX5vCD4b2G1+1fG1)o=qgk8BkbQYM>uVN@A6O-&y-U*J66ns8y43XY4ruMQ2yR&#D~>uX zfX7aBh;ZqhI8DbWV;hg9X@e#}=3ZYp-ny_((M$v9`qM zZHZBc0P>OJKaTkZ-`$I_i`~an)R_!oRk<^4P?Hx_B^G-mx^pIyC4*bz8eq4^$Gm!Y z$US=v$dhI7Nr2w>TjLl+;R-zG?BXjV%x+CALqP&eA4MI(NzD`5$x{MbyH`hD^(^MW z!+d)b;Gy77JA9ZmZSGZ^D#I`K9ip4CDvPn&oCBv|6iPY>8kp!7#UX zBjTM6PvL#vS4mczK>fhKgU*`8jENQ!teZ(}5Znk3)Qy^HM0T#R$8>r@VA5+L?1f&t z1MFJPU}+FBVDl@F;qHArjM$c#vMs^phOV$t9^$-~Z?r?Y5l`A7@d<7c3s}R4ty77L zI)^hSN~-RPR%0iR;O$>4kA^Tp}M+7h$+h3@KlV>|!a5{(d- zL`n3-$o8^BL)Vlv;nu2g48&1d#uOvw5yl+c#AV*ZEXEY~;c^;zk3r^eSB)gnC?<*_ zQCn`J7+q2z5gb~?0tq;M!$GDKBej79l7E>dXhecCO`yS<2eC;iw87#kG8@V8Q3E`l zuYAD?a_2@qVq(hzv3Q@uv$1oSX3lKD&G}?8?DB8f4tC>-Q&0GXORZ?-uNF*;Ui%!4 z`xzIle2U+=Sa{??N!xFIi^7b`aYv!A5vov@u0z4Gp^aDZo4mbSzvr9UMm6t(sTG&P zL3s4U9>AXM#g+JR;0xo%L+ZLH3;hq(8V}YYJ?@wNlUTR@8Qov9jkGx;$2f`gI&Ej2 z4Qzw&aJ$QDg#W~k-0@GWrEFKc7R@8j+-ZIQo~uEX7$Kym6;~yTn-0qjEvZVDG;(+F zmV_OezK>I>nY&pfiox4Jyu$-oLl8%5O|9sq%U~ztbs6n~!4V&J?l7?msIN4gm`n@($?$b8 z`($u>9fRIe2FKUSxSeUr&xh@O5|f*c!AJq0+cmRr9!Vi^;bb$n5Qnb{AJ}(ChRpN{ z8Qxg>AXf4`LjLDg5)$b8Fy)6+nslO(v@~jWB=;M$5A-N%EJ#sf^H@;S2v5S=Y33v9 zn`kAJ?LaFr#=AJ-k8tM0OW0|Xg;_QG9M~zRc6k{xenVY<{66FS-N+A2_@A+ ziRRK^K8)tV!Wzw`66$P{NvgiUB%R6!Uvoi9?O=~r>jX;EyCN|;n&xs8!P7L?XUoJ! z#I5LDh2J6IRr7({Go5myDBx0|Z(#G@rLn1f*k1~L(1W#9&h!Mke z;7vZ+QkY^f3A+F=Hdzf!qLRhw?jmTGa<~V5%!(o*md8B}@;p$GA_FF?s{=v~wU8ZP z67G8oHS_K^P!U?u+#sCbH(y#h*|tLD7heQKf-Juns({2LfP7IvzF9!~J^*2}8&;LA z7$CmA75G-oS^?*N%Huq2XlFiv8JhVL4agSY$3Po7C*uPe`esn-p2umM)vJ(wPWWfDdN_M2?g1 zT9W{_irMidyv{rou^k)>wePnIS;kqJFzx#fAbWT1+juY`GhoS?r+sV3ULOe`paVz) zRq_U2bo7P7ETlS3*smYZ2D3P zd0TRjj_+Anpg2DSw93c>fpi0w$c(D>ksC}3b|5SfpDa-n;ofm%iSw*qZAA#IpQbkQ zpTi2Ki5wHiM@z(mZ z^!22~>DgQ9j|uGSTWdK)FS-YL7FY!&xYf7*4%GSjV}((D>lwg6m?S7qFBe|%0F@TH zH9)%%sJu;V02Jsb2ZMtOeqlObST;B$Lo=RCH<AJWgmAO!UaFmZQ+dNyDN5RmW+IQpstXHV^prVbkz77_{I4;bLgz%2lh z2jFoA_~G3F7Xf&@0shj!!0ptKRm+!#m8bc&e~=)mREj4qT<5=Zg@T-8!mWw2n=U%ye|-byM~KeRQPl=DvP9XJQ39>>bwtf1phuL5C4gOA3V8Z!7vZLxJtgG z&hND)3KlsQY&3oa_a^nWcu^s%PA-ZXF;qYF`16D=JxFDW7alJQ&i@`Yml&8El*{j98G1tzvN4umh*-W5+21tF(_8nTs$!7=&_STDy>eS=`Rj znvP^QkSqxo4R*`vc9IClqRd~Z6Z3SlNn?gwW)xUn7==&w)l1pRorO}mz-qS5O_moJ z>;9Ze2k;bRH_L&{G7vH}?Ma1@tbpS4i*Dg;ejou{WzDd51o7 z_dlpfdL2{)8gD=e+uf9va_;}HLohZ1uw&qTlwb!jYc(H;@@-^l(pZ)3UN)a^ z(nC1P(z9o!YbLv^up*nTX%w$&*ab*TzG?hpxGz*TC(P@tmgdPrxH>l(bYQ7&mVD@5 z#v0iINcXtAI630!EwMT{hru(_T_(RIuaAMWydfi!Umn^cD1|5w?GX&QZHZCd2llr| zCxs`S!n&Y&fd*Lff{#7}d2>GlI>fwy%FVkVa=G;_%XD@?TAf|rwdmDRQ0^6=_3(i{ z4u7@cB$g@BZ6&dt+r1Q>vWC=5z<_AmdL+>%JWl)uoTY34NS~M@$AG}i<-8f`BR8z0dU;fF1)_oqset847t-B6}_@rI|1g?d_FMI5w)K0#oh`MEG?Ai|x1fZ9D{KUh$ zf>z3Kmc;XDUnbgtw2~9eB*OKKI1N45D4STNoj{=z*{AZ zsPwHIr^i`T<@Fek2_t0H~K;;~X6H}IjZl+Y7llMF4I|HQu%-Z@KPm?@*oD)=3B=9h3*(Gh^>JK_2C;4!P< zchor%@HSNZhuT?%fZP5IltwotDjp~X4daC!&+c4>6Th1h$C)s4i(!`_?06GKUNUR} z!rpJf$Z3XMN_^2xH4Safy#RYqFt?M@(M?aL+Zp!kZ_`hX?*`$>lsN(Vk}PQE*$jv*|^^0@0?(@@@$*+VBAH(&B>Di5Cyi@qk;c81&5wdtKz) z6SxsoZ=Mr+in>qd!eDdFUf}wq!KF{)!iC)+s}DP?d=l}X&-8f|MKX> zP$r%mCAim zB8cW7smPM1Yd)=fz09Lx&x(|V>;!}CC=Xfx{$o%?Y9*Pq4hmmT8qd!!jYT>p1(&Y8 zPI5vIw2N(L(M>Vc5G8Tr+Ih=RlsbN14v*tV2<=%YBGNmUMjT-Xd$NW zwh%dpjy8yvc!>786#1ntw-{MMvVN=baOZJ*UW_b67aBx&d5GRdF=SOuBrPx`?`?lr zV5qKtiOZh#k^jM2m|z7C*dG?ab%?=rkB4heh4;E_5A6Wb*dI7YkeuIZflly<7)0mc z<(z}8+92ya)^g`XlgaL!-7$m;NtsQ=9+ z^04_tFGi@~YWq_84y?AD09jU7U|DU~S6yw__w3d7Wry2!&T?+7D>;6C{%X6;&|7V{ z8FC@qWatr0;{EXK)%Nqf9KR=qZ>g>@nYR;18Hv(c&1;u%$JvRYz#V_3bjMf@4{iqH zXeqsnNLrHM-AUCh;SQE~ySSl;+XN6Br~&h7YQT#$HQ>ief%qBV2+p%jExzWcruP}N zfhZi*np%R>R>zwtyEsh@c%O#F>8|wCNzygtB#$m2Pyl}~g|g=DrJM_FCO~Refu(l! zRclw@vupRn!))z-bTQA2AkTKH%ng z^1z~avg9z_{TJ@;=xt8`U9Tu1QV_kr_@E4TCn@MgvJ0CL1wa|@uKJ``ldSJBu7d)X zxthr*S10*2h3dz2Bef}mgnPVo>R>ZBA8Ie<&3 z7^LST)VB?$q;fk!8Vi3oZi~j}K2lBQIkZ194NQ)zc6c>`VkstL;ipv&f##l-72gR5 zq}xdVcZ7<%xd`Ksf0|D%^SMCt>B-Fp9b4q5zoM!;H}x|_;@hF9Vgb&0wRbewT&-K0 zn#@wsLR;PzAFsk>Z>NORq$Vf?Unk);vt99~m^m%0Z9XhCzD<6yk!LF%?HX@=*Vjuv zL{=$u#Zo`c!ShxQo?XvLc?#koeJH0~92caA=Rkt=+`k(BC{{LweFstygKRN?fIF8D-l$gn0 z*6M>dLc#+2;8N*;nS&4x4$c zU@(_4&ov*XL03rNAP{a}<{M6?~sZ$C6gt%Drbj)z% zs+$?cy20GssaI3Dzga*!#aRS00=d~^X$a`uOD~YJ^kORg>&<9*ud{5pWEgR5clJ*OiS3Aq`0j?{8_NDj&*RH_B-E^+7Y$o2{ zF3SqfcY0Yrknc$}0N9+(k7DTLnD0bqSoz*4z=87!O#Of@uxvq_BJM;4Sf}3fZ{ae~ z4BQnf$?YB8wJhVbN|BoE7GQKn@3z`}a!)>P*Gv)%`SHB@SmZ%p!8d6ojSyaK$TVOU z;WercMlB(#W=d{2O;Gv?J6Z|xpuRL&yFlTVC%x78jC{CVMvYaqeKOyC%YlzS$ zw37cg8{ZhlNCaBRH6l$L?#Acat@5n?ZBIV}X8+YB&31tKTq8IEuLT75b?m!Y!#}n* zc==oiKz;1)#WHx0JF6CqC~(}ISmhW?y!o^J?mB}~q47Av($Gu;G5NGMO<=BkPb=Q_ z#Q2&9)mW{Clf=x1^^=|wGxwy>e5r4J<_luGB-o6`LU3ckO0y%jRd?d)tk8THfhiqg z!YZ1{Ar}+Uc;=y&M07s0ULm%z=TRJBl=#{-d8u^&ATNRoMIj>p9Ld-2g9NRnzT|8u z2eNlhWcH!F+^i;X=n-t8rIvCX^H*@V*}c46x*K^(Sb5=Q-*|E6$LzS%T!bmFuE58lDUYG0}INVqSiuCo|Fy*OAX!fVtJM=D1W*Kf-?VO z@1CIKoQJ5Enf9WJat=Bi-vUb2Ld3OnCh;4Jwq7y<@(w}3SK47%RkAGFdafTz!?dV# z0s=G*KFS#j_F*!i+7D9)+8HMqW7$=!^_b8C>#-GQAxN`IZbRld8Mh_N;2AC$Of$wZ z5+=WNS;w!IPX6NNh4X2aG+)Btw(fmH#BJT`gT{uEMcuo4ZBFQ&h{BU@^n}wnL})mS zuJWCPQj&uyVG7!OwK&f3{2a&V1i3D9PqBEAjr$IeV>5=pxVCP@&4|IGLU&HG8AGtj zP&Z<+i6xGeKcXIF{cp5u_J_c~OXgA%H7Vzoexh`^T0Utt)DPX|=Gh(HHUpBEU;D#r? z0>WrEP{5oV;To9WOAI*f$lL|?J&~0pa~ydx>%am$0Y}ufZoYK&Qi-&!6DvC0|IJ zqW)$Wc?kF;J@}3S@Z@UbTNeHgmsX#f+cY;#*wT&r z0&;{;&b$5+E|&5Z$`iid>#B%pky~Yc0;y{t!ytANR^0eit zvaTf~T6SmY)y?#ppgeDtYwS@eVW=f|h;vd@7{9j3mF=XH{X+wSST}qYs2fH_RZ!t(zSzNk4E?H)mV;zhOkx{v^!&^T12p9B$#C^x!KBz)M&A(iTI{ z*FE?+3$aPq(%oBvK7<)|zfdgvC$jDr!tzc)sfz}@BFKLNlMGz!!MF2gl91)8nkw6A!321IzM5XK;b{zuyCD6Vl zCyl9)U;WT_5loY}Z|Rp%YUZ0+3G?(V{mC@L;iWk#i~99S&ym|xWi=tcX# z6@}Cm6oLOJ-h7v?M_7>u4Z0pgHGdv-@+F|~sG_iO*WqM!PMlGOzJy5C75W2^JtHp8 z0Wb<$`T(qQg!TUT%teJr)3M4F@-msx*?}KpJW}!Bwp17#;y=n1LuI_;3x+R5vGjcA zl_?po2pe_Q00jyvpp+>Lt_b(VhYtF%ViF!s(&28+gG>uxj?5V7_;Bb0`M`4}#e+v4 zfX{r8qj*Ak!#tIyEzNLdW-`0ARTzG3OT`16VW_k=zN96JoFPbF&H#B;im*}V5#@}4 zDrXoz0B0;@+9BX>Ig<^(8_t07x$xO7$KxdTN5M(@WRt~#UsQol+Y-f;6;ot*Vjgns z`_0F;>KOQKqmnICLXBLCX0vjShT17dpB{kUV?BU3ViwS01p(1qLHNu6j0tt`8WZ|? zXl&@{p<_em7mW@5IXpIW&9Je!=yYu8$>Oo09S4kk$9+`q>6+Dk`28ICzrumQdRrI! zcC613K!gcbCC7;k`vpUXzK?~ILFP09>0#m51V@c=Ic1L)zVxsr0Kwx z=J=3kYa0;ryYV1Q*3A*@3Pv#?ZUW+j;F;_Sc0Y{eN1Puxl8U_$oJ6aM$AJOM-*3K* z{)b(d>tLS)9`(_Q!$GK079eIBIxI}I^(=UUtT+Hm05Aq*J3M67K!zM(O)_%$D>jGm z+(}W)Gt%JJ$TBY~=0^c*RWcTJ&L&6a^Z4vjCJ|2;E*J+K#;l~Jlk00C_*+(_=v>W$ z8+JM5%^CTEN79{`Y)O|pjJX1N$o;y^zoZgaRD&ixlLk0aGs$ANh4Wfyp$-F*MMIGJ zMx?b6)y1|NypR%G4<;nQ#gl=ICxWrjL~QAuSbrv7Z(Xci!X0NjYRkQiYHuE2W!vNy z2G%Dvve)tC$jc|{uS#B`&To`Rp_ThzTJ@DYEvOPufvfJB2K6w(W6~$*#+@6u889uH3BJ0u7^9`qzYGW4TIm~RkgH;B{No$3Ap6V-{NAt};P2kb z{d=Rw9LV1k4Akc$Zt%3g ziQq~?yj3RCiOM9UH*pfyTV!P(ZHtYSyEf^W*sQ=({QVyWMiZnrAehZ`X>Ek`TAN&! z=1%?yW!@oOXcDB-9B8k^tNZh@L|6EBgvad4|F($)1Obom<)3n2Lc#Oo6lQO?a6Q-> z7>#6;GaczV!EPth$^qqPILf~kk97MgL7*PluKWPYljG?;cXJpVXQtTet>%m)Q5^`N z;!KA><5KGcq?B95FJF z_mIDuOc*+$=#(1q{gbF^)az@||C~?urXAJ-_n!YprvdZu`L1_I`TB#qNvGY2=9+9k zv}g$co|N+;t&PBbYh$?kF*=Bl{$Mjc(I0dX+UpOV<)jMz0l3Y?sQ>QX*iCPA5}2w9 z^(2ib(Fi7I1P-@v0X6(5>lAo$RAg9M^04l&=mwzhl72eHoOBJp`7&MZhyVR}_s*EQ z%fJ!{5Fn^Qf;#YFNs=XXYyR2F2>(cJkt4J9D11}<1aAk>tcAoeHpuXl zh@(D3eZ^2)tQe96V-InK-AzNh=k!J6#UA405E1#zwTGD9fLkoaKZ!H`<{))&m%9NL z5hVe?xndFVjm+m&Qiu;5-RN8dwT^`1h(#{h-%z!Ho9Yz0K>uU1zHMG zVz$dm?nbvMro$R(^Jq)UH4tsd5_HAA&^H^}(eKTvV7BkF#YDDEMAalE`#x=ZC{@8qlXE0C|hjbXO$Df#mCwOsqwa`r*!&cyz26&g=qR81ld%LmxX z*7+S_n-9QLuT4f;s!|NXvj&U9_1&})z&1X<`BN%eH24rt!T5GKIH2aHaEy44tKg1v zH-psrwG!FTZn6?6sdUq*k9$u@sb+*JrjJ%`#~gbUV3JPOwK%(W{TT>rl3BL2Nhg7T zoO?RZZ^f7%ih@%^OS}`?P;2pW*8etC+$+fD9Ug*Ernwd6c@2&yar4%WFFyt;feNXW zjorw#W32{VECEh69`1i)0BuWzeJhnI2nGAGyntJw!dl?;eGD}wo8a&*Gw}&0X>6K! zLyZv9{RL*@X0e0b+gGz{qI0Cpp#tQxt7zrZ_L8e}erp$69usT0R18bWsyj$-Wm2=K zF9~;?QOx2o&h8zZzX#2q)9q49jd8Cz?q&ECqDq3j&xk&T>0>w_5IIBL1fdSo2?ARy z>m+j;ca-GBqaj(s5ik(IYDNW;QE%f@Rx|h#bsS2H+5E>6I=O}W!drG8*c8bu${Tn3 zW5}qf)?%b8=A~1QLs*7!W(td7FdVE9EI4V5+ZSVHLbnQ%l?hrR_()Ix;chc*>8b|i z^#$`}jC*yyJo|8Gpb!x#1yH?G5EWzG35p7Ej!Djtq-AG>C{|SNKFM703pp?>{wPI2=8La&hORo9g_oA{N^N!-AAoFOXZ9V z8o}M%d&kIuP?1jmgqa*|MAVEtQPrAC7Mjpycq=`av=JdDZ9J5Sav4C%nR_SHx0cQZ zpbIq}M^a`9DYYrKH;`U~4$>TRl0LKVSeA$I2rmSbxqx0(aZs%QMJNEH+~+ZZG0!BW zb)vM7=*q1i#Rj6YHm#;Kb+6<(N1g$1iC_OU+BC^`|ICRItXEIc8q#zs zF>3EnXE06ZVi-pfY@6CJIO~%mk&ZBD4zTo9?N!p3-efPI(ze_weWf?UK)W6^Y~i``#i-oeHnmXKIv*{z3!+$SUu=L{vVp63kRE2q4?D_YqD`HR#N z=G_0s-nYQVRaF0Pk`1J#WmDQ>q&z|!Ay6KL7HuhDf{AXmfr2fhP@s^A#e$TQK!K(t z-7I9eT|^*QPywMpMFsq+P>^T}m86JT9zR6{4TyM`MdYDSe9-^*d(O;Xb+xGXgxC(=&L}$sghuPAT~19|8GJKt6%np4ojFK0Tsvk~fpLV2afvQxdcsWkZq#uu}`f#s17p zEoc;)W|@CbQ+^Sh=l4=NQJxAM%VQHQ((^;PZSWLMJRFQ46oIxL2;}st$<%mJlT#R6 z;$o=rPd#ZT(HF`jE9~{hMX!ZyF3&vVfASJHnJe*Do1A%z(1NX{=v+#(BgZkJi`-UV za5^`TT60Y3Ldr4`lZ3+-^*E5!g zi6mkL^0x4T`7})ENnaOTyb)Muk3LP@$!rjCB50@exT-oM*%{f%&gh@)3?>_gg)Od9 zo=G}NK(Bj)%%9E!tHyudgDalp9>h32ZF@Ipf<{k3~JLBi%$gZv7U z6;bHkSnOpm=$l9M)b36LKV53`!J6;x;~7%s%fZioYpdXt1tswtg}g(l_;gZN2P>iMG_&V7&X){Xm!kk*u5RPJ|6uy-q*J z?~61NdijXIZi#n`rWthOJap@@7M1#BCOY16j&`^e4|fy#%bti{3+{pUQ|n+KYboAoK%b)I#BPIUgz<>sk%? z5XHR=0vAe;z`^i%;#Bxp7g3c);`@N7u`W_o)%LKNcw5(t2oJTQLyrFjFF{n)+tMLraRRb|*Z6nVLa4dG5zq%(=)G#cbjOe=H{7Sxi2?V)CQq z43NtgznG&s1VeUsA1<<$wl+{sCPX>sO8R+Zla^BvDm&6`C?`f}o|GJ`vQy@Xi+YNp zE^GG6D5Qk<7ndtw4FM$;GxY>=_QZt)B*k4GiT@lQrlhnjVZimeFYcLvU&8z2-yirN zk>N9#_(NpCzjVZrcX7gGppScoM6?_ShA~1IiRltOrNX8n1r14!pNCZh@4Dz90442S zIcB0`TtWIu6cWR=Q0g!E(L#osM(azlDnqP``i>L)9~BVlX2Au}->dNQcwZv^6zEBh z(r^9ZnlmEN3ZC=0ZFpoAszHFsrJr!>NP9x2@6VtSm_~QxbPx6SZtGfuMxdsC?jcRP zdGAx3_VeBkYuYD`Gr-wMgr)Dq=BZGcUFImhl;Q>Z*E9sjpp%8u-NR(XLb^)n8G>D< z2H39h%{$OlUbGXamabB|26UAZxtf&x;P(~(e>?;pR?)NVfqSI4Hna5Kg;)ga0qr~~ z9Gjp=NV$n^6MqnB3a3U@K4o%PKkki9qmN3D$Ww|2lYJ$E<%7AAm1xRVyC^ zxOK2VF)K{fikkkgsRjNs<%FG`tZSN`teqQ8&YOmO3FI!_*Qk&AJ_j8XZgXM3T00k= zs_9E(ElmZY3sA8Tw4or6>)XQ}@WDwKP*Vx@Q5} z2CqhUWDC;8?6fSjW6}#_5~B2DCtE0ejE1Q0b7duc1PmZG;l|hE3`+GCyNHWW*2}E_ zi5qiR9e;;KoRTXWQ8uKswcWC_m}UE6PG9jRIc#xP|DBVES>80Mt3d*Ivt_-X{zy%a zZ!$RLgt9*)C_L;YWFCjMZ9sR4HF=ZZ!&n9&_rom~5A1@wRWU}9J; zjRNOiADkl!X0~e21=j;Dj|{}jJ_JW52Q4 zZ?|M*0u%-TbPq-*KoJ1YZoz7-ot8R@UJxo)d0)VTN}XA>kBPQuLAV;U}=7SEfKnn{4dDl*J_E&;#YF~ua-$a zvkbBBZk*)Em>6R)+Pi-|XxqCh(SM{K1ZH%phzqUQrFLq!(<#Vl{JnsAV4A9kgL@=@ z<;)xJy2!SBMYt-h>sBJobe`t=O;dYOPksMOV zC21pQv%5{jXjv!1?-1GPC|F+n3MVzZ1C0cJO&l`BIu&jOYfl4g?KPi)+WTF|*4`W- z*&ekwc!QU1PrZhmz4;YRLIheh_E%BNe-_#K6$-m5e1?JLULe)H8L{qEovRPbe=-== zJoRU`n(x4XEA<>g{XxV7Rmd4#>O%J+7)t99$6bpBk)PBQFN|&eT=Qu*sL%w>ZJup| zicC;_^9&mlHbLdh``Dmj6Lg3_L%M?vl6jlWO6G$bESVvac_2b{3STQ9grPzACOjaG z?Lzr@NhdQly%;GWyhFn`5TAtKBjL5n!HZvcfnP^ptm_+q4P8*%BZoBdoul)o@Z{*6 zPbW^08S;KU=5xJyW8qX%j5POhSW4-hKqSpXv^0Oi!~GJ?s0Q6_04@0|OhdM0Cdf}@ zr(X^Sd|S)%#-z^l>>dG<^hAU-!A=q*w3H#G2wBDu+M#2ZANAlX?8~%c5cvw~fd*JT z_{Gc%L$eJK~C*7O?Gi9lJS+P>WXt}UzTpzTJ+u|&9Fv$IlgXph-U z!R^;$aqS}^}3Vi`CYXG@S=e5%pfXkOtE2J$E;=$!9G6K5oHI!wm zr8<8b;H&nD(Y9AM3&V`GAC<{nDNdXaiFh}DV_p0$j$EE%u^J={=Og{|zUQ_$?QO5j z^3O*i>9J*_3RX<3UKiRItAz!Xtf)A{!Pxdcy^1A?&_0L=Wkf7SMEXz@m6>KvzBHde zMCwFgwBWb-7WB_|l;9}npYNM5YQ7ScneWqx!jfnIG(SZ|%50bmmba*XzSri%aS8L~ z&1*zZBikECf|#Qf)qT2N2z{y4dqTXiAXfV;F_nC_zS9QE&YbQ6H^d zSK2@7cZh<%KaH5vPI>sutHwkp!b5vvr~q~SRs8=h{`cU2erfyQW42Y^Lrou1!7pe! zT3-sA&Pm+>mY{O>12+pZM0o8BA}@?6%82+1BGPA8uRFM{Uz#RKBN3TtPG%bD!_k-b zOH(CjBqB4-zKHPaY}@&-{_SilT$I_f0uIMVpl2*m1?(dT4=sp5sO1Cd{=#OVs26dN zqQNK%_|s1zQtRq48_5G1)@z0YL4Frt=c!EPtLrL5tto-Sagow(<{C5{LJ%`>qdM&J zGJ8zeNpVryHNRzhE?=tApT8R#jch~iX-dNo8DSU|=nsPp_7rZd%+X*YYpEyG*YzP^ z^mXj2^i?h>;Hxu-8?oiB#69lUL#`tDY0a+SQN}eDCG!TN2u@l_l0s)eW+Uc4s$h`f z2QW)PoL5-VfVk0bI0SwsYT>!Qe{C3UlKi}2G&iF6>hOb;QE+vC3fbzo1o;x%5abW} z!@nE9b1Ta5i?ZTI*36QEn;E=!R#j+UNjhSEpTzuFa&+ULcNc$SIm{+Gy7ML2C`G-p z*}1kv*W(v=bM%3&k9y!=oJwS43QWu>9tD`B*z$}U8;f&SC7s4Hb2$NL$b}q034yKY3S*2bwPj!RW!&L}`CoY*nD0dG`4j>)(rUuJF?Qj?m4`AP!9>-@GT@C`wHEgOgYl=(Ac=ZQPsy-JsL17myN z3j$1~!|ekxTY5jn8(!geUr2`Z1%qlN$PETHB8ZIXMxeVZ?j3-ylL_i&P>}?!F+rOc z^x8iOwLx%I@K;XLngn-poTVtC?fBi&JxNH=BbIQikU*}%uR`+tAA7XdB#G4{hxFVv zY_s$r8wHZz#My`^XhawtyxZ{w@{=SV*I?+i7h|L}wp6IR;@ThaG^z!~sS7EM^G$qx z@#7iaHrzhPNLwani7^lIBanxFmd5otzxeqdY94WeQ^V_v&&l|nZ{f{TG-H3^Ci5VJ z19|8tZo81+`Nb_JkG%~}4X-aAk?}p>!kZ^gwa0msU=>=xTmGOeAePs`LxhLkavG?X{-^D zM#1u85X2O6|tv|gmrl()Db3+?OYv;0bRO_1tmpVjhPs=;2M{q@^g zc<%8bTFcfufd=0mTW`?sPQ#q>SIGC6&TGj-BODpoonx}|*c~URvgmY^X^mz&54}aH zICtN;P_eVdok=-Esrb9z+l}MIhtdcTE;+f)F(Zq5@C%Sp%`bK%f%? z5eA}>5DyrL7lRN6Tu$S3R~v}1wyE>N#9=;UK12l@eHHg8`gL-wrM?s|t zD}L}iDTa6>rZG;^2qq#1e(O__@S99Q%O(gcazEYteBrbq)v`2gfOq#6`QsyyV^oZ> zxlXcD9!q*z7be#mQ$N5-pG?KnP`wU-{wJs&h|4cetW-~)z68Pp^0e2N1M;+s`50(C zKx866e>VK1HSfs}`GF4|547rs%FkSUm<4tj50J@bJa7+Qjr1I>u~9w3`wY32Kd%S#NBH;OJsC5U_eH2m@uBFXI-5)T9an zql-m=dw*)1^KssYT1J&R!ViooF`nkEbF7QMp_cH}?)1UyKdfC(Mt2WWllLf z^+@e8CM33O3KkkE525toUV@}xaT47`Hlt%59!s}VVRAIq8T^(R6oC-=<0xDx& z1Snlm?i3#aYidh3oDr~2v0p294UGO$85PNxoK(C<+)^845pa>R=<>=`Qpb$p4>o=EJAdYoqmrxLBD+-*&0bl-D1D^aH zjob_iD1ViR>(}Msy3Uf8L!&r`46*Lig=jkN?S_|C72 zK%$A@Mx5(gTmbUn)ITySZYARAPjD?GfY?iP79!Mx9Wjo?WB(N1In=%y^QYM#iJ>E;&TzhKg>$v4fl%T zH3Rl)Wz)Z)%zZ`dx(93)|c7pL`?D8?lf6NM0X2pr{sec0rHKw$s5(El5 z?AQP(s46dEMhs&?`Ai*!1dqh05vNJle9Qx&%q#C`lvfU~CXQGa6NQ?Y={H)C>D?y) zM+Qk$c-EqYlBEK1CEu{6eT;+nopte}< zXhSCp6-{0{p8Sa>I(s3MIH(f${yK5KbN9ftSaQehFo4IkssLBX;#;a3c2cnVM88%r z$FHJ2N}mBNti))ndm7vznk27I$qIOP{vQztb`mo{m&PgsjY>q@)|Y`UB)yhNolWjD z-}llKtLi#jL59|i-)k|lt^FNW9D0zR>P5eZSF!d_{l@38^*dAB|NFkgeSGTDiI^u!s$e zw~ZA(B`kwB=*=(|rs0c!>5=-*&dDa{(gBjoJT-RUM4j425XM51o?ewg(~^&ZNbH*d zG~f!+96Q^&#tREYO(HhlQ< z{=vxGT~7w&EpdU!+XELv-dwno1mrE2zqZf+!a8aAt-Rfb3ewLo;P&hL zpWkdOrD6OWa6;rVbCfNx9l9J(v7xTM`5juvY#SZ9n-v@6=dhu?Tig(NF&Qr&L&y8~ zOOZT*BgJAZ(NOatFcLm>KGfy+b?jT4Mn`+Zl?!M?>74=}X!^^5FJ0Hq_~yYJwc!?K zfQ9sA6?2vSwI#ADCT6%ZFN*C4>BmgG`}A+vQ-g@)ZIyuEE`77_|DNgTvX%TovFzP% z53R^%S?N-+>^tzp7z)cy%Ez)pf-FP-vc3;qy*w7aQ<#WB3wIeaU|y6vk<&l5{98>o zh4+bn9jG8r-p&N22*-XE{Rs^Pgik)JyE>0X3&}QdLcm?c(XMVx)Ul z-!75%`qA^i&FOz*dyT`XVes8dw6c3ZSCZW+88uJ^HZT+StN#l&BuB3V8h4M+d9_iG zIR1$M+Yb=N*VH~BtbZ#kS;F>+B;Vp#f#=x7R|6ammLH>k&C>H+Sd;<7;t>W%_Zim) z@gg@n9^|yHWEd_PIzz_am^)HGF|@$vMgA*QxgykQM0 zy`OIArBe-uen1Xv)CAYTuCF|k0NvJS+m3^9(fs;~AmI_F^^HEN{p6kGg+ZPvz>COX-YqMvad#{>ypVf$>v_TlU% z1kGRSJQBDW)_0J=Y#qpAHHMMCqAl~7vyBw)o0~$5KG;B~7Le+rv#8Eys|-GJw+`El ztxNwl09(IB)=OWi%~v*CGYFKH#$#(_RU#n4+gkaLy_u6r%i1C<7`bFW^%?T|*Pvz? zMagI-n`}PslOm=Tg5vbPQ@b(i3bU(WLtt|8j4z7WbxCq;$X$>5U`)!s`4-#^j8!%B zG0(VMgvx_)e$}Z! zf{CFC7fuYlg#W{zb@(vFhaC7|IFN6=xpm{EH}i~_?&=PVm%fdi;}{#@%&btn3T#NB586-A2FD z5=K^I1}2M6188Z*4tko09$@N3_HaD5d>Eu-ZZObUb5iYtBH!j)lwBXG!&$D@tT9x! zL=0erEU&b{EsS`;1tgOLRHhX1l#P3Mn8}_#Uc_8-QKFIJYi^L#%BdeT%OmC|cJoi#= zGA)aXtcc{)hEy&2{aes8Q1_Enn2ZMWLYvXR&9sHu9?B_4fcs;tqWc14tas;&srHdp zjImC6PR3Xd2gX>x`ANSq)|D+2L!(zr4E5swJMql_H(#pXJG4#=t;hfD_+=|GhKgzU z?QQ+ze}lM-+b4!T1H2!MwfteOA97&ZIN*=BvYc9`qg&?!RTbS;cSd^{SP-peoKsx- zfOWjg|T>B=@j6XF7(8OwXJeV+gTK6s<`!oQyQwfJR;d*lpE z4dW3-EO}4-X8iK6C*G?sc!M9Q{PoDja>d6D#r*4$<0lp0vl@i3KD;Tu5jyNa*gd*g*Wif^HL3-Gp~uF+W~ zt1M1vGFMpnNlN7=L3~bq;_V+w0QOuWxL;E82G#4OC4Cub8GxOc_>FZDLnzW-402*! z48q4|JbbJ;Q3WG-!r?*jfdke0%|%Clg30SOfH)2a8zwcfp^@xp);BZm99E`48W)(;h0f-gh0d)WeHmRcc0IIN< zlFX(^Hd{sRu7l?RoK`wT6^lMwW?!9MpluaMSrfUtu-e%axqDuP^8}VXqqB=1n&oUl zEb$_?wxX_~dsfjVxIjJ){>WY3^nv6DT_&#o8BRFag$By=aC!9VEn4Q5-be39)(+YN zQE9vU%MXoll2my*X5z{@yrrVp-|Hd4ig6-Zrjx_s&DafZ#`QIroVoCSXd=*?k!=>e z8Owjqshit2<8!-sOl(_w{C_QV-u`6~D$R3%*bR~w=wCVz2k!>_N_R31FAxUxM#MXS zAq5OgaJ4?Z5O3;SSqVQ0d_cpO$%Cgfv{PYlO*c5$?z@=Y8G zxpT`ToFPe?;0!N#wse~StN~o|UD~Ik)b--jW5quG;_;BQt|!WqKT?) zM6?`opf}25whNFmY8xZ5BjA&)hyQ_*jpErMg)2hgFr5XqqKu0G9k~~ov86HJ;%Ol< z+Ng(DFykK`$MRRQ{K!~kp`_)@TD^L0@&#c2yLSc#2hZ0D^RH&os>gL6m#i|fGt z=NiQ8Rn8H);!+!T>=OW?u`d4Z5V`zn=7;?N_yRB9Ia?-STfbvZz`_=I(1?@r<$*BD5C$_hPw{1Ecgb6}E>25C+Vuoop#=0%b3UKBr4w2w@y7!h+cgM@vNA%!bI0=i-Z zVAX$hAkYWPMOTH7!OPsxWup4gm7dy9lMx_^)Zsu->a|Z2Kn#YB%XbNu0oOI46UH`q zQr!!+CHZRb7uAgmxUC5_W>DyC_hn`jAP_lA5 zS!Q%XB&ufeLooiL4Y2&As?qL@D=m67zmBI{Q_mpz(8`W6*8nX-Zst>}$b4+TA%UQa zAwm~zQXyTMuG-1Hwa$9jrn6NZKEq82H3=C9)Hv&Lhh-QYbPe`D4c55mDoD|gi`6o_ zKc90K#!Auv{9K*70>vB}Kjr?KELqalb>QsL(oTKCoq?TBgRvsLl0^e2(9-m4S5mu` zP_4s=-qJl&O(}HV)wiqx7Qbl4 zd_bkTaEPVK*+^EP)LYR=ma*jL$=cZmSn|a~Ecv#!(-kaj3^n{gN^fN4R|jcL0unsL z?t-KuTvYEBn;MT<Y8&gSkobMbRX9p|ppxG`*-WOV$&w5*YpUm3Dw4b*=R#0BlYFFIy$p-8Vx z{mUEOls2C|@KC;|wg$9^(v#T7VvA`Fx-`;Z`q+$-gYp=c8lV4>oa2%7k5k|Kt2eHS zBzs^h3^dVji`WwF$UfIZLy1Uq|5#^MnNp?mFOj?D)^cZKv@1|W-K+Bp%gL~>lV z5k^4sZYUIIO)vt#^qpN{TZRkN7?Dk}h(Li6Dz-?6OnT~|CL9q9S<8(g2L){@Ao8zKBT3bEsGt7wPV^993AQ@j;vAU?y+r)VqEpdyBu&*Se5JIP=PQin;C zpT7whxS9r%(n0HMASoTR;xutlP7xop1~qXwXW~JtQWF>FOgw0vYT_MMOzo!;gI8|G zJX!l{s8#+hn*Bkni~UYP^EsZ4BL~iM9kLP8uzBPe>*7~vd9?;7YeEGwTSyd-=qx4y zoFspXHtIYVBQd|ihn;UuuT3#O&9$g$681)1vwNuce&E*eea**Zd_NE82D!K1?@!KK zLh=w6S@k`jFvNx9Xpce}^evWB6mf^kY9%r`DhawUNx;?19F&?AoE7yFfbu~TSa6*7 zloxkuIxWl3;Bd(lPUbP~D6W6LgZS+_6;JtycYsEO$Ri<_JX)LT0MDi}mp|(6owb1k zWh1YVFc3P# zSH=c=JJON!yhXVVwovExdpp}ftbY=i?C4HkEt89e3OU2<)C8A%Myok^*a2b=-aZB9 z;I((t9E=^g>ajgwsI;F7Yb+1Vk=Q2@X$i!h6y3Mp5nn@gi4~VooDB$ut<6~8`^}?J z&FA%#A9{RqhYVhAI#Zf(!CBq($HRGkFXBq!`rdBBGfGH6Q7+ss>p zl%RsN4GIsM1U~H6c1XE?@oxYk! z1|t0bmXqCVoRd{P8y=#t>T&e2ug+yCD%E)k{ii>Tx(KNAbjJ16VkVP=gmQez5uAL% zxRicZ2SYEuh0%^V3F&D<;!n=ru^(s<_?k*18P-{t8YhyP<60|Z6KbUW9E7svz$3P- zyrd<9k4k*>h{JDstoby_oLS`wG%Ergb)+TnK6|RlNP?j^(%y>?4-}5Oqh<&Rk@mYa zg1N+|mo!)VKqi-{GXi5Xk`#4zQHSpG8fSzlgL6ENJE|*jAG#L~ooMOOpWI3W-+x#U z_{rfkicAyHQF5bkGpML7Nqsk?93Zg-Fit4JIaZ|+WXcsuB()$K>tfZ0ns&{IXBa&U z{Zw#d{md#ln<^H=KKqGFv)syzXgJUX7#b~cM`T2cut=-Fl_%>Czi-+eDf0S%x-6|d zaP4q>1oVS707mr*L*!^Vxbv3x3!wwvYXKPb=+gt0qlxNDlfX%C22dh8#mZcgh~2BP zEHe1{bc6B0S9sNjSE%lR1EzU?oD|g*CsBOE&-MsS?H+2*dHL5%9$Ee^MS%kRbCrMH z@}TtU+X#E)XazW-O) z7gH2P;(F?57rZypew zuCY+;L~}#QG>`>j-`Oh z->B4{0vv^pfC8{JM#q(rhCUy*xz^#uPX`yh{upHV$-DV&kkte|yTsMhJ% z_7>~3d=iBItu?ex4Y2#%sl;JFomr(G9%t6Lo#2LQ029@`|JUTtP0yNHq8fWdBp9ds zmqo6uhX|r2cp7wUC+_F9M@q;N+g==v3a!&T9ui8h53sPst&jyGmBea^tReK=|~69G0S3=41Jq21e8 zeIeiWI?$oY&u$pg$%KIF*G}>Y6Poh__8|8Qc7{|hZ`lf|uE{a9iBh9%QHIGH-3=er7BMc8BZD4TIPa9?wkJ5>0(Wlkx)RWj0IxrAF*xoHyrWRDTw`G*tw z@y1hrO@Tb}yAc~r$lWS9e{$vgU2Id5>lUju$6z9MY8W@J*icx6fl%DK35@f3 zHRh?s1+lT--MBNhj55-zg9Hqr4S*XMeza02^s(*IU-Y1vcDLogHqg!G@;~%T9qyr;1l+XOo?5 znEmCDl;C{?%CdJVA&H)sZSXS#Y~G{ zXbRKMq{rCs9W~3e6Tl5`0+1wgPpA?q=XPnf^4hyDJm)=5@gUOxr%Jesz$u<{kv+d) z9e}Y1keZA?SinpjYR1(@@kRt? zOkH>C5)c(l%C$TKHU>R6a;ijzw)r3men)=77PGl9Jqaf2aT72)(Qx;yl{99Xan1sX z2f|SLyRj}QNVAvUbj@$4to*+9Z!f>tukTQ^E~(Q5kS1$s?H<)1ri8o6AX@qJYV!WlsOzqvGeg`6WC;so?lQxU^WP zNLSnRGMW#NAXA{s$bIxO+B-?soaD|b=?Sr*%3jYp+Vt+OA@|fKwT_%5g@GHxcf1)P zxN!`h+eK90msTUMKJ?-=LF$9dM=!-fQa~SE#yQ1R7g&90ML<9wR7meZpnEp%%tnQk zkVnb!HZk@|tsMqH0s*Cxa{3mjg8Z;Vh5FnWXWcA=0?R05tjvI7`Tr z2GohKL#4vu3be`!L$`dAbbQ9TD4ih)1?K+nrdk^7+Qd*+A77}rJvj6Q4{V4>LN0nR z!s#R$#qG|XAZ;zVK5HyWwBY5TaeW#@cyR1@VTJ_K-;4Z6G>K?tRwqP|)$6IDWwlW} zr^$(u<)v+1d28)}IV z7m+;HMfk$z-EowFyo`mzJ;FcM3OYFAxEW8c_29xTpm3924ftY%3lPl2S;2)|4+bg| zY-z%Uz24d9MIG&ouZnP4m5Jw$1F9=SkNmh#%s6a`YwChGTH*-B23eeV}X*aH+!PMyw6U z1&Kz*=Ho;LC;=lqm@1p|T+OX^6msjs;dMjFji<-q_!}^tf0TQ^Qk>{(xT#Ggn|Le3%0X zlaXqsxrKCZEE0oCC27ikcYO$3ZzsXTwRZm)$15OcH1^7ORQ&D!C=5+Q_l#`>bu$qfo5ywHXaq95rXzmzAXu_nL>gu^)Ci}D-5G!&M zjGl>qgB4kZPG64~q6tMSa(yS+d)sP!{`Xjs?~AGWVJ7bb2Zk}9oE(2QT5ZTU$C2*& zXp=ApU_bx%aWt;D`>1&$?fU>6E{F=kJq9?;A8hrkOV)e`=Lx(~e2%HbeoMDz#)0W{ z(A>n?3n|fg==`{Lr<27BAvYNFy411hE(V)?@q};I%Zjf87Ur1L+UY)H>wR&v7_HSX?KEdd?PX@NfINKy_f_R zYTcd_>?H8~;>cge0It3`_9~zKuDahzrwq+~^`-KR99;ZcKwnVGNyA?S(!CiuKmeRN zkd_qE%-MJ1c_)kL${4xG>@z#)#*h0H9!oIMa+0+n&yYvgv)HH;^q<5e3nwsf|x~w@6tx*mVx=0Z z%$1JRGTzFeudH|IHaUS+yLx%ZdarvY$EJze>F5Ect2qA=SYj`%B9qZy;w*1voA{c`727;%5vS$>HM~9L{DSl-LxX(bbm0ogSEx{577{{V zmb&Tg3s<17KnMJIS&Z0`z2Bt&%sjn}J4CM;O0B_6ubE(0I7F3^wR2&x%#A+Yr%p30 zZoiB+(i_h~fn})C4g2fDmr<1OokIEGNv7l`hZ-j&sF}A-$L9woE!!d=-KS;CN6A*m z#}(v8hI~Ay@=+r4QA+u^r9L1Z-~Ok_$H;$ysU?^(w)b0aqkLR_xhEeiM(oJ7U#EN= zJ52egaq8wmc5+I_-3Mn&#&ds0A+9+&TQZK|Ld*vu8F}TQjMZe$zV!$bYnqvIBs0wnsX#MRiidFy zut~4k7yZ`80IvVR1Rm!QFY|L74!#CVhCwV#hUQdmrx(p#{rDRFni9T!sF zzkUnVop{`ntqq7Z)~ z4wXH>H(K=+jB*+hN8!UX3~;2UwmO{zP%l6CRcJfx{QY$h06S6QWNV4j>%MlrFbdvX z-AF=K@#r4D^H2SN!2s&akQtC^e{U7hGnD9Ka}zy5V-LxQMaf9Nx-X$*yS@h{3)YJN zz8%Ut3kDl1>5_~R>0S&JWwOSek`bF--W?POXY_NhXX@Di;ZY*IDdlgk`w!eZi|n>* zt^54QejEOHuU*DZxAo?hy8imWHrvyOz(5%Kz;a{Gnmlo2{A-4kci=31c!h9YYY*Lb z0wxhpkq(wI@zU!a&9TO?2e^6UVNfDvu%3(7@A$MOZ<3eZ!B`O6-aGp3!&)Hr%AIQl*oogv5P#dHe8#$` zMRC%yndAHS0UR_|w6#>QKWJGR!%GV{XpMRuef+r_v0&DK$zzxR23KWtMs3N`Db?!$ zj^KH43fCFq*#2ylWjg4Pj1<_&O4sq)lE}Sv6&>;>$IM}?WDx*O*3BRF@~Fe`-CVYj zdI{OUBl^GsJn1;yfd9$Szqx(akP~i8)Z*k&3HbCKyM|&%w1t{1#9;_<#YzN1L0!`|%w463sRIdYQ5UA+P^->8p{S^ef+yerBPj2Iu76C2ljmpL#sgjx1 zl@}ZY7j#7VmGM@kR~c)ho^17LWi%KHylk<%3(MkwENGsIs*1|K1*YW11Wo&B?IjtI zQGv*n^K6ZBeZe#7PYCoOga(~JG9m+-h_&YN7D)K3)Ix2>sIEgcoU+=n|CCR!eexBx zY$WQ=&SYH%kq?ec8Rr!5daNCp(2wbnctsejencHeap@1g@YfUH;Jt;h0Igvacmv}C zE+D?|1JW8e$oy+uLBw5|950od|xG>1UE@+;;}4t# z%_F5XNcABI8YhtLzd+9fH&>)`;;-O05&t1z+q(FBd`)!Lg-81DO&99>tfRm9six2B z``qf9S&{aQ@V?ORnqzA5{Y6lhx_&1cSUY$2oJjkXu;vu#^T!2xLD30(!XHQY ze?0{FuZdP@UF~G42tyQb9vpr{LiC{o{{_Jp1;C$0mnEKF6#~v*1)o6h8woxm0RBA- z-iSJbvk!g?q>N#LpG)wO0xs1Pn{Ipx35=?eV*Z2mR7=P{)Ce48sJxiiiQk2+Z5a!7 z1VQ14u*$fR?;@J&mDCqj5c)MTm_tjx^Ur!aN^l?LL71RK4DC^q#Y^ zqh>TFMO4;q@}h9+pVUo8bZamg?RZF2tAkxqPZM;yAE_xW-I7`gJ2>?dxU~jZ@dt8h zHxm9Mb$FE~IkpTFJ5&Id(f|A@qOU`=FG+F&hOMwNzmiyNZF$d>j96Ng$$N?E`@}RG zF_sT($As&5Gx};qABbpG$nZdXWJ<%wy)CnrK4SR@X0gJQ8|jBr5wOlsi6bmT!9`P| z%yt5^y%%cfLp`=21bXWy0QxF`v=1x*ELnx7thD)a`MtM%lrzMut7Q*M?2pj= z;F> z2aM_uZs0?%v^8gn@zBB!`{Gm3~^kX?h#81m}}{`AEzkCgO`I8?i1vlnb+7 z02f|-5L~zvxV#ie0Zc?oaH4~ROOF^Ws>U*%P^y+a8#MQ_pNZWO)Mb(NYnkF;rg&7NNe60-Vl2mIl;ifa zsZZRG225JIH7vC@zoi4C9RSohImFGTwkz>!1xQV;aP>2p zBs{pnhtsLt^7($;T+ZYw_soF;AX0YQ%5ZK(pnMMMX?-o>HNC%D!tz1ed6iuVJ!bPb zZ2QNvsA(r(xcOQG)}p7g&6p(dBzaVt#~c_|3C39^I9^Bn$}xR{t2EmwgIL`)6gXAo zoK`WZYMdx;&XaOl3Y|G@-pO`%VZyUs4@2|q6LY!&miC3F60@$s5kzoGZwI{=!A}=? z2>ymPF1=qSXk!4h;!F>8BS1}MHBF2i`Oc+Ww&QS@x!_E-!WDD`6$+2~A6hTQf@u1Z zdG*+XA+*GK0iz6)m!ph=4(n84I!`3Bg%F0YNimyWB%inL_o$o9g6!?{g2xaE=UJCt zMvy)$Fr{wyr-A|?!v}4F=l~s5o4@`MO0YljO8rbElH-7n;jNtJ(O0~n^=_FosCHj1 zNF85u*zW4X%QWlV(hPtC08GjRD9HdQ1VCXBAS1R2u`f;&{AduK!J8Y$ycMn=$QUI& zPk$9-85FbEDu0u9KKH=}f%AT1eLJGZnvfA7vxba!uh(q~4@3LyrpL*gkJIDCToe0=--^e{ z>ffP7x^97ZoU}BCTQDNmHRKC-MRBt7Pd_VdHjYui4yBsn@LAmjfM)YyH1skrs?xgt@|tn^F_GBQf!OTrC+|L)+=_(7P-uLDz& zQN+c%2oY-f2>4TuH@5{pW>$X$UcpKR`*Vi+1@4DJ+!N3KQqnbl1kzj^et@H78+N*c zRd9N}d3PIl_P;z!WG!G**Ww2dMa`oyWVwzZD>bB`nQlu&j$Pu@s@KU|a{Mb-LG-bD z(>U6bfCdXE^ZS4V0@T_IUscG%eaIO!H6O> zYp%b4FYxE>cbtdN#^Hd1(YO2t(%pPF?4d)jx)tk#vF3-L!tjrxf=VRpcEZkLSg~ab z1!x-#pS=D(#OoD5hv?c$$6^!QJ*NX2ZadQfJ&w0?X{|UYHX%K^pDo1E~A(pG5$9jsd@;PKmn-124#9BSyo-7HS&rMN+94 zCg+Npm03AKv=4!tDzU!24x_@bH$|=%izZP= zcVbcAI2)A3S}IGqiyOfYgIQpPku$Fjzx!j<;Twl;bsgrdKS~hgZ3ZlOwo^JB0ajJFgStA@dMvFwqFFM*2>SmlR4#jIgyjT&SxlbNReIx{2j|l4*w~3I6j&44N=?#);9}Ff#u`WV{S}+N0 z>QIEp9Kj3cSv!|nl^*AeW+SufQ21Kb0 z9e9H|rBSK#j!zR&GV=3YR4ybS`{?cyPK>s_(#HZ=vx^IZfyx$^o61fugR%M}R{#BF z_<3^;%GZY%$S7NLxJ7Wy-ge7p}Z+73%{jy}eJuB0vS)zV! zOze2s=YavjOy7v*r{CU4qRm}kt>4*45x!{9ppJ35V#>OX&RCxjOH3f0uIq2 zoROH8F9DNaHR3N_f(`?VZ1kZD0r>IFvXyEE8)~+wxJVNTlT4xe<&nGtA4r7;012qP zTY96bb3(3VGKap{@m{{-TogQDe2W8nn|>kWd=BgcA`z!=zxXWkg(uM?im$-o;)_xy zft?+EB-cC!GOQT)|Bd_q?6IcWEsQ%1IDU@m=I zT}Y-HQ}=dMKtR@b76)YQumh~DEkc0Va96#q2EbUdPA1vz8x6 z>sroL-0>|?`7;!7T`9G?FCFouZ8@z6iHUw*1@kSTz`weSQmex-@6HfgkkxVf!J}O99s2Ra>uEO zFPY4x)vP$O2vb$@xk%zj`t^MycB&1ZnTR(jPR1B=ali?acU)T_D?1I6%EsL{4~ed= zUV}9UC2Pc`=b~X`0!NZLs5`g578Z2;S_HOr@t61Hw0s6|{P0k9HsR~c#5i1qI1O(y zvzCy159QEsUV!*ypOa)7VXvf4f6r!zvQmVltcjZBlGIwX5;|1#20vf}V%CKm7nisF(JakAyP!RkFo z=yZ)NTiY4Sa<_g@R3-DHcBkP_YRoS*@7c#`%Z=66I>tnHyqoni z48tnRbgX2BT2aYA%Y+&J(iX1TmIK~hcaxaae0Qoa+s|h=B8e<=U$`2E634bpC%^z& zzj*|tL}sxiF|0<~k7yE5Ouhlbldi$6>j8qdt^x}YX#6xwEYky*|QHqII5erBgbz$?QQHo zux`*&m@Z5|hsniKxTT?|*^+t;iA-%u^6bKGUg>U#5Y?*jMN&E z()u-|5v9Sr?`xM%1@%Iq*beoQuPGefcpfzsVu|F0=owL!X@4*&MeAES zF1|e32lHJA^SGyC63lrS3=rG|gKJcHZyBBcL#BJi(C0=5J9qS82yn_nO-0E7NO+#i*tI-O;?#H_ z=s<$veaFFi9*`_g9EODd2X|!R|M}P<kk`y^a%2~j`Fq!)n>;Z0R4iweU%;qNdTqSVz&L|yzfEmt z-txG?@>~qY1O`bZG~Arx(!J~;iQO_sr%dB?_DRyZQuihtDu}Ys-bCzXjeX6=7QoTQ zU);FnMil?I6Rd4WjI<3`enx8ppLrzQ6Q!IldCOPHGT5H;ip=swwR}_dwB=LMljR6^ zC)DuJSv?t}lOfS$-4yqSTGZ+IMp35-f=|wNc&iF1rJtyT6jRNZxs)MjPd!A+42sdy7xv8q}$P1Ij{?}tGj%_>fYtPV0Bk~ z10{X=quJGc4Sn^{a%^pN2ksB4qy*Ut&aIH2yvkR|TUTc*zPB`Gc#I4npVQa-sUK#Uf z#YkH{&;Kx3J(F$#`KevAtLN&Yx2bxDDgViU{Nru|c1UKfOOJ2B0xksq?>qZ~zu}{v`a4^f%+NPE*%!WnSoPGPi|^quN6!DDs^w@2Kly?TdI6nK2aY_J_Gi9tHIWV+-@X!z zJGYd@qm@bAw6x2PK*+Y3UeciW^_|(W457H|cL^3Zhke;S#NyW96D;oGNffs=l3m>W zW^Rw-=9ljw6nN8^V1aYg?`eHQtKZ8r>UWld0)GX4c4qxfKYV)>*stHL_Dp2f%JXHJ z^2|{Y#*2NWw!BYM=5PcK!#R4oKnlvv&j>QHfgz=mu#?uDz}?82wUf(D`=fP}QN5W^ zm6gi3pVqS;#NnA4xIdO0w5mm?mAL4LhWejPa~n_n+|;=Sb8u-lKeoh`f8p$2obAFaP1 znmSGQ>`DsD#h0V-RXf?j6E~a7)W@apTR&1&3CSxT)0vOer(FJg$?>gie*gF)_KHd0 z4Hv{vGwp*1?gZVZv~RcmvC=((Lr3u+tgCc?JdqrMl)Ojw!RBE3bN7!|jS5zHj`nk} z-wmz8Pt52rMkK(vV@G6H_-3lbcI+Rs+Rq`B_vW2~eOwC4*3Pt_#0G}QTpMoNg zDj=Ozd~lBHl@-z;?SiHQmTw(anz1mmKD{FxrMZIU3un>MnNr1T7tk=EcE-P;KsK zbL5`QNw+L1Bb#w{{wHydOvU}@k zm2U(YCqff$lWsyx`g{|JVls`BV5rkdw4Q5>lOUoZxFlR}z}~)}ZY0h_3A%zvW{zYA z=h0?3f*k(O32+42Ssg*1TO*Dj*L@c}osIs2O{;D?Y-r^QHcsrIuVeJ>*8wk6%o^)- z^dZG=NU)gJ6g`B~jDjJdGkb zco2uIkcYaE?Ou_P13^#|kG;d1Ft;px{#L1pQFo&z9zx588GT9o_S2|G-%l5ZzW|r` zpQ|v&HxM`4{VCC8oKC&6Eer22nsCUfEogle3NR0Jm)14Hch=o94#gEfC&{GZrw$2_ z75ABK6r&ZOvqI<`qZ0F-TZGPQN#|}tCr4XG26`598a6?=Isry^|W_GfC2MT+!eflPkVfDN_l z;Yeze%&D-|@Oh9EP0Gm@^;{ph@t;Dv*tY+s8ZD4pB>?#p*C>ly?6D$4g#a3WxP zvlJ-u&3O3ojkn@&w~Hr?2s>i~^8Lc!CWKV9=c{N#2lS}Zr!gIe9g2{IU7-W9?qZdM zZ`~}C@bY)Sy;5{IQ@i{5LmL{PQX;WWAxGTgBzl8G8$mPwaB88xpg7PcBgzc3qD)A> zm-}T3h%#~+#|h!r6J?gt7v*_x1scCTcuQcSV+0$&V|O==AK{HaMpp5h zC|ibBHoh|?i^!EX`w@mqPJ+@nL$<#(a|<33X)CV-6B9rz{PQ4~jDP84)6tB)b_pNt`L$&MltQ{xgJ>7=YByuFivjL& zNMW^00_L2BoaEMZ)uVf`)Av*=L=Qv4_DQ9e!d_ZLA*X9teekD@@HJ4nD26drYp z$gcPt{wC}3OW8}r$1y>J>`{*{-dKvUO6%*=gUIIDEptbr6PaH;1#@t?EUDY=0^i<< z9MJ6~nQ&$=8{XKPl-43uw?n@v()zn^fyv*3L8t4Br?s*y=txh-zX_5@(sVAQ#Q) z(My?=;?G3AdjK`CMh+@o3D}DZ=>j|L4YJepV}Ja*lzbK0c|5#a*xzPVq3w5j(F4<= zdHD?E;;O`zhTDLClA`KJtd@*mh# z0Qv7glxfy0jJLmBKd5>z4YBNc4qCxFJ5_iDy;w+msuzo1WzVDfP%co=hwuH}>H`s| zKAeln^}3&laDaj6?nF19ufh*T^ns)}N!E|(gMKdKr|1K}Q7sZ|^r0UncNkH9*Ra8i=!zzpEr2ltZ?V*JgyOR3?{0=nrVd#U3P<2ZZto2@Ns` zo`XEjI-J^@y@l$Xq89b7=XH$G=2Rh~N&eYDYHLvMUlEN2f%T)OOWXoeq+F$0`AT+a zpgn)O#46`C5Q13u?ph6>UMhcB74~tvD0+JT}0q?m{SYgTU{p@VhGf ziLAD`fiEpC2WaHr+6sbC6Y#wh{Lfz#^z{Tk!2?f%7SFDS3x61O8rUJ1E!k`b_s!%Q z88)AdojBopwUmA^J1v;5CVjuA#qeL6mfnknIoh;H#RZxce%q!ciueEgrX^pOyG`Mc z&;__<0>&YZddD?5zJ0ui!#8Um-+-zN*vB1+!_5>+VvfRJD3M-A>#Y2fr%s z`>^FSfg|l>z-g+&=@+Rg5Eva0)0)2R>nYES7F1NB9Kuwq7BL5n(ZQ@#DrN4Bq&Z@7!d-Xg+W6X1+@FygOEoeUWRua8dWj$^HUJ&BpFJcO%Yog z2x{3F0Vmi)I~o(Wv>FkSWY(ChXX0PKgUu>a&@80RVzZLLfE!%3atLmQ%9ar_R_(7? zh8LVS&&p>{R0GPT9Z3zd^2fCt?^ZAfbq_BiZ|qwR9NFwjZUAmv{tj?=xuOf)G^8EPs|jH&M^)uO z=0q2|N1_772U|jLd@8V;*D4y&0yk%YpSr5XO;8kc2F^Qjg>Xn+;iu*aq?&qRAa&IJ zTrjnWA-9Bi_&CR6;G+$#-TYeLSL8*%Cega(<8^B6YD5=$(SOTGP3#$|HwRKr<* zssH7t#=%ImTEpO#WQGHHXJF(5GFS&Jx)Mdb=aj(iV4Ppy3Rz_s{UAa*wJ z=~x&c^RayFWa{_**^Sz=G@`)x8CseRKsVV zzx`r@{LPHa#ozNljQa%qBlGh2SVG+6L%gs2^?Oh*;Pl@D%5#BeYN2R-ctGaF2@(}m zbwD7D?F_@@ah^1 zz{62<0YohTd%Ii!M_2&%mbn0`Qm;zJhSdG5%0068k8%ZPJ<2Y-(V?(%x*)?mm@!o} zD~K4HUd5i?yhlgbv|9EB;?9wkmPUt7Th4scx}Dz}sT?d@-nMI#qMax;=)I%^T61*>*K>cOV6`3^Ic222g~MOron4mck1A!I!18G?(jz0l?G$ zyYYlu3+7(R!_f5L}?7_HzO0#h2Zhih~GXu&K$Ff zURu`V*khdOEyVuA$cj;c42#Sx!-_0LosOG9vwQMixNa`$;y!+kaFp|weTa)XR}sX< zzIg;Vyj$+L`#22RK9aUg*23^e`#|VX@C(;#G5Qed?!_|goe44_6XaP8AGW1v zndRxgSkp5hZb5Yg<{;KG4qiKWI90QCP@*4mbp2UB>h%IY{W#lOVAk&vyRkyOgwsjFon!^T+$%-{1&=OM#0j0H zSHgMnYLN!u#IyiXIgCS2j|j_|O+JAdzcb{$WoDi!hL&QKf@fU#}!~8W2?iBiE{oUPj6sQ4psG&j(2>MMy%1lYir?}-iNeJ>*ib3A62oK-S(8@dv=_s)b2?J-os{D*omORungm9ELw&RW&ZAapis&Nj$ZLxYeW-qfqq(5J!Eff;i}7GoNLEf-_H zkH$|K(+-Gy)q1!vh7ej(Op`gCL|OE>^JuhTBL+645RDXzg!ZX4+{!lgiuApy6Ihe` z4odK^vj|?3hv1M$@P+{hK2iuKgjY2}83=20&pE?tV=&%hary_@RX1HK#K(s77;&Q( z6Ax1S)JPOQePA?Md{GP&Y}jOsiMI#P!pFLo>%`dU%Vpy221L7?;Qb&|b!w8JRWIP3 zNpeJ@>HNi{ur|WL67a_?hQ0`Tr5t?mxT2+IrxFlxT z3N27xJO&!QYd%r>EYf1tu(>e(lC}VOsF^RQ@`14XzCHDC=z==lg(LA_qP(`^24qvL zi^fK1TP&oz)NE0+YoKb_mQ2146MPY*9b>G>UZF(|lR^_4CxxbdVN&QX`2X&ilR^)E zaZ>1i7flLXcGjfOwv10dO#2}R{+l@9&8K)9z1WO-W6Z#u0cKN5pzP)@jpe)QECy~K zWdl&6Hg&oT9ivQcNGE0{1}X*P&?b`l(^H8|J$gP1RQ|Mi6j8dck%)8YBG$# z*nP+(m>h&1r|3wJ`zb#kOJcT1GvP8knl(VmD42wQJ>sj6Z|l)4#g&4|x;H;Pk7kWy zvDBlP-vN(ig=KW=Dthr_e-8k*&&=z4)9UBjzg&We1+P^+8oUl@LM7vz;(}jJFgsz$IIREas=rdADS29kjW*_?kz(QtXs8vDPA;n z`Gh~-yt(3Xwi|+qTkwum4T+-l`xK~3@1&Du^1*ZrWF)1vr?x_>y##HSoO+A4UZ|^R z`J7TR18315B`sSR@VO|OFPQRy(DuD0wFRPJIAIQ<5AKiAEW<5mvRQZ<++0rgn2G5k zTr7oyrz7{(;q>#_wM$@@liZs018C)uBq61Wb+K%i`1=J6QD_*yFiG{D4w?8ndxe?! z8>mVy2RqPPcvaFkFq3dzGTM9skuy4Hij3P40G0Hr&0X|)@_c^r5qoo3auTK%>WiN} zehdcZSnq8}Dtu=tO41P?nf_Yp3=Ts-j#3On>+iB?U6Yem4qz%;=;2rqxvvJSOA=1W z-9S1UWC}Ke+*E|&Nr`qmvc8*DC(ZR%SS?1G*z`-i6i)Xn^{31IQonSZmKwX}P+Bx- zB*q(<8V;m(mhuB&pz?QQmH)+@<@W^oM5!wRY2m|Ymr!_l1ncU-C22-gl0m7zat`QA7&s5a zp6t48%*mdtx+IX%JLOF~A3@%{b}Y%JzRfRw5cNsDYdjWgi5kU|1j3gD=6_6Gb|G{i zV&BQC%QXU@-IDgNOTrn&W4=&4K7#aCfnN8=n3%Uj?`Vj=`xu{SP2~~YuP%MHH2G!K zJt1(y~e7%Nz@GDj=lx`Mwkt87>9H~ThVg2d@0y` zz6dn`kG*e!kE*!--z2-RV!{R`8U;1#Vxwq@L~9Vx1b6kuCK@YXR0L`wrNvs*jnYaa z>1J)#>sDG#tG{YRg%%&JwzWL0*hFFy@C80W`-rXD8y6MDBG&e||L^zAy?5_!HX)$& z*M9y+xjWA@XU?2CbLPyeKbPChI7M|y6HN?&;1YI8`H9Jo5V6du_wn4# zU=6iCt)cwFg_#@bOlPM7D zLdc>gWc^qa6dbztzbl(i4YVJWvaeoyv@35B{(bvs*Q5Bi^*gZ7Tz9l<`QoEp6B<9a z)9f3K^Z#$Ca$X6&1>5&hr=FZ6B^7S4w^QLp9F*5sK7P&F)O4g!b9-oO+=Y@O8!$!K z$)=E)yBX6D1IhMi`T^9OdkUG~#;U)uh8i`K7*Bp#_GX+;J^b&Q(!(WhU8I*F)B&Lh zYwfcJp1(;dtj>hm)xoLw$?;N%KSy#Gl3OL1Cw)B+TiK?X*-*(Il(0vYbg*D*BM{Oc zJJ9N+vJi!WWX#>M`@)mw(^wLyYrQTY)XA`Qh7~4w<0{yqp!$zc&yK_okB>!^l&p3E z7{5X)bu~}SU9o#iRHgTDx1Cv6^;oC5dD^VL9;GQsQ+zh$CfH;Ck{u7Gp%2@5T(^&Z zVlyt&8ET{NS$W}gy(q%fP^5bvSOZ>dS7XfAE|oE67k-SF|0H9K$*ATA>g$m>+@7sc zPg1ErVCt2U+G1kkr&_X`JR2OSn|N0xyGgsGLN}>iXLggR@yV&(Wb1GHcax|CIJGHb zq?vu_lyh{FL7cWdb*PM`47m_mG~quB7qNV?9Dp=UjO;Ak!FqgUYFN*y zAsWa%DOm4|{S={?W7VT;l_QJp#yRZ3;wzm&fes`MEV;xP=I($sTvk-%h$By4XF4+Z zGn~^yj4<3AC<$&kyU24K%0Ei{aT*d+aloTqp1yM+=Bzwm^P92LfrpS+|H^SL=+cX2 z5FEo{ZSyM}1d#)0tfeEf?#vO990#j`uteq9k2&tLbG&?-8uyrm9b!3t2PE5Fi0p^* z;;WoNCfQ~?!-hzZrw`4Bg0&+|rG>rlgQCA5fhvcJ;;Caa`Te!btO7)j>&j*9UfcszszCoH8Du z%UsR0Flwkq$41mquD&|jGEb$M=VUS22dp+VyFL4Ipb?9p6eM_Itqz-uHi1o~M_2W@ zjX!blMyS;gfsO7s$L?aJ->qm%8<{@$k^*UmgoQONZypUY!%k|b#osq1U4ZF=ei}yo9R2)iwXfTeLc@KIYHTTQ?> zLTwa)D2%*>!g8^nu9nA~P<50jQxX*glV;yUiiDq2BpACPGfzc2Nh)L}KnLj+nGu*y zW(jJ+7dtj0%f(lZF9{h*aBM#nQX9#QPqcnC~yJOnL>wBVbA zwv+gJe9?B|cC?-N1B^>+I|NDF%>fz!AoyCkQm8f zQn3&WcVzD=j*{DnX5Wouh5v=R);9*w2a}o7O&o16otYJIgsIMqz;u3)pcZ^Pdb7b1 z;;qLQ93k#El44W*0mh|q1cHPkR;k`Bklc{=syidr+0v9IMvhj+{NMIIg@)6FjA4v=wBuU!(m7W3(S;5 zEU{Qkzn84GNU_>6)xv78TmV*U+dx+9j<}J7f83Kzx6CQ<3q=SQr^3+))t|pO0fjG- zU>iwD+j631uO6lh5dkE&88KyaPlIJA;yAyElaT*#3Z%`C zR#I+Tt4hbAM?2<6J&e;M%kYD9*J^&GJm&m}9^l9Q;mA~VNt=Ce@Y}y63YW`3(dca zV&?!Qb{@j*{xGXp1uH-i_>q(p?_|`K26@%wz`OIG=`OT|) zey{TPF#i`NzsxE_C^x*0Uzt_XfmtQjH&iHQm1R)hl?SuR$DqRX-31A&h?_QGuw)r9 zo*?--qg##;SZVmRcLVkxDLU;`V#tDz;|4=9Zp4nW#*K6DWJ8$uB))s55acda=#uqH zMF}8>4A%VZuc8njXw8lQ_>Re)%4bJW=zl?k{%$LJ5I~}$oKd|&=WeU&1~pYGXH^-B zs@`*~Rn_`CSk*5mUd>TeeS|!B6?U!gepjoiEHy(_3DB<3;8j(ylr~0a8MU!N;hEZ) zqAQ8_0td_cK<2@@4GAPV`O=7jPOfD4AOp}Y<09BKVWIGqLo#jZ5jGhCD=aH(N&8Y!u zwEKqcv{N}7nxSauxBXT_Klo!dbfs$OFIPxI|MSae=tr^1fU5l)$iY9V_H+{(e?_&Y zgQ~p*$Q75CYA+#e%Mm|-YTt>dj2w~<%T8pg_OFp>3qBInz7<02bJhMoT(SKxMK5(f z*)DLJy(WDcI;2A#=aycmqrDtKEp?n89P(;H-_fGM`DQdiL>-StOs!nysecI=u>r=FGvxdbMI;1L3(U z^ALzaDZ|OM<%Cfu+BzQGnJ;S*ooQh*1)!3GUQ7%O@6py8%CuW3c}#74^AwRhH$v$) z%GatPhOp8EA|Z*sdaWpWOo0VUSyLB-zZxyEA<56YvN(VsN~_eHS4ewklxl4vz<71* zj@*e$s;gyPInIJj2K9gj>otkS_0a%ctVBa_;m|se{s`(8UdOMf<#a$TzZH;FDAaPE z%~Kwzx9^M8dd)J0~65~ z%LdIC1l_Q~ccO5tV42mC-#w^~%I7Rx!BW*>tfjRKtvZsUUFKD)+0Zr$qNzwSfvvR+ z9j2wV*g*T<=2#g3v;o`vLUMJ`Ejr{INT^10@*90hw;LJ;lAfzJcJY?VU_sk6DiNNk z+oeG?sl)_(NF~X_rHKA$is@I?+BO^yz2cVP*v7Q)7LtAgdenfVr}PHtA+MIhrPlbm zW#JB9(YXBJZfacoRk8-=5xA*zNtm21v6L%h!sdNpk2I;Vz)ah$rKP%_wD(;EE z_C?5$&y}wKQmtlSv{Ut+VlR5Xb$)&XdYVJu(HMtwt@yF^9ePsr9W$gAyo}*eeylu6 zeMiBlv6UU=ueG;lC_m2IyCJ8nGEM!6qr4ep9=SL58na|Wl{}vkPV%dR>9Vn-C7D+@ z)u`o?&Wm~|5w9i+6TKr&SZt*IWdO4~rUe*-0|=@b+xdTd3i zg+Lr(qDU=ILdMY%;OTovE2fUuDG@PN+xXcb)Udd>;tx@3Sf=^yTcx65tvL-E)}J1t zh6VF&KyGxei&6aGmcLJ#YJ~*C?trIw&jIU@qbU@Q71@0;o znob+AQ66YIUxuvco6F@I(Pq*VI@U-Ox_6|APN4?{nA&YZ(Z?{TU`Pn1tXN%2V5(;U z1VTOY;|J=Q7e7?bR%{matXQB3EE&m^kc41sMNvuR52*%_&!!GmFL3zfC?>z6IS@X< zC>@N^>UM)v9Zco3qm&NzPmTwEo7tAMbqU75*EBe7|mosaP6mH!K0p2EGSUi{0>5HZW$Pm+(`|#UV!l{e8^wL zhj7`{CM=tzPHL-sc9c+?VT#(~GO1lWWO(V+MlVHPQ#TW*wb5hfFl`OiZbH#utJ#F# z1$PWCMRquvum!k$iYA=%jOsB0MPLomgq=t=U=yY&*aGeie5K3qS9KY<>_#LsyQQ3s zsPfrSs>>j;*=6Xmy3CN_^>0L$Vky{kT8+4J$T0ggBIW@CRE($Mw036f2~cG`kGaa1awv7jSB};=(sm?7>1lAy&5kRT|IU`;FuV>;&3%>lL#g%R% z$zMzVrb7u^tANv90B z@`R#w;ZFoK`R6hJITVol zmE@3Q+D;9MAA72F5xCwlRcd7%4hrGN_(>a{6K#hz*c)C~g8)|uU7QZ}Vr!i5T`-}U z9#^yDn64LBwJc&_tYG!Ec*by5?g(h=Du*sFy+WZ0ubXSZqhm05MM-#H8wehHsUQ+w zR3$qje%9!))sFju%p}e^1v80T@0FQ^ow}S)$1al8=01pzj*-+gOg%3xH7?Cd7F2%y za9nBkyzKZ=RH#e7nlw&89;%k9mMf5V;zncRKqpA&J4ibg6Xh`~$5krF1Gt&oc>Nv+ z%E+N!W@6bhQ_7wzFE%m!G=zuOv5{T8wr?RE;U3r&=`g*#2t0&4{3MR|$2LqcbI1+y zY*e)7B)O-TTRmn7cE>2}UK}SR`sSB_-5E~ol39qxY6|c0I_^!Ex1mM}jPVM_QU&8a z!bsdLHMEj4?{y;hgI;Y?WEt{b4HTZgjsz-E+0RqiZ)Em%m0eG!CIlW&z}X?@E`1&h zN;HgComX;LJgXr{lebT$zPR&E%TLDEN~~6BhVW32R&06HYqeU9?I$6l+H~8`9uU=P zZGV&aaS}ud$D~gDTxF56V@t(e#~^X04Yj& zB#qUNHuogcsk;EI)RkUdK46h$X)+nY*xXuFTWA$fXFUc+m|9K+BGhx!(TYXMG`wQd zipXJvnWnkP0lcnhmou3eXQkw9JqhriDJfN)mGZV^oN>38Mi5_1ha-1)(=zz@mxSjc z_9j+2%?=1!w7EAWr8gy|inB^KQc|jC;#6Etvx<|4uwbJQGUja7aDDgW4&F*#wTQiN zmg26&uY^;ewn;!B#!hu&H~1u8zy2PQ*m zt^R>WLij8WfoOV-&1|~1&{%LIyNwCap8`KO4Ssn)_*TCH{JA##rL7Li=&eog86GJ` zh-pm1&;ZFl(&Qmy>-D(gDA)4EuS+D>08cdPiemhJuIT>fD0BaTn55l@k-Yw)hx09% z;vr=Jx%SuKCx?D%AP!6P_>#l*$V%nHY1!B^IAI=bWs0^Ye6?70zHtm4dSnZKm<7Ep zvI!p5A>g}{#o@QDUH!(^Fe$U{|HDKA0KK%sw7F>5V`$s0=yh~FhK@n?Hc~5nGsYj| zyjG|P(a0hOh1c=N)j)lMYvVvek^&8OIY|RIu6-*4aJXu4l3TeDov&QwxNranA+`(` z5hzy)ZX!{xVmwNyT%2~^1}6|+iXRByMf@S6r8p}dm3PfG^_IGE;dgMkf*HbF7nVZX zzGM`nSk5)naCq%PEpq>RJFv8fcg6*Hw`_|Dk<0PMG&lgS@md^!>k7=PH?Hx(9Y30_ z*^79b{GXJ_cU?0A0iFqP#qsK#isAwuQtZAiNq$US8Dj21ZdL*}B7wTtD5`nUa>~CQ zp-~OO(e!iFkIEysDxQN|RGzg}ehx!Xt!l{V_Uq9O`mwC!<{fy<9z^P#H#y_|C9^$u zAR;~?eu70fKF3guFkDRQnIgZuk1;=Q7Tm^PFH?7#>;byT4$d){=oPVf9anSpzh9ufmfU}VSZ%b4 zIm>~bQK&$bL)s}9WSsN^r7N+Eh|o4KU6C6U0i3Rn1EYo_8sY^X+8!0?Jl7DgUQZp2R&kXmWjvg9I8K<9=3*~CDii- z=rm1|qgb^8dPBz6xObPcHQFrSzHANj2KHp*4qO4WFPr33wZ~kN?f*hPS&u_2`D9*# zg}GNPM~6kgN`{dd`W9Ng&t6iw{=RS9h8X(xaR*I)gac1%FrFXIw;s)Qq|RY5u~4a@u)=LK1KR)|)j8P& z@GL{=(Cn2*bJ#}Oa`l3rr}@}gQX9S`M|>C{=2h#?)=d7 zW$d1s0)WA)T)8k0I4LPYC zv4U9_9^_ifE@~7tiAuzJ?SV?vTIE;P#mw~Zt-8ritbD7az*f(iOP~P{LL8woFO;o9 zJql&FgcvWqz|ppDO#?(zxdt_;tYAYmzSvoe7;GEHH!F0Qa%6{2Qx12iNIATriuhMh z_u^VvDx0)ytjnnW<~xb_R0NJufqn*-F|Zhc2dO|G1CM6lfe0L>0{?Lr0!Jc{+lK|q zyuUH1>T=SvVECH{0P(yR88k_PL=oZ!jzN(=$wK~-h`RWYJVH>J6INJR@0X+;mzO(-?kPr#7B{QW4F#gs`DiMAD*5H~(~T?P)`2+WJHRVfXD!mg_pPFk>yI z7b$VR;87sRIxwU0D!bm031;6_-6J5xnmrNDq&Oi^)kIOx$UDXYv%$>dN%@_+zM%=R z&CAa5@|RTr8)81=^fu18&~Lm(8FoaXzfFMz=N!k9-~<5)UXCBVjYGC1UI19p;7Q^> z0{d3=;7M_JJeyb9aM5WKnz48)dg1pk23cg$iKE3HNc1Fc(=|~2dIX;b{k=ekD*{)g zR?#5RVs-v#%YyctaBogD=w2WJIXQA#jkCdU`eaVhs2 zhdXV?Rfs60UWOmQ#{v?IiQc4a@xt@)ELDkG@l&jvP59x87;Wy0@GFjmbYK*kkHERr zaO1a@Lys2oOvSYkl3# zFukpa>6!57;M*j-evEV5#-D2~cHM=thR&`@{P({9tpVP9)&K6o(nyB>xAIg}Xrx`C z&%FQ5J7i-bwU*Tly(D_?s8KWA4harS3hr;l?PWngpqfSIw9gmd1`|gv3^qz&mI5 zCF@hA>%ZTZ>@T0bzq@#Sikeyu-rrA2>F@iod%QRO|E|CHU=0WT{YD%lp{+XC%%sjLj%WFPfURQxAVBK)5 z_3dkk-bWwf9u*KYypG@0>XbA~ARk+?YD70{#KgE*C9OtgQC){%d&nwxmTy&zc(&f; z*+lW6@c4LOJX!<~e*59Uz)W~Bd_X)->xV}PlJ{+e0@@wqY81{Hkp_;pEW?d%uP?^e zbuB^6r`>U$h!4@IH%;*1JCghcNl>GDQ1+EVtGX>x(H*|y+7abOl>bn9st1qJ;R#;& zM_Ya@9OXUrD(ywHdHFgaVI`|2LS@Ya+vEUCyd7YlLB(*DyA5`oF;HSMSvJpS7uE_8bgc673ah@|jc~$;f~gx&{&7eo$t_ ze+`R42&!FMmx5ZcC%7KZ#F=P_H@g+C_fHpG4;&Iy6W3z~ zfLgI;q^is>21o!@%Guu0$SyQScVx75YPwFcUDIt>$adXoy3_!WP2pzCa8ul)U|T>x zg5+sQAmB7w?H zl0aYVY9v(7*T?!FjwCq6=hs3$A|#W)szxOu%u6k`mH1@}gkz2uUfW&I=>3Fq`ZfqSM4N}1cW3d{s;4Z3)#aNxHSmaj3LO_Q2 zV~T}aDmYFv8vyM*A_??uc5Mapq$E&|SE8N*DC?FP=xG9!*#Puz2hg@8(CL|hvZ9%R z_LUP;X6w8BpCH7k_*BL6W@2k|<_s$}m+RNGXUG_G|GDsOwS0HLw+3|q9cZpJ$^AH$6tRYOBtkqv60IFSjvz!iw2wt zuGWlh2o)qP;ar1;ohp0j0Fn31V7+0>d4HBTG~+fTcgQB1(l5c8R^yBS6Y%^7?UgtE`-)y2lmXZ0h*i#YvkoO*^u2rn}16(N%KP34zeP_=A(#^b5gErb>W zd&b>C%bu~4s+{Mt)5pLb+#5iNoolOD*T*;H25jQSn28t)<(O67uIwI zFFL0yc=1_X!C84-!AnMT1!o`H6`V67ylx9qH^7Y83kTG)?f8kx`6kSNJ&T89cFaOj z;uGyiXdod~tsdjS^GV^z8UTW=g+J<$(k;-CQu3+fjVk#rm7G5)A5FoG#>g|};ASnd zLU#tO`Nz9F=%%j9Uv*vysx#caSQQWfu8Hesh*mlsftU;kcyLJ>14U7hnn}N7K7^5N zSPQTXE3dba7C?lvL*oPxwQms;c1J?^@~=B`D_kJPlI{pg;U7_>o2c;@57Oc5@x`_x zG6fBZ-WyEr9nYd4F$=^pr0HVObhBvwrjUA)1T~I_M#nhRiUjdJ?#@DkU3wzUYsDTx zIMraN=y1h z)y^He3I{^lN|2wDz=5lkz?+i5fuKr|61y9e$ZLb5q!J8*l1eZLN=z_xluWvHxwyb3 zJb?SJ6bnGku&?QXNU^{(`K1*UN>8Z*y1+r7P1K{9CxP=+7nm2Yy4IkSW1sEVH3;QY zfP(r93W-F_}ABL9)vMZmkZk>P050CrKaU zjTkdACWYH;0vOj~1&4eQ29;Re2oz})V^<8f%3%1=E&IcHxQob`Q^rAq3%4uLfw^$& z#YhO1e+|5QrRna$r10~kpHpBTQDC6?7AJ-F^l~@*({6iZFZahRc{$@MxfjMrgec7P`<#2PO>aP?;GEXOh{0C2l}sR4Zy;=$cnAs}QB1HE zj_arV<0iURGAvq;?!)DE?g~(?vBLU@jDhia#`r^5MoirBh%jD4j|eE1bcP&n@tx%N2+R7Ic}1ft;~Ysp1zCFuzhT; zp(5URkpt;-_6TW`$w*WX=>`iEvoYe?`0qxWt}BR;LcK>6^HzD4ra~!ov9{%a1iF*Y z%}oJxCi1(5w#Y2DoK)Jg!jmMv@hsIYPL3jO7Uj^h(7TEVCIE>AlM=~mZEuy%_1ZKP zacBH%3ds|ik<`Sq6M$?y>B)qr%`-zNY9Wg1`y-dE8u3vSpw?%d4PJ`vuG~!TcB!6g zhpV2dPGZC)t5Jf36hMM$(!pwVfNK_k+3lkA_|#%K!DO*f6pQNY15_g?4i(keLq`<@ zftdQDv0Fg`->M#{gK)gi3sJZ~P0T?zl3+*))>p;2QEmp-Uli#);8>7OT3|>}I8^or z^LV8V#@eli-7spmUUQ@0RgU4ZKz80?o(lqN-R=(jxZPgK>!GJIJ0MY_m-0>*uS>Pc-ngx%40=sdV`&>;-u>sd+ zUcVS*flUTQaHow{SB*-l^y+5KI@~fIZ6hnwh@eB2QMkhxgD_3c?J@2?i}kN3-lE-2 z68B>0gABtSp>%wN0$#+)lM-q42~X*OT6DMMNhh4u9kcW{_TbHbnKa$It6>o!(2Mt1 z@QSG1nXc7If+}3$2SAm;Qj6toMyRxes*k0bDPiHL&yT7gL;5vZTG>&QoR)}~ht5q4 z1l5x{1764!3q`$6I8V>r_^6w;UGO}_%cwN*a(o)Nn7cz6`jx-|3$8x_d6lr~&!RRp zSZ|veqc>Fu$5k(A&pNwqdiE|m26T$LHz(QA%%4OxT|Oy_+WALsGDQ_z7tJ^UKTfRh ztSMw#kMYwpQu<9=CHH+7`7sGTXctK=VG8LY^HaJ=qQ}`uxN4*gp^r2M*b`bn4y%vQ zeLaT~Ar5hK(q_u zj&4;@7PQevvHr_~zBfQY`(-HTcVMx81uX+f`>@uKEa+gAx@5Xk|55DxVkt)sP|ENO zrOe1w%1V?H$MSQ)a~~jDRN7bp=tHE^{{n@6$P+ARCO^>#s{)_=*xf&XX1?bLUTp8? z$>>?aq`QP|8_uyHE1%Ls12fQe8CyQQ8R2{Ew;ya4(@ZBP4G0uahfovH!=b zyPKi>gs0A)&Lvwcwk|>%oYa$xh}9zvT&HIV%BSwL#VVHU#G;-ymr%|1)!_ULBqfqE zB?!TRIj#Z}UPlPSeBZl}`OW=bvAi>1crBr~G`E!a0kk90EBdNxgxip?N)OJjfL6$z zpnXS3P8eASh-X77eYbkP(j-YsYz7!_ZRDMS@Z1sOEh{EVAYjh-hmvvg$NjSEX<1FG z$%XL!OU4Siz8Q0fhYQJH*d9!pILxXhLh-Ue$PgbhNMv6F4yc<~6{kMDyAUOz8STai zW@l=g;}Du`oclIQ<18CW<7@}~R2s6V{v_x}!PWgT4zbm)@0T%iiRyd|3|Ria_$Ml` z^SbVNldVSQ=WNW-rsL88XK2&$@&uZ^CaZXAutKo7OU$s&>kp3a3F;lyb?rE0Gyg0y zDY{3QMB+Fr9mcH(4aysR-%H~-C~nBspV0j)7KiDXOBAYiShdQW8=PADya6q5Fh1?O zQ%-uW(0~9$;Jl?>$NODx;oqqSS4F0{1e|2BILsp+Ps!K#N(KSvhkz183QR zZpbJG`k9iDn37i&nSrzHz8&e}7W+GS{sW-#@DdDs1@PHYv;MGP{Iy4M{sK8lPpovs|L}jXtxFz$2 zo?bW4gpZ2275&U`#EXAa5Cq9L17}%*Ce`xgyr@^h}U&kX<1sTXKk>f^(tg;I#O9Gr!-g?2a5&*?<|Y@Bp4ByyYq3 zz{d>lG{e;|C=I{Ox}&7gR21l~q7>t+sO6Fy?Wv+vpK(T^NmZ2Ma-P4mdKw#3{ASN$ zdx+ocNfxs)i`i`~o`!0;f*pEqG|mh{o|rSnxk++H8H|Ep<0dr%SMHm*h(gl z>4jYx5Xw6bWE?zMmYHmrO7`{k?QE670Qz^E(t>%6wUmX6OaiiO8BmvG^`Hz18ZI{M zR;jtW8FuY($1qV3+f-QYjj|`#Bg$ulVU@AbOS!6AfwL!~5XKmKZp_^bMG>JLIn{L= zs$dhA(A*mX08kNrBDzyie^eqAXl0ZdbeRbVynhHESHufh~b(dhAUdJ?N$EMt+ zwi=_Wl(5efQ%5MO)}PSy7c~7jqZ2DSedA6Y>#f?>%SIzC(BRgyC<37+ z*JF+e)kf7!zmpt|A<6w+-kha#WPO7jSe^r<>zYGlbcTyJwH$P_=u&c#P`of1Q|tNX z_meR@e8)=)DJfR)%+m#8a)`FXHUWpe%YdWePn>qb-Vc#KhgVhizOl;RV=9G9$cpi~>JjfZftr!8`Pt6Mybv%rBR z2L$#O24P&Z!sMAtdlCuMmRT%eCAZ8%s4kZ}@QbT9G3gZlV-Z%-)sP*38Q02*v$QH! z?amB*K7iY`H_6j?BbotwzVQ`aR;{ac<8qt!&Ah)8>u~1nmsrbGDcI^^t9U#v&ccy? zNp}2?*nvw@Ro8Q>j_pXbT~oq?K@i5gYeR?IZ_69V znOX!=AA*U*+)iP|QVLnIYhgBXjj#4Q_Yv_*#l>Hy_0~L|+ln2ItFR|gy)$m`SiEml zFff(Y!G@7I9BD>OK?Jk)Vy}f8#v!b4@w&5zfFf&zov3o*yr5g{hx;?W)Ff?J_U@=? z^((FkGcAXsEGrOaN3FozEZ>BVYmTsDQj&Av8jZa1!>njWM&5muRt7M=rwQm=h4V16 z2}@I}yGQ;FlKR?zZlhc-23nu_++p8JDg}L@^_4PIh~lb->nj?1 z^3Lxc!qFGQM~j({Xq!(#*mnoHkk;6R{Up}gAL?!)=-Q@0fveoUgQ|>LDG@)jUbKut*vj+35U^CIuo)>Qz71EK`_1%r z@V2)Z3<@kH7(4hS39iS?35!fi3ZTC67Yf^4B$K@p@gfNfFpwyy!2J~<@qn*2M0_f~ zZUrfZ{$@&rYOq+FGE_u*rTOIMcRCYT%^U3T46w9K|74-XsDs@A8BX$m$;eMyxXcy8 z^3EB(0U6JIo%m7TB-wmdpuW6>0Ms50yR z*sDwj{}lK89zw?3)!F7tPwQO$@m$S+<+_Ev>CI;y4 zMe0w*3PTcSsjIv!({8$Hz}{gaA^p{pAiS2MPK-s6(Jp4u575T**eEvYxb;oON4*L3 z5vVU%yzYM&jhUm>JxUVvzrG|bLI3MZQWB_*Nx*_z*EnhH%{K0D)6 z01s#t1zI75QhVO+D5*LgCegT3oM~IDJZ>wD*NjuXI>WLNR%nJ*aAOnNiN}x33QCt{ zUD;)2FVv1dfK@C1E~DkA5WE?Vy6vuNib7HNhJQP#OCn1LnG)z~}o!u4m;NLK~hodVI#5mpok4wibttY!RkcW{-qBu3M!gClN zUdM3n;{0ZDxIk3jO|^jC9Sk9@*cC#w8if>uNx_gWCU%8L5i;UL6Vis)@tfnji7U3s z&zStG| zj>XJ>FuJY+6(O#X<8!)_t~Gw^&PfQh1u=3emj6S%@j{tnixJ{m74Y~uodEG80pazP!enH(KE-Fh*2n&H;Kn~H9duLa;BR;xziwY_ zBvF<=iXOu-F+sC_)()h|7KEDI?97wj@umpxo#4S5-yWYlFgp$U_C(xRd+J?4N)|62E)-*)a_I#6K zf@|Z+{i_PwGzxRlBfWy_6kOH;r@m6^KyyKO9luLh0dWw`WCdWTfyqZMTeOgG?A-?B znbv{)Px_7oH}$-wz4=v)J1@P%`A&>7pN7QdL&T7{3*LRN%?(NA`#jMg6c}iJ zuCY0-{f`;Ui5T7!7~V0o4}(pbgR-mfBxP2_$xH4~oKFa{glK9xoO{Ua&*tb;jsyvC zat(gf4Y7((UB2&guu-1u>yJ>59A66)Dv#UO(u5NGzAqtj@pXl&EFo(v5iWK376*1= zR3|z?>^npU6*svalN53LR*lXF#ze>%gO`%xM_MSGmpb=HyYE0LS}N{~tO5eo;v|+b z0#r)4Hks2n2OSMX1w2@pV1Ghi4xld+8*YN+nN;7Z=>_ib8!cpWOk}a)a&*4$p^bXS z?Q5wT;gFA9rb<~tDA17n@mrLcR1_0{TEG;_1`2%2I^0@vF)wvKIWmN9QrdE z*Ss$yylxqrafzod2fyK|Q;NAmIB$V$9mbtROBuS3UsvO3EU#gC5`vm}ut6di;K)Z0 zj%Zr!h!7?>&v?<2LsLz_*K!YFWY{-MM7b6FQm`?GdwO&5w#Y+~m2gSNewYq(>#;hN zVxCQbX{s1EA0Zkp+Rj)pOk$W5i@40D$C~hC-0%r_Pe)Wc1J%Ti5vF9I6ME@1R1Pe$ z36`}Po4^ta{w6FjAF=;7mXN9L-WUx$O`xweDO3|V36d2MP7S}(=a?Ff!|WCImS;JM zJ!!w)PYtb!qxFQL3p6o_N2fh2zJy(=^sUcgW~c^{eFV3UcSp>8LNfGG|<0qoWcBqfT1Nf=ufc~xiDg&_xmyZP6^Lqc*Pnht?Y^zo#fy_ zYFB)bk%Jaj54n;8*45gQ*Me*ax6c3qX&IuNQK|N@Y-d!eEiK24vgR{wgq{i8__3w! zxOfbG?Cm$%#|~2FmyRvc$8KCX%4KZwu#e#?2NzUYli}{(0EQd>*MGl^8ALtXZB)_> ztxVeKd+*r&ydXP8F=wD4Sd0>aI=^LXp(#U!<&Nlh-J8>4MbIXZjL65kP|C>J%j+FW zxeLQIdV1hja~!uU=DO43N2SFdk`_NKCH^xsS3aGxRFauQCWXuqScz(DGa^aHt%v+o z@7lXUN27|HdlebOuV?KqR1n)7wi(KA{81#?yIP3pEh%J0v}Q)zYFQI+UI*Z&-U)MB zKCs2JU5yi(8{NEVr12PNp_u*KEf4(>UXj4mLML~Gcq`xIdx3Q(dCT<$d+va9`c8RU z2z1bA$yMPpukWV6F>QDqcL}B)`({w;H8#lD#!&lquXcF&mwvk!6B%E53q3m;X@?sH z5+_}a$CkZ}Y|oU|v2VK5mVOzOii4F&j(uBTd1OsJ)gY@KtelQZsTfFiG^=kvsxrDf z3lF}aWn&*{Fqv4#8u}btaxLbOo^CWewGEp9<#~GEE~>Zn0zqC-@c1(#4SNQ~H!<#e zcOT|TjJs04b@H7d-?QX9NxtLddzgHE^39U(j%CdIrhF&dMfYZLhwr32BH!=HH!5FU zzA^dUEZ-l<_ZIoK$@jc2sYYzQ5vMV=3htHymmMOt)< z|KX=K{bQ^#?zq1a3%vRie`U17T^T(uw;H>k!kymCPjhp>Ef&Nt_ZQ9t=%P|=`29fB z`z9TF{Y)*o7`q%k@f}g_nm5mP1hpsj@|if9ntN*V;$#0w#2QB7>cdmrI0f1~rI-OB zpQcy&i#2`vsdz^G_uCSQ^;)<)fAZmrJ2f2uHGLLtP}cdfbGWl;c4n*yDDz)A_Ns@s z6%*s~(nJ+dEUMJEX!_e#s66N~ON)m5n*PzGQ?IY8f)jV-e}qS%yl2aE=E(%tFsAvs(c(Cu`MN@J?ALtVSUPY581yL%V8@64f^p8f z5SaQIxy_3U1+&!H5{bRoop=tg8;f{K~gU%3l)!y@O?Te-;Dso}=* zUJmn9e}jOazFl>*a3bMr;SFqH-G+k$v1xAo6+AupwHGn7_zM=X``!eBs`RsSwb)Jm zCb+fe9scb|Um5Ph9=3~$s=$n~Tjerz<5!rGY5JK+n|Ia42Ow#ce<6Uq4Pe;sf#f%- zOVbfPzbfWA?j@PtoR8>7hYsV=0uHi%}-AvW|$=P+7f3=*b5Pmy55kBvJ>_X*4+ zj&vg>6p7-)QT4}R_E9r>w#>5zEe~uFV#5~sLxM2w@Dtxk{bGpRtBWi3zs?y#g{_JY z@GJV~%!=t1Gb%)|2TK!=qYJvKCO=!P_iFkRReE2gZ`%7>WM^mriC0rK{&hw%-YidOVc}itMXw8 zYI(k4r-ozniJlaqm7hQ30;&B>)W3P#!y`#}&yQZR8Dc3yf~D_N))_(l@74Op0sSwU zzSTG%V-z=B7XiNm$n$>%>?;95&* zXu zQ_v8EWYc0ui_MjNTyP;ZAgNmXJWoSUNfic_8kRMJk|;KH4qzzaN$%3;&Fatj!C_YJ zJ0y3cUGfuH6GjIcgfH-CGiQ}q6BAr)>KM{XH9)?AgDyl|nLpA_%u$JvNW=qPBz=`H z@LZ+d70|H*wL*V7QSkcj4|9cgWi@0$(Nhh|E=vAj7oEh7zs;RwAaLqz^6H#RK4WEJ zfIj?bf~m|wpDleJgP&(@>w(`aPZVqix5cH;rF0c3M)XyO=)C-SyQe78c`gI=t(2SB zQcIp`d>fbJLuj7r5Sqh!QiS38(122f=6l;jXujK>l5VSnT0(O_X{?+4Wnd?@eAP$ATbN8#&4?j zO?%<8Dt+uY4#w4!U-;nagXdK=|HZYvI`$LSc5D*r%8}rP_o{T{219X@ng786&6b9w zqx{Kv_dR>4>w|^^w2qGac^`Eo5+5{Vf3RNb*pT11`H5|bw4BsEQPQ^J(hZ4%yS|TM ziF8X8+yQ5z;0Amj-Oud;Yxg7y<}-R=Ruae-yt1_iqoT&euxz2>hReykXO6{?_T}8M zE@P)?s^pBQXJX!1j1_cq*K*YJ1QKA#9>d_M=cfJXBU?m0OA*uUnTHUf)a{uI7X~nd zeZzFAw>@cPkL6v;oY)kNvCEYV*Yj?C1_CWw#vbIvzb13Yioxj1ZSh-m-;%J;e1q2l%BOJ>bI2d6q5};xSsEUR6W5vFXuc}xbT&!4lG2WHB zCSSvEjjO>6)j>n31dqIC1VBSWME_?Y&>EwjGmy_og30iM1mLgHS;$<(%yH%`LTY@O zZxVj5K8j)J97T8;m$#s0BV!f9YASViyB2kCjBf-9TQI^I1sF5X)ETDhLnY&Y>8$>> zh=XDia7`5Kr?b~WbAnIPo5cFh8q<`l^tCEfz2MawkqqJGBvrX9RFQn@3Pi6}LK3dI zbU}QY07-)?RJ)vY)i}D;P*k)KTDWu3(BxCHIvMbq$+%TXoO8s*X&b}yRM6&s ztD{8V9^ll zXKVo5#}6@TR&PsSSd9CObJi-CXAL{Vo-tl>y#k$8gV|^`Mo1ZL8;0Y=7uVg4pBUQ` zIB`$}9FEKiPu&Cog3q{*y{Cw-SM7QTr1hH&m_4`)t?0Bu=g%CA_j0sS5RGHcFqmb;Zze}=`50NbJ8Vk4(1yGO^1(OWh zA7m!@0mO~97E-QcPKEvi(iYd+Mcp|lJN&{wW{H_EIjoPl;c{$np~lK@>qCJ)Z@XgF$Vi? zNdNHE8SrLXq(6QO2s>j1K084p;~WsX+fza)_%rT#iB%@QbU&~yQTjaH<;Eds2SsTX zv=~rl}n7Q;m*&VX&k)NuRWkfO+BasComg^ z3)jZSVGJFH05UuzIV2tE4?zxgAiozS3bs5fvOME()ek=AKak4+AziD)*dJTTP{~2( z7t{wVc}M|Rmet@fCiJK#alpEZTbl=l#cHE69}gd!v<$-kzSAH6*nO=}tLuQ2IkKIT ze|N|F()MJxUE@K+B)x=pAM$I_ynFc5?YRp-{4>)a{s$`lMiqZ;YCOxs3rQWYkR7uA zP*;VX+f)%9-K2M{Uqhpjqa@X6uu0W&>Z*IPkz7-j>~e%OO|2kgU&Mnx(d9V_o-9~y zk(9=q4}cM>bOWkne21zjgx-~w{pMDGiRgzt##uW>re0vh;KfQUc9TRK-$fzFH5oks z#-E~!HLm?2CQgCIDJ3jL35kMdme3}0K|=uz2<5+$l*WN7O~XQF&HFWY37KKmGX4Rr zjux{E5(T%K8PB$gR!Ct$`3=s5q1+R#2q#YOVjh4vlqMy?X5lqfm_W0kzCgzzZD^0V z?`@RT+)3i~BdVi6d|Ibz4+xQA7h~o|OXv&@55q3yMy2L$3x(32V29awa^6Y(Wg$`u<8p2Pq!gn+>d^^L>MY#VFUZsZguOS?UOopFA9Y|BFMIsH5E?4reXVKjq zs9RH_V8eqnAR;xh--_&P2zB8t+Tlp-3#RFsgn;QfAExWVO8q)qr6eZoOR$&+b(1BP zvkce|tNa0aMW6GMd=x||`ba6d3q>aiW}r;TsBeLdE>RE^Kgu7C@*}VLB8$+OAUOhA zzQ{M>g#0Pr`2;+3;o1ClK;IbtN4D>~d>AOPQOuC@DkhDssgAj8e32;#j7>{aJUR`6up(-p z)=^cOw0j?+;A!|KMDtsZ6}VzG`%xCsmTg=N)d^8wLDcUg3cJN%!ZOZK;isz7v38?4 z7`dDX=uZiU2_GB3UL&B)!PXR7QWbQT54n97D{{B7YR#Rj^Wf&dJ#G-$uQua+ERu4` zXC}9O^>N(;oE|LQsl~2L1fy8Sd3#TT5QJOs`b}{u`{9Pwt~aJY`zv=AcdW& zOR%tiEsm1EXC&TZrF<>tik+tVy*1Ui*kIly^tY)DsjHZR*zcc6cTPuhSxt}w*HQ5L zR@aOk|9-%?x_p?Hv#A2hNBWB`Fz1z{7wPBOF3 z6xCQiLV4J!AjSDszrbIV2gv2+iGuUY9KTUHy3tmvtD+67B|+0B8J|x;nie$7bt=tj zSmb>zq9y2AmHJK^R1*bW6VOB}QEbK>DH=FjzzH9Oa`0OK|9gUlzleC37bXgx{h0!v zi=4jI!3!p@Zy2dpe{1q{*ACCA{{7^SuR0V}Q3$c1yO12+=qG*Lpr!}skYzU0xkc;v zYfhrzq3>|)Sx@L_iM8;l5z5yhZ!ZFrGzN&m@kbw}>C*~<)*QhRj`c#IM8PS7R_LiRVx+s!-u zToqBbzgmA%5rJ)uikrl5>II}k!HX+c^MEh7BT=yH+eEv|MEe8y>{=t`{YXi`s#%&O z_m5QAE2<6)69o|!0JdSJY7+$^1XSop(lvaAQDDC^D{{w;RoI%h838nQ-?8GyE_cS77dG$<#Ew>{$XpoO& z##RIeXKY2to^d9mN_5U87*fs^qjHWHz+hKtyV!bn+|S_z>fOj|$t#S*KvI+_7zRJz zm7$oimnIOt^O{WI1OhRAA2V?(+0lz!bfo2H=|%klW&Q!)2Ldea=pJ(=1SwT5%lBp| z5_+zgc+a0txP3f8Px4G&b*L+JAO!D3I5fNk5%rY76%QJ(Q)6bmHAi}Q8+_WDQVW2@ z3qn!P_TK`6xCKlfy@NJ}#RQJu)cLB+fK#{z_+w!>@6C_Lpeui^0nOv&7R)bI{F8_` zp80VaGoc*T-#8l^a8%6%TQF(3M;5_~aM_1(IE+n<1w+V(vDnGaH7aaR-c5yUex~&C z{OOTHU2Dt1nA%70WA6qQDxO9NZG~9c;sq$U{A3-AORa>19;xuYp9)Wb9#78T;ZSy< zZxLFl=Q0+P38+1lN8R#q|1Rt3)n4eah)nt!7hvldb}yfd#h-K_DfUK~5X@;pK3(}( zOPoS9@{@~sCbxo|UMUKi#b_phJ{-s@B$-80ctzt_&<>hcAtZ-YvfBX3-2Qm3rc;U_ z34DZAtW9$JLnkm;FVCfsU%Tos%ctl1u^@@Q%HXSqF*uIrP9VK^(|``zXL1UCCcV+0 zFlJ)Ay=Yg18OuGfJ-(3GVvUAqW7%`HYbw>T5Tj-=M3F7mpRBe?&ZtE-rJ_lWqX`Tv ze(g!(6%yqB&}Jk7ww0teTBeGaVV41caV6kTlL1ga&A3Ua(L}JyxcXI8maDwL2F=3{ zTu{66mhQwmGVQ|6+cn>>MlrmI^)7OS4q(b6Qop#t{csj&-#L-A-<>f{=$k9$hlU%` z+qNa*2N?gORw0ScaN}mIZw*{U=7-UuZ?kPDMW#VWBIR`fzG+oO>Vu7$Q2UjCKVu{Y zok2iI{%Lo>e)}eX^v5f?-f#CjWGOR_eMP1nw5DlU4M&n%wL(9!@KJaq?R&fK;3zcR zKObRpjWJ4I3^K+!n_KXE>}3`f!rMA|Z+r;BxZ!z_b)@lItUy5h^B9LcIxs&gdj1cV z35<(r(g>%T3a#}|#qGnpJikT(S;nRxA$`qD78%)chZy(2X!-X?6CJjEP{Nv(ApDse zqw(gAXAEGY9>X8b>gxl`h9C1c;l~vkZMw2xTBm)`*bD)0bfI{pKGjOrK%RYL2kL(g z5Fwn2?R|G6ImZ(QpOOr|5y9~#FsVTMOcX^UQ3BcVz4G9EZma{*H>x`HE%4dY{_D8N{5%RC5T&_*x!j{_x} zKy0#rmx2Jl9GYsa5hsaTCYQOsQf%ycL6{YGdoCK40Ah9=cN(JY_WJ-d|K0#XuN9_i z3kEo-0BMmmk1)!J6)-x8ODiSD2jFhy3ZuFE_hf~gML)D(-fi!LX^Y$G2r=-W9!ghduObclgG6UI9mi=PTGac)8d6wbH7wd4M76@+D?ayVNM#)%Mdx1cSBKT)vm8)}avm!ZqmGITlC zU*W-mWQ7eG7|yjx1J8V}qo0SoVpdBOoC7C<1L)rYSHpn>PytpQp$Plt_d(d^PBy{b zOi9vNc8~m+zcp`L#=3*c?wF@oLv<@G-eGKM20%>*@D!Er3JJ1Q<)Wn0haQJ+=TP+m5&+G( zFsa?4ibxb*!zLejErsdf)@~T-$;IKvvRVV_&PS!f zDFeQvf6E{s{h>&z)Ld3~^*4JPAQ@5R@S;L@!&DW%sHn(u%OTjB%!uYiMMu&%*76-i zA8=Q3uJYTtxcDqK9iZ>+UgF4l5A}m0Eq2)NUoHe6OkKDYKa>A_^`X8aK>r-dpJ9oD zUvryxc)b@fSM_nnC)ak1cGuu3@F%<~@O%G|3I1313V!+dz`X`j#ozo4Gd3!Q%(O@0r&C#oJi<;m6`W2T|?%!brW~;y}LYG~>e+PRz(BOU&CBwZ$ zh=Rb|>NcMsS z^OOFC@HhB$&x?IyT;ZOqsOKp-ND}U@JwnpCeA|6fU8Cl@79-t*lFl9V+zW@*7&#WD z%x20hv0{?f7ODo!YbQK&wE|%7#tefff^$ zjKkXyNaSnzB?|2J9KT#KpYAyhE|^TBo+IIK!ethh7jT#K3(ZI9*MW7`CavQyMcV$G zXb=Hg7P9LXYT@2tT6ov6hBLc8o%bHfqfpqx^8{Ss9&gmM77hy{D^wEhEdsnlx;;Ne z3Y58+H^S;v0l@tZ5dyS!H&wXw4@Rr2-rAU;`Md>VUG9X;6>DVtmIWWrGPz7f`o%tLv zDhlZ=Z1|!U?kK8EY-o6fiL=TUL>9zmqxERdWqxm+#Osq=Z zYkI1TNqSW2TdVZvL6Usm4GTd+xQebh8@Cx>?W@$EsLW~CCinPmIuq<$*}SU>34Awv z9X-wW=(u0JiMgCF`~X^@QeR)C{}~6hD*3uiSEc^Jj^&m5_DcPe^}hV9CzVgGydI-e^24xCj9Hg zzwP+fiho7R{jL)Hdl>F={Ce@P2LBe~-wK5JjtD@*_N^WFHlR4SpCho#&;?HJLw~e}C^%;e~l&b@~L9{IPr-_saqK z0;pjGPbqZsd5AOY^A7?4L%@IE`rd3pm;(85^DzYZ7?PcjA;`y&jC=q+O!Ohh&ybA# z-06R`C0UG?Tl8^k=O*TLD{cxeU@rc-#?On}Q6MY>#3A|KdFA*T?U3h9A;hZugL6{( z$RhL^!YS|%?j|(IXLDqB(#X3Sf~;gjlo4Sq?tFH5v8!^-uN*fz zYU{fb4C&;t{;6vw`zsrbvArxr{cooJ*IkX8$R!sn>e9|)K$!T7!WZ>V>;LMaK7h}e z_6o|zRCMZAx=zPNWz?6!IaGjjtwjYbHFXs=vveb#=E?ZCHU0{<#Hz^7{{B=uA5yVZ z?Q_wMF0k@tIa0r-J{a^}gy$AK=i`atsmHSj&$)Q+z*B=~8J;D0s`1p~S%{|+&q_RF z6ECBESaAy5hx*yyEDid~J2#;cA?Ky7?@V48nLqCD^T&NTdH%R>=Z!x++(M6gr?(X>s{;l!qXRbTwMG!lOLGoiZt?_Z z#qh=Eo{RUXe#RcG?pUH)i4?^6jC00$K5{*)jVT+lrNg@Hr>`ziuddwoRFa3}Nt$zF;y%qocb8lye ziOEv6fEXK%9ktaDHWjpur4f6RYR7Iv)%wC%^!3F>mn2y+)|!Q6HFOEu-aWc<(OVh%`7V6Dw)pYP*Y@iXTENK^H zG=3PM>!vU-d2oB8&Dc1?c{Yd}#?s0f`Su7J5k|^lz9_(CMW&{L9zi^U9#155Ut@nQ zGMY-$IOoazv`8j-3%5R5P1MFz5}1TBRq|7eTihb?sOe=Gm*|3WB^*j#557cTA<=UD zhnUg!WS6La1@2A^qVp04LdKCv$RUiGv4Ts-S~{0*%F$$yJKa?Q*+T=3{&XlTz09k* zS(1|1iKOmxv*zL6KlfH7Y-8LU=+Y*A+Vh?sTYNNaF%mKL)l+d&cc%tfUfZCt8IX#> ziI7Yv+Zxo85z`uI>M1NLXqUEBJfwD!rpwD&H{Me%YuWRDd;~#91VS!iMA&zb-T%9bi z+V+WSwz*VM!z~Xry1x$}8gBVdBeerfH;866wK@c<4+=U-Sdf&s*}hl~{jj;Y!V#j; z%}4LpJA}#&){P4K;%AFqyLv9ZtPFi`4$_Iv$Ckjw32exd<~>itFfL}SYn}`XfzA%{W>#x^q5~A*it9w~`6TSN*Ie68-weHBftNuj>Y#_P-~ubO zQY55z4vGQS0X$xYEw@9YuMc)zz!HkLgaJ!{Y5Dcb=g@2@L2Bq>N*v_W@@;4&q<}(l z{X=@kkCbaBKC^n zcuE^vCmC7`Z#f#f`mbNGr8RjhTAt(v$jlZciw9~F4j4VDuo2rUN@ zAyS5xlqSma3PzT9Dv0m1ZJ?e2>KX5ZOZfR26Awo*N4A~-JFR=7v9bL#!XTLfYIsE) zTe3Zsjw`F3Ql+Uw361^}%8PQCU&=JnB!Qk*=W46YkLN&_tCN#Zpt`sI<6wMSorW^h zdhF!(958!=gxFV1Q?GezNn|7H8|a$Y0@30?m(*r55CGKEM2T4xh| zf_jU3yUX3KG;uzJ8wzC;6y>SzW>c2V4ddPXAelTSf!STW;mOL1Q2qY!8R?I^y-oTV z@x|Cgoy8yH8=NxKKk}pV)8LHH@N<)wLc4lW(#q7DU94{8uZMPHVrau5j#L4FbfmGl94??2=p{_5Y(Vuc(I!qOYcx8F5*uxV?7n-TQZX;eqILe8Y2p?obhQg_*jkl5B zDtfB)*i=vEm9Cl$u3!vnXSl{t&q=9M=P)_RSVV20O-Eu8_0)YfWBV~<3z;kYbmW6K zXs{AhV6w>gvq`?f1q-Y8N&ZTdTaf)>W#^y#yTbA$&pGFo2 zvV#GnI`vU9suecy5y$iddu*c(>0aFNIW%G zXJ@}fI&2g9M}puQb@{5pP?tff!dnHdsj8M*801tg1T*=k`j78lp_}RFn7Y$9)hHIeg}~d>~p@%?{jEbr}uNf=xoA@$Z^9Pj~k9_a?gbU zfC?9@zTxI7Fl z3)=SBbUaV!?Sb;aK*FXUY~(lDyOvAJ#6z^CmuN+P1BUm{GNt$s%puuP&hiLu6^6|#gO#8c<$ zHgktr1{zFC2@W!(GZASkt~PS^$k+C_GJ3}HJ;=;Vkj1FmJA->&IFCii@Cx$auRofD z3h^c|BZp~jfBo(VLR%6@L+TDdh|AzagqLGiST!Eo&O|_WQUzKLllP`BX4yrSIoTF!&_ZT zX;%DcGi7Gqg%4%LkDR%mi@(A*x)$lpkmI<5fspSIGP9eSf+Js0@Sc!^xhpj#r}m;a z>|4aG^XAxlbbe`Gl2S)x2VV)rON$Z&v9(vrAGu*IK@%&JThdL+ zDi=To(LF4VNu(#`&O#k2lbF?x6fTfvnj_C4=kdN0m*y6wj9B2Lc05K7_7g{^Q}?|O z*tMwvKWu=fDnU@l1;?WabVMaX+K=nJv4NHuY&%5d`N*^l0!YYH6GNsZvIKcrve151 z)4e^g29K6LN*%;ScsoglwxfdJ+|=+t)#}e>?we-M^?BO7dN)E+t~DXxv4S$*#vyk`?xg{ z;^nOW&)u=!HrgFqKg*LHIFxoKLy+M%f()A~WphJ1Iq?y~ zfBETD8lKM3h8cZxG&E9Yu}WcWk63^-nH|WB&6D@tetTraicDlxiH!1q#yNZZ)IFCK z;gIJjt(U;8^b}O3hhp)Ia?fo5;~jiL#dpKetm7SGGcjudR68(+=!JI>V>W{?xli@yEHtfmr?Q`@VsP~aN^J?Gb4QJsoe z1eI#K%zBM~OC(>5k+XfIJx=Fand? zuG$w^VA}#?dXjCdDl}n?y{b>9NCH|U=Wwb~7!oCgNVeSapAv~j9~<)Do>_>FWFFJ9 zYM72+C#ToEag?ycC!Bkp!2LJ4-1t_!GeG3~>1`)Pk!#V0CN)}yqV&`?Lcg2TP!mvs zn}7Bfa?U<{&3F15;u>_m)3RJA1|#dd2RBH<)yY7iHap)T^hM`0{Ks*zfAEFhI_DGP z(oA&FQnar>S?v>N7{>AbC&^Aj{tH*R5)5(RQi4+<+e{@xA7SulFnxv~^f7;}AxL}W z8r=1#ZNVHtC;d^ph*~Y)&iK%f?SSh2nGsi&!z3Jtm{u3|ZTk~XCj0Fc9dmv9t?67} z;>k5rLebf5i^k56pbvl|UWYs3WK1E&-F^d|C3cRo`nD&eH)s_=ltQ`;6CBW6$SCTI zO{1BEtS;nNLiCCG!Y+?fQ*fUxMz$RZ1)N3=qYzL{o-ejLTQW4`vVJW?tw^4_@`oV{*|>N|cV+acO5|9$r(wN|&L2HO+TM;+K~hePOC^ zhwSP6W+<`n2dm8tpD*}w=M24lCZT{DFbPlbM$}kCJp%D|v{2G^{>DqcD=1LDQJvg~ z$_)BRQ#-arzXSOi{(m79T>3sP9Hsf6|8LVjI+Omz>>H=)+uFS?{@d0MuY5kZ7@MqI z_6tih$p03RtQ*@RpJ|_AK-e|dYqm_}Owg5N1E!QQDCnzwy@E~yahjGUbmTZXg zfQIVrFK?Ls*y%m&8iiKF5@f$kD%ZJ6b1(k2f98= z&~r1u!3nxid48#FR5~Fvqfv1&0;*`9j>~LR%-|-h?mI@a-*J6u$HZj>WmhF~{^%@b z$X~ylrVC~-;`7%(V9Z!pm0uv)#g-cB#}HxRHQ3_B`Dx}nqOOPvgkSrnz{k%Rj??*m z=@&NN-8r*{?pT0nWHqLjpePyFLB4-E7J|g22~+C{`dR}ZkHi06d1MF&p7!K(?MyA7 z8$I%wE4haP=#|hbwGITTL=vKf5goJ|CL}dc%i=c=Ko)(0slMYplSdYN>%2YN?6$yy zj*sg=)Y}lu4UvCS0A5pVs^8sLNhXdZOCfdK`Sitmq0CA;$+t*KI>!s33$O!>|M*hm zuRmjb*t@k0!b;R(qNb*ne!_kdo5&riavAa$8AMeRlmq%XXMxC^%X%v(3sW<-SgY>0 zD)tMrgjh@!E6$u}I}CbENoLQpVf2S4oe0?5FqE7|aj`Z}$e3 zGhZ5UcJJ%{ty!~-{EA4!YTx5ngF45?Xr=JOUZ4cT&_z@}BFP(AOHcf5Yrd-EwvW1> z-9CYA9+Sl+D&EF}0hF03_| zSfm_*v1bS_UGl|7n%J0sOLdOS~&hvsGKTM#; z(ex$i#gm*1xuwn|=ywDi%>B0{=Ey{SJ3?<69L>b5(okWQwOag;tdxlA1 z5TGIdK#{MO7YX_6PsIq_6A(K{d!Xc_eOS+n=VOOMG1$ivn=jSFc;NOSeTE~uqf*@R z3X+v1Df_5P1UwHDEhPerHvyprqkOo$NT9K1jIeMjUwgp^y#T>}4=Re~F*a0tFfBD2 z7aRFJ8?~80nMr_MxQJX27h#B~q<_v8IEdH|EjN4JL807bw%pL7xftIzS5X%*Y5=1I zL{j6ka#fL;s|tW{(PS~u+TliW*4yN4qMHc6n?mr3NTgD7R>=_1s>J#DCHO>gN3?b_ zw9a*Dol8uBp9@-5LaWNqssgR?F0HU!FLj#gkLC<^;tiF-`z+m^u z@&H4&GNh9zm~4|NR%^$jq1>HuybMY$VRNLn&=jjDC+forM)_>PW)#L0m*pvjmUjTpE-dPaTf~XLlWPl z)}G~&+urC4l4v8P-4|PH)HGnCsvTC|P%oj&hcZ6QL}Rc)*v)j|xiIV?7&Qd{EIV>c zA^q_L5-dDMU})G5MURdYHZp~7=w7J3j*@bpq~6846g1&v_1y?bvz%!XPHR9V)AS+D z(q+(yMZs#5-hF`P^>)}Hu_#z;0zZZ_x!Q0W#yH7WduVypGT|EZf62u{dM+}aC_R&m zX9+#yjHjBOGI+eD$PYila=1E0`&Ex3l7giDqK7}&FFH}2>~N)qYrIM^VMLmTP#1|F z{(wZMK|-+;7uRNM#S|!GaB#E5I@YuzW%9Xv=kMtyH%5I9>!uH*tFSL*jIT z;2n6i<#;hdT_k$=0}`DE30x4@7n`Cv=t`T4#v(pZZhiRaAcYS{>&)f5=Jgg zM@k|6*+ed5vxY|#m} zp2VwdUX~%$MWTm4Akk@%kQd@Ye+B?@dt9spq)U(<{y>mU5NyP&Ef-HC)J39)KOoU* zkibPFLu044!+|IhR7Uy?YXRjFqlZ5bqZ7oM@DdYB2jM`OPG9^e^?`13`m>OlSq_1d z+(ME%Ux{uQHoYKvE2DF=qK`WT_G=PsFU-~{Y9K~#a2!BzUoOD+MSyFW3J}5>#PMjF zT+8GmeQCo2MEG)=CvNM>HZH`tx4dz$AkH=JUss5^#8=^HU_a8nVQS?t2_9s7cG`-D zNo(~Po^*y`aLH*M)0q<@RTva;$7u*c=8sug2DchhhN0Bc(#`b6&cNa`BBCVO3=D1+ zZ77_&5nrZ5a3zC3L$}n;?F+D=YJjj6gUn?X#&jJ&#*&%a(M(|_IyFo8@!!1Jjz#yt zfP%X~!{8$V9{Be0t}ir4WbNli>i7sen9c_Gbn!>RbQ7C7VqWD9F00Aq-pnrh4kniu zlyATKZ2)0c?dahT3DJpkUcsxa;%`K#i$o89K%&ziA!o$RGWDAfl4*gq3*v$ce)UOnVa>gN4v(_4 zA+M$28w$%NvbO+>Pr1K}rRCCP=us>RE`*=eKd{JUogV&>cRG>xt$4K+*cODkNc8Xr zBsvWe1V&t6?0Ao`*jgOUoa^iq4mn*5su@{O4`Uo=vb5D?>ER)sEM4>y)ZyL`uOnEr z121Fl9=)>-r|I4q??9#8mq1u*_{ARFVZf~$eaVfu0NU9{zwtr$K_8i3`R2m~q?b8<3hyP+UZ+57G&OyxF)d7r9;}diVnpodyY9 z$gRlRZ^?MYF-b^sMGt=3Q{;*U77X2A8(&`KtTeL>~SW;n@ z)To0!g?=bNbi)&6T)-Q5ne^FVz!`JEB_6C?68<%o0W9Haf-H}FK;D5B)`V*rce6Kc zFGF}CV=jT(xm7Y3G3o$lB?u3rai@9q#e!}lLBIMVQJ`qc+?+NdB)LT9AiT}jL@?ng zZfq-)vY$a~SOs~d>B=m}TAzU}+>-M3L7D%KSw>2^nwX7$Gzo_3^PeJ`gd&Z0~xZ(n0 z7*_7ZXgm1|dM+L11ro^?#;4pqX$hP~0ykz7h_%)BM;zGNKb)=qjEE$>j!At@nB4}VCHPNX*iueQ?R0H2_OL=S&J zqSGLOFXCoNhf`vi(qRZ-`PznbI4?x$i~<-TC1HB_L&9_-;V@njMF)SNEKZTm)8nml zqG*Pb69BV4>68J6q=YCv{2@I$kzP4oZKV@IC_x2@9{zwtr$GW=#LbdU6hWENVF+OP z^2IK0hg;Dd&U8^a;{irUNthn~kT9J{xB@SUqJuwB7AL-;*HHMEldN(5Eo=ArkJ-HrxK|Q!u$upF0A{ZbK!VNwAfdHLg^jy5!inS7<1QjHD z_yZE11_>D=ZkAZ95R@rah5(i?w7_qYPTLmPosgtxrvQ}Dk~ls5A#pm9cr{)UMF)SN zF3xy+W5kR?ivfd3f=&;ApiCzy*We{lbnpkt;*8--sxq@wxcGTJs@X`Jy{DXMFjHKk zF#b!K!a`fyOn|8vQ@M@X9sp=3>luYL0|_&2;esCiz#yGqupY0rg;k4Cf(jBn`~ith zgM^F_7X>f{U2?VfKsK@d`e$~)q|XB$QH44^{DC^1puP~Vwk$0`C_x2@9{zwtr$GWs z#05*WjBBeC8Ke6}041~#q=!Ecq!R=e<0VmaFc#G5^u-3*l6xr1I)@QF3+9~5Jq2?$ zR=d6F_t73nA2j^+)jMF@?=T4q7xeH42I&NYKgX-Bn3i~v=rKri8YE`!lTH5mn|7ckZ$wH=O!%RPKk!2*_}PS4+f2NIP=X2)J^TTQPJ@I@ z5Er6+lyM$W>RdG`6XdA3DI<%F0%%4Ap#_f~{(wiP!2=sa z$Dw0ekdVymU5c~$O45<~EPD%?R2rYQ@@CQ6P z4IUUFx<_h{AFHJnpwteHc?{*L81^TJ0J<%|nd=`uNR~t;U3&OKx^yDlJiOXUE!T@g zk3pi-Ac0xpLTdNpzn2TWirk1$tWvQP(bG$f9{#`rouJkSFUtZH%^($ck?1iJL;p`;twv#Y*^Z}!u*<>D=K6;h5(i?Uu>AVW;gZ>(&lIFSe>~rGq<02?z#LBn>nz8@w#iV?lCA) zqI_kSXgE;X4JhtVo*h{A9cB`2Zx+Y8x$z-m8-4aRi68wxO5jHc{3wARCGevJew4tE z66jC@?%Ao*l~MF;Fz2?phI=TvwfcR`x#8-&^$e)%;J5;AP3fC(jt59lE%4DLYI8kX zBDcfa*{~m1@OuHjt{Go6{GQkr|M!;>AKyv*7xAwJzS;ZsJt>&{3%)P+U(UbqpZhQK z|NH68f2V&L|61UiFIaxh{3o0f1s5YJ>5wLzBgBusuK3Ha^)K`MYX!F%SMqpWtdD!R ztx^p_4>x%dI_umCkFAgO!{COq8qOe`K$7naBPf8c(eRZM8<^yzgb>U+q*sYUdPy90 zHCJK05VzYRadcI`|eE_g4q0W~rXsqe@b*%Ic}}Qw`5~ z?{}GC!a37WP$8&jKx*KOFkjtf;dF!(Mzq|{=o}1}zCH!Jm7>^*pN|0b+Rk8BZ#537 ztwGfDd75rlB7!8gNAT*5otP;N7gm$7O_de97*yW=Dd1#3KR(=%GZXj8JAo`+lW?`GgXPoiiTAepK~dYaBi=N81r{d$+bL_R(SYZ1Nm9)1bW}XIM>VQ#C(_?88@_gS9Bbir6W9orb%mFGuWZ z#OhL52A4Vpd$cgy&SSA(;9r18=GK)RItR$0V`S(aHV5WCnVb`D() zg#pqK*tIS!PBn-+mZ*2jDRUmZ`na!F$3HMG;S>Q|vm5}gFx)%y6^_ODIxV(W@;aem zPIFbNT}-K0Chye*-n+!+YBO9ahJ;M6I+=WgBv;>*=v;-$p))8p-2bi_x{UT7VU?+q zz|T!CxddG(;u4*!JBM4aq3#jtN_9NeWHmBR;iRE2vCu!DWz{A&^Zbjh;EhwI&a=XD z=2X?8TDTSUDjvlMK$xue0bhLF^3y4psG5Y{UHbm1N^XX@2$Nc+%g$g%(Kt1!nl8-# zMplAq686dIRlTy9JQ*`#$;-$A$Q7%TVTTAxNAHh<5r|7LE2>@3=;#Yk zECDbo(|x!dLfaPf3&x?OQWu*{#g5e5CTo!e^$7b;B9RFgm` zR=^s4V5}cs2gUYJ9f9grbAYXGKI~CT4Wl}hs7*aQDNo%K5xaP-ToqePF_8zS{BC1d ztX{}Lctc^g;g;khYy?GJr6srkIwyGlK`WSH-&(XpnlEr=^sYnYb$-tfX$b@HHNvN5 zv;r>N4mN-{S(eCEJtFH>yYLzXZEV8GXt+)t2{Ez@6Yl4q`!`rJeLqG+{)Xnw0IkpI zSyY5oklD?_B78b)O=~mcu;xH3hsmf>$*x#QMCcQ4Xq2IUC#{CU``yq(8Ty6}z0nN~ zGV}!!y|#n8ue=wog{wumh#oa}-Pg2_wH1DNEguDLVvQj)xkcnRl;Dl3`+j2?iv zas=OjU@fB?;DQWzl8!^5$f^Fh&$3qH+-U^oPG5Rk3!q91U?^T907?|SqSoZS1a2sN z+vTqU{3RFY(3joNBN#eehpux&hcdKMhpur$cVVb}Fr=aI*KVkfp(8ZxQ*P*ou!G6H zbZA;euP`)Ehd$`SKFiQgsYDHh_qm}<8Or@N2))w{y@8=GYK6PxdSuCwbe^WDXm;rpKa@p03r960&$3a(8QzD5)vbEK1yOv?! zr9K2OfP5qj>c^aSfgKmrov3CB=grBMr9Z;usiYr68DuN-hasz;>(Gp(E<)}u+Rp|( z$sqP27rAtfXDz+D2N5^*MYiz85uVZ7~_&N@~Xm@39j7gmhxvKP1 zon?ACR5i7H5Tz3jvdv|HJ~7fvqbVo+tfrI) zt5pu5DdO*V7>og@B7hR8Ce50uV zY8X}f0n@{{W#tuigN(wbf~kR4pjyo>)D!5iSSa)n*f>1DFw(!sHwjM+&oy|K;8}-f z1)jI?d^MoR_c7l21B(Ff%gO1~sdMM)N@8<9CdjYTu@JtC5`L4#Z z7|)}4*5Ww@&saR0@odG@1#tcF9Ej%wJicDr|K)54gskP}I!>1^UGsYN>ejtik6u0V z^CvHS4ZJ^wrxnjhdn2vRIp(i(n_s8@N-yR|qW@bYP=;nZb3V0-wLYqfaY{$KF6t)L zm*4cf9#*Ap^lvJ$xl_IoI-6D|k$(#Ul!IC>vjPd{ZuldIVS->9ktPBN{fI$@JoX1V8P^LzMG2iZYI;WuY8b-Cn)V{niQlN_c<%kTjV zp&~iuF{*^~BB13)xx$|tyc%^DTCarju=Tf>hrP6`sOZ=a(ai z-zEyrhMOX&DewH;So97$bJ_^k+Cxg;X}+)-`_z5c)r@yb)axVLA+~+BpMs z5k*t`d&X^1wM;UKJAimcjA<(gzu1OjTo!qL^1_$*E%L1zQsn!{yt~0of020~Zr%*z zQ*GY!&3l4*--~y)KK)PoJNSO)QVxdDxm`-xuFl)i$~&WBIGjbNyE^<1N@OL}&!@k` zo`1PS<>ugv1o4y0(CgR;BJ8ce1}>7z97vH<*J|QkEFk0gCA!P#1`Z??W7&^d22?dx z=CiTq7oKDTiW%wm(dqLm1l=*D3YP*wZv6=FBB;)1rwM~Y5XTBZ^BYkuU6~%cc^|_C zJa)D9NEaC!D0KzUC8$0nxv>NIa{Tp=0EW&k_;3Q?>FnySf6+Me{Po@8OumnQYCZb@ z=*wNMb}14EdX`LgBf7iD+Ocw%w)$l$xIi-1=0=H?_j>OG0FpGm#Oq`t|dUa4OG zyH35vq^?ZrGt#M7su%o{x{!JoCk#yLmFm`kNIl6E*5*jwr|Ueuvb*Gc+$vmz;Zu(h z1zQGd;V}%z?1W@LDh%jRqTxZtqOkfc7}C2LE!8{-K^}v5BMQMostVf+sd6~VVkT#d z9yN)uj2;~Y1H&nfoK#6i@Qc0hg&KZfj%e8^kf$Py@|o-Q63*2X)@0Yf<*g7^@biQ3 z+pZ9cK~WvcaS$)h|7kWp|mogh4FdMd6xe?RoS{2sIqDK4>Q}D%tLP`@pNeLxPoGg;#Vr=N| z^%6PW5UEu4nM5Ln2$sDJ5n-o-!60&mmq<4dVRI;3B>eSUCAVcC%hHuQu%hLPcsDd( z^f2pkPoTd(foz(*7rxSuqeGmQ1U+>*`;Rv3i+j@JoPUZjmim&08p1VWp2QX2Jj3l{ zs4Fh==|D~e1;)%%Kre{;X^98wAVL)*kxp(Ra3JP}I!%^?cNbxbL1-bud@sUMAjnjS26v7TNX$XF zbtWWpy{5x;xd9(&!226;?#0$sEXNCe48X1Y{B!a|6c7@C)g^^A75+KT8Z#k*C$_R2 z;=O4%ng}&kpklZY(x5%IuUKl_35qWxyNSMwfe#c93ePY-8&gdDue?&fqzj-)*O%Kr6&TlY>?W$`SGE8OF{Cf}c0Pw?0$=&fUE%(R0BK`s@ zMY-SM4csjH?~(h<0)=%kBLa6mM!Gk9b2R`lV$FG?B`sCA-q$eOUtx;U2zH(k;9ehk z1dBo>4GMg+Czq)+Qm0$?|u zzp>2pKiv)gG5!CN1nl@5vpmkZ8wz9}M+t32SpD^DbbHZAh3Ji{SK!6SAb^U9s)V6^ zd15{1B{1EBwOdXb*GfamY2&&MXCOT5Z*^O0XkTSWBME-ZzD&XycRU(mS$qp&<~)Qu zh4>nyFHxkkA~ra=D{N1B0|qf}1*`>M>Jw?$bvHVh4;awP0X^MTe{mdKlGFtBlwl3= z5z)d2`kFh^%v+q~r8? z$s^CGy78;D0Pz)7ExQJ@k*HD~0lQ;tKGx^C6eMw$vq!1@a50DIh2at$l(0GiT~Ebs-V=!Vs$4v zbnwYHad9Ut26gBN>`UtC=o)E^NKUBz?*h4mOa=c*&4h3l$OT#Ii_e)0FQ**#8BU)BX~$< zsnsfA8`$|?SWa)I_HpMEq(atUVco!<;ekzEl$wOhOpDmO56(m@O`{F+qKyE3shw8E z`=$ZEy(P_ess|+zP)UR>MDL3x=f~dHcKQwJ??24m(iZ}AKaqu!YWj&Wn&WtHrgLgO zY9`E208x)1N^9hObYcI8hULJ-Evx|Osf&iOqSnh*KuPX|Nj7UsbfKjl@-KK*YyAWp zG}3?Fa}0upV^3!k^hcQ}H7v52Ofak%VVa4(=t`Ki>KgT{x7hn{WJtg@HZ2E(5!%w! zDBx~6O6SeeS@$JH=o}k=SdEO zDb8Z#1k{|%O_JO?ZMqDTbr7UBAX91w$@tbt?J*EaAtmP!OQCeef$$bvZ*&&EuRsI2 zra2eQRDpzdt4o$f&RLJmHRQI~Gn|uh`O|(Le$D3Y*UGE_eg{`FBHto&*1)Yl4I4tD zPq;7-!i53~d1pR^bd8rZx5r?^lU&$@<}q%{bbm?@7TrvY`QOYeF&c376Al2udpLz# zB@Hx9xO(ReT^M2JT9)R}x|$|dI2eW*d0QB%OH)5>lPDWAwGd>yYN8nUG6#4_G~!9L zg%M|)L?cX8J{?!hMDfpPz-msS8%>A#VQu=qZ+`6f0iytC@e#(d`|IUXA_?bbI)vY4 zo>L1U0_ai+3UlJ8!%D_9EcZBAh>IS16+t*;iAdt zJUzYrFszc8%n?ON$roJ0syik`wdT}y_}!%Km`yj@=D&D3I*45FtipsLiEnegbM}^b zRH;Qnqyw?Dy5n`3k>ZLC^;b_&2jGykOIBYtZ6Ou?n8cl7rM5=mdmhdJ__WA&g$qd! z1%j+}V(Z<;%CT;hBV|1kbT}ZouQ? zo}d5lFQ-#yY$kHm?SGxa)qk!1e|USF+MhmegqD>GJqslY6`pjsYdQ2M-JNnBg0c@l zqXTv6qd{FSn@oicK%r+nC2RK!kF|>2P}tbTD&zo|tBH2lWd_eWxEtFU;G$W(8X}!lR0uEZ4fSAwLuN}XMfWN-PJrd z!~pG^0d%Sba^5)1GW0TB$%D~JwJCX4cEk`amSL+ggaf5FtFNqo(U-IQaGlLx$Qam} z<5InnRGVSkU4|O+fAh6r(K*9~JBe_dbl_uWBo0R)S4z=n_O;=hkQn5KV@+4!tpWQS z<6fpD#(E~AI?BvTUci&H(tYtzoi3^$x|XsvCUVhwq+Iy0#PsZrO;;PK>?pxo5hPy@ zn(tf-CpA51`eFL;U$MFwV{X)pptiXsYUe-d&KJyXM2qaV-_aIq)Sl^EQ<&3-Fr^bt z#W@xTZuA61BgsL+1r~RMan8H!N)BWOE+4K`|I%fXNT5oS?CvG7ize{5ky4M%yv=Ly zY5d>8m2p;Kx0hKT$;ZNdAX!jF#W#(`8mwzrS*P%EZxejq`{`iYhWxjy-w#gTGoPz# zxjvfwREa$g{W+#g*q;uVJ~-wxI7t85-yj?WXMg<(AAX`;M8{g1>=IQ*t$^SoD!iF0 z0lP1ge@*Jpjnp7x0;HHRFEr;H3LTvmwk`*-yM!2YPEDEYBGI~9{71?pBmXU^K2XDj zhZv=b??e9bU?JSfi8ISsZ_UBvKDFhx*B^VQoAr+{o&a_=QII^wtBXtNUjbtTbm?T zW!zx_6^N?nUs<}|b>pKjsV*G^?iKgfPtzsP%jASZ?b~2R%?x1S5j6LpRINUghSM0E zZd*v!*>sSV#*vW*vmh`Ilgk(*>SbK9{`pWLLoaTqK+TfgpWVO|qKv%+vdicP3Z|&p7eYA1IUFgAZc}Ddjw{LlB#A-uNOekmYfm$F? z>t%V_l+F9p$ctrZR^LwENLC+^F_Oq9s*+eu)t88GWZX60xYyBl)&+p;C1R7++Zf5i zArfpR^etFzcO|%$AumB#t^|EjV%XQ);*nsDo1jc6jt2=>ZdFK7U9M9(faN43{^QZ! zx-@y>fs@2FUYbFdW*E_GPwymkAJC+YU{zIzVYwVLG9!eXK7kn}MjxkzpxL78DN;gYF;z&5FF9hF+?C0FbqEfVXbJgpr(~- zH!#gSR+E7@FiNB(W!j{cA+x`9Sz2gV3VK=kE3B-#9t(FUk=@;DqK8CLrckUJ3DSsU z03w&uFCpQ(U-M+_PJrm*U&gpPZ`@|KqhPR+F^f=H+;Tdfg!j^0-h}W*f)sjpHk7%9 zn;G||EY6!cIh%wbG|bE61c)@Z+?72^ftP;fUJs+rd9s&Dt26nur%+g!MKTMn<6!V< zq5tns%KYHHfE`cJ9WP>i4^<(gN>G!xJ6|H-(`3cD8#^JPsJRC=ruHFLn4imJm5L;~ ziPQ7JOnfJE>TCVbCEeB}kL9N?sRin4@^a$4*&cRh3^89p7u~-iH)mdMFqQjaZjhdB zTsMU8>z4Baqh-N7|B7&4TUE2^p^}SLsL8`MH6|yKJar;^J2*}jNI9~hSWdfbGXs`h zgfya&M7V(BfCJwdrD(J~&{suQtF>^_pZoE8hX6nA9Dt46&tidPjRl8`6=H0twXoP? z@rWz9iL}jDhYDc%v+^y#$3RIo08TOAw3z7zz%9hJLqfLnB6@u|pjwPktfV;$sY|d< zRk{qiA@_qcslpevdUf<2+cFs3%=0cH$qEc)x<=}nTWFB^5ywhjOcV~1l|>MgA6BQC zlakiLuCMmr8X*rd}4Nhb|>^F zW&`HBA7KfeNZ(XH1HiH{U#E3r3s#cN$Pn51NF|wH8c5|1Z%hq`t(7#iB*KBnkTqJ3 z0FjX*XpKd`y)2J61$`gw=}@h9IKt`+YJk%+#P;t{aL$L?$BE~$@V+5lnU`i?c!TlQ zwH$>N_Js2^{AO_bIGqiJUww|gB(fe-J7FD_`3>m_=8$@D(>86|wwULAK1l93NgfOB z@t#nR9IDngqDjth9aGm5nlT1|LF*kkD+F($@v33a53B__xd_mm%dhs8sj1xL6Cjl2 ze!6uqXPW3=5GPY8;aC-r{-C``y&F=m15E001h2GEr86kb2dy_cYqvyhP_I2LlE7{# z>)*_W$?UpP#t26O{0hWqPO9Nb%}3DrngUqOgYQ%q-~_m!#d+bF!S4+EP@TTt!|-fN z$euVJQ}63t1m#vu-81^@pHYf1Di!K=xKNp+losA4e1qYogGFkfK%w0RpU&SxxS$SI zh>)|%XZq(Ji#_@FZ1VagdK$j(MKTTl&4oqoH2f(-gVXTkaJhrVFncls<=k$)d|WMA zLwXHnjB+U0;}Tm0U>pRkB72DB0=OE79vC}~*fg?0HlwR@+kH3a&vIeQ(s~(t9sJKW z*0mfS_v=AVEvTv8|B`Cu)RsZ%0WUub6h(@@SPzak=*0XN1aW<_sb>1f3h^U}1^T0K zH_J%NWa0@N)d2iifH&hGx-kCX3uhsg0TUf+TKWaDeyEOnmlezO5Kkf#NSR=e*zUxV zF6|ZQh(mV|we2{d^1s=KOmR=o0r3I4XFroK)tielPN|A8Z0#h#xt%fU8BNxgL%4GU|(DUXu0dNtx>LpB{^R73)_0YlO zh%A(fER>K%vD)*XSz#3^$AO*vJ5HZ?Q!UIQ@zFarRqX7BSk+{bK;sITl+qY9MsltvnHG`DxNjiI!KWU8K^}xRqm?Qo4dbt5ADD zkv}=5!NalH>XB1pM=s(51o5JRjR^ONjMg z3YP6GG>RnuC<6@!i%bz@B)Z!lJoWAzPf|qAbCcq|a&mahH=_rY9`_`+IMcE+xrW^; zE9_lCOG7r~*S?)*u|loalSRMWoB3c>t43A36FyzlZiEZQpLa>hSI=0YSe8(dso!Yne|P&NI|sUrj<#7&Cc#)2kYOG2wra zhF@ynAIyS3&%m=l)n#e;CIf$Y7W_eg*OJ&ojJ@$SM&6IZmKV|p#guU<2MT&Y1+{vzOL zv!|={l(*8lgT*h*vm{3Y1?gNUkW`=;d=n+rMzmum!UYA2A)*|5Qtp#Q!}3tT#m%k++pM`+`~WjQx+|% zWEkzxW4Fk9ZqF&E{qYL+FrkhHyfIg7<<4&!!CG6nK$b}BbrZ~kG+yj)`L%l*YuzNY$evCZC}|q#i7x2pcFh^nWdEm`7Ti+u+q1UI>@|O0mo* z4zsgjHYpK$VHeYo2+1d8p3lxFo6gb>Uu(^fPdhd=JTcvo%OqNDJk=&FO3@vU(Xu zkeL79ONs`D{RsHBY9D5lW5eNnhhF!xt3Sb~v$0;n%@#VL*5?&WzAXdFqb>!>`rR(h zO>{w_2<|G>J<@A4`QS+`&#bkm)Y0B{{Z0b(%hb6+9)Q%W?ASbS>{-yOC@%2TCXVx% zsS(l7JZ>BYO{As@R!mr@b>Tif-SeUPGB05gM{Z79(!hy?@By- zo>k}pIzh&N=pU|)5xm@igLy@ z5`j0Yu9E8p*d*6&YwBFMZJ++`H|vv6?bF}$d(ii=K6}ejwkqhlmZ+m&kS2IgU)yw< zqhh>(Efn=O|M3mcY;@p8+{gpQE^dvuE@2sKlNe)XS zsn@wyhfW6ZRDZouvnQuU$VaE&G18165mKq16j+}H*mb1V4=fta4g2*xVC5&cXA8aRENwoNWy!CE1k zFv(>O=z3aVNqCK{vKoM9-KTqD7cgJf*a_Xu)pTP2H(q+&GXgE`2y8K(K~VJI(9Gt4 z)Szb)w!~y^Yb{=OCgBR=%jTSFp_CqWOX`oyI*>{IY@PbiF3M=Q(&IlCg)6To&D4wJ zYp_P_S>4k23l_ovmui>dQaOw=3YG#G) zhDl1R%Bhi=`TH8+l?c_&PkkZvW;Fn|U)R@R~pd6|NkQ-+pgbXF2w1zlNc#ZhL^%3z)yPY&eK@P<@hNmZsd1L_bg`=$=i zx#+iCP-Mq7QIae%poG=mWOQs$a=B8BmN=lZxrJjumS$>?)NWGP#s;yd=UEw`hx9{z z`Q$%Sq1(OBOitoEulGt<8r_bp(;;?G;!5isIg>ll9<*K@?zvscD}8D=qP~??CUekN zVVV~0;0U%V3jwNL(*c+_F#*q_KLiNqdiq9yh}wG%3&DWgr*Q;?L|BFq$xC47P zCDw4vC=AH8%spHRpJ5_Cc{bMimxD4hkTl8{Vo62SUC>rq(`agNMncEA3H8>SC!%T! zy1D|2Lj7U)icmj2CUF zWui`Sfq$G&1@WyU-W5%z%fC!@#v8Uye4}xFrqlITK)1HNa<&2roxd{$X9is*$Lgfs!*qsx?gX zzmwTD@)&|NLG-I!oA<47;cyd*SEN&{x`PRR$^{)Q5_|x))YXqAhU8GOZ-(S1EFz{x zxMj7BSdV+L8V%Mzn>>u%3#{b9U-QNeX9{@Gi%#xuFqwvJ+WZ`g>%7gb>TFdbl-W)lZCA&@B%M0h0FpP9gi3~gMOx6 z`~byo?ILCiXq0i^@lCUfd~f5qySB(T=ISEfJ$PQKE5hynp2d+&XD7$Tbv6;XUaSA3 z`+rITw!O7e%K^0o_0Y8pA+=d*kLZ0sHM4I5^$e)V4@qU@1j0QzQd^;{{1DEK+Q-G! z(YoIDdQ(*N#dTCsvn{#w4XvL6hQKW1{EN(Jn{;ZV59A!}(u(f_(k1X}OSwN>$)8CZ z;0)A2Qdex1#sC=Ij@0>@*9$Q;$f!yI)tAu`cZ5={)?(WU>d^pUa#65WXg8@_H@keA zkrG%P;AQo9=$zd~>HHO5E!5ZH;`S33@4df7zR@CMgFKs$-8eTOGc#KYqw<2IFgYqwPomgT4im*rvW|wHl0-Irp!DU( zCkigb+%#UKhqDi3^X5rj3Pcqp9RJ!;s%(04GKNJDhVhXa?^2#91kRMqLt7|fPj%N~ zN*BTQ6}N4A5fZ^t2~L)PcR0qv0pZ}}2?%4LjyW@ms)BGhbMoPRP&S)nCG#G*6t}Hv z8j^p~fWxIB-`Ery0m9(~$^)R0>Z&Ck_+I0}w)__h&9X!UNrHH}WW+7m&G$iA+bGhu z^`VNHt)bZ{R(TXP?*IE*OpMO7GaEi_VJ?GIRwg!cNCj5y0*cFz#Qwfi5%%kTVy!evWP- z1zioPR<)zhwj%zE?{@E-a4Q8ki0H4Yuq?nu0P0sUGmkEWRB$d2dMb@F?fkRDVM<`Q z5JofFxe1@20pHuO?yfzzgGp#{{&inc#vEymiBGT*9D+`FBZBcldt=aSjP*nnQ)76j z%^3$ET_i`t1rw?poRGTp9Sevl2Hiygn;~_G3~qLKiXlVNw*S*t`pC{(PweK43}4IL z_jw4B4*^iMBkEO{yceDIExTinzXY5s13Ukmcl6l(cEpI5`Ro6nL+0xc^o0ENPa_D# z2BOc8Zws*9B59u-a~lZBI1>%9-1CCD2IlK*CRrBTn{}qxCtrjv)?b9)AJAGvLAY3o zKw&LR^H3S{Hp!iy{y|qm;qqtL7p089#=tkZNEiMlL~4P=$9lE4QNpRt!B_~? zm$~E~5OQWl`e2$)EA$l)gD$@!0{B`>7c)Kfo6c2g@_)ubxC==TsE7i*f`w^!e51ZHmNd`Wu!CaJjTT~;EGWB!3WW`3VMh#+;{LK%d} z+zJXN-_O8PUZap$w$soxhZR4Z>cOk@&4<_{svLtC)|U|BBI=o6==r<70RvivD}SxE zBcl4Dlb6i@rWG~+51*rGh!lw=7U(ng>oJAR(Q!bES)VtG4Bw!pa&6=Pl?(7Ptm*gn zSo^DYxI1S&>e^pUZ=muV`57&boZ5x&Ao#T58^UlN z4ls?qs#d3QY=X*?J`*BBdIaNNH}R8@xN8^fWk@KT`rJwooLAqIFAIRe(cyJ1`^87t z&`uUDrvtQ3FKVp)Q@t%tjt!zQWD?AFBeQ)gCag-AoyYKvl9?t|G@n+iK3FUMw0ti% z+iFC<*Pu1V?k|u^m*(@b5y=$51pr8%i+{_nq_j)a^@x>L1`VKWwTsLch9)m`%uIaN zl>9Vt!qRvNipf7(aQE$M^Tl65C%Adr__|l(B4Mt)U=^Gm(&EPS(9&Ivd zZY9kz>G@P#8s(um7c>dwLpIcIUZ{^?S8d8?8K?q6eFi;n`CA95(q&hKkM!n>%g zF`PCZJ?#_N*VyrB!bTLe`dKjfl?cjg+U~kpH*I#@+@F0{F~}@eH6Kl?tF8AV#HCh- z`{o;*)Kh(Ys|&y>ITlWCzn*NRC$%fpQJ`Uqsu;yle4>2Sws^c;$X0xE>;wj$;;*j* zo#e0akF9AX>iPAcPQn4Qa*fQ5J2?#VRP(Vi1#7gdGXV9cc8NaCpofTltVVzC$xQU_ zUi7s{TQ|l;KgpnniQZGA*JYuMz z|HVhNj~pA_30G!)y3`BK4~0Nc(zWemPb>}UMsUQYb2!b=?6qtSo?rOYZAHGvZ^GO% zo=a~o@|}w3?OTd`Zz4SR)*|2E78m&j!>)hdeQDX-&}2^7?I z-SU2=%W`yVrFuU-k||bO?k2}fY9PAgu-08)bk=|#T5$Bf&}G0ma`rqFS5@sn`&w|V z{`#0FkqR~)LS`zu&E|-`*}YS&R-+-XS4TbyH;?l-A*)CZHr_cL>B-<4{quwqf=}mb z5M40xxRBiGWZYr6zf(Fq0{2&Rqu*W}NtkPzdSjB7c8&!MV?!1B&ri(!hiZcEAJ=WE z!k*~0=Xt)T5>`jvgls_RWE2xsBjDveFXRR?!T6`m_i36X-`k#wvgtuuPSXcQolc8$ zhHe$STI`R}#U#{k7EzSoflG-x=wTbQt!YG8IuU)U!ER7PGAG(p&y4R0$^rjs)eE@{ zAnFj8gZ+d9XOM+0^)HA^N5$FM2A$@=&TOOinIJiL$&7vSzRk(s;4+E$nF!p)`jhOv zOmIGfQ$4j0A7_D&(=mPh4XuzggNuC7b|~sz;%WV$wG}M)Fw_E=Nm_ssN%hsScek?V z!*py6oJg`SLghe#FSax2kI0Mtgs+0w6-h4539?CNC-IEIx_Dhv7-*wXy(Pqx@+bt1 zVmhf=Ud)|cOmNs0@!?F=o(uvEsRmMw;Jrq+xR7DP)J^wN9}yeC5jd@S$BWdBc;Bnr@58usdlcxlhp>nkS)G+fXAE zowZht*bN}%siOqT#P6X=WET$CjtX^@w`35EKvphJ=W`A{kiyDWM(#esbp*-x@DB=g z*L$X>VA|}gT$wftGW=%<*HvZ)T?r?y0YNZ|%tuf3&+P$lz50Xmzo+XlYrltO%=-B+ z&6rg)cy4QJz7L&ga+CZU1}8fBd)QCb^Wx!=?7bpe5PRMYuT9jT%W;!Z{ExY2-pPPK0-F>m50Zx9s#WUiq#C_J0#c zPh-z_THXciH9wcJM}WdZEhwPa=uYm5^yI^+qQI%ML2MlmbdH}P>d%0h{3izb>zwuQ z^9P`NU7*DTI*ULr69`1VvsIzd1h{qMF$5$7Fj*E1lq!T0yVJ+RmF$FA%!39wjXK&* zWH?<3XDD7q3cN0LPwPEsCU@!e(q0&)?v{Q!Ym(bxNFRWIdqAU@&3qq(Oo^wo5z}E{#gszDc5N?60f_cQ-)AA#vZRw(OMIGn z`_^(|rpcq7o(Q57g{y5_%gRhtTFXkHRtjpz*7Dp;Yk4kE&J~nQdvYggU6zUAJOv6V z+-%kGV7TPU1%&Pkx7Gmvf}J(st~RK|f1OVU8;NAVyapSgdX+%X-$kaT03Uw+^dlZHHBqG3W*JWk|wD%Gu1P#SFN4 z07w;RhS>b;5MVMwxF-o6k0uoiOYbf9QynA?O{IoRo#6%39j#+LU{wa}U{6@J2^;7M zt1)4{XzQ$nO+{0wg!Xj$G zY#e84=`6QQo&%eo!aNbfyGeMb*siLsT9z;ez&;(i$=WAukuDqopC&vK`w;XVYr!s2 zhjA4G&328Ccla>vyMHFT(zLCQoTK0Fjc(mY3QJJOaK#nuVZhFU9CZ+{WUXI~$JJ86{e`6O;#|m!eQ#dnN^JkQxUdqH80`90i zkgrlK_l!a8X^7Q>jVN6Wg(u&`$$xIkdECf3oZ8pjfD~4}e}nRZK*Fg$W^$ddUsJmn zy6t^CmgDU6KJMAFPAfE>taCdV@Db{QoX`)br@7?>dmWc>5d;OKnlY}uhnYTXW>jPmen?$5w# z3^y!j4!Q`}WOqK+q_}W;C+Z=1+VG00ZT|WMLnI^5PUn(YfGmYsV^&V#Vk31FAyI}1 zJ)70#%$~?%s3Cs1CVq(~Ue^-#*Y^o3bYBhxJ1%?u=* zeLQqH$;8Ae)m_-{V@}g>UiOUJ$g~`#sTH&)0kq!uQ$`_dfL9m7b96~A zChPfMl!o(&3oSb)R^Mg0{}7Y6$4E^dfOMLd3 z%gUP1i`0v;4Y}I9>aOS;H)sB6e)I_JLkCvo1WzxhR(ybMm*6!wb&{~DNwX@mU*<8cv2@JubB12yM zsv}_b)!bPwATFheg!zwxnsa`Mt3-j`gEx{-QLTa1Bum+{-(jf6z8GsnU$B*e zoBsr|o)6IivO3vejeJ=A5c+_$hLK}ZCpurvUTe+F(5Yx#ioToqb@*Zi`rB$(hgvOG zT3rz5fxNO~U|=9(My>4^*b}+P6JMpeBS4pejkNc_@P03cx>HZaiUU<$aqc?jcA|?p zfW0o;|8R3_KjqV=3CD`NwynDBdlUkH4{!LK@daCWpX>eJ`94Pz<}r9qz9$fo9=oE3 zjVZ{e<;zhRzQjmcG}7$&VL#HkyCtLjZXMCSGyXik@oD^XL>ux~ZOV^r%9`6II$8!y z8_%m(iW=wV6tE>gGzY{9Mryb4h$s&W@tZ=oTmWI%Y&v=hy?dl^s)j)Nm!tsw(gly$ z%xT{vIqf37TA(9At)QB152i8Kc&hUQvrm`H%nc(}OTndS3aviBpG40%cvzC$4GtMNCDhtO6g-ZC1i`HAm_Isq7{$BfS_&FD7yWGI6 z0sP6HozEz6E>8RHiAeC%*Fy2g@=9Vmov(Zr&gh8;?{uDfkifEn{Azq9Kad$#XT!*b z_B?v6XwS1SXP^@f#+|l9s!p^i9a#|cd&+aBbVRBSM7a>|O=?CrUW%UF<8(2Iq22cX zwN{ka754DSYLf38gA0gsuzST_t=!2KeXxPxJF8h=oyOw~?zHC2tK5;JV~KtOQ3)BV`0gX{}p zV6f}OAp3$R9QATuz^&2_q5!wkb!dBgc3PqG+?{q7_{~m6uHPtCN0>VBYk?`GZ`FSe3gkNuxWF`oG-N!UHHrWc z=3QY1yQjk^NfOP#pKJSP4|b3)Or^A^WpPTM<6-%x#-H+ymQCbB&th+4b^&1@kzFuj zM?9$Ofu(NHoa@|$u zypS>ZfhwwllhJH`Q^P|1m4~z;ff3y{B%!`0wtD70-F4(Dt#fn5aHN1j0cSH|;t^f` zam*x^f4uA9Ri2}>qfGwFc|2)A;u|&5yk&Zor-)xU(oO+-tdPJK&*~|s$5lquma@+h zHJ+Ak%aYl%zj>c3Oh)x{GrS!r_9)03t5cyRD) zSiNV#*BD=Sr6dQjOui{2&Lt#4k?M0QOIRxydDCoO-mFCYK!ydm{=su->_r&Hi_zn) z(2c}v7*;ajYb8dLxaC!=#!G&jgFo zV|<&RMLVC+McC4Dx#CR_8ctlUSpD`~w3;a)T;88+C2f!Kv zZxt^avvpT_DXC7;T$q$oc0LzM6Lq;wp({p-k(DfxLNHf(vd#T7(?(_AYkN^X z7KX_$*jz(S1;qZs06ppY8Wmm~mDWD|iOLK+w7E~z+4{wVDH5%N6+?}EC4%VsiGkA3 z%Cz-?FF27nNAQvz0_w}-MJw>De4QT5@}z@BVzNG@T2Y|#7l>FCu7VMOjhRJNo$PrW zB&#ZCn9hr+wlN1^@IPXs%K%CfnmCx@iAbQTS6%Q3LihWV&c*2lgBeROP7QzhzsTRB6p1-){l9AU68p ziwP|y*<1=E5j6vTXlkkp-hemi^U1o&hzthb$K~{o3Ij>e@hHj;qKy$$hw~s~*5B5X z5tisC`mCw>q#LmUbiSb~#t`8zP z3{b78#vj?rqDCT2VobndbrKN)_=?qMh%)9qUJqMgA0qhqi_qWNkiOXUd(02Qmlu0Ts5b%ky? z;*@NXvuOBY-fB{1izK+i3R`qRT^bvGM>Uy&V*Ze(&=dPP}=95e1sF3pq$J4JZqvtr`vb2bO|&V*aZmfhT-N3!TPB_tp?$M)$|- z%btQ>$O2w9A-bwiO`@q4vmNpb?Z-wxKNI7t4Aljn!iAb~Gct8^{>W$e*Sx^s{2~kL zQF2Df@e<5I4QI_bP^Q>f^&G+lfKmHmP<|_x$`+ai^?xuXFkx3U6Fv?g?p2p_J_@3d zoHOv7_=9xcnwhT2OMg&sCb>Ym=S?eZ&*0alP}gD2C=iaPF6VR9&=N^T)WB;I9T)Da zAK?58-S$nXZ9g>>es9hLcnH%l=Pvvvo@#akUhqa!+dKtr`ifacUc=zIryQJ^CXbWv zaVkpA%~d-Do``@}(T)F%);$X^>`FWlRS_Nf8r=7~b!xWww;ry7AUL(XBU0PbP0L1D zIGv&+_GW8Ca|W`TG|)_YlVAr67J%8FtdtwQJQ>4FwLiAxy=4diX8;{yHyqA*G`LOF z3tsQ@eUx@|O+6=xGna+;a30A5IP$Uj+=;TU>lxm~Lk;)=nQovyarfaCOs4)HQtIEL z>)(wZE!6qJDDNgr{dh|Kxw`%W)~9+<+qG2xoRs<}>-y!ak7byE`ZHO`a|ovY!&B;y z)%BySpUwK$`PX0Q@B?O|HhE+w!g0nV1WvKDo)@@_%3&ouH3JXoauvT-!l6+>macE&f&?l@jCFAcz7wxOh*TZ`!|j3j;5$J`Jg0B1z78KebnUq1 zUC99P&>!(obHqpU7!t~=>ija!v#4*JM*_)=nUn+}-~!>+lQjrC7!aZaAsVPWgv2N! z7NP>eH7*dA#M~hC)gTOZK$zkJLAMh7@eglKBly1`PZInbidPbvLj_fLkY8;h%3v_^ z;>K+;EW<4u=3%^bJyxkT9BPutRm?RcJ6&&E*JdBN=^BQ#TqHeENZTa1TzYAeoD*$5>&=)Yk)}|Oy-+dPvX(vJ#If*K(PV7XaaGZA%e!ctEv+G6 zaJgjaR9ZikdpfUv=e&yQSG}C`Wzfl8d*Ya-POTSa5Nr;->eO#i#$G9FKw-iRUr|;x zaMcug_jvTNO;hN*K`mfHOHDIhiq%1B%_EzYcxLmi)@QTzZW?6|wWbHB{astt{!Xs; z$F-(?u`irXHe(Nfn~LG&Ajl2ZbCvkbF?Qc=wEz7Ip<;TqzBe>8iD zeu5Q`yW)gsV(8fVT<2{u1%4qUBI-z~2(R!5*@B1`C0>F0Ep==p7dRQ03$(cw<=%`E zOpQ*7Spe$Xhth!(%0Ow>W3oFy(L4~KR7$@2e&yY=?2pnK}4ly_^RA=>wjs!I!RS>ukz^h^|-C(HIYb4Ud%L;voE1%hOBukZQ^y|}wQplY?hf>Hr2UrB{45{aK zN_0vr6+^Ic@3yt-NovAOGUvr^w0Q6b(>2Y-^|Lw&@Pak!CS;GuozqL8H4kz}M6+?2 z&tg4-06Hq46emAC%v)s8F&L(9nP-vc&slA|_ z+#;|{_5W7egRm5sQ7NCB!49sbrUcgMAuS+AP$4{?s7~#nNPWfSiZNm^%= zM;Asb*f~Zc@+hJXH?Ja?3B`C_j$OIMSx)d7GqaF%Wu^q9=%P9KrJWkwxZ@GhX0Cc2 zOB?DND#A693KWrw%(qy>L|k)X$(BkRpYc@#$OsyjzH0ajyp}n+9k{`Pgrb}EF}5Ov zVOlcT9)em*vRYj(QG>kHK8N??_PGe21rpR(5zwN#WfRn8&sc>{c1Ksa>TfWbp{+}4 z>_%qvRBzgQ@<2k;Z^P`5AVgRz3}WP}KT0ub`-M@_djzFfqr}DTR$=12F54S>$1+-u z`Uc8UmDtAugo%hNn`Nr<hw`XHagYYR4zgurG|G)_9kgUe^oU*8n1`{xr&@b0VIm&5bt2jx*b zxV{2oUpO(l%s#|oH%`E0TkfaGctSq!Hs&e!IOXEz3Ej|Id^c`<52uA}mi;olg&aQZ zXAly-9=60*y}Iak9^LyiTTs*8XtAs@)H;_NZF!vyU}vPe%} zZeSNQgof@!9|?OE_yB3hJ2U(_Z#B_*@|2e6my5Nx=+cXxLaw52zsK&RJ=-vQ>B8zFNg5T9bc?i8~Ww@G|TC5lfw=*UN@+r|ulpp@1c!!2TVq(A-6(GmWbk3|N51vxrj)qSUb0yW$IhuC3rRwm=~PQbzNhlayM6D zQ=r+q6;aP4OHF@;on&3NPZ!1-OoJo03hM&N=7F@588qzg*Ad<> z%f(#lpVk^6p?;=sSU0|*8GcAZXN$Kf_{LOl_A5R+L8As*C3y0=jHH8;D0G|WcSqli z)48+p&;hK>nWd&m7(oNX9nf1)Rd^VPiuOg^O7 z8e4^nb!rY5cFh37Cwol=!Bv{8cpR(r1PTh09rl!{U0R1d*%@McQNdDA-wqu7Xq0>v z6CO@lA+Gm&r1zbjKGFuYESgp;N#-QJ77vp*c=gA=^fyI?admm!AlXrW!wcMVMek>;#TAxv} z;j`B!3mYE4)@$6^b#f)(rOsn&=u!+rzJQ^RAZ86(Q=B43G0mO=d$w;a$EY`RAw1Rt zv9P?y^|mU+h9i#Rgxv^o=q;5bG8D~~awvFRSKJjEC5X&cM+2gx3gWR^?R=WhyWE#+ zQ&8IMjh8$GY5=E8_at5H@Vw%wGtSviHHr8OWBWyR)dabmR~@EdW>#fzw=?gwIgh(t zaEBZ-R^kw%uo4QRBcg@c)i2SWnQlmTaB{K(-B)Wm7^FLhRTl-S`m6sO3=th+`WlD? zBD&naHZDRngF#RJ!sivyD@>d+{y7ERUsF(sCnRwZepM}&H^EoaCdM^qkj8xBF35a3 z_5S(XTH*6@Il{=$7t`h(LI-|YMmf{C`WP#l-X#E!bn~C#FlctpXu!Tc5*-m-sHAC4 zvtS8nfOHUY+HAUAdtOeq*V)mUNAl*ck`d`=WR<-654fIKf?{8isb-i4fnw(Y`6h3E zwW}IFM8h?w5~$V5Q= z)IcDtnxnoz7J@p2u*Ry319`QVgJ;$L8g@iPw4_l3`Cv`NgelF}enBIFx^oX62&TQ@ z!^mh9PU>)M$JI~w<>x?5*=L8LA#leA78%9#)p)4yYxyv;&9j@}6oROwOpdUy%h>bg z-;V?s`%Dw{M%NRIgH{lAs;Nf4k5%_TBz!pYU(lUQ74REOjby|JEBK6Ml6+%fn{_XcViKBO%MhEHmOhhR8MFpeltt=1zHD>=~)drzJlL0%6qWte zMaiR zrX>T+C6{=PemT0=qvsX>5&67!kbi3zBTMq;-yzQtgJHK|)Oy@gm#yQkr6}slOtuqq z+q2NKDNHo4M`8YR@l=GsN+qy^aE*+XTm$2@kggEJ!eLfpgrHu2lgvUkCcGjDzB>^@ zY({eUJpvb=X8Qt5!>mZMZ85G5+wyR}X>DiCp%7l+w}H^?YSw6sl#*P+oXllHgee!W zb%4Rvj4kr>tN%R=_}GsWM&wUQgL%csS*?MIvp;@Sc%<-FPgn`p;-%`zd!vMqNHMb* zx0nGnco!Wpu4ko80Nu>tM;^4Ha%!^KqYuLUF}znS%~^))4Y;=K&-u*fBAFX-!^vIG zhc4m3#?|WGB@-;C@hZ#%Hp!|~>mobzsFU%KO-Mh{I3^jdM6H)eAKY6;nLy3Hfd$cr z0D$KdMCv5&*g&0f(d=cS*~_S85I)zMy_|CwYP~Ek)>YuZySl&#Eo<_wJVC?*pCKo~ zJpA>+c&JX3XaLvVnb82<2z6gxH=#$<+UQhCX^73r%??yfP@`B7=w3j8BsrWV{c2%} z9GV>Pvv_i)y+SXxRNx_Gz9{KhoEeOdnRA5AHE6+jOi*Dggu7d+<$$p`1&nG9Mm51$ z4lL*;0d!xD5C3HKgp3@bCbrZzOp(}z2%=&+ji*ButG+E&0Cr(Yl+rUQ5tCH0XZXCt z(*|7QGNO@yt72yvP;-mnEMXXG0CJQsQ#O481K~BM6mNCs5dF6#RZ6@Ep`Ka5v`oP( z8LO4ssvI>JH^6_GON<4;pblYj_cHD|qe?MraG4i>5HHn&T{T<6(o3;WAu!b0>F=~{ zS}1e0P;65ec_@iFDyi>0@wPB9=UBC`sR^4`o1;+q>b(neS6I5Akj;rWbs``#EA?Pa zghR%`f|Rgig9;+Q39QGD{o!+Vof20z?gtaWMy;a%1$ArVagG_{4*qhSC4#wdUi>m* zE@*~>@Vzq}B*v`mqbKr6^(h>DGINpo3$HlB^rB|=GDOt5!K|MY>Zw~u+QE6d?r3Jc zacg1zxz>5jelRQ1rSW9oW8Zp&@U{>cKJlTbOh7006=~wJ1~HFC3BUCOqDnWy9MRHN zw4`T@!9P#Ts51LOQ>g5UA9|K)>Aj_|!?RF*KspFCo=1Q1qOJrYoxfO3JS|I-W_^O0 z0NJ)DRe>U&e}b%A@GIgJxzUB$1&QuR5dG{|jOu1%?&1HK&)ERPfTz8HJ$`Jm4Bij; zp$0QT(mP5?q{4(O!IWVoB9|;u8tt4V&t(^VYSKrE+828SP)ToptL%ZP8tzniawF9* zdnkv;AE?Y%GY4p1rQ*vM{|WfeELkKh$+9}mypHuCIHHB>I)stTmzObx$*teOYDi3R zx4e@_%f-6oV*i#$q2+P1waBy&-+}G#hUu5sMlD7hck!0b0nK^de|_k|d=Nc3p|GfR zW7RMp`l=t!A>vHb*N6npemCxbbZlHcllGFU=5yXP-MC57;l)OW^SmzG5a!H|_RirI z+3fR2n3frD$f(HxOgMoBQQeZ}C2Q3PJAs|`JG5Ja@zP_x8^3(K1iy8G*alb>d9_#b zVQlo1wQ~H-d?}LiN8FJqAqViMDYP9^-*F!?kvUids`H^%vQ2QFhSl4M_~`%_TxOY7 zv>v!NWy13@uKNfR0>oU^3qfJ>MmV}K3+~#5V35W;jLAxD6V6;rpqZwR+JYJZ5$t;@ zR={*uB`yF;9RLn602t$&5pI7tu8>Hj1IOnO{*5~sI4r)hh_5@)eI_jb!HSQDWsVD$ zmk}V;Ps^S0PmT1EIbjDg_qA0QT9B37K70XA@waV=)@sCnoK|;b1RDZ#etqKWvB158K)y3Q~{|uUS zkPIXot;2+mn_zBe7d)g`we2Gd-#`_cm4)Ewc0>&sPCcRPSFkwuipc~wnWp7x$Zoo! zvcwo7Rcc(08dz>a@VIy4-3aj5J_so9vT=JpFrB{=B|WD zV;_j|>pU4C8X1wSUpvU zqOp3(r-PwJQx^vskW@Gd2XqQI<<(Y!=0-ulQ4HrTnuZ7RZcc9sG|{E9^CK+lgTb?a z`=)8cy<`1glY{to;kxVwbX=f5^m!kf)d1`10QC&tqhwS)=2H^B60%_cX*B68xlJUh z94@fk1xj*B6yKjRCJlm33-FNO)!a4G;k!lxSx&|U_h5>?<+(gCO>2~b39g9y68 zc_;izDMMW~xYN_&Pn@Ozu2emanIqZ11td&k4FfC#U^8>sa87^K2bY#m!o5f(!skL! zwa^f%vX_fUb8^&WXXvG1cr`xbUUmxG+-h};r@gJkJ4yE-kf@$VqP5yIkZ6j)ytq;j zs~4cOWT~7*7F~+x^NROiY!!(E`X0h2ud1IFkGYO`oConJ`3(o!lJkmpL(R&4d0&r~ zVD~~&3>eJ?-V4N1mZw~cfgM-bO^ox#+l`&QlrBdbrZ9~s@Q>X7+}mSs1t2eCoI$Gp#(XU&iG@gDGSo` zYs@g}@oVWTD~mAoEw!LE`>Nf_IAisC6pUTHq{szYNvf|vbuo4;0#%Twnf#J>>E$jC zue8mu)T9+pvHmVqHD&q=E?b$oAYxmI&EZM}UFU8p4|YQg)~3jm}w*AyC12$zsi zdhmP>5v1e#qz~sUS&b~_OgcQT!F^MxOFucWh^JVTCZ@p{rXooE%H0bW@Jug77A&ky zx2;FD*LzKxBmOs({Z?RpWX1=@hcA(c zkXZ%qs9Tcncn1x|&2z??OunOQiL@N^F11bGb%Q0(q>IdLvZX(v&1>VQn8+|cn?j=! zeZe&8+jOQ+&l^w+(8*9ZZw%{3FkZ1nFdpm{iPm8w;wtrNK0ea3PVHMnIyRUkgkJi* zIrS=DW;W|Fzmng-X3!PFu_T}|USgb<{fJ^7Or1@u0+-flK^#usNlqAyWPL|*jkU9z z2sZ)AavVhMI`aY^&kBSq5bs=iGJ*v7+<>%) z3YPaJLd6z=%>ZREq6l=m7$X!}2@v%Dv?8J#r69hWLJPK&AomuoAfzHOWqk_3!}AN(h?L! zC*+bd0b+Ki=v3?`sq0aYR!7T2B5Y$dDP1DfG9}}*qv9B zGO!b`nD&c>#4+j?gt*p3ia6QSaEN!c2oH=y5@Yzwc#efKG?znyeYyJVm$opHg}0Qg zm91f~0o6~UY)tbcH8p83W&sl1xUG1KDEc%rGA;WD+cJR7@INYH5-8yk4KZFN_D-0h z=s;GWBkVUC=dxowxL`OA8LS>dc7s8*FiTD_*g_#md8H=qAZWu-(gmBGZ>Wao_W;!U zeGmN}ORV1S7oW)XGu~-_cFw=R$tuKUxn3`x%sRkMxq~XagQ#FqUBtXAG%{~E3xc5` z^M=T!m3i=k@B()t^F$Z%PLg2R(8d#VC%}9Jd9GkWsUTFG8o?qK1$mqso`euWEG+=_ zySnTwvVg2Ln=>ld05*B(wPt?9HXN8EyEcl=Janz1Mp&5pdqkW{Pd(XFR0ykjO(b-T zCDb99+@QWkCMJ?1x`@2M(G^#;hw!dB+1zD{JOP>*Mf(!2tq(cf`=v0pTvou4@QWKS zHE!pZG+m^+lB?aElJ7jr9`I z5qcd3^x>h0R~e?9T32cTwQXk@!G18Ud&hDcZI1iUSA(_JnKku1tQKSw_?g9 zTlf2;^lPYAyaomUN0zSnI9dTev_+yf$L*Q#T>J;=U=St9hp51ob_tc?4N*hba9%t` zwTF$U+fLF`c2P5;3jqTx$Ab?QgKB!4bOevTx}E+dgDJ$WRWs%6By0_;6Iew1u7>z{ zo32k#TPs-34x^vK8diA_Vfzu{Uy9+JwC#i3qikBn%WCP=X8CC~gyP|*(7+8ahfxB= z=O2@pW>g~Pw1JgO+70%7MIdrR7EX+VSOk;h+9%usRlz)rau9zK8KEgu$Ch=-`@gv_ zI!O=iPooP0gyZ}gobgCsgxrW($3=pDwP;G)_iFjWsmdV(AqCEwVMNvR6edlpY5BpN z?}RRSuCMNt6XY=ouBI!^*28;U$g5WiFVENN&Rhq#Fa=1S@lEATEM_nT03?o3B2%!U_QfNfdK2-2!)o*W;~2m5@d^z*si!xIuUc|O-G{WGy(p||!n5P(m@;QZgz_B_rTo6FXQ z=2Wp8FO;Ov4_FmphaoqGE`7(#vvkHIh*77e`-!ghfU#Vb>RH#-U*USv*QseWHJi!D zk`&rAjfQd8Q|`R9xEo)NJ!h*n3y&B477DMP((qBU>626zcD)C4K|<$a(al8(`yL16 z<-B(4j*QRbG=7MguBUrE_y8VWE^4L(@{+3dNKBP;I=Rn>d$||d9FemCMJsp3A<%Pi zp)O!Y;OIg*adPNdBCD_|^imhd(s;0PI*NRRfNw$$`O|G@Q5gm=;;R?-_~UpYSCML1hNpXH&q7UGjM%^74A6>#@*WtXS1bm6r* zE!y@9)gQ*8V@iwYh%D@L*iitYPVNh_rhe_bh0WkK5zPQ?dr)8y@=c+y|J;{6(T$pb zvN-u+Fq_rsDaIXiG2)ZYBtIkbN}=iyb`Pmt(VEWW=!%}o)G-j6k^)QR7oG?kpn{^X zT-!Cr@{E5nlRAY01vP;1*Wd%(j}w&y5&+rt;jD+U)OAgtaPb0o?HgT*Q)t zO-UW>$Xgc4AKe|;m)aO23dNQ)diRT&Y_Gpv=7GBiw8vIvExQrEjuwvBW_eh3|N4`r#Id^UO03sG*1U~^bU)wf zf?M(=NrGGnG31c}_Z4bD3i1Ws76ECHZn$U)z1oSgkKI0sLIA$)cDm(H+D4$6X2k0` zJ7Vdkk;b=FK=+8Kc_3zjiqI_sor}x`29>JLNr| zbwKvERVPK8R!wMXs64v1zVe8uep&U`2~XCTe-l7{I-HIs&}^1@`mM+@-2ZHSr2W z@nWNAACK(Xsvc`{&gTW@ZK8KGa=s~by7(6^*~Kxs zi(NCjC{1<|Ro9y?rs*zLqBgsTs)@Rbd+`7V8OpIZjR~}gwuj+IZ($iGTUdrcKo0Ai zSNkF!BLSyi7?K7`G3y`L7G43uiA9uV_6sh@Z-i)c6}p0jIyW#>kG&_uqIIES!mu#= zMc{wfs!iKOm!PRfVc1u*w;*dfR2Drj`XcCA z;jus!Lw^f)*Wo^f{wjCY*E;mKlu*S(ccFj|{T%??n3f1XQ$Z#TRE<>C@F~{>wqsF? zuW?VXCO#^D4x5gL{wzPi0r*j0K`<_7=>&GY8{fTH-Etr&pzQYAj`O8hJ+K|0F#DaG zK4^tAlcTbietQ+);!T-(gQ&l$H&fT^$+zWrD{R+x!@-k#G9NnnmSc$!wy=6be1``0 znM6i@xA|J@fo>u2UKM2RS@>b8pXzawG9CX44>G{8-IN>otp zrrj**$L^F#`q{vB2I;jd&N&q|(ZE@n^utK{P4I#>>4%P6Uc(N6v@#*Ex*A-{s}d8W z#X>UN*RE7vv}S4+8lW{A~bvnD9Gdv6(5L~FtTqvVPSk+D%4Q7rz0}tY zXjlXK`7RdFtFWZ%!X_FRsa{3cDFaZ}1fY+iCIH<@13I069;yMojZFh-6#{5gFSWpF z2E(A=OQ~0+ZlUs%t6s?DmrzAjo;pzq=c5#s&rhI&D8aR74hx?nt|jA7tUZ9$E^ z;|c3{QlXYIJcj}h29#-4-6$c7R0H(0>53u}z@b1p57P7&7ytFA?VMlFhm#!f#13wb zF!Sp@6ws_Ycl#8MkoomgPY;eT^XoP?9S?PRAu||Ksz^$3B+WUUZ^9t~@fH>zG`B#OHqT3wu3R zWfKQ(&)HiPY;pV3VGFgQ{nq;H7!W06?x%nn4({HaeOkBnrjDo6#%fzWLZ-YbeDy=<6Lt(NwXAc<^c5 zsX_nwq)CTy9zz+xSA-yk0ek_%;3A^)YOj#4Ij*ymo}Ayni3Z?Uy5`ek&C}_OEm5kJ2kfiKfTVx%s%hz3`z8aZu)^n=-WVB!nNr9IRbNfC7#3$BUigms9C zh`RhAXqgbSdY#8x`nCP3E>Pw-DL2Gju{hd#~v42|!R(4KlpZd*#Bz~Abr{+OKEr%bs-A+E z3_SYFG?C|Kks|8kk`$-{y4QM=I{76vkUyekGxAHe;lyv%@>GicNOoAHo+HPiL-4W_ z6noWl2o;x>(DFA#Ra@1eZ-2cJRZs8lJi-9HW%l9Qp4r|V8?-FHcUP}=b@_Rp za?KwJUr&wU(hKd=sX6!X8jKT(@(b2@7$rp_yeiWBJ)n;f@8&(<$mg|-@@ng(DS6nF zTB2CpD_)u10FC*@hkwC@)?Q(!#KX+KTrBnUeweU*FtLtFS^DKfSdS1kqIyczZ#c!# zcZu%f=?^(fS&NtC@kg*`+jt!1+`QEsT*gdJAw#QgGV!~_V^urZTzYxIDA08jMwP2R zfWWjkkh~7OiS*2SoQ`#0V;Tt}b5#vOi?*n2-$T({)$oBP?khXfTxhDaSwWFp=Li98 zJI%$}J8}pXo6k2N&+}!mB=8Ep>&mEMNDshe6J5Ld%0ak003Z|sRPVMmatVQpTV z$XgH<>@We0maCs0jHhcNFyg_ou@;t~%=ckSVc&#V0lx+OWdyH)Sx9AMDe10AJwQ*Y zZk>E(N&N+E@B&O(p@|?yT{#c0td(qCtLH zQh%`yJ+(Fw%$OqiM38mV+OlE5u5ZRRbdGK6BzZr*(N^xjdcc5LKn!7QzO&c#UkDU| zewglpwn`qx$99Sa26DyOE1kK1*f zbo%9%c53Hel>V%U(n9qdQv$%0g{lh{DBuPh2kT95w(eosq6pk5Efo*d6&G?F+}zj=iYVFO5R zIVT(IDSNqOZSQ|;^$q_)#{U+_4=yo#ziPk2>sZ?p=q$X2E9$`k!ij1d;M8y8yXTvc zhrIwgSXK9KI$i;K{x;lF(;6C^#F%iGs6%f(oDjxyB6FRd-3E;QP&P6dcF) zBi z4cwK0yBcs;Yq;-bt9V4xjZcBQRKtB2`qN>jZmDpifsrZ-k(&WGYXa_bh?01yzlM7( ze$;ax3EbZz{-Uw0tmRsXyc|F@OVZ6}1t7wK?pb(JLSvsi8_jz_Qtl#0}<_CNtkiHVIFhy1?nb-1eVWdjo?A0z(#Hh*k4c_xaAV&;F&K z&AvpJdEefX_;0v~-}Jqk_!kf;@c%XziO(bF*b?8-PDQGSe1~BIUVU(q){h{r;p4^^ z5Ejy1pNg)L;@y+qU@e{zWG$ef20bPE=n@f>fUjVl0t0*r1Vm6aBDP%KW$)loi_@VR zn2@iz2JwxETGSAB>TYgu&vVE499=EI52hD?G;96Ng_Xwd+*qkW5nyFvj>XCY(DD{5 zP8%cDCm6??z%DFJVT<3uxF>4x7u=PH%4nlreuDd;FLfH+JQxo*LAc960aODDYn%+> z`aF=!ClZ1J)0q8irRp!arV8Y5u|_=^MvRUk^-o5hWA(^wHG2>-=;dgJnzk-57@3Cp z@EqiI3ID8Od6cbZ8DbpodCk*)?d8HO{f7BqooNaQ>)L10Bn;8UXF5wWB|`7KOUIEX zu`Q$+Vs7q*Bn;1|;7y`C>XR4v05I|gqbS2{M-J6a$Z^Ka#!4KE{VYH)8{7Z`Onc8# zv&`I}=3>^YE#N^IxZ_V-xaL5h+TogOP}$)c-tZq9ukB^BIpel*XTAzsz-tT46b2iaLwDDgln!q8(8}IE*o64H77ZO?nxoxOt|1MS+p}P!omNg+IZf4W*P?sP06D-4>`ufizB@Ux?QjAifKq}O2u$mTAAXHE^ z;A}l4Z*yQ}v^XF(IItbpVPINtFgfrr3B*&5#MpG?4+}}w)qk$}vPb3uuBxxes zK~gpc$T!7-*%{%)x@-o(vMVRKs`hZI_OMm+b)&h?n_RvD2)U@;1Dg|Gt+B9U7Z0-qWS zfkL3-3%3w>6rf@b9|Uhi3xWNS8J8*q#;8if7BhqZYeEQgr5_UyT_8Wf7&=m4ylzux zzC#%h1hOihKUtOA@~4wB2UwsJ6M)eO39M0l^=eE?n71E*`xi69TEQuS zc|kfH22TV~M|9D0Q}oxcm4s1ZEv|SpOa6Ah%;cYPSdleALMPcXy%~H?&@0sW$UoJw z$u8JS{dYWHfslZC`4w_mHMjBQTBp({2)ZyVFqe-Xb{-EwL<>lfsI%RXw##7Ikyenp zBMmD?J&Okt9xPt$0hATk^8Xs-Rla6c&k@+BhTeEWh#3mD^o^7A8Dz_9fnxF(r34n7 zxD$Cci;H%Zf$k5OB~}3X6(&VWgsWTCq^wNjYIW4+Pneg*%Ct>kl@m<#YH;#70ypeM zOxp_eA#Y7IKk7vDqZ`+=jI0z?s3%#5VG2Bg(qn&+DkXE}w8c_hSI=#BqqnT@9Igp= zuIays4dD-bX&C?orFOe3)S)aRZo0@&{K25BwSx|4X2` zfjBGS?--Sy*s^-jNHOkmHV?ugFQ+N!=p>$gZ3F9-G_~FZ5y2XfES!NUtv^^#;x(xI zUgj^|NGAZnRHO*X3)PF%Wu{~wrYWFgk$N2b8Y~q3djai?E$#PiP0;@ zIS)3#C)34tUqPnQaMYnyJqfqf4;CVRvnCSe9$Ee1HH3wdg9FI5+k!5yL zwM*$VBXykh0*C2h_4&ly;Frj08Ol!R=~iDj=8jVa6CkYT8t`AJYP#`UZwY70>NQdl za@ChQDXG~-+Dv|dso<<6?U8I&;##@t{!Ow@;@f8P?Y)iM1p}sOZ(<8Dws!o~_(yY9tE_@Q8%ux+_Jn`973`tHlA-w5R>6j$OkE0A5-g`+qGc#p z)`WsR1~s8zEC0=(;5q0>z5SwHZXAm_rJVy%A7Ax)O3%L8NLyXZNmZh5M=RhFi8hv~ zZB2pV|08O(13iK?{0(;|Z>#WkoiR#?za9VXfxpAyZ)vM)16F8K@i$uahfwgtUvGM9 z@z5|qV{lJ&q;6OXH0hKR4lNyBwz)&+Ne2B6piNjY+iLYViaPoEx5-t8P z>$t``+VmM_G&T%zGChlKQ#qN zjVnKPQ{zh!yP;=LKvUyr+AYcTCYXy6wfJ2NCUF}^6-3rq6WlzXO~*r@%TI7DepL4c zhZ>EOjCih4r?1d-*mjLrK*RJfp2HG7&7|2P)hpB^xL>0)a$JVXFg4&A)CS2UJP-}c z#^=84DbyRklIci{JOU?KYl!~3?bFegHD^prvvDr3Pc>eR-xWO#6ZBwt9=Hjs)1LQRdtBF??JwOk6xz=aL7PC z=!+B`v+z)%Ccxur?36ZwkHdZ=u-0Q`MC0Q)W(ELC@slc46u0Ay)Odx8z}VM#?xQXwxy)j$&?7OOmSq%i8_uLi;y8USpRjBfTd`8y zXE8!x50ZAbz#d2p);Q`zmmhV7AEO)pNsv)i{_sdwZGXi6H+Mby8xSe^U7&_UfVh!g zuLsm~vUB$&788^JDK7A4FHolW&D z0nXr*gY{ihDJKHs(EdPdQ#XBxD#F=PsyOiy%Ta8WZn?eO!uVfz*rD!Oi;8=u>){HE;0Fr#d(iYeT)HZwLs`DG8ket zkdSYbNYsse`Y8^>a;Cj}OtNrRWl#QelGHM^6i9SglU)G8fOIhNM2T=mE{7Cp5c2>%Z%~<)S5vOP6-6-3*kC~P7 z{sXRzqeg|()XTC~t`j^flJoC|=-_9guWe%463nF{8}SO{3(bpCBV@vllX~*pJY=a+ z1fgEJyI#ZgUiH8QJ#qFW%HnIw#*Cb&ttzL-MVU3>t5-*P-jTI|nfV>T7ZwFa*A&!{ z`2hP?`hBH)sSSh)DEnj`R30Y&)*wY#e2o zl!@17*YE`%7=r;<^3{VV9tZTvo>*rVEe%VHFOACPjpT?#D`mTYgxHE_oGOJx$p`fp z0ZO?{4O|t^=xg3ZvOFvRWRar`_8Y*ZeVF`{_jES$S5o6ejc3DRXF<%gWI_Ti%gro< z%&Z|chrX;1g0aX`ta1ClIq}BBf54iDd(*d8bd?()Z&@{uoESAJJherYS)|4I_?a@Eq${M*M&}>lppY?aJI}{gjQm7>~{ohcC@^;-kVqvYWlz|{V|pj)qT$_F04TfAatUBw?`HoG5?^NAN^9>|NCxE`%muW zZht4-bwK-v?C!Mx5(0Qh_@jF+erk&l;ze>Moy z0q}2^Z2vGooNWIOEw!KGx*?WmHnkS1p}{O;JlJQ&>PSArC^F9v*{|K_m0XP^4sEO? z`+GIdufO)6k8*YQ%>MTF?Jv~s@x?s)`_LDk2kW$gXp2DsU-}*6fzL0x`r-32ePVw* z`g_iUUrz4k*WVqj?axR4RC8|yL$o?iw#D?v=U+{Fn&-dZ_B3}v8*mi+ylp+r;SkC$ zPZNm_V^kGlff=4AYr@lfXT5luhoJ#Pg(jmT^(CAvNycgXnymxW#rV~rwz!Hthz(%| zbGhe*=iQ*1m9I0E zIyX^#%94q39Yvpr5=&SjuH)m{{auSszVk~W2y2ld>K;wopC*#rLHu&Ck2*%TrOzZ{IT1wVed7d63fec$3wa0oh5^>?*{U%q8~hF`9G&JC*Jmk|!A zld*8+Vr}7<8N zsD@v%#r;q7%YJJ$ z;z@*$o^cbw@JsFMmS66I?n&pDzdi0j1j8?fq9*v|N%;xB+yEk!{k|Riaw8iu@@4-N zPz}Gl{h9^!d*~h)sKPG?c!6r<%Ppu0Pl)~87rewnn+5@9BEkBbN*Umn8(T*jm|{IVlzf(Ui;6TAt=kt({i9sF`88#4T| zO$w-nU+#g4q($M&&^<0tgqj|6zZA`GlrXJai%&fc^P0&3qP=#OKdB_7)!!Khss1M3d@HPCXV{dLZzZ{R1KDWJl(Z9Af z`(@szVx`0HsE0wW{f-tF;~suFNrxkzaMR%+Su+d$6E=>fLmw=ex#%E=D<6%ti3}0L zn(#Z8(K^Ds)pVGEj?^nRS(f>ft0Mq)IYF)3iI;cFWiMVnD3{!`vD%cAmz5#s<%Qi4 ziyDQF^rp;FtbmZpD6mun%W)CCTYj}`bQR0pql@a%^>#+LKQxwWbZ7wk-yZN79cyBA zZ^Ip? z%i_Q`EP?4WI(UOsFnw~y#5xqZMsUUVOHo)&!8S%TBpXCG=gpS}3=*62YHwqE^E6JG znw?j>m`^NJ=oG0~1Z>77YBN*-XC>BoQ()q2vu6tF5~VYGFcw_Ol4S{e6yC2a-}5br zM`#5N@$tD?T+S;qo0}U{zdz!`T)FrYE8eB5yW0E*UOX0YRGuu#E!0l%r9Sgmld`ojGHnIp-Ye<$FOV@Nn@ z#uGx>e>ol(oHX36VltbVg!_fdN*(!_d(vEhs^Iw#V3uf+kcHeg*Q7ye^cXc3{bn3G z!kU;gx6`1BhhAY1_^uy*)QTl`(!335G{s-Vl|>CW`1ibZ;VrNBDh+rMn0JZ8zH`-B zXe6Sr8iUgBK-*N_t)3xAd{#>W7+Oj6_bJN+F?TO1T*4!>_|`%8@%L$D>utmnnY}NE zVDg)6B+Eqe(fSr6dua>3Ki_r;20Y_KTcj^9HL*FGSp6S%PY$CmSHU#WljCDZc-Q0* zeYpz)Z+`mna$0Zk(1Q$A#)CVcBlWv$?c~_hN`1MmUHbAG*XSY-xkqR8_y#7j zOWNGQ+Z1VYHJ@O{i~4fu%Q@;#H~ts&C6(rD8>la}-n_=>&51{Kg7z1YqZ;po%6t=l zv{HHrS8kR0B30&f09!r8H|!&6@lU2E-{=?i;wa_CWcftwbU)9j0^3y)VNH*BHCWVWsg!?9IK#4^aXMOyO- z6aS-N$oZpt>KLtgcfFlDFHu<}x1ovF?23N?zMqcebKu@M&yAC#33EC6ORUwTOeDT?L40?4N?KfXr{%8zucNVk(QVl$k|P zMu@1j)FQ-}s4S|bPvgzjuuJRBl0#@mOaE9%L``ZGb;e?j#oYYPZpQ#iY2pl~1j8Vr zPMH@FJm!r+)D@UOiD+Xt=o#1WvM{{7+WQFrni7&%@ie5OK;@pmhFI)QiS87aa7ZSzBNz=0q;IRiq^iWvk!oldNgua2(Q#W@{ zhwGk78jnCvjl1HHYXGEA<@rhAJ0(umLUa2Rmy<}M%b6JGP@I5PVTYq(fK*uF?qXw- z=O7wyO~Dq?G${r6!@=z)vVJB%!N>8V4p?9%>$~mJ2W#0T z7?Dutq(E)-!QGErs9(aoaX~HmpsN?uMjxDunt*z^hPsSU*IsU+9_XbHcEM^;G(MhU z|3}pab1>b!^}%B^@n(zk!5y_6i_r(YuyzC_W8<>FK6u~-T|xB0H>dy+5pDb-Rh(*l zAU1N#`rssYi+AZ3CpO-P789pAl1=nMNV`a)c9CIUF@0h7QLR=6|9Rd8ctm$oA}3xo z?vM(-D1&p{%HTw;40cHKrw9oBDSTbfN?;MlJGkMzMzoW-a*5vV7iIvBzimMgjCKQl zIW)g00)F8rF*UW{aqi|_{bp!^PiR?KEig315Z^_=CIhMl2tpM2ZS{7Qz0X zRlpXBeyQXq{~!DXZI+z)m5%&h$|sm%>+#!4e_((KtBL%-*-QQ-GNt{2d00xABar~$QF13=>`UC3(R567cc-cCCU@hCU@;?RYMVvkH(A^JOs9%Dt zcR{V?zZcZ334h>R)TI2^P?r(v+Ibdg>kn)IsLq7hh1*-aJLxBh?`UaCJJB=`3Ru64I~mu}JR4+tVf{wMtb!L+|Wz$za8z+iVzqjgVd{(y@< z+8@xs`}hL{Bk2z~fNFn0Zb1|mtf~Hh>jgX#>ksG-_ssAI&c#%6Sg;05L!t(f{y?&K z@dvzn&(H+0-bt#fn^uYta_SXk}P!p2%efbIAi61p+ zmX)m59}sresR!h=R_cQ%*rw43|GwT0^&+hgmLO=Pwb+x8{ptGP8-%Gcv>0nbA53Am zDIVHgLtR3sD=)E7TYq2!Ky}!@7Zz)N3Vm=crkl4uxZ^Cm*&=-~*{u%-LE*Hd50076 z!JGI{Bhm~+A6S1NMITsyKuGSd53<}XUawnp`vW4`-2Q+_D1U!|x*A0Qw}f53sW%J>5s&T9(zBE=s_8Gz#t=*}_~!AH|vfX`&Y1Or1! ze<0bf@dq;c&Cmji+)WnfCSCqO3VazV;3#+He;_|0T?IVM?S?gB zj~aBLm88}mVCXiW<-ZO=OX?Y(nbb45<{qhMPq0lZ|F3dGy$I#e=@JBqjQod&azQQr zz&8j>`O1HWmmvQ&)Fp(vvdThj{ecRi-b%e*NIUS9{}QMGln4}=04;7hZhhcf%r$TM ze=cLkTNDo(eiFxG;z37Vl$8IPIGO&yo|owg;tw=p1xe(;^#^46A+{ma9}trJ%l~)h zyIQYmd40W*NDaDCv>S{Irsn7`2x>jP8Vt?sB>P4x$a zsjcgkp$z)F>%VhnQW=P7fIU30{XEwPS^qtkxgcGJS9l+cf&%Z*^{{jXqd_ zppl09K4`3Teb5LmI0I_dggRGn{Plq;m~P(s z;M$Y%W{dQ}M^FKdJ{W@zfaGS^2aY^nR}g*h_H9NVSbrczA6S2&1%2=Xc*N1Qm+KbY z{yjSr8zsS!jV9Patmp>4VeJcC+mq2K>awQ;iV^U^5beUUb z;z$FEyh%4$nK=_$-6bNZnt*y5!(aG*kpLh3JE6Y# z3=8$4CgbI9K&mwjZ2G0CQX%f*X3yFDg>Xwwu5*D_b z8Q4IR-pnAE*jA!9Gw_a^86M*dgCH)UUm@M;%?u@aGeZgAmFmq5_AQ^Vv;d_yGuZFn zHK=b8-y&ex%y1vNX#Hk}U5F|)&Bdg1Yu&`qp9TtTi`bkd#xST@7cnF)^8)mnk(SAt zAjVtQ2{DR?v`HHn}rul7c~VREM2%BCC+n}W)2Y2cd~ z7pk+*)rc%}-hp0%GJWAs+k` zcd7#6LY)bm+b;R_YZufbQ=m5T>w~K;)LE%ei~Jhv1+|f1x1%PY{y~5b?uL%kifI<= zquVFH%HK_qU)Ny%q$NX; zR{0u4#0bg%*K*8CM0=hv_LLGOIl0^=gi~;5)!B3EyDaCi_KEHE_eqMPbu|H$5tia- zN@C3))9lxNKX?1knu)M?`$Lmoz-XZ-JtDvU?uWlGN9F2Iv=k-e6ML=!FI@yiY`F`+ z_9wQ~ex$YSyN=F|Mn!5P2X-#!NU`e{+P(C`Uh2~eIDfIrH-N7aZom)8C{jjb0&Yr@ zG`$53a`S-Scwr|RlEgG4PKN@kh66~AfcrCEHBO~vh}bse5sw{DxDSMfrPEnn(Ewrh12?JcTN0_$Ld*mhw7sLnbg;4RF>T0*X zd={NT-8~t%`f?0(qf1}nAdHb}76_2xg0Uv7{&}d0242K0f#LN?k3Ipl@x)J>Ffp$* zi~>-325nZ=5kuFi870I&KZY`OAqNmWYc0kj=Ph2@Z2^JdP2JI>aF~8ruJMhNL&uHh zHh+BJgjo3=PGVx;1ZEIt&Qv)*8aw9D44bXHGHWrKQQsVhj`E&HHGUk$eB!f1Cs7JT zQ*T;H-{&y@JA}TYx+m$oVaoS1WWw6*Q5Y-{{oz*2t-}M)G z(6{dbOW&Ij^iHSmdvGWG==;&-Lf;qn7W(!^N9wp=`O|mSoOaVUAJU}d`Fs56t%bhE z35eB0-!!Oa4obpRZ1qNA+Pg~{83|FWZEA$9tHm9`6%tR zKW@rS^7p3mJotMg;=)=#Jq_+j=kM>Q`}21eBg*m6q5BAb4@F06<}t$GTu(88C+&}~ ze%W^ZPP0E|AqJY*C$V?)_Q$J`xv)-u67vJ!Lr(Fh{Orr?kL)1&uI!YgZ~nO+^gS_V z>H7ijl1|@#h}8MXuboj7^j$GT=z9!0QrCkmVPAUE_b3pjt@xXK;~}k z^nC!9RENyp_X0`!7N6}w-%Ah|)$?~V@RCm7QB(ctJB|_6cxaHO?+kRLmVqt(=(`IR zCE7~gH2dS8@vWh6UisEf-&5eLbqIaG->hlMRiV-|J?Q&e1X(qG`vWiO^qmZ+*>C=y z!tgBQ^X@W#uSQ4eEf|1)^!*-_ubuQ=f(Uxc^LKCPl&xd_rrHk&B>B!)eW%Lz)cW6I z$<2&wi|VgvXZ?%YT;JdRsEvZZJ0$+`eUiVcPxs*OCudpy9s^yJ&fl}($NBO1Jk$h# zzgQ^z{m6IV?~R8Fe|yG1{xhcS{GFzszK4g`vVA@4V04uC%ui#0w9@|Aby5e>cht8@ z`Yt)mgTC)xZ0S1%x+tB#H%<1Z@2#i_`W{dq^nK$S(06-;ApPQ7`-3=bm0xM}U52P% z%k;fT{DiHWzJEa6utVnWL{QhnKfpcd z{Qdp0{`{TAa4_uau<-X#bfjh?1O)!R+$;X^=KgKx?=<~1>rC+Xo{7QD$3Gr8PIpwg zAnU=bj$Xe^U2Vy{OW{v{`VQKogXp{RpGo@WpX5Q`6A{$a^!)(3D4o9jUucnw#v;k)$EtuRXp zf27urwz3cI4Z_?@e9s*{5^!?}@q3^}pYx@TsspDXP`q8%wh|^B_u@M$p%k=#HCSF-hP2V?F45B7&+$|3fFF)3@J5fBNpsa4h6= zFRlO4k-8oxy5Ia=2=}+0^eqMDTAshJf+x2Q`ljmd1xdN$>%OGQ_tg5)cGk~rXZ;2w zNEy7g5`KUEbT)KFqnyL9R{*y-f9$=#C;7YhXb=9r1VL5J-HIwk0W&}OHICuf zc<74W!rwE{ky^H&@Hca(GuCg14r)7pr`fkFPXd1zCH89Ge`#bOV2N0`HVfd#${u?; zl|TLI`w`;O9YWvlKTguOw8VqHzeP}0)3^T-ne?5EfSDhCPhmJV9{TndLf@;=k$P*W zKYgzPaoQ@s(&#%Ao@dMS?Mg+smDBeYtfh7cef#}2N#E)tJm~u*f~uOnW1x%D=P%b1 z{OCK6;aKdK(DZ%eFQD(nef;TrDxAx<(l^ciXxyze^xXq_23tFQccuT(5%PJ|M@jlF zndm{^cM(+8^qqpmsdV~sEy0hzw=x_H`OFN&c<_x4pzroY{`4IM_p_b!U4KYx=sN*( zW9y)As{OEl3@&oTUwx;__tg5)cGk~rXZ;4OkF^bcfBp2-?j6M6lRrrE_worI{QVt* zs+zy&Ko_O+_euoJ{P=qn!?CchnL!;7e)T^1d-$II{JnVRw)1zIej0_ySbSxF^!*&}cU$FG8htmyLTZ`5zXwll?esl*KnKzHrgxI`-E^=AeMg>X>H9QvQ96CU zN5IODzFDY=`TI$Z(03?0QZo_OhkxwpKLoJ6(pLJW*&k>0Zw-B)15a-4^sPg#QHRXm zmFtuA%^&YU-xH6w^!)(q+UfM|H`1TJJEJD$bC%He7<8nrhg$KY?Ft-)`Elzn+sYrQ^*?H7{hgz2?f*yM&si@f z`E&h#9{kz&Fw37eWAP}RKi@;1h97@^bg1y>#a|15_C`nQxE=iY^WlBl&7T|L8Me%y zH;mpo`E%YOZRL+t{#@10`dMw}?;n9b-&>R9&*GsT{CP>#^5PFC@fn0@#i?y zg!~+Y#9jJ-=twPtYWI_$yA-vZKhxqH_dvt7%%5kB+&cO5l!M#HpSQNN{zq-D|0D3{ zsOOXXxunR0Ki@^r)!4s#W%B1u2&nn-=dBFa!v00#Ano7Pw14~f^XG5&Y&UkhFW-+MO6U&VWQ@Yf{=S^nBQIFr9dA*kWUU*k}d z{KX7s$Uk(XmTl|LUsr%t+v-23$G_kKw#;A0!wcIw{40O@c0nYsL+JZ`eUiSVLp(VIj6m--}S{|FU-_ z;87G!d&42&2nlEqQ6NCjAcEo2aHxp}T@*0CBA}oI1Oyd`k|-(&7*JwZ#T!Hs6ctev zF9L`V4!Kmo6E6_&iNTvs@Z^81kC~oxce9%iFnONN?DR}`*Hl%%RbAcFQ`zNv($P_p z?+I%R`A#_5LB6jc=qch~DR%iz#H6>Ie5X>l6!9-E-th7NJ> zts?th&t1OnBcvChd_O{XJb3?IftW<)kZ%f2q+nlNzJJtLf0Qt~LXZEL%Rdoe`70wV z-zvQF1MnFGY`Tc8j7=L@jv~=yYirMff{zvxaJWNRfGo~J+`w|sN<+bmT01ECpWUQ_ zPl7SBD)?(BxGQ)uNzi6GsfC8Hk0-k= zoqjRrfN|UJFNkGtT4q)JS6hvErnf$v@^eXa^x=Z#hCV#q%0VB#N0gHT-WV7!t3Eu7 z$uBp+TT1cKKw>YfWCh@TSpW!DF|4=|`?(S-l>9q|T+Es1iI_@>qP z1v|&KNarRl&9Wb-bq4^$9@*-@qnztMshsQI1i?p_Kg@-2+<&|=9Q~+_PaaunbjJh7 zJ9NkH9b|W0jpws=$G;o8cgGl%M0Y%Y7we9l(2#cH!4m3@j`Q<(lLrM=ieUb6BCLDx z@yTtN1)_!y{rsc5e3zBN9gD{LxK+;^@@?G2LB4}dmGa$vtX;k*AmHZ)w=GZ-@?H56 zlkdf7NPFlXclnM+Y$-zdo(_jGxO^Y)R{7=o0M;!a?(&_8rIg{y*JL`gv}Z5~2`=AtqM^#%e|JVJzW?`P zL%stWImmZzTPfdWnEbKIcQ68eZt@+9l7!D#_y~9DJ~X85gfHuc&kbR6B9!m!gi!kL zmssagIq*4!JRLoLbW#mYS6Smn-_a0&q7osmKQg!fbcE%v3cI|!eVUB9q^RK635yK< zo^Z5-e!qsGsfd5W7FqRsVjXw=o=V|Xtbcl+>G#V|L%;X`?yldb!#4?6zb*4uf7AOX zLD%>GDAuu6X8f83UpXrB?eUZ$-`NcuVF0n0()R z67oIvf9~@A`l#^n%Oc+*1S5jWw?1^Ta^RPH|E=>~l>E!V3k~@$k9UyoU&&Iwx55@# z<+}<(ag*;_l!Sa2Z)fuT?Fq>D^xxd&`@WcV2xt6Y@ju#Vq4*!|p_7$ezFA*JNxl;w zH{|9L1c3xKhB@lLbcl_$^i;{hMo!gy}_9fOkOUt{4l{Oe9=NW1Yzcl}OpkQp=WOWcPNEJfzRvc5O*IM(ssfDbc=s!;{LK-T?-pVCKe1*n1p0d?$1cZL>3w`6i+x}DFgl+B@-eg4 zIDR$e=<*L-nR~SObxv;WO*NA7T)xs;_<@x_zW8M|lCl4HW3MT@XxBHgKoVG_6Ucv+ zjlgKvXL;V?xjhB{M(1`HzsBWu5Wn(rPZGZ-Wjip~)SMej52{83YM*m3lBbJs2Xl8nV+NFt0V@mEqTR6~XFW_BG z!9hF;9xSg@F`Twsd|aItmE`ZK;h$d2o+5@l1?x_DifSZ9_N)!WukpFHz=RlIX-zut zr^Job>2a&YFYBFLz5CkeJhRFG<`0m8?Nkgpn+vLoW0i#;h3N<4m-%MYNG@&Sa5;Wi z`T<XUDKz9Qeq0zBaHP7hd=et<5<7X|k&C>|jE0mjdYZm*dG{eH-= z&__>qoWoUI#HGSe9*qgn{CpMNo*O^?g+9NV{OI}VqCcdEG(TTedxZ?eto@~mpAylk z^o8}W3hsaLQN(M-cj4pv_|-l(to9c+z*pK^(pxI|8=PVTqywh-FDs8lrU?YJsqsaz z+S#;8k9%pWy`YQeh zV^l$C9%q&QspF-p{ufNGgril}|AH~9s{cVpf)DGf@Fy(%DL4NUo_Fu$RBhgymeGck zk9c*hW^4`G^k=iy11m%0mmy}CcPy1m*M?I``sJ^_*o|~>3+RH5{+XJm&Hhe zZto&)PvW;@j1ufkH$LL+jVc=32R-ST046l34}ScGvD&3ySsq3Xnw4WX^&P|_K+nMx z>J6v96;ZBlNC@?1VuB!v1)bHHv!8gEg+bpyl5L;YxTwHPdVMT^?Lh7JEy%)I8ukT< zVRB4m7qyc8{9ZP4<4T0L^I3KI6ViN>Yauc{(3g7?%PCAxJGhyZE67Oe^e);QxIZ^J zyKr58aVkR1Nk$f=JWxykcD*%`{fb}KFL@NGOU0rNx|wQ3g9vEjiDs}S>D13#NWs9h zB=6usP|a_nW>fub(fnFL0o%-h7b&JJDgyCF_uFTo@O#$^8^0TEcH#F;w5ko<0p08$ zJyiMfyBd~H99jGxv)sn-r#8CqyEbsHV)^|OdhwCP?|+ur_kA0E~yU;MP$ z!o$keqd?h+0-@O)l4p9ScZq~i)JD30|1bW+b)beth2$-MzaopHmjtkK#~g zYpuz#3&s8{D2xBb;$PkloIQX>4&3I4!*;m+E{+@zpqYF*a{#T}oHHkd5xnvTqk+GA!J+0sQ(#xor&2Ki@f4#4%w-HjaXVK*LSHeMW^8f8CE1uEmheqP+aHgL&0TtCemIV|`xu?Vkw7XD0hO6-7HZ z4RfEc(6BKi8lv+2b7xuFJ_OJI+)fJ(p*_FiWkP_l#LEOsI*T=8v9_=!+R1^X$#pVxi&E`(L~NaFfrWruR^{AFh5L zZuExxeBs`I==s6dAdlc=^6aTrt~c3YCl1mSh&4M*bHp3?)t*84S~%W za=m}3&yU4?f>Y)7{GE!)h^3A!$T*v|bg0pmCXjAEGmb94c%r9*uI~yo%WSFw@rmt2dr!V7PE*=Cj>VJDbfpq6Ol1 zJ$5WM>!q82k+(iawNacLZVBEyjQxU`c<`+JjnUbUp{!%4 zu(U7k9~H{|>!j6+mHO!V-$AaoFYqqEd4~7(4|2V)zZ&FvBbsLNp#OK8*6_HV zMl)9)*Sk*kzTS*pfAJ_kj-v4%*VoZXP><^qgVg_Lkn;8CdDlPo4)5!Ar+HuBNz1oA z=-+(1_x0sVysw`ckRfo`g1JinWTux{gVgwC{#b3RwXYIZ@%uT{`SR0zc}*EO=1++AFv z$t_H5VXxQ%1tP<-zp(&HJqph|HwvD+Y&z=ti_W%@qDoxhN{r={HP6 zthR_2e>&f+-#>M4N=<^`nwQ@P``c-QzhGK&0?V0}oXU>4nBd3wE?c{g7W)>;{B&@h zUC7Z+f8BH;iO-m#Opf-mSW%zuFPteV?1lJ!Z<^q_Uu0YazocJsR&P;tpF&?RUh_b0 z1)Kknyr4JZ!5Fv#7%I{)%+%DTBg(@1?(hd@CX-K~l}-df@}wHZp%|p5>KT1*rmIBV z5F(sC+na!2&iI-9`8&O(CDF>4sT+tv7Tq$qUiM!WeZejf@6(t+h`dz!Zl=YfVcee^ zX8oCA-hWJ(_s51nzpkIJ&kCxa@GhP8^C2t=QWRI!&#cwB1nnrJexAZym9X{m9~yc} z{pXf|Pm5=r@cb(B z6^#oj{~0Dq{&NGN@SkTW{HF|+|0Q=)&0+KZ=SNUX^1lZLaHjr}HIA-Qf4Q3oXZ-)` zHiQ4{`N97zTCiAw{Uyb9Y(Z9or^6yd2#O{H#tx7Cm3V&!<_WQ5Hy7^&y*ji0r?-LZ$!m45j~4hT4C7 zkYK~thxHGknAC^eR(scw0&7ekwiDq@AG%{WDfMBBz|UD^7t0wx(I!5dP;7Va-=bAa z@H_c8ccB=X4f}Op&a@Xr&=5;7H_Y_Zkn>!bZRUOiQSa0FAaek!lEz*Q-}_%zFQjOEeMxh zUiEzWRr0I!`ibuYQCCSSoRR}tc^^zFm`W!sKYuy>tj0c>6~@QI^zlGd{VwpJ&QA&_ zoUh%Pa)7}XcHg8gGm#Kd@!bj;FQ(t|tLr6qUz;1xuK6J|8a0W z#CidXqB^!CH~r2(Fe3K^SvdbdPiw_*^2$&x4>{95pwyyKBsEXc!mpHmEw6D>^Wu0F zYC%aizXHfjh+kHlZ#GIqp#cCfHOZeZ0S|$|b+uA#Ug0{$?8fSl^4Zp{5h5?Jq} zZibv>ZOn9x1$rkZ$G-qax;oYzAvXnASuj`@Uwfbip41<@>2aX{Lz-)jKK)B57E}@R z-zDA{i!%TBQ*68<=pRUPjM3-+V|f)s|7`tju>f@fJPEpH({Zl8E3;i>(aC|acqe7s~?e@#PWncmdqE$?n&%iQ@%;XlbCZZKBFn>8+(g>e1*_XElepG0mK=AYv zrCSIujhtUvQ4yy-H4y>^*{NbRAG|lL7j$$`+4p&u(-?~Tbk=i<#VVKIvYxZ{mt!zy z`rdmr*K=$A!OpGiSpAJ`Ln)>^fkq(wE5e#cTh_QCNmoLtAhG-};Kan=(PWkDs+5GnEAMh@b%M6}tM# zEQfAtA-?;43X7~!pn$!^NY_s(`5c*KYIxoK`?9)Q^1A)}jD0MWUr)f83bqhm>!!A= z@w3)cQ%khnoPM;zk4E$(89(CaN9*au@zbU-<-vVav=u0-&+ehK)`&9I!gtX7Nm4Qk z(-QhS(Nns zxcgXbLf`B1GezIK4rAAazPIIP6{PQ@u3>Gv===HnYKZzi86zA+->>6mhf?1!?QPL_ zKV|#}^nGL|JYK%Ri)kn{kb_eZ0KVV~Cak3RA_Cc4_*oPbp6b2|Z<|38TJpLtH2ys^2POJe*IN`R*ni^qyT(FE5H}20KX6Gp+H#(3Qy0Gbr-w)ME)FS^Rq*#@S}QJ z6n+3@9Qg_#g1*0b9+Q>O_t*JZl=OW7A_RuM_u^-YzMp$8yDs!Sjh|JJzPGdjyh-0{ zgbeVc?_2w-`o4;v9ZG$l09LYKjC5$OqKqS7-~EA_bE+S0tW?H%f#v)r%lT-_`K6Zg zUY7H&mh(22^W!Y%wJqm=R5R08Vmem`aLg!WV__fM@y*&$ZDC;n!esmlwa%#61mJKvdK z1!%?EA%DSmFgU;76nA;?>uGUMMeu7)4~1XdNIfFq*Dk*^zb-{9R(`EToFF*A=8C(# z_;sVWry}@ucXx$fbx1uT;nxxuhqVn_vGVI4ye}D?U)PAcy!dsVxThlcHKd!uuTMxl zBH`C0G2XK}_;Z(~(uBso z+&bW$Wf}!Tz0PDAvAzPUAi7~BJ^7}FcvphPn1PyuhV$P^Jv(j5SbpVEH2O@OhZ|PV zVg;=QV)gk4V)ClL)v1_QaHck7P|3kfzD6`qMQceo`Z88f$=-pQ!>Q^(Vq5_o;u_&h z`vfB8v<^m<F!)IedrpBPt?~9+d1#>v;=KKjMzWA9d`G2Aj+1cvtjap|BVoin`tEe6BCAEq+=M$Yhd6C}fz zW}6s}3eMDi#MF(A;Zza~|LsP`@JH@o41e-wFnly1gEPDoRAShk%K3oj23eUPE3;Po z9S`6dD9wbJPObOR!NO@%AK7=3&tHA*!9AP>S5IfLu+-AA{Cpsm2O#_T>?1)%?F^|w=lN2-p1+T@Pq4eaE z-~TztrK9b?L`p?mj4OGLU4;4+rl+uI#K>8@emlwc1JXZ8ad@VtNbQi$KijVD%!(fmU`C}9;m1(sf~)v(aJbY|fzuJ;$F>^`hA+NCWw^kPAI3|D=L|M6 zoZ-jw=r(Tn@iIz+;U`RH3?G4pv^E%%hlL+M)nfSZ*#Q%N)JN!v^>2Y6r{#)sfgi&V zYEkiH2A?HMEfx6D8)UHS0zazVD9#0bbcZQa@#8`~C7pZV$GN9Tsd(W>Q#?mIq%)BE zAYG0$25Ayf0O<&ThoFz(h95nzlN^k||2UXqsPm_TRCN~k(d;^@&I@4rtp3O6P%N7| z3;g(+stzPBna0%lL7ZuqA)a8xk8iK7RQORBs?Cg`?tk2SwS~_S;m2Lq8w|htGL_*1 zKbDM>3{SD|A z@T2Ys(ccAryeIvUzTAHp1<#4$fxwSnAY&Cj26hzZ0zXFg5$E-J`Qh+WgW$)4ko=F! z{{~(lO+pGFJ&Lph>2;*Hk%D%RjT^ZCF%%M0 z)S3Aok0AzYQ)hu63#sZr;+PYT#v!gh&a@_oOjz+_O}|QoA5F$t@#EBy7CuLWAAQFf z3_rQQ%5Z@nW3G`5|M_AQ!x?_GM^CdcT;NA1lmx^7Zo(M;%@{EJnXZ!IA&y_h9o$Ld zm%%Y9>iFeP;Sb31OTE^jzYF~6(@C5Q{Ae!y5rH2c;7L^c*nr3aI~VxzoxCparg`~ym1#g8F~f!fqr;Ky*PI*>StX?0v9oN1rH>9pdN{8$eX&Hl#^ z65!-GF(Uk^f3?Bz@BdF_xWJEgS4oC1#e|~5a323a5Y@(Tfgit(WDKuIEd=7891Vt# zMlTD?|2Xw8h98gAG~vfyIbIpd{ey`X{J5Z%89!d>AkGDT%!Ui6;>T|?9wP8#+jwzZ z;KwUt`MC#vTs~B4zZZV&ssX$}`Ufcv&(svD9nu*{eUO57z9ZlUH~d%vrbmn)XNj08 z#ZQmFP*rDvA6MW85&!6IQfD6jKzz=o&H_J@sp>%DABD^dL8 zAW+hbA1@&8W8!l}__1vSXEHH-aUYf80zZC0P?a-02NQZ${CFOVSZoXz`0+A@V*`nM z0UW@O5okzjgN_^)e*E-1!;jBuoA6`wDWZQ1{P;@Z!4(`&MqoyQ;X_}3z62~|=K?ZP(=Ajq=_t8$jNM;t(5IrBiS#Tp(P%LRg5M*-PD z;`bb~TcIKCJ9Pc95M;@(3_(t)Z$gl5$BG^<5act&W>}9G2-2pFI2QH*Vm{Je1b8TIO#bLwwGr z%mP0aQq_UPUCa%M>yI<7$;ncg4g5G3E=;AukHOGOrsR4A^|WLQrz66T-j{PW6U$S2 zsw@}yaSg(%oaH|PTNRcw{5S=xfov=n_|bs^vVp{_;p+jizZwjdKb<039%2M!%#S<* z($It-rC(>Xfgi3j zFb00KX(6TJjvtRT0A3)iLE4V=Inqx^2a)3Oghv281bqZI{D?`F{EGlTCX1LUDf6JS zRb>|VF%LIzWo`k(rzkV?KZd~Zv?;T|kKt5xAh9WTryJo+`viuZ8$$y>UP2X>3O~NF zjbQpVwQxEj{HS*+XEU)}OIKMg@S`ols+{G|)5=r>vKfBtJ>7xj0zZDagt2@vLMXtG zCkBG$R{{IN@;};r&m$m>O!#p@k8w~|6+dpT zFU|#i+yu{5#gG2+{M^I;_yg11+$(g)kIxf<7f1(@;_*bykxoTA3+Y0npq=jsxWNrS zenMw7dDUg{Kh6>{Q&Q&R&s3FJ;KvoXfh+SDw5-!mW*+~5+PL9IGF2T&eBH;U13tV6 z%KR`)h7~_bYF9G+=n2={?0+;tXE1R(BK&x(A7?YMd{GaTf_ZR2F|CkEMrusbaV;`Cfh9AxG6sIDcg>)g( z5TtQPlacO5Is)J!=p(q{#|ygu7J>h9u&<%apLSK1S>Q)A1XZ~*FM#1wl$pmrU{>7l z<7=uK^S2b0Mf?M2+GWrRD}JoO+#OSc_-U0R{_$c1D}H=0U8JbYz|71tSUxIEWx2qQ zXAxHAEN>65USTnI=_Nc@u>;##30?YrY8%R|JEC13FPM{^T?43hB; zfghL3@ruBY2^c1+_^~lToD2LI45yA=7x+;aE6xRe9Ox^~1%51bo53~4FKcj1F#H(O z40wSw8R>4M$Bq{qs>}jEcH;)F%tK-L z6lG@k@ff0WHf0v$mxWYyAn|REAN_HrH91ZyvoU@d9aG8hV@5M8empE)q^RIW@7|ov z#PXERD$50aT!Wx0XZeqqK2ccC;~#AuST69R1BGJ)iI*|tj{E8Yu>5HRKEoQnjM>HG zAFWLI@mL+vzXg8W*-o4b{1|tJIPc5-lkG=~bAcaS{?SbMF9P{-{bN?GN4@!YfMr+a@u2$BHxdB^tJiCtiZ_mC~+^wBZ{*1dxn(NSt*lWn`PlVp9gA)KT*{csqpE(%59^Wf zN8w+Y&hh@C>_60Fs_FfQzVsB67tSuYTwedN`Xc5(>9_dUmD2Y})`tF9U1uA4mJ5IM zt<{&MXJ8BM8bI&ckcqQ#RO^!;s_76h&rDxNd zry^r7Wpr4HB^M&&Q_4tMnWSfIrHuHMv3dq=RIxM$W+|*)(Pe*2BMeT*H|)zqe@l#Z zP4qXQ43&N#WvKN3gaDC={@utpRP?_YXQ6*3WvKK&Lm4XlvnfO6{~gFURP>*Z0gQ?N zT`5DQKZP<>`j4dymHwlUaj59ujDU@a{vygy>3@ncRQeyF43++A$T(E=4??8CMF07e zq0--#GF19gC_|rhDv_{G7c5}TQOl^qJITtsPr$Q43++eC_|7N5#}=Se+*@)^be*CmHrDTL#4kPG7c5}r38km{r!Y8RQk72hD!f( z%24Tl8X1R*{+Eui(7%8(RQhL8hD!fr%24Sai;S|;Fk#J zBundsSRc=)jYk~zXvZ4S&OoNld>@QP%EZr?&DAL4LcR}1YeaK-6mby(#Yz+r6{Kn3 zHgbp}Qc3KCQA$C{K;kQt=n%IAlM&j`>LmxUJA5_v^kICP&pMVe{O$a`f*&6oC7;{O zkJ8_@aQJZ)&6$8j6jgn22vrn+|zX?7qb8n;^J4}AsaE~i2rab*_Jw}D*^%*M`0b1z0g5tb z0GY~3KTiE#>VZW+&}10=_*R+dcqvljbr%B>ebLtlXyl^7!!%{P-qS@?#WcZLIq76tvWhAJ3vB_>qeh zC%}&}Xh>^uP%AI}h}WF;;|Hu04MRUR`Z*7XANMwK;Kv82N`4G%Z0E;=4cz%L7bU@u zuW8+DAntNBq&4`r-1yNbNj|r^zl;x$AIr`&_;K5D4*Yndz2t`NIk3}x}QG&rj82q?BlkX|KBBH*1r%#2sSbat^Q#hg+xQ8KQp}g z@BAW6`fvSO#3e$be@)FW>2DTZ{atW7)A&&Nv-+#B=>Hah?vU%pYmM5M{|l@Bdrl0q z{@cQj-HFTNC^Q0k<7wb95 zV_yp?j~fwcvC89BM8MqSu@WUAkM%`N9$znnJW_wIjPke)o<->L=z~Ff`N`w;Ck%PC zsOun);Ym^+-(j(_RUWO;dEMl3GD<=ozrDfa(GLx2^D%u8Er&?y3r;`7=pS1#_6S`b z13oKHd9-`nkjFi>9pv#oqN+S#H~{{fRUQwZ^Sa67VT#8F62JO_$z#I;$Rh!xtI8*j zZWxt@E{{#0l&3r%oo~n^Ce}e7nTYCgd2E8Mu*#z*IQFp5kT{-N2*h>9L7P%q z8RfAUhB0(`oc?in$|LSELmt;1 z$m3^>fhwqfj5II!g>w~SS^-qqudC~~*vF2^X2otyPiHgm#c%dK zVsUdne398{a0-C0svpd(;twfRmHuF0#k*Bi|B}9+9Gmh$7!67D51gFK28{NWx};At#YlyGQ}y@AXw80w z^RL+!L%t6iss=Yh&{sH7NZpMZE9p53jUpn8CNOaYQRDpzFaS-TFO)Z+~vCgZo8!K z4X6G)`8%EHL&3kl-ZuDm>*qQtM*r<1r|1q1|K?ykEcrLxssEn!txj|~@NXa)$!uuxg1VciGx0h|8C}ja?_P5O1U0e3DntH-7rN!qv$( zDv6)IOlG1Yda*$Na8=MRg^i$~tyrMe;XniSn|~>6C@8}4FE>t(ANPYUW&DUYt-EVo zVDN0?M=FVUa5t2s_zK(bCGPK*7(Xukl*W%GKjZZX97=G&Gk%E!<3j#~9=<%9#tr(p zts$)qs&Cn^Qay@Oy&9oZKI+XdQ;nCEyK9pXcC%4UB|-Hx3c>~w+i|LYPX^V0LW4kV zH%TYS0xU~qj*!-ieqse=YKQnc66uyJY2q;u_uBlOz>;Y(Q--Gauy_4H9K^S`#Fx3_ zSNrl0jLK^zRDwPMUQ8ZWwhZj!BWauy%+aDVR8JgRDnC_5(*dlSPI+DRYCv90{(+8p zC+Rux_o~@yrtgrKtdNSM*K}ImX?i(cQ|G*7J;$-8x~Qb|di@?o(D2+#%o(F|GtC*} za%E=_&ybfZzeg@ICge6S7a5qRbD}oq#8WoGVyQP#UHXekwZP-{I@K@2VklHIJpKubC2dp-Jl;n^%|PO#XECZrq9N_- z56XhaZRc`4PPmHUu{N>_j|tRt;Qx=}aq5T^->uMvZAc}rI1s>0fkyN)ZQ_b*r2v$zns1|rU93?^Z4}4kQ zhggHHeX_kQcs%z3j>q$_Wq3RRhbsTL3XhAghA#|VxB}@W{BDNh)@$G!oCjGdzyPp$dNM@8@y63~4peZlrBU{~}f4 zu^CSzJu5pN_raRC3iFR!Q;=8S@h@Mf$R_Z(Gs3ex5?h4H0R`EZfBe6X9FR@m@t?ml zWV?@ETMERjLR?nMc_TV_+&tc(y1R*LfycL^ZBBKJnQDf|XE{+V@HmrGy^CHh3dAkL z5^HVchO*%CEq8J}F20fB@oXHb@VE+(_vFDBhA!NSGzY)W#PRzZ;2YyO7U>G4yO65z zI8p>QmoGaW&%sL&6^6$TP>@&P@zBp4@OUA@vmDt@!nBqZk4L=cj>lJ1U>ETUwoEtf z6f~smSrZ*RzFVy9Cja=^PgSY~9{>2Wr20B6r&XwCc>Kb<4pa*~eg!2dUO}5H1maFa zL)yul>M-Z?N~du=&YHyVI0c6)Jg&myoLk@vPejZD`p^cyx8e8ANV}2#Mfwq`8Lm~~ zu^CSzJ+t63TR#)p`igFNQLK!ax3`lp))1>^=OrM-Z3QvQ{!Y{uS#4uwbDS2dozOnieI{R8Q#Z zD-KpSs6O6AwZP*m&^D*~3s?**9yfQQTHtXqr}_*|^@C_gdw2z-npQV3I>o0)9oAPI zOSg#i6@w;oJl=B~!{g;RSn#-rt*;2Oc!9R=G}Z&4eqz~+rUe#Mk7r(}W&nm=;)2hG~HXW!M*3JPn30p|E*E zy64(p%Rvt53X54WQ&W6d(1rO(E2gCQvT>}7l!G)2X$sO(q$)g)6oJj<%Z|r?;>GL= z!{a;(@(Mi8c*g;cry)Gck*yY{wG?Dyc-(WdJ071;f!#o2C)#!<5LXWkX~nNZ2am`7 zYfxRdL#0~a@wRUy)&IB6L^bn|@80Aj_> zRUjT;B3ADbvbET#BAdYD;Rw%i|M5>TBLmsTO$r{3nv?4rZzu9*(hQQZ`Z*9-Hwr(zCMT z@ios?ARfO#;Zorr-&3q2o517uKaj{aV6`2OA1HD_Hi5?vqa={+JrZY9P{%AE1g)cf#E%3M>N`mUkDUK6}+lVFE+SW(Qg2#nd zay(u-kKyqQ9IE`|D*yPMN8k%X7jlpa@H-X9PalPEjAJ%Z7Sa@?Dm*shX{2Wij|bob zvDq83p8=Z#&Ji0QWMVNvX1+#yAY@|WgUr+8?|7f4i7_#s2@F^_gm>iO3t30*jDzUN zy_0ja5)7X4rOnim1#D)Svf|#1Gygo0VgNOiK*FW@* z@qQv(D?-$)ft$>>iD4hB_(!Z;$iYWA)3FaTec*()w(tk=X)J%?flkFMXq$oG7W=Wa z1^blg$^`vE=OWn7s*0ahh|HDg`jx5jN-o=yDQ#nBjn3`JLrbH5BEb8!(!u(NM{~4` z9ByxGzP+9PS<)P>m3}+>WHzfk$#grNFp1MT0kB0s8<^Kr|D0)#_Q}IKFQ6zLVoGb$ z0bkn2e{e8eDL6DYQ8~-Vt%W-~`dEREF;t)<3S`g^uraST{m1}6hf^U&U@H41A780! zphL}_c+H(qbHC(HEB+6R)pjkRy*PU(r_IQ$2hk|JWR)@57xv03Oz+%wt$((^Ep7m# z{VQo(2d)^UP&B?n5L;K0Be(L-(YNy6Ox?r(Qj(T+8{hbo?nz*!{rPLL9b3O-+`NuH zN8raEm)OP|-<|DUxP^+P`2+n(XK0UbY#cuLHSM7Oq1YU4oNPO{oBj#f9PLt>%hzSN zQpG(NmN(%&a`4dun6V(c1WrevxA8`ySWE;O_4_S}BEoRJ5@m+*80ckVR z2&CCa2auK{X-JEZK0-Qb0WiC63@vS`Yy4HCpVjNu;5oQX8*tRENvB8Eimh9>THV@p z>(+@B+y0B?%Z}&2Udr*j^J0eQHE>Yy{91vu3Z5^sCoU*mAQ2cGxPZ;ueqf5R-R;6>%f^9%9RB;c~+c@6ov z!O$~Fn=&y{JfDd-WfeT1fv&?@t-|m1GB+4SsoIaX71V%vn*xD^OpTMp4V8)@cjK3OnCnH z-5ewU-sUR{PWEYw|n6E z9R2nP@jOefh}`W;?w^0QC{jEh3a6W4YB2On(w5#3DW0#wav}xKzkxSw$MfwnHyA~! zS~E~2{qqa%71Y`A{8m|Ea6ErI&xGeG&!zZ&eKy6{7{^gaHIdSgW+M$mnt|j;nt=2a zQWc&b4tRc1UykSRzsm4@Ar6Xvz7IM@NU7j?{QV-!!1GJz3w#xL{=C4~Qi122FptRa zSKxUHUZG>>0?!j}6z2lZuLc6M>jKYz!He7MT;TbD3F2Jf`K`kLcgFKhPs)xJF`lo5 zhr{})E#C69yb_v!KEdI34?ORs-yR{J`}B$q13bSAY7m)!-r(kt@qFLYk>dGd7$qur z{=iLA?NtAKvdj&R=fgme#Pb1oHH!tAYS2^77f#(7J_6YGjQ?KYS!1E_(M~df{%n(uuhMq}U z^5c=>`F3cjg6ALO)b5|Jm$|_xO4aT~-;;Qr0pH&l&##vi2FLRZRH)$j=Asney-3TE zVwb1*p2YDZq%{0KfMW`d8jg)|JQt}7&kqMYf9Y(F=ecVco@e5q;Q4*CI8rKjzD@+Y zm3Yg79D%O_&-*_s&IO)7dyhC5c-}|G%LSe%OZ*mi-t-x9e|sJue|4NV7kJ)gxHuPh zK2nr-#`F8&=0yq5zkuOjRoVRWP4Y@;{`qW&+dc4nw0?Vpc%GzJbQs|I4G6c~y9R2=F||Us!X^ltw;(rwud}FPFPaOP+$M zXR#H9!-|)`a8<5&+0la|{NI}x!oP)sK=_%g7VSF$uO)9#sX~#v9KH|*MM_>!bKeD+ zvfMdpZfoJNm*lIt&kYqYjfW7GK8p^?A}yEeSzlm)$+FJZv%Y>zWSy>Ot;Jj4>@Lju zi@F-!C$jJz4w02y$g@;KFoP|O5jPx*Su(>GjA54qFOB6f{V5yEWAHHsS{_4R(XcO% z5fwfIB7{YF0{4j(GUDP)c`>)y@^*|fm<$|QklCAk=D}DgbFEk@BZ^(36l?2ItczGN zBZ@WCi=D7M$-S7r&`=(+$%dLSFfU20pApq=La0};%q2vx79UC<@l!KGUPzO>oW42A z@ZQcMbDaa78*y4wQ)`%ZaAf@I;vn@(4RT*zBe<~wt__8 ziKRB;PPW?S{^Tk2&|V8}n69t|H^mR=21ZcRR#KCDj#zUeE;N)ELL)O(dk;fuGB%?8 z)z=zSGm~Sf|0Vc^Tq#0i!+6vW+k@HgY=5V>v~>$nfBuG?A?ruZx_y0$FB2&T=>w$8 zkRCy*zX9bY&qUQNWoY_Enx zxtR@mg8_z6*;g(Xxh8wH6a!&)ugPBBj*vae%~xx<4h|f%F^0YR67dg~W!S6V#r#C6 zVXuC;PTXbKtM_Dx%dl75ZWVVK_NuKI$hg|8BXXIuhvPQpRM3@no?HHQ)RPP-@`$ProDOvsu`BO+RB1xoJD+TDDPi< zb!b@jD&cOcy*g1+W3^Xt@{ZUG++Gd-fZ3~4 za4_4ejdBLWWUr1A7Q#Hfih-ip?Nvh&5HpXjc8(PW#jsZ?VkK#*VXyK=i@OYab=nw_ zW!S5d5hBa5SMi7xGuvm_t3u3oQkJW|DgsGSwO3s*qGJ_0*{jC#VtDrI3pp!;Vqw^; z#d@)*+N+E8YTZI|mDyf>jMaD1v{yahaD`>BnqYVurSVlZA|7HwM);IPaz4mvuja`M zq1vnQ_n7R}v3N{LwbS_OOj&Xp3v;(QjJ1M@EIR1?^ z7Qb5}4MK`X@*_<~sC|J zW_xwnU~UmgOyjEo@cft+GmWqEvEGjv6vJLsLtL9>8TRVDej>}TR~L(*W2s@UW}*YJ zf`+|%zqiOT?A2U&({z`sy*lx#DBG*9(vfwtS0~7e;n}NibmuiJd-c3tEUNZufL`t4 zXs>$0L5Zfl>V?>OSoZ4Lkp}WdIKCPviyzX&%Ayj+y2K+%~d^PqKgK8&x zb+)WORC_f7^(*#@;)&8;J-9Q)*AHn5(lzTtCCS7%dl7Hz|~@w$go$VZxmUEy?Wvd-bxkp4Rcz!}3CCWTt9~AXBkdxnP^u_^O+%KU915>J=t?RSko7X|K-R zo#Ly3l#28KQWK=XNZXKZLwXHq9MU4B&ylL^RmIt%P+KzDs|$xjWUsQ1=l1H_5@xS@ z;9#~_8Ru}6H`}Z0|4-za=CAH>v{&z)EABOouLjF8kzucHxrX1U!~?JHA+ij6m568q zGhv3k>XR$7410C_nIg-uSM6aSJjYiXFO9Ojx>lmOlf5#aJ}i6HSk@U{Jn#z%rMXeH zS9j{w9**{E9-NwJ+N+5Ys6#UZNm@NDfVRZBn%qtcobb5+eHD z4}FuzDr$5rEX(n#ou9U_=27orT)e~ALxh=2cUUUe_u{>ptm8G=LY5P*H}3fP5ye& zn`+QI5V~Q*hcTEw2uklSkW$6aI}YPU$={1l*GV(<;U&b1g3{X+PhBze?t|t@dhf&P zG#h_kz%V5!y>DQIQ!(@&51p0tJ_#qsM(-ukbMoqMXZNWndY{QO=v)au^GXg#T* zMsj|Son(@Q2{E)!!tj*7=bt(pxjo0tpm*V>k=})8>G!%;zkJJdMDNrS-Y#ZMFEy-{2sy~f(rA>m4v-VpvTso#$L-QLQXzr%EY)|0(|2L7HbN2f;;fA4nD-&SXYq`yxS2$8~@^|u~oD{XocOn zM)zku^|xVXNB%ws$1H6AUX2jq5r+>KwsgjazjasJlfMtMV24eAd&}%_@VAct2;^_P zi~hF8yNrCi;K|>vEcj*P?_M^>L3TL&U5tsQBTj#RYT>NECt-0%2>ji9xg$Qzlx{^Z z{uX7Ot@{t(9Ete5J;|BB@17kJe{aJwQ3v~W3IeGi;jhZy=|>{|-tD5lS7A+E2>Lth zR7d{41y+U4-_}PW{*H6e-&ZgJ9s+;QYUjw`Yr(3p`TNF^h`$#$cgBasp^Yy(j&tO1 zJvN0Jf_+o*VMI?M(j#en5$~eE`!Kf_g8q(e>B!&bz^btIw_j385wzc#-{YNINVqoFYiDGZAwylmdv0U^E${gUgK5P8qdp9E1+niEKr!9R`YUX z;G;5vdc5t6N#h+_>N)ZuTFaXeEXAeG+MhHh(T)`pg$gp#tTz=fUE&;J!_|PktqMgh zv8@WiI;c+YtQz8Rf@ff7TlVQ9gDKem29X(283@#t(U6RG#WCgP4CJ|^Ot}{jxwx0D zjUv9&BWfirkSnWXVH@(B^^DpSC&5GUHVb>D;WQOP?<^cK^-h~v;8zm;8ikMK&@rcX z;aZw~5A;qRsP#po`fe&rdwO-09RlGWLml#($}@jqR;=+Gaj8pABoYlS}lp! zzUmmZpkNYs$pWScr{JB8hJFjJWTOwiteJ>@ap_iz=vRX^>I^!Ss~z6 zsdOLMCwqe8)loD=wBc1T1xAr;#;ds$O1I%vSCzi#x@?qo^0?*o6}wz zGMj((zt;Mt!xyi1bd?Wb!>fl+0w03mRh#1sW`%%PkHesb;a~NqA(aiU5-3n>!>dwq zQ*3xu&{&}_`grvt8a3n9L3lNMz!9o{^*@x5h~ervTl}jzvK0@!+TYNqS9gzWc(sV6 zte{$j;?-WP<&lls@M;x?HdS~f96AsGs&y-aPuc@`4aw+Wrt#oaGSquG`&UU_U$dM1;eYGjxm@O0$z=&Bby`m59(h%MXs(5ud=~-J6?4sa&36^@zDx>(Z{PZ(Wn`( zwkL**S3Mb|hUZ_6maTZ;)p_;l(S!L{rze^3s!+UY!lqbU{HuCc4O)d)!SU*4gybZj zv<8L~WgQQ;*B5#o#^b>p1YkHG+wiJeGw>l8UTujtm=ywEZPmkNA>q~UXP|Z)UM;0S zD{{@_!9p5a*zl^2N?-Kx>Mk^D#;Z031Hi;$}UcJGh zM8;heidQ2TB)Q<#U<_?!Kdc%Lx{n9@QzsE|KCMfCsTj8LU@b^mxL$|vc(51&7#F;{ zlZJZ1@anj_2D3uItGF21Tu69zE=H?%yz)^Ov*FdJLxgJQkZ<1WK`qryV0l_ zuTD)6PZ%;@eWUn6p^gX1OmMNe>F_|euSOWn+VN`#mO$C@>sfMRZ1~knr7!yU^*kCi z$OfBFJWR)rI}osO!LNsDXc!E?+8hWAzhrCvEf(2eucj1xcLbaN z^$88Vg5lR_#aRu(|M~?n{qh|bCfK{I1 z;a3+1vEhv$yUSKQ@ayy+%*f=7U$M&Ql~#FGD1Nopg85(j8$ha6_!SO*y&h+yzUcd3W6`J?zuuA#ZOG%tJO;7h;nzsniU)q(2yjp%Th92k zorc|d#Jqy>YYqmlLE>LZXRI1O8ZgHEFWUdLlh~i^X^I0FJ1N<&CsHWJ!Zv&SJ~R%LaSsw%3n%R6p!oA1fhQ%jUznD*P)@D$MtIHQC`<`>Y1(^`^V+) z#ruJ-`$Jt_T>xJEv{Z5QCDh+(IYs{3tjzc#_FiJY*!6+8^8YUAPOX7N33LD zZf!>M#`N@<(*Ari3Q_S#K#djb-Oy{c(6;qrBjI%IcEox(bkpXmXRwyE>-OoH*sKu5 zfDxP0v-rEEw6T_`^)`k@L>p{GwD+TRQYU`2FXo6@9U3E0~kX-{dL2s@5Q3Z zXBWh0k^AP(B~n^=fGDk^11tC2l>3L z`&r)dc^tKJ+A5iRzK4U#*z6{sUit*M8Q)T2uRY}R54js=`OE`=dB|t~u8`z25Vbh= zpSyK}6nwi=r`}sW)pXh_nS9QdsNg1_7AjpPerOj;%P`tNUkvnO48N&+<)P zpt{SU7hw<8kp;(~8pSyqARAx-NX3OK zM@KDW{x866n9y_Rzrp|8F*|DLe-QppMks^dTn7H9u@J2r|IgX&&Hq1P$b#^HCkp@w z=U8>2D+B*^fU@epZW+n{4Z{C}66NyB!2jiJ9?6aW>j7Jy`j65<_&-24P#N`qFajV> z`kw-&30?pHlsA`w|7mQ6fgAtN`P7^Lf5H$2;r~vuRczo2@ULw8AEUb+r>c45m-r#=j)A(wv?K?rmCFFyfiLN5OZ24Uv%OK1s6$mJidZGHayu;{1O%whas2Wff1g${Uk#6kjuZ0(3ZLU#5cn! zUjru5Tz-9$8~vH^z8f3g=*ZtYfhIwwK=TXzJ+#}lqg{C6+4S{+G-UeVsHZYV9UH#U zTPBF2X2s;TX2)u|*Rx}d_-U`5N?(RdP^P1`(j@r&luwm*WR>=@ zRXWeD(%TV~Lzzz2O3y-frF^Qi6RY$9p4j~Oz1%8o3KT?{&elrzVnI3OQ>C3*rB9&J zPQ}xUbL&7l=^)!z8cVLn@p;ViEjZn4zC5ns{RI+!V=Kcg! z9Y{=lo(^%Bq9JVzhGXy(J_c1paO(78<~MJ_IZeY)K|NXz$iy&R&(kH4@5dzzubLui z!KK=UlnR?hwjlQ?&5uv;;UWF{PJOJ}1a#KYI{XH@DixaTHp%vqq}#A{B;!~|{Y@HH z_(_`H5Iq26P+cqKK9DKoBZCINFR!6K;mJx~qm-mCX3$;Pv3adC0W+LY6PLrGCdAkYmIr3bDIpjoADH zskuhWtBGJRXdtl)|9t*~o5}nR^cTd)tc|`@$&JGFEWYI-5yGb+^EXWRFYYm@n6IEe zz45i>*7C#Gck~xfEcn`KBLf&4zV?Ea0arZnb)s9PlVG7y*oLpaV}TLnd*SOzZk0BH zBZk5@eElEhI4R!?U*DB)##qhE&m8e>_5< zc-LxaQ%Ye>%-q$@%4VWraadTU#DQ5fH%HgK`RNW@HHqzMs$NWzOLI)e)u{M z`p7$t1z)ei@D1o>!`F@P1;^K3Zk7J_t~0)7W3fXpeBJk!3#A(|Iq!t8les1E#Mj5% zD!m-82`aVW>nRvjQhr(e*J?uzd~N@W1HN8&l*HG42;^AtwIlp2H+(%EC4sL$Kf~~K zPB!p$$@{_abs}UE626Yd@GW$Fod;7|W_)dlbsS#!I*JxJIQp*|Ej$v)90tDLi*Z3P zeBHg?imyZA_;8N6;cF7+JG}ArUwYIke2oY`gBJG2*I{eQ4_{ZmAyveJueEkEfU)80 zIoo(X0gPLGV6l&CYNAq&a z>#R~6zP>K}+Op#7N?30H+(I|f*5anorgQB@HHqxMs|ZYzE)dVe)xJlJRC=Wx$hkYFgAQ${UXoz z!q=v5m2TkPpABC}yvi!|#MjMmoE<4Wkw-FY_}U!6LAXnly2W3|yH#4eoE5g=Ya%A# zP-&U{*R%T@_&WAm2Yh`IL0KMu?Tpa46<@DMu+$A-Z=`T;AaTk>hOZxA0(|`ea~Q$! z^%8V&#@Ar@dY*K2b3=*04vHi`(4FwpBR;SQcG?+VW0aC%;A=eA%?88QAAhjoYZvqp zu99x}nvJPeZ+tydEL|TcgRNEZ*T}HcskAq~KK@Gi;p^(vQbjEO>v^!&01_L%=EIAj zd@p<*?N;eUJ6K^GzP`epVo!WM#;wx7(31&Atxj<-jAtp|3t!j3O?3qA*Ir_UZTR{R zk7Se?U%$*U@U{LI4*2?i2+DGNeIGN4R(x%U^$TwJdMt%=1BvseFnqlU4QTU$x!q@v&NnVA5uYEB+TxS1uW|23(`Y|+d#@CCKl40QMHF&mQ__`4G#p1udCOP7U zuRg>byzzB6P1RM!2b@qbdU@XXdiD$Dhp%avVRi%;Q=_|Yd`K3d*W+Xw@RB}jU6hr;p={Zy9C;0SwC>w1qQx8|EUAM z{_?ZLR|=X~@%1J2aW{M|LP_B3(n5x>$Dtvu9U@D>*Uv5M2ezy02d2O+Gw}5l_w@sD za-l&;{%aCO4`s&JCKM6#@L%626m^Wh?pbY=1ir@5T_LO=n2ixvFnk@d$cnFj!Hwp6 zeygO`vVP#vP0D&bEDne-;_CMIOx!5wCN&DW|~7Z9vS#cF|(1+lV~s#OHxVXrs7 ze)$X+L3ymt$}g5GV)0);1Mm`#TD?LF=~2Fy|JvTI(pKmfC~U*mQx@}ls?=?L*2m~` zj-b8aIab)_zYgEW^S%7nX>OH%@);{^!`Gv@c`391+VWfjU;BROfUox;D9ioVW6WLh)ZG!E-A!z6NN0 zfCs+j!pb@0>%~gRF!1#**p6WM`a0rJX8-kEee~mouV)}a%cM!~BRS&h@wlT3U&DjT zun_9{yz%ul+);(EVIyXE1-$XKH!p(m@ zfm3S3*MA@jR9a?y9oF5z*Sp?yz}I*7NPO+L#g4D{!rO7f*N0G&=C{Q9*KWYqI7F6$ z;cMLT5b-q-mjC(-fUeB`>ne!U3twM>J$CkAZ&ON!fv@#2QxyzfGcmJk_Frj{i8sDZ z!hp>iUk6dB!xVq5iVuVbo*~@rjj!wGlpntO^hGz8_`o>CmH;F+eEscyo=>Rdwm$1w zpn#*RxnU10Y>N*hpzESBPkim~R_W7Eu);QcEt<#kz3?^0t5TfFgg7$A*AP#*EuLN|Q?fP}kV_Vo*O_jW4(62F@b!!bSfypg*T+*0eBD;;fUgY@l;!w( zKa7qQU*CndvoJWm_Q6;?Bz(clM*SWZ(3ST1u&k)MW{Wk{E ztKaFED})Eqk9Gm;ot&-JlcNy!?s#?fl}pO6j-jg2F-kGuI%&ku@qP7^QfS^wi`Xk z*5|1t-iiO}9oFaT(X37&?#VXj^Ow$NeZD)Wf@{^8=Bq(cHf^+U++AGP{H*W9=>JyQF;lL;rxkT)+=R3Y{?!xnvz-6D+TkdC0k9og}qXcw@l<^qvxiG zomOH><|9{U8Gk9Bwh>_4J)o^Lu&f7I)`PR`mbM1Vo_U z1u*ovp(#+o^f?`asPOgq%##e^)WLoe1YdlQ2cge>woBpcfW15yS5)B$eO|If3MUnYQV|Zr=dsT^2uJAic$9>2dfd*0(*+G_B@emk^E1;A z7k#eV%3#^)FRLsQ`h4?d$+CYiO{lPp>2r5XMZ4*9I!c0NwWl+dJ>C*5TlV0Qq|XO| ziB9@Fc(b05JsX)m?|8Q?`n;`~A)JR_RD~n-c^3ke9Bi^-C>7x_eV&IYeVcHEK0iSr z&OqWSI2tgXBhZj`9EN%Do1FaTk8e9%^tpSI!LqBCsw@-wy!Z{tvUV_E3d@*2UxVO} zjb#F#b5Ig2DH)2jK{Pes4V!&P*C{2I3w-Lt3wUUG=&4l*2`zuW4$q?4czp z%Y;6EvQDz>a+oiLWlW#vA`a%J&+}0d`g|$I&R|(JG^8~`kp9T=H`XG2?1axx8{tPC8uld2SPfWt$eOEED=%2eDyp(gHAF3d@*2zq!DHWdfgftYIwM(t)w8BO21q zMcn7e(dPxgKPP?u5{{?^pR=(6O!)eIMI%EvCqJVKN9gmI)lxV=KV=dQ)93aGz}dh? z=yNBOgg)=({>J|jA)IGsy6W@jn-3R#e)Cv^W&592Stj(k+v}2LuS0xReg12n1IvUy z`%n@rTfzN}VQ5IZ0db!rN1s~&(46$S76O|VeV&D7jN$9^T}KHA{?gAS0DiArq5SWY!>ki4mPdPkoIwbt3J=U@o>@Szm73jcG8n7%Y;5(jkqUg z*$*&Z3d>nE+lQkG-?XA z&@XyKWtq_DKN0ujESm)JDJ*09{2BsqHkJu}E~bbn;u|!m3BE z@12~gjYTk)scUY$Sd~M$H(_#_zDg0x79mhhJYw_CU&SyMj>!3Rwf_B>hqc%LFO<_< z|CdE&tA9hDQ~kA|&F1=hHiMjs$u=i!DfA;N8^>28>TK|$V^5<(u z{uF^)GyS)}S~mKx0QA`9Tkwjt{`YgrR{t}Qq`m%cL9LnoNr>;1h5vU-H`}EDw_a(j z|2()UWvPF+GzX^oFT)VdO#fmGUdmGciNGv7e@?RL|F^@-R{x8$o$Bw4r!vzYw=#_S zX@yWKKI)Mm);QsJkGlAsu`~w5I$9w`kn;#a9G)!E@g}tTCSwXcn)Uq=Or^u5k6t>6 zCVe+Y`FXE|QHUmeYp;!NeK#ZO5>5L0Vfrqb^=-nCA)56aJv6%YoextT5`AfW1!I0O zzE87*Elt!G;@KDsvDKfSi$0vL)s*Ikt;X0S`g=M)?{hG(4i+vZ9Xxn&a%nwQVPQHg zUrYivB;kk;#bWJbW?^~{_9K2-Rt9gjFjm{5J1yt%y!;9H#!r2%%>q1u>7$Hn@$!|d zHc-kIWBUEt2m*7u51+;MRhZ+!-zUl0apvz?FDX@+_`8oh3{j}U`TNWWXMCt-jH08czt7z2 z%-@l4_H^a*;BQYterNtJ9;H-a;_u^!Qhz5%jk4%(GuT9d%TeTSFARU2^mph;g*hJl z{f0a{Xa061BT1L&yRIhwb{K3Fs&M@+8K(0Q(RjnYorkDl^!ZzIi!*=UkhrRU^wt@F zr$g#4{Cx)mJM%XIt4U>{3g_?76LmhC_}dF%$LR1^{j`0u>@B%w`*!|K3UfU4w>5_6 zl2sP}VH(y6IrH~g1i)pX3g_>(Y@LrL{_ev-H2VDA;DW#NfEzkhEwD{Ed@(83Z3j%r{igqQ8G4@}Y~!#NT1VjY1X9 z-(eG+`TOB`JwHPGrt-IjL?a76%*$7p@61l?vgHQ5dD1;Rzb4LqQ6_!E@0yCO2nLHp$gaE$Bl8Y2_G6^t}y!e zn+ZF{YPImU7ZzFQo!diydr~CI**`mKfKr8tza22CDhrhle{Jvgr}#0n$7q=i?eXzj z4DI_O9_<#y2&H`e2+MB+;78IvEvty6eBTJm*Y_wtG81tb(+9}YD1?Kcj(n#z-Or}q zO6yP%=U}l2=lHwgY*HpETuS`^vv(!%Q58vlI7T8k`vMxkBN8Q%AV#Br1`(NP&=-vw zCCCIL##LifL{<`r$`MRZaL9_gxT32ruCCX*-Xh?!2@nm3ngA+?2cU~@9CbNVE;Zl( zU;W<9n=2$7g8PvlOyAYj)z#JA)%CjHcHj|g(Qu?{vqjVE*1ea;dFzZPaTJ0ym*ms& zeld#U%UAxG0sqs43-V+%>!Z?rjPH+=e_QyT_Z!3aFW3tHmiS=Meu6o~yTA(m!|(I0L4zEy@1?RU9pVf9jBy zl+!D!yXGLu&C78RRcG7*bxmU(GGL3stXRzw zBsRHS&6>(slQx;x%;5HxbjP@3B_|fk72A?aJ2LLt@$FF|bEsQ#`Va+x>jStM$dI9~ zd|COGGJB&5+^eN_6S&V&2Q1jO-eZ}--45M}%>)hr`Wtf~`y))?SQ1yhyoHhgaMw;c zu3J!%(K}zP1|I_|(h_gE;c_^z+)tmtEdX!uIm-_Mf}ARe5h|FIeAd({%*{Pqx_(nN zXhEV>RkoT!Od0TIpEWfH3x4{uaDz@}COZIWGPXw~j;V_s zH8r!3>`044hQF=ne;sd={MF(5-R7^Op}hIE_^a$cLH^1c9fiLhm}2qQQP6FK^OpyQ zWU=_`N|XeDz2g`D(om7H{PO+EUxRONlE1!za!h#hx4>WCbHQJHgstWB>y*q;{;H^! zr-Pa!z+P{$0PFHakioW$io#&0-(@k_+>wzCwiUxD7K8mXSs1MEW?``B*Mq@s&HEJ@ z?Dgz(!UR}Wc9RU|tva9>tV#KGG_1sTlfOPV`&Zx?U*79^7C7Lt)0eRKMbUOsUT%YTZ6-=5U}NQ=uyU4Q-^<`28M{@i(M==j=~>(Amf z!Qs{CCj0PeRO`>N<<{`p0p<)JUKy~nh!Ec_iS_3Il*I7*=)W?&8dqa@y>judIJ_d) zpEJiaIlPwM9T;922mJao>4M$nufM_&`qx^2#;pqS*NWmO{MBWG#a|Bx0onQ5bCY9TtQ2gGEHR02_;D#$vE>C--gpr^sK2UmJzLF2BviED zV)NHAC<*?$pEXpuK3fj{`qTOQmA`rqZ<4?M2|K(4kiSCLpPxdzVy^$xAZX$G^N~F) zf8`#QPi%2{of1 zu+mY6HO->OV4!L3HG33Bp~sET(5ml|zs0-}PLEzV*o>G;#76}k5@#t zw-3%EW3{&*RjySD%UDB|>(6kE7oeR(x9^4aW=(;zU2J^xz|ojq@r|&*2dyvd$)V=K zf}oI(gu|=N&PgtwqPMl;M@`k^eGAYv)c8Zmk_4?ia%3S`sN+*A4+UwiaXkil3x-iL zcYLPGW^I9;p6w42vC{oki=Iyoi=^k5IA4#TCrg5Ve18yno`x$BK+iY613j;D?=5> zMyxsa4!?%e7xrGeVBixiMh!6V>tN5KsZDY)vxIZ-@|#;k;opA~r0}uBqEPtiTPzBH z385cO;p1__AB)00P!beQcL)b>$Ki?b$bfxA;a`!yx3-MFt$Ai-N{F{TQRv$WnqI}h zm6%P!={x_D*z|q(W})wN)`0icz6N~NJ;Dm6+fH})L z-_9j#Mf?LRs+RUP2(at;0ZT|rjf zGQ`fx*EmsORl?~vS*%RMv2a%23XN5Ss9;G8W8G~RNC!3i0`o(Y`mXIRa}6rV9wj`n2d#+sJYI_B+W|Hnd+<=toLa8AEXsI%@_K7L_RNhOkJm%N7i&C@KuHYf>%1}^ z-@X&$aed!|<1yy=Zq9h5!GW3||K76skp;u&N5<`)`SF`>_VK8!B3d#(o&r7I?vKX@ zc6Wa43$&w;N72FW_5`U2uzM5aUnT|zCI)d_0~9bzQ6p@|V~MCbcS|2cHtCa@FJdW#iS8gc){M^=Zj3QE={Fd$Y}3psDH|q(^D*lq;?Fc8Jp6 z?18b{dofC)yM9TlYBc_8Wzj`H!*uQQ3mnjU$<5{z=VxRTKRjklk};29CNt6 z)F`C$8;4dUUFftfIe|`_lD>4>mSp*_6kIKfzzd;l@_hyQ6B2s_PVs#W;jy=OLF^mh zu}|a7geZDKAJpCD*A>IY2HD~AEIT{Apv2pQ`4&4IgL%!y4mdr@FoyMy!VWA6@pctT zf*rO!K*zNS$DPK9J%kmV zuQSaLb|}A29}tDVZi5C@Eth^m72*7KCZ_OM{56oe*Qx|v4wPLDIQ2AMOF97gtEKy` z@chC3mwbQPTALhiE}e4CwVF2h7jr#>7vvBgxQ&?hRv?D4S?&eItur&{hr@_Z9tLct1%04rfN8|HYSB z^lvyLlKvW2BeCdz1WJPbi6065&qGDVJ&AjZ{sXae{$HT~Dend8@5N2@oEDP?^QDt9m4+|JN|Fb|Ai$% z`gb@Z3jHt6vFP7`X(62c8uWm%=zj!Cg8px@hAP*2aEyD7+FSH5#K7B^{2x9av^0$Q z1N*Z)eo4<;%LijEpnMNP_ae(3ZSo=tR7w7_1Cn6~@yD)THCnsy#**ILcmGmy67_pE z+YZrZf{gc$?(6{A^osQZ^=p>tH!XAPZH~ab8uK}DbX?(H$xyPX@ z;b>@d)M{iTrZXFh$!`5QXxk!Kj3qI}ts5jPHjFBvD%W6CWb^7ve8lHftVwdA_Pr6H^xL~vGMe)a;9$1sY*q5E zJC#xhMv4Ct=n7*L!gw^zB`RuCb?=Pia;8t3Urfa@WRl>Yl;d4QQ{xO(JA69X=_xEg zeZ2tIpKsOE42WX0Nr+Y%Jf?z~)Wpb}3()3gKIa2I^ve)bg?jI$#%dmJS1kP14fn$N zVcby%CO@qEc|Y^R13c>3hx~8`;M@3NF;7bl0Dc(J^}ytZhMoJFAMVELbzkyB55Twa z!#tjD902@K(D}gRhnnsCnIBF(V&C$^;=@Du;aMCN90>f7bHstk4=-)q&-`#yr+v#0 z^PrQm$%lt<%zYs6!&#jUOn!LmhyBbC?Rn_457!URY9ah^4|YiVgC9cnLmsYn3(f7s zWXn#ZutN3{^JT3r+m0qT637wQMNC7P-qo^i5YX6zU~h@*Ea_k+orC>;j<=e+I5+nZ z>BiD+((mfF&WVRhso;L$o&XLN)v0PNKBEw>^* z5BCP5TrN}_1Fqy{pTQ5EqHHpxZnYnfR;$f`&dr9FDxFuc&=XK31-EQ_)pwxv&q+#7 z?{@zrbMw5<`{$Mu{=fFmG$l88yMHR%{2Kl9LGu6C{`qFhp2@c#poZA@-}r=&jXOczfS+;M8D1%_K~(SfY#A25UPl|za^@s^aI(@}7Cv&;pMyo3hssvyM5%s7&~02#5>_A}y{-fEURV{@c0_`Y%auQ*HH*xfjAd>`>zdvT>lR z9L$oWSGAQvC|vkI)|0BMWA!JSKguZhY6ECeueORGL&z#tM4BhK)e|}Ak@4Y|htiVF zx6#0qG#eMjl|$1cZ8nA;Z(Eviq$MRSCRQiS9KmU-?zI~>G*)Ds7|Qa8bL17jJWxUD z*$#FuRSLT_oG9)E?r)kNIlw7Ek9WThp+{BQOwzzk4f*yY$vU00lcRv7Nzz_7$*~yw zTiZE5#&nPzrzmnX{3i-I5`-K@^9BmL<{GDCo#MYo5#$(H=#)<(`FM;gUCTF*EIEu92*A;31 z{kBM(0Cz%7mUodhZ(}!Y-llE?9FFpdTE%;991eO1YJa>HYTZfORrHUzr$if8lgaRu zf!eh5AjXTdQT5*yX=@S|0mmX;o6w-w_)e;5aCmDbEpq(Q#-Z1&I|=b47Zqv#gi2=8 zMy*DP(aZZ3X*(0|M9da#!y4EozV7Jc*sK*S-mK*xR#T*=hF2Ii>~xRv~^tk#@549;9h^J76QjP$ffm&37`Cy0QpmHwf$v zU!eXKD3fp_!XOChDwvNvb*Mjaxa7%SiFCmBB+ggi1@PDC?^X}Q{MEe%2;B2?N8;6% znc4#TTfaO6ZTuc>T(NeuHf*7Gd2Nw)3%UZo=oa)<@q(fvty?8$Ku2c9cE`j^@S|0( zLokK(Mh7@9oOq`8d;vZ@g=T)z;__~|(h4tiY0u+li|2##B+rp z+zq=kC)JT8ya&{zNtTvYvn5kIu|7bRL3O1aGaFWF=hlrrG}F6i63JWM0qq!BlZom| z;j9$iJWrUas<2JBR7U*pPij@xW4QhuM4Yr5nCjyb!ev^7zPB=~@+b@&cSXv&_AWA-bfWmou1_f$8Q^g_YVik9J16Qg_dlA(1x&79j; zM?tA*I@-TXyZl37au0JYkDALSZ!CJ4g|1|wN23+8_#OQTNg(`_%*=m?mbrG*@9SzC z{`+n1_6c?P&xtgJ%&AzE6Da1=b-}rGjBPG$kLcQMw#hUbL!ov%CevEqnuKwvbK$z} zQ72Qxk6cvi^Cz5vOenGXyV`Y_Ol#NeOzg{;9Wt5TxV@vJc1ywH+AWw&YqzI1)b5N= zx#4qwUBBs>l%Fimz3?E*(%LWb69>bOnJk__zQ9yk`$fU3+MW3eYPX;49EddS?gUJw z4E1B^u8%R_)NapD{2O8H-0%fzUI8+!Te#l$mh)IfZcnX4wTVZ;zi|EbXA&n{o~}|P ze}R1l)qe!WJL8Y3S-5`PGngCsXU!M2t1zF|uEKm;yK2SS+MUA|)^5AJwst#50Dc1# zs+C{n)4|c^)3a;0Js&ZlA`UZZ?T)mD+OJPsCLwq2HqNPo%{jGpM||4o&)6i)sUS?^ zuG3g>`EVcNKCE4y@2~ZHmch@yS&Yo< zvT9f5r}Shde||&lDo;up{af-ENe15$4Yj^}P!^Lape?KQ7ktPnfCgsP_^l9(oL@ls z-I`C&Qv`{aP)(ZLo>sH4=Ef82ZA6JNrPgj&Q>s=ucUxm4hUS`2NH0vQeLmg*qJ;OA zy?$r&H8~|KVg4d2H48J-~#_pU7Y1dtL#z!RLH>h0t{e zXBKU8DdtlJWNgQXI*`$vLV*IO(1bM*fg?YRB8p9UsX#@}pJw?FSEKyNC?8Q(l=;&v z^ADEUu_9_2H9sQb{0M-y`Ll`i+U@_1LfW9bk@=#j@;f|DmM0sl`4vDozb;>e)|?c* zHJI;_U(K(`&iVCeX8(D4l*Wh6uMrj9%90DBl?<;#XU+$s-+DrT0YpkGBn%Lp)4f>g z7HLDFLzpmMc8^)!`mFBDvijF+mDfmG>dGzJuxhF(=I3~qWm8L$sou|?(={zCZ|8Bo zfjP*1?}ykS>M~by7DLqdA}g3A!5+|4EP(!_Zi|-hIv)$!EzoDs4b!(kvr|v)QVG_f z&|ECTe}wa)1uB^DtL2hH{aNctm7jUyU0t_{rU&Yf`1Saowr#6~>8Fh0 zd=$$=xNGr0?N0IMFTcpUIJ?Hz2f#mM7B8ZUv<>s&cl`~1sJPfbAXe}NT^7`iVT9jR}U7J8XBU(ZLY$1UZAY6df6!;XNc(ksdR-d$e zGx}7kdWwBDY5QjgOvptJR*!D4F71v$;?7Tn@FW;wFEMGP_r2_6IflqN8ee3^NwiY@gu6 z5Zr_Tm1aqXtO6rB+p-&quged;2t8|#tn zt%Tn*c1wQZ?R5PG3-G@l|Cji#B12mE=2W@*5h>7SLAG~Ec8$MJ_9TBJNOqBTd3Md$ zZL%kQeHW;dy><14-nQ+b^F9ot=P>A7eSNYk=Ep6Zbo(uc-ntH^1(0yuI94N+UGYUb zXo*+GWw)8HS1g15be%0Vr%k>7Zq4Zg>z$w7Yl)5rD3%+e56|AZEPHE1_SSkG%T)O* z*DLBF;?}mol4>pRgF$us?B(mTmw&BS_}n?(RoU8Gi%SzO@-|%Lt;>G5nuQpZUEz1< zv{{8reROP=$EB8>cM+;u{&n_pA4}?6S7k3>dr^lv|H+~9kO|%zsbZa(5vb*KsLx(* zAp7*}Nef6EO7cFyC#S4xheGuE& z6tI~hNT%>`4117_xnO#S@vkLf9hn5{wWL<1ox?5nUN`|?eeFzBl0us;Ky`jE(QjkfnQ!?@)cxH?uGW z;PZRer$?yI?<zbJB=+r(O77jLL8s4cj2cPlNPdNS2epoV|KKe z5UsySzqQangMRO=3DB>eF=(Snzj6c>{o=u zuN?gbe(8UTYHu<5rC6_;k^Ho<*0f}HtkI5_7lFM}!4+h)BpguTavoP(OftBmXFMES z1GNDTK5IHF?yE+COf^A{B1qhk6bAC=H$ewG$R!HoOPHSk@4QleK)z;z zEF;LW2$0W)gM43s9Iilq3lB2AQkkU@v#ucrCPEzhCc0B0 zL?x?oBLL5s7Y3N-x1go20N2RfeF>`-;Bp1{xsw#&nI>Sm5rF%L1BPyzfdBiUG`v^= z&cyBx826xX#EKslXM5AaVvP0x>~Tvwnk8bUM zCL(XewiC3wP9s-v%IKt3oB;ovzQnZ`!J<=UA&`R>D_0N?>+*jzg!K&X-vj}lUm*nS z0Xl+n>Q&EdfSg2^zkDL90Q9E?x^g3W=CL_pfIBL{Llofm;Q;VZ)iYHTz@P<;+k)SE zT8((otcGqxHD`ub(@9nH9o_>6=U=a?saDmTfNFdLu)c~)%Zf8mln?ZQcydpgzI7A( zHa(Q4a|9i5k+{)ldTD)F(~nd*4O2KRhl8e%Q={=unAJhk;XM^is|6~S8*n2Ud(rD* zfR9puTPeV|E5L13XY~W%m^7_3tDzfF&4$@w)f}y=d1#r?^l(+p2vyB8%&I;gGI03R z16+3jjmcHqX!JStgE07fTo62Wrh@+p9MI=Y1^-sS2Yt>?RrFaYP%D$^Mj)ORj`;Bk z@VW*;e3%0Kg%a6E0x)r23rKN<7K{H3BytcjV@_3NGQ$y7{}U%uAriQ|s=7#3{W%=8 zX{Bn@qYi1)jXhMGHkyFxMgY!#EetRXpFu2_0(_SOtf@8)0${eott3uWR@`QPHJB9g|xE#uV0jWSC8Ud@NH!R@(d^{EQ*jc7c`xe*sY0q{@B3UI0km~I3)|M_wl#+0e(r>hj; zmAnSHD&bTphXMEj0A^c-Mt8o5fb&IC7BaVx@!Vb+hl?2F7yjx7fc}_o5U<^}lv%;+ zg_yYGVbt2>w77{*MbND{5AGWX#M3TVBG{vHv;fK!U5+g!1)UB zGB{}c6$<0~6yWj4E3)RAfayj6&It!RL;-dvz_%&DF9UI4oS^_$nt(kfV7d{2w}jJJ z<#s)V>vTbiBn9|3h4JS*KsSu|a&_ z0$I37umml^a`Zyu&1~(!XT>g1{ff%9Yd~&qJ^;o&R!QrQBw;uf1%*lUjfcjfOl*Wz^9WM06Y_f z<8qR&%$|0@8`p*bHnlJ}D8TFCpy6*Qz>fhi2h|)vFpl{Wfq)j~^yX<{ST#D!9f0x? znI17M)WW>pHnRyWjHEVG3&VA}rG=rDMX1JLme3AjL|kh}Y$xEl@ZDoPfM6Y(iVMcE z{CErw2zY@aU?DCxL6@I(r0SWc1*%O8V+VXW&lT+w#?-=mFkb-c3UGr0+zx>4yT`Wp zwh=dZ(TsyP8sNOctV&ktR36%^^5esokg7~g%(bejPvM{qr(-1rwtaZhhDP5Y7RL%c zL<2^xR>j$9{_bjG>^Mzb5r&hgiK(xV=4UIMHmeaC2b?(myC}L=n~kL#!STO@3nx<( zGgblK2nUV5ZLu`=g^jzQYn@pY-H59G9A1^FjX6wJHCa{lnW`!aRr$UJ^_tek*lBd# z@-P~i+L-66g+?g~{>h3(zWlGys2WF8WQdg};&dYrUmZSSn%bDb3h+`mpwSRTd@lfp zYh&DGKU@wS!H3kqMAgXH+x5^JVeK+CGAsTq?Yc-+&-XIGkB6yt840Rg)WlHQ(T!+V z>+p7&8ksv3;P2s}UE|fP{mOTteV?UoCgHZ370`{S;ITDfn421zqf`ZdRuvQ|%r8R) zrbb3uA2urc)rP?`H8StNEmSyP!P=-`9RgSw0rO2NI7A59G%|Mb{)DetLWaAkkttPx zzk>rRw8NYN^8V{v0i10Djxzz%jcEPj;ebtz%rOe^{R;4B3gbKghIk8VWPqaa4YeE8 z$PnL1jSRCaGP7`H2L{9a3cJ$Bu+$O%3~RHgkD2tA5OW6{wE1u);^uxMZGP==)Bxzz z!-VK#q-Jw%`NFC&z@|PXRRMlX0bY%!gP4U1@Hi82stK5G1TilU2W;wNK6q0w))nB# z6vpiUm~*Nucb}pr$0?E?GixE^UnC7~B==)n+VwGrkEV}d3j^d&7c_197-@ePw>}jv zi%fk?l0x@EI3O_f2cUxo+A(lzADkMKz|_N#z;q+%aPi780-O4nci#{?xE0`hr8sE( z+8R=9aRjUlI8+Sbd{ZBDhl2Gz93c6rg7peu0m&CSDkLNHF;am^@@MdkO9)_7A9K6{ z{8t5d1#m^{hbh1xnSgb(^>iaJ&J71_>SGqolh&W3054G(w^D$Aj#n7xnt0N(mh z7{;bPW|RW#g9B0=uP}bvC!}a=VyrYQmC1A?06!WISmkzgQGll_z&?fXB>*h?7!niu zm^dyfp^riEpgyLF9rD4XgB1AnD3FC|1TSUV9z2r!=tk+VaVVA<#dr`0E9!-+Zy)23 zmg}M1#&{lsK;-$b&6K;0N)uJCcacjTv4i1`>=){cu7;Ag9Vor5gIwcLf|Cs*cHHJI zFfb4iO-~^$v(j}0GmK+#nyf&N5CrOszhM<=R8W3a?BNx`&1nDJLj&!fWp6(uva}zY zxzP3_S9tqzuNLN;e}j_t_7hw)+JE1_0__(B(0&+L7!{Ppd)oeJ`Z#>!q3&anSJ9KW z8N`K5addNYc(EQeIo^1>*bKxO*YlRFis(j*djtNb|85F?IRB;!URlIb-qn(wY+Pf) zQ6*hys%TxLVh*t|Q!rk<5~KV%G0NlGxEMh6EJZZfX$#RnR3TbAX!ZtG01?Nz7XzBDD5tHToyEh_uV^COY{h`^EV1e{^T)L?|EIL=vZJ^Q z_)j;Pze)LKPC60tlfq#9f~L?2;I!ND6ZbLvx90C#{5$_;-@>1L|GtHPdGp|ht=}T- z?8DMw>Ae!mQk*nC{#@Xsu^KURzsLP9jS0>XSR`gIo(UXJZ41Q;FmikmdVQ?NWzzJS!e04B>Df$6*uo2v5 zKSt&Hq=jr{1Tg}mqWPXFy!{jQX8$nnsVkDZL93j3W`vpkukiF0q3MZFhLuk?Bh2zY z%+?gT7W|xNQ~@*nA~T5hB^5&M(DWysWANdJRMSh-|+IUhL*1l zZ~vR2?Z5P-!$R9v77Bk*c=@c*@>iPK1MMGSMuhXXxqeN>2ZwU;i@6Bq+;SYQ5{xal zO_m6gmqKl92QUiU4)B}YT`u=fCS`#Y3vRnChfrJz>pFFR=1qczFR@MTHPC|y0 z9HmDYt6?mrUbHq+u|Ar^Pg+8~HRT-(R(S26ADJzB-Xlz<3(cE;j4(UmdLAR>Gi$UcGmlYQjimAES~!4!}53V8B|< zVU!UDef~s2+uxbE6_dt=3cUnul0fw4v4%O~TIPhUXRZF%jk9N{{+Gci+xHA|LJ~9) z#1aVdEmC~xYZgCS1GX!BA;~dLp1n@er?ySTYw3WKq;FlxknY9* zijb?HrJ<%k>8eT}$`ULqo~=vQ~EiCfWPvv#F>b*E~D5uQSYa+k0I|A2Y9EL zCDEETmr{Yb?=qSM(06@lwe-?+t8PcC`1~2ucEnwd0+ zca2H4Q9a)El;kO3YkZvn(f0wmPGF%BDwK0f3{Z8RiLV!stVS9KDOa@;6Bwq|s<`?N zMj1eoR_m6O{Qv8k^GgOL z6NpMd;l@1_ldDTQz?)Q27YDJCq+(kKW8;IdZG*9GgRybJ*jB;V_+Ts-IfR>pBav$+ zHD{?BwUc-fBSHu}&u>yOF=QA$F&1RdaE=aF1|n}xpv0tareKr_Kh6{n##kIjGRBy= zz_D18r(4PKX0o_QP7j?Ui-U9IT2M1IF+G@QNFsjlhdB~>TO~2&0c@^q0!5-#QYGeD ziE8S#N`}p(D$yzlm>vqKwXCt!g)hc9@X#2Czk?ZI3L4IMfZ`Bi0b;5O%z!6QfC2uY z0KF(s5641GP5WyRGlo@BDg{b1z(16v7bPh-LQAqzDLE6KKuHGphm!Q7qH;$Yj6_%HbQrgx>|Y);EaZEP!4qpwF~}94I5j|zK ze@9XtNjNV6j!9#zI}In}{z}-J6=_pj|J2y1RlSGMyle3j=ucx94uyqsN+y9=$}=3J zLda)QEl@%-rxH&vvAC35wAxM=(5joZ@T}SDhjal1(8?3FA1uiNz1mS0uP9uMGk%AL zymts%Xye1T817=j%0$@r1QL8dqm3kK-S|ra5!tr>?g;qOQg!k8V1S6VR5AooXIZIklmU<;?G)q`x%vbek4#GVGr&Kv2fY}k&%puR=r~GFl+wTmY>=TC z1He?Zf{cnJnyMZw8Knh?(IrMl&CXlVTxX$MRUuMY!@=qRE%0j2lk+9AB$p7Bm35s-g*VmI1;i#Q6oIfZTyTOEop9B z^&&HnS6r)lgv$XJZ$>#B+bAk?6{#%`TJa*1EHDLD5b@hoywyxBs?D5GV+EJc(6>vz z{Ap$Zx$iI#D|zGd$ax;MA2Qed)fRN+0d(a-hhSF%zA8isD^l%m@?Ets#zSJlr{WeU zfPjt?`DS2-3C9c*8-OhI{jA#UJPk#KWA!mdS&9qptA(i~=W>e~fiuY9F?&^9i>xwr zSi7TgG$ptOE3^o#Jaz(uDG@9-0gBrUfTJvc$^!@v6(ge|N{>lX5U;W!e;M*ev=v)r z;-koI^)0%=1RmDOiW$(!Dp@)iYFp5Knt%sGfYNG!qPGAUJ7jjG>YRi%bEW4JzYw=z zwU)XZi3QSgW+3t7Cel>-=;c1Qm*d@!CU%qo0nI{TK=7oZVrK_c2BTkSKn`%Wv*N&d z zXyx30SVcN81*^a~|Cs0*=3)xRA1v}a$n(T;b0Cr(z1k+DP+M#u+MYh41J7x&Cd2CX zR4-y1>-3r0Y#d#%o0b~_UIiKq){VYf*Gg}rz%e07#deU>4rIU)AueWZ4mE|OE&2(b zPl_pJ$WGU`!y0E%INmMWHC-WxMhCe7{9_gmRsBHcc7(~b9_NUcIX8C15fXLw_p2E2!sqxhOPl-*witL43J=?*u2rw=;nM4BKC##M68Oejhs%gJ;qf=uECjWR z3sm-cTnxU2&-X1xEU1!lJg9>8XWzwewaO>JW<^?F$~OqXRzUCWT!wr(-Cb+oWH+qK zZd1dz{qT(7DJgSU;?DJ8K)uE|iLd<~BC!0fUs$Hf_3`wM05%lw4xUo0-8B`UQQ_jv znbvcEz`O?8lAhv4+VP1QC=J);5La#<$J!~MFY~R%$|*5U;ytcLf?Uj6;0YCNG|CD zPdYvC>m8g!;URZa^S!PB73KbMy>~Spt*Y-M7h&_|swT)#YE4QvYsEfxEoNxOild~Rw@{(880Rf;(p=B}?@Q}9LYPR~MHwIoe@ z*5WTnXic|a^s+vDrtJQIA+SAler>~!v}c&G1B`VC7_0PTVB$If$>67MsLIHwkjHES zEeX9(oVmNI+&=)0(LOZybg-50Ij~g^caojMXGOwI)?wc<{`P{jB1Y{<7< z7#}RLOA4r!AZDR5$PJ~!ktmps@Wcg^WUe)Rs>M;Rxi~TxGKlP7qfP!R$DXw!!W_j# zhf+Ub_U^$#eTj<{<4e+U1a<^PnlcQD7m2-loxptJzw1(v)7;*7b-@K#U#jl@rZ-YK( zc*c;Px8JC_^_s8y=>6-)cGl-CJFfS{ajROp5zN#csLpJx_7BqMyz%nVx6eH97{-o0 zR-aS))EmAxeohEv!cBSpZsz+JTBPWn$vtbSNS9l4BUALp1ApVDg<-qSOn-vJlXW546$MkvtoL~ zQ~Sm6Pw=qBYCL)QAl{)qWdQ3hISz0WzhUxDPs*3#4*wn#{acA&Ntyh2F=>H;&8aKE zz~yKJ5uA!#T16TW+};yH#(Dy!hVfM$5N{NX!5oYB{sOCCw)YSMMq9DiaSnrjOe$gr z6f<^tL3Qnt0z3-pnP0nc=pui5*nEr<>Bu*_D@&X$CGg_i5>KE6Ru=VGRTv=1gJ~(u zurod(1r=iv@l3*DmS+nrrje3zp&5~Kn&mmt@;KnB^$%Zx708EtC6rYxu3a?rN1**n z$q+1GHW9*0%(lg|0t>QlAVbzVZaqo`hvSKtRgWY*CSdYE@L$LGXSNg|qon*b;chGC z!oc_y0HgckS(pJe#Bf2uS}bn9WE(D3=-|!GytIEHjqMpgJ8#r7_h4YzalHvUZ#)nZ`Y>dm3*8h6P6NQS$}W5$bZ5S6hY-f&S`F9Nnrm_XS@Mec=OE?Q z1fVovHuJK_c6#3NUHLNs#1D8zBGD;~)DdYfZ~TO%kZ&VmjcvojUJa|o%5ML`hwX{!Q*Nz0&5dwg6 z9{VE|$Nf;+!^&^4%C+M6K)o+-CpoKC8h3QgC&WJ-`8<9sDQ<@Q-5_{Q(^6}Jej4rn z@yss-n+NmB@LGsY?9mFGS*l(<^^LW+GJ0iIX^7TR@y?Zp5Rr2@-@HPuk$7;7CG+hi zSkVX+OZf#@ph8_1KRlH|;ddy9S?5~4yX>J?YN>oo>wU(rg~w;clP~~`X6Hkmdz{ax z<^uiv;0Dz~(eoYZu_3+7h1|gm{}UA0^?E!^jhPfwaKc~(HW4(XPbz7TazODp5%%$LE>LKo z6dHXN&+zf>R6ItCS}6Ngp@6>|<8?;~jeVVY<2yKf^BEmSdu1y8e6QdqP(}#g4!{=M zGOLYP>*!)n&3#Fsn6tBqbNb+ix9u02YSIjS`C1)nQ{*x&(Z^(Szyt3Du1(e zz0vV~;2*K@9Uq#qNBE|b*HmL$f-fmM=^KtLj4+|J2O^*tVdx7nGONXd)B19FOtTGe zPXSoIK%2L*8!QDXnSx*n+;XIioAjo{Av94wgrJ3h5-p?PVctb+vUShG2 zFgpB~+4lZIz>Gkp5{$9;&jih@8|T4zj2ei`iOSm-qosEOCK@>o-$4Z6pypFivw+L< zYk_zbL6WHNAW8y+E&*6lw*(|DMuuWX$%SmkN81Pn)&hA5xn7izd_y3hauEqBhHW!E zv{BfiU0N+ESivC$zZi;n{!S7C2pk6D7jZ1#q_L8~0%3JrXJQ55dUm z?2-Jg0ZFR%c-KV=rbNakoU35csAdaH^`+`EX&yAjXnX+6%H(MzfO5cW(^ZHL*tD?` zQ8VC2e#?VK6iRXYq6zd%rDg*VKYX(P5laEQ6G&Lx0+3jiy1ovU&x0wC8c3r`yJqHG|>b!13ReDvZ!5dfr16dox3 zgeonOFkDhWv~`5yv5rz;1Q@Iyybur}BVhhPnXrG)kYE~d=-zNc^fB&;YMVn zo!?5hvLrx0ByVFhlEsCn!cvYKCH!G2H%*!4E6p&YhUi z(|TIjd4?_(t@0}UMHIEtscQ}aK{;wqv{lY!G-j=}th%&4W`pSST|L1gpApCxO(j*?+q z(_^w6L^s`00+WGw=MR6A$^YznE_H`h%i6;jh3mR}4+8+ryoWg(kVhp9WkLlLIv@cH zZQmFM*!5%qN6FcC*v}}~>p!r=K7t_JEQS5VFz4g|Y%BuAaQvtVx*f>13dkcNKt4cT z-_Eucg6;s2*-TiE1YbY3)=1r=Rq>8l)pl)iH~4ASezBZ_djoUCjS5d4aq%+>d8U^!d{QLGEJ%^QyBwXQ^$B{>I zOHU>YAy|_SIZ&W5e3TS?Q>?EMnvRfJR|sc%Rb5ZKXRqrckj2+JP}lW=y53@f4}I=G z*UmksD~qJRi;*UNVhy_$V?=$sP&OR{+|d? zz68K>&Mb(_XaxeSo|zvIT$f74L;|hL@Tur{=Z$|AMJ<{$hFThF7Bl#7w?bGsf*5Aa zfk=f2g25X8Jxwr4_*h)a>V1ZVfob@ju+pBK4}6pzw)yQV>kf1v6$s9m4-st8p4sFj zNgEL*4WcP%#r)UBCMRXc2&WY@7cB>uu?N87`8SBd0kPiiJ!p^C`yv3i-ro!My$9`Q zsfXNu_OrAXHFsmy_uu(A?2Ea7L$4QC44C|y7-W2aIU7gr%Zgx=F^9UjEN^{Q_hniA z>$S>cO4?27H$gj8f+ssQj=X$mJr0turdeW-?g}D@g&k&f9hg4P% zl2w=VAbwXVv{#xqE%5POUqt}xd==T8aVlFvytoDPeI1a^wC4aUZSqc;vE!Ye{~1K& zb|y$a+Dqg9Slo4NoOTwZ04yMqXa>4)qHI($X!TGlxM;g(%uDOMFuKf5Yemz|L zk53z@;y{9U6L*iRw~7NfJZW9T?*S?DK^oj*ab@6qnjnplVmeE31e;hVVFB%YPWjPA zawh9~RfP#Qai;iblbg@5bE7O|JT(>7tt!^GE;)j%3F^aS6(_=`eJUpLYACad7Z{`O z6CqekYuq4xYPV0Qh7};&pV_@SvwyW#`3tC9yJMI^(-5C!7qSp_Y4<)4+QOn@C~}V< z1kZ4Kj;Y<@aa{{v?e>vQx>BFnKefyAogS2hF~Gl^1L3LNX(FWTQ_%ieSOX*^OH%$y zn18rZ>G#vdBHs1t%^gv8-CWlz%JYotA7@fNy2s+q4%h=;uz#RYk z+UA(PGNUNXdH)%CRm743i+bTZN@?1$cc3R>2 zsa86^XQ){_kd~k;VS^E*pK(5v1JaAX!4=1Wg>qo7DV8Z_l!WuJ9m&IXJeS*&6iy@q z_)~g^grT|P31KG&aCkF=hr(ZA;Q4uC#O#i8BwrHk%mj)vsi5ft6KF+vVB!Sp7*%}% zeKI2Kussa$XbSb@>~TGh+>3frP>(-J(IEEW$lm8U`Ci6cgzD;!wkllRXLOqe4j11U zh2-_>_~7Za*MYNas&?@ik7PLlSt`mfpu4K@pWGa&4vSXW+bEUN$S$d9)(vr?{B1TZRW1lKo&z!p zv2^2$JJ_!9Pi*Y;NF_Zoh==jX$Y_~Sl|6r%KJ{9taIx7GHG&TqTl6W947bO8;t~jpEf6!oooP#R_sr>e>24X0Y#S%L7r9{~{ z>4puB({=9*39+kkjn4O=<>D*ASAg2=>d9D8EMg&veCljc6i28R2JftFEa^@C%P%D- zp}FZb+YZrZVmMv)WP*bWi;DFF^=p>tH!XAPZH}nXz4OTk9^BqnOQLrBp9wrUDsp#c2uas{xE0AY>c9+2Ehnjn317TYfNC}**kkmW2??naGn)i)Ez z2K(lw>+OAWiVz^-JFnF@r(PG*Hvn*vaSIIOBKn3U(KoN6B>E;1steGjGb%E^zCd2B z(%C&o>dPv?e8tB7#iX(76!cU%5{wH+2)(lcU3U>?QnVn;-xj~n7VZaIkkFC0dm;OH zvW>sf%VLZ_YkbQn-FAIMt{C@+W>|xT6xNL*^gsBX{Qd^K;DRKEJjQs0K+h!5GrDz& z;A>q3RI10alRGcLmz$T+~o^{8?wCiq+)Gf6Uru+N(#-)!{(F9=M2 z>*+m|p9?Y^p@wQ{{;2c{)?`-0YVkFrt}10H2_Ya74TTU!utu~L_V>F7PAJfgUZj^C|fmvzS024_CXP+-4Fv;H;@yTiwv*Hs}Jg+15MD&lXsZqVQ z{+sj-Rjiy|X2DgL-R^RFS$a1FjABFQ)4#WiFg&E#w|_lfG$0aQiCDrw6&&^JulUV2kd+Ww5op@_Dc33)7p zn$iQPF2MT1hAO1(*+#2qsInwb{qZhA^(w*GW!wm9I}SQ8H4`pGe^a~?RW+#{kB`KZ zulU9&bKWawkdx|+E3Vs>ZfXh(X{t@$z;Zt@ccmMH zL0VIg1m?5P8HZXT=d(fkYCelf4{$MNBF==(n4bh;%vN0~&?6_z5Nep~do`&9YiV-6 zl?xDHNQ&&3GvbU_v8;pW-^F~TGk(vMmE-mW_NKl@^{&haY}2>BEv=lYd#IOC+^Co+7q>Z)NR?E4h(RN zqof198|jq`++Tr}1qJXnL{RLe8;@a6uY4cfWC~zeu@_QiiS#OjhtjJM&A%4X>slqf z`d%B9UURRoORxUO58*Rnk|n(+V!p6RF97IoymeU=>BW+eUZoxBXw1W|7~38aC7M|gEIfgC ziNgCW8-4SK+35=n4XZsYfOof0yaAxUaV6Gn5j!H51m4Rg3f_YSeODgwUO7PU{xj@7 z6gT`l%HoE@Rm4M=V9n)D0&&ZPEy^76LhdreU`UxpTiOejd6?`iO*=1S!BAohd~#h? z2J9e?4ODg;7BgzUTlolusBmUaR7h2aR>^B7R9u1?H@-}TomQCp`<-AEb09i<Yjx-W>>C5Z)4S?76rU9##VK%-lk5j z&PNyeuE*R5^61iR?ap@t{W1sZGqv0AtMJ>A#un5WQ?M0)>aJT8RP6?!vM3sJy1)jC z)j$z+S3Q9TZxGbCZlVIiP7Gzi=640C|1|RfcX0vcMTFCH71%P=Lu1c^m(c!sldQ2vwK^s!t;GC>6 z?dd~pNTu@2#?tdp1< z6QK6?p;+@7x1jYE+Zs!ci4DSk4byU|Mg;aU$}<8V;0VyGp|7ea!`CV1xS;-uf<##p z${o&?zyM@ngXskz-S?5KJ56bF@ZNOWLg6>+jk;dJnKpMsW#&qy9KEkrDxbl_nV!;2 z&GZ~NYDJRHIB=c3(1X%=y@m4sjslzfA8eQZ$00vv%+;7p)CT-pj8RMeD*zcrFDeBc ze559@;?JDRl9(}Pp(Frwyp4{l6Dl&EJe@P9zn@-Zj#6-K68BMMv}_#3O%!qGz{)UQ z#G7O0CW?`UgJGV9?!~?g*-xa-gH%yC_wmZGH*!6W)xb7K! zkOaul^>xjIf5Nu``2XB!hd&+_Hwizaz4ran;VaQ{^oCs@crW81*&_E(yQ2>b-LIYd zNo0MEAH}L~GA1O@Oy6bKTl)doJtgT=+saEjIKY`_bkn_uC3Bv}MSKny5A5s_DTru9 zuFhs;MdaH&WV`6_)d$YtopSDwa8n&>k|hDEmv5hyMSiR#aJd5?JzH7h?D=Bg5o-uY z|H`9qGodwpDLJwSx!vIzS9uN>Q^G#KFeUdnm3->(&9c+)I$e zLg4_lkRuQ!^s;g_AIX;DCwB+}LmqTXZTdX!4)BNGJ5=w!*t{8!*bBwE)s7%}v_y;O zR>|hK!A|>@wr98L?c%ZWZ<5}syD+nuL&NNh1DxK%-xYNj0gCIJiEc~zVc+w&)dr4^ zW;Vjc;KBKbmUni+l0o4ra>WuLhb7zP2W2hgPet`aIUcWB+l6A$d+4NfVC8ZpWXw$I zDT=#QG9_^^S>B85x=X=t;@lj3^?*Eql#U@zM1B)}bs6kTU0oW)+e|6j%~BfVySosDuC#TDAlrN270Ka{MJ1A!|p)S6z8ic;DDC*ricN`GLKp! zotOtEgS{i~gZw3wx0VBCEnIawFAc7`Upn8u>P`ZKVA1@2K2TEsAtSIs$Y2~umVpJsSyt54nDd`<|e!Y`})M?ux(m(TAIRCR@F!%(0)Bz2GZW!3wk{IY8EfyOVBzTqgv zqujqc6=$ct7g7(G#2AcZ9d0wX`uat|o;mAWd(RXA26$lN?G_WYh9O!w6S>cf(laax zp)&|20pKHXT%YHlXWlr$Vj^BnOH@4pRCg(Kei#x&^}ciLs9vd1T>+(n(n<`)(UA>R zFwxn@{ZKqc@H*W@c~qy7U(nNF&4dQno!qx^jN3@AcUZ>pOMTX z9?BVy@c<5Jl<#UDIU$4fBJ&LO)C+Qz8Ep zZ8J?|vvCvkp;q9AL{Xc%Rc(%8V#nboRN(@=YQ6-=+Bjb(UH6NaYqqG2Di0@p)0NE! zi||vmW^(iG7X(>kq}$FSCO5w{)?$%9n1gIAA|mlt7)eC1h{?@kQ4-u7C;BT_M^t2d z+uh=3VE~{iJS?YvyX58`re2Lx=z@WER84L^B!KEv94XmQ6>fePO0x)5O>SN~Mo_&{ zFm}Ct8BjeZfGR&crb>-UKr$1lYrNQ1F{^O1upRi+V=SUogZTao{tD%0mSb9(@e#x= z`A%m{BsY^12GO%P>c|1bddcZne~47AVltA9t9k%oFhx>C zCR=_S{v?eyU(rV1RDYAXnIjrBnDw%D8YraB`$h1oGe-B0MX+W|HkEN7(PtoLsQpQw z!KWSA^y!wef9ccv)B~G7jhGYmC;uF-PE(?vd9-ARH8sB8sX;KYpLlCsl7)OQ{FZ$H}5s1Fr&y7xUj?7vy-WMFtt0Pu@EWw2$cX@8k9}eU{Or zAnJ_T67E^LbRW^@Z%O-^J}=V<;lQQO#BTeUK7WD=Y;VxVQuxWzBAu3uk8tX#*p>Zc zF#kMf)A^xh$HF>}mwjT1l3uZv53aX;v6cS<735p(1C*B!v?uglWUPt@$gL~Iz-SD! zb_=AJc0&5^$elF0lEl`hRma9Rd^Cl&SDWpC70*ksMTrF=kiTdijxmXb_IjLglOtA% zsQW=QJ%{T)uF>3-m10_!Zk)ndmM~-0&hgESHP(Lk`~#E>pc56|qnwrYBE0Lf_b$9! z4{HXz(56oMri}J>UgsCb22@3bjKPj|I^1S%uKV^2Zmv6?YTvOwNn_Zmge*J|uJkV- zW9G8$Sh2aj%t*jCF=EHclF+}jM@aw}TuH~ZGy^-<=|>w)gZn!TdaM=JZ_V8e>N>!F!{r>h5dl$u_4CO7?Z#dJPyS+6RKc2O{O6OlOdxcI@ILH+ffo7x?qxY=vk=9aA5l$!H+XQ@!jRew+Ykd6<{V88 z^VL10@Z*dEt3!KWaWhku;}rU#^Yuvz{h0Fc zg;QejR9>&5xfp@*C2cc{q7h3-6pA5)IreSZ8Mft&o;DFl6!9|r*mB_CHp zvt~nI__1>|^i6*3pwQ2gQ%Ki8;28Ho^&T-_7ai5Ke7vafKQZLvXeBv?{bVJ5v;q~v zj}PIP{Wryrhj-c&e!T7^#e?L>%;YHiSTfY=&~}*IY#l26I0(EHiyzNKNeGwcfOT@-%2AE#WqD<3BixXF)qcDJK%^5bilTj=Z1)Y;G%e!L3|5P`nQk9VLX&|fI$ zh^_=wWVBM~hswu~x-`v?Z~YXDA0Ng-B}6`Y6{rw?Y>zqoH^q+?+Me*^hvpnjethXT zdxx6x@yk4`L&survvsKO<7?ohhz>R7O}J6aoy}4YVu>=WfnhvbxcTy3O}ZF zj?$qfKOTjW;Kyrj6@L5#v#BwwbrgR53QW4Y@^LtUoBa6uW9{gh{CNMR7W%27=nFp< zB}75rVD>Z*?CYOkZ!@`-C{`#HEZ9k_Da)N{^wk8V#|qrA^4S|NT#+Z=Ev$^x{DN zkx}zMwH^6iLjHHMl8>`6NiY3Fp#DEV(@5h#n(qc8AHrw?&AJn*?iJh0R3-3vN>d03 zpD>u{k5W04*lYno+WR|cv-6U>2Qr<%^*>OGE4tugX?#_~5A&=DCuu|!#O~ILHM8;B zLa`!7wZ{kX@5*2hi?1fsqPZSS@4) zWy`lIAI>{~X_|Dm_I6Hk8sF|FV+W{}XyVOkM*SaqUjiRhb^SkqAj1+86f|yigaA>n z9TwXtsDs8j*x1H4)u^bkP>hP2$^=u3LQJfL5Q~adTNm8w(nZ|Z+yYVwE)~QDwOUlP zZyajfs#vS}f4}G6`<9t`lS$b0_a~pv20i z)5H@PxUlZPv`7Gl@HK80)|($4+k=nt*mwE(d8`*7HL>EvcXavEgey2pAW~6*7lBX# z2t|orl8Ud8onjMLg!2F!4?`XsrL#2xnoS4Q_5>;;auPlG5O^a1`~bog^BNMI z!4$ZJO``aCyy2q4g(~~S$lkEI_cTZEwP^5(H%N_dvn4@1ia%RVPz)LZ&W^OXeGrxi zCacb44G7I)F6Q%cxCq5M0w0r&?qQr>h(il%^VNi!x=k{iSns5RKyiC*d=36Nm0Ci% zj&tb-!xkoR-%9T#L5AIhf12^44kqH{3&r?}6aiFgBJ|KK^;*I+G~^viY`bFvqla`o zrIf@;b`d?Lh(y%rHB7t|tFw8a>bPk~tx$tV6WgZoxo$+NYzeGFBoV1X*UWzJYc&;< zJe9liy9*RZozF7re?9nZO+b(8(Uu=;`$l5p7+C1;Q{ALxJqXw16o{r6I5nIZgx;L5 zZux?Nvw$#r-9TkEUl}HgX-CX~|6jGz0n}mw`)mU#u?|;v;x1Ed;c#WHY9&#;0FXLO zhWa9^EgYR3icP%@uf+);8tiTctd66Jqf%)T2kpb)OVnm!b|d~3O&pbqCXRa3CQefN zIt;$ze^Vw7)W1p^uAOEh@X#*G#JNt8*H~TLN0AMS3DCnT8%MoW)(&MyB1%{2@?)J8 zbk&EvfZR1Oau(xkSG$z6hoKZr8e`ON#bsZP){iC#t-9FVCLU4JPoA3k9D@Bzz*58Ltq0%G|{wjCY3^dPtO&`@PY5J(QgIpToLnt*WVC4l%KkyKbL=1cFdt?A=%&&|`^V^s$+rD7nK~Zj zPuAlwwmI5Avl-lJ`)7mBrR*PQLFec!2s2}~{bLZRw!4^WL=ur|*gtJ}-D&@H!NmAl zXGyhxmVnRHDCD>GI!56hrRnkSd<=a<9q0`HK6+b?elqxXj=hTT-Ts}bcT@d4cWXdf z*T3@<4ONf*I`Z!fc(HT-oyR`tz`wHsx+lfI^VnNLvn>2O^HoapNE!S)n_x^bf%N~{ zrh$>B18mcWy2K9E$+GkB^wU^)hP|J^X@PoS>FeJaq7!)py}*Xv3~saW?|ku$uC>R%^NtC1)1o8)&fnfs{Uunp zwf#H0-k4+h8^bLxxipxyKQ_-pG^LpgA5Qms|5HZ(#d8^m3pcy!-&t-Y`**H1@U!&qeCzkd{Bis{$JsF4_K(NElgk4scKUZP zaEJQb>EGEB`{L`KH`)Ga*i@-Z7l?lqw_a99Vab$O^Jmg%p(_X7Elw`N{Z!+Zzyr>; zQ5$51SKfu5oott?3H%V8pjip9LFIZ3MYaWj zvz6aZX86l*@ehT*d*Wd|3bV;W-vs7ZmHejCcLo;^iGFwn^L{S+Hm&HGzE2$|r9Oa% zb&OrArf)4u?G$}Kgx7TY&=)s~>C-Ktp)j(nz)UMtaKyUhB1Pgl5<*mPjje)fRb|g+ zW%q~jbdfk>U3Y~cvD^tmuv+oeStnsUND|js0}~{%8iS~i@vo}58l{D6@*fK{Y%Y$C zQ0N>9s4f!PlT)^ijqi!r=vIgZ4F zQB|g_IdXDb#T;0A5r|`TsPr-l+XG^!QPJ}Qv$#Jt?>NMuw%t%kL?U8c(BiJo7`r}W zbe}OM@k3Ra1D(nwt}zfBHXjhvfDZ5gDzO2TXh0>29!nUALkza+RR$S)A^)h<_U$Ww zBXtu`Cx6!*D~)Xq9##lrIAKz)m;e#01b3yVCY~yPr^#wl%HNaJnI8H3>uQ(OC?>k( z?=5c=w#l4M{(j|#WJ}Yt7zw16rqvM4wDNbU(Id$c`&;Jdl>Ge%8ck72i_NZ{`ecy5 zzqHw8Nh^P=f8!S9|2y(`--Z7A@A#<5-;sD&dteEZNB-6~8~K|n8i}H$`pr7)3@+0U z{WlKNR$lq*3E!7!D&31Cms_2NZ_5e1|+%%#7Qe4CcOTb!`)K+c2V&DJs$8%IOE<`e(3t120+*xdJN$W|2z|Z zjy}|fl2HW9F#ri;(O$S${^h%}kDG*VzH~_48|niJzrLPQzGA#)yfd zM{^x1uU8vz1Sk!1absoMJN@KcT^fEJlp~yHUlf|1iC18`huJAB2!PAcC-V0T9C!Zk zz!~_};&&B(_u}^qesTQ%i(ek-eIS0Gj%+)9bV@#MzCz^V!3$F5<5le8OO}tmt9<3- zlfP$>k21_W`O3$gndD;~hLIlmD1R_TK7NU!edS{!BmLy#LCl#X%f~0<9QnBG?KJZ7 z+U`a^&XdI;IknxN8QtoUk8^)9JW!9{HTd0+-*fnF!mk(Tycd24;dd;4+esum#gyX8 zpb)q1xzFR%_bp>8%|cVMu6o#X{2^WE z=&j$1WP?&k$V)jt+;T2pn7 z#54Je8s$oBy$zvUbY2kUma|--M>Ri&OCho2;-K0-2pQAR*3BJ=1>!1NZ<3V~dg~Hw zUiH&&1^Jg<56B9)6_32bJ8t(dscQSIQrDLDMv_F#rqv@*0;u6g7Bte{-HNx$+TxVF z1;}gXyj0~3Cx)e@3kn()MI-IR#{-?{BT*W1=5PXeQ>W0(BER38PR7 zQT!O$7@_yc2rmys1q8Kz7yZV6RMAY4xFj(enF3J5%(MVOHokv!XS!QwVv59sM4?ltT$>!>S*s)` z*%TqDyWF6v+@Ma=pd`i43wb?#!`Arl>0coPOXJ+YNL|-B!wPXdlhYHod{BeJ$e|h<}H2q8OeAB<&2#xOQ zUjU%OdhL1t{$))+>0j<<2`za?;$fZeIIxGxt|3}>g{$C!Wu0o`|Iz)+2aHAoS%Rna z#z!hs)RSo(X96J0Y@{}%T+EAdvyXHzlDSr-dkuHsgsl%>G98SpuMldl#rR3GB%Wpu z69nmW4^v6X3hgRcG7#hj=MpYfv3r;j)x+3Y>+k7bB^pi{YDeG1Kiz?x(>;h)KlWU5K~J+5=1xcIE=Wx3g{pyHsV_$#_c% z3L-q{-3a0*baA7TVLB?1G(8AHtDGcC>%00HH8bRNHM8x?&WELe%(9(Kbu}yn-AO6B z8q8sm+#oKy8gV03v8#!yu138}S5wNahES!e8Kb(IG1AqHK_4-WUClVt)kr;{#-mPG zQ>wd~sB|?bkX;Q5)J^fhwVGb>@3XHldoqQqFa1mUnvw>mukpxYpT!hgrR;&ABhUZF z^t4^VWO3T6RCZqz1(GG!yLWs0n)4y?c3*>H?Y@SWmZ-i4p{B2iJ*3*l0(a3dchPZi z@~VzS_cilZs!VseGacd1^q|hf6uPg`g-Tx&)qM@RUUB_2iiv19 zhY&A8b+W&qvaw0`{GXG?GrLGz(c_sD7n<(I8P6=xIkw$+=5SpC6#NIQK`iZf=A(P< z&PG!Cjb}diQ&-0`i&W0+#xuLnFyHFqnLJby`uuA?o@x1`?|A0l>obpMnr@+}rWwyP zi%F#i6;Hvi@EOlsdYiY8>4T9sgf)cEeDGciTy$20TXpq`^c14B9K&~}bzTs_0qdG+aE*q7TTPUrzo z|5A-OCvw3eGHC0KXI>lN^e;W1OVhs`+RgMY&!R7J^)E7>=>yU8>t6!MiT>pkme7)S z0Up+`?+5lNRBxO8Penawj<_?i=J)YSgowIV7Ipdjq zO_pspo>}&Ljg=WgNEbuv+B2THZ>inIFfL#ZNs`7h=V)+U7|(nmJ&pfwAdrI zApYF~iMP>sW+g0*um5-^@H_wU%wrgdKxlo(Gk0TdA?Y|xK_cbdy21BO1+?mdIXA0>| zOwsxAOpzPZi}$Ij?;Ou;oxUX<6rcN&N~nZGU|}F3!_bgENGL=#Tu#?PDE3pnS7K!) zN7sm;X6U{ax7+1E)@$tY7*3Q-ijKOYb4Rr%1~O-r^$M*Xyj9N5NnEus$A5A=O$ELV z`0q=jar@(s^NLB}#X|oG=^x5p-1m5p{#))Ccn+KxQhj$t^#fWp)>z$^_&N;1ON)x4E%aKU{|S?nHP}L07{!vgLog#q>LFlx zko#n?47)Yj456ntwC&}0+Igf~k=z5!Y|YUc>pr-E07wpB48e2O6Taf&oLX{XxCi(# ze=x=euW-wcwp0)j7fQdyo}!^ktA(?!9~y9*brOyS@UP#=zfG-QopnFZ?x=nO{LDN2 z>i7NUwtfACe|1-9s^5QLIw$k5(mL(+j_W7D`=CQr#$z)7?u6fByYTP2t1{K^O*k@= z>sMtxcYDY66aEdq)31JyVr9bCs^3R!e^@P(w*4)AEmQrXn5J&ORW!7(60-KMi+Ncn>C5^ zFXLK1u5ycwvlBH(>daXS==#iY+UzZxqIIgPYmRK@nUfen%mUcN_nc%-ULR{tE`raTy2j(5moZg0j0%>Kd|G4YdpeX&pb z!ya!2yyau9!{CTW@n$e5R{sn_P5|g5PV>CKuj&`DmY~IrYK`Y`5>}ARZ&Zu(=L%J= ztFg3JBsRYhdo~m~BTnrNNsN!&Pz4ucO5I5q6BpUs96(je6JyimpU3nzRp;u%-&KCb zfwasFdX3$m4LCU-7R4Eu@KcM` z&S?b-Fq59l%?VhapsBA4^aVuF=S_%`D_Cfmi_(S92Isncw&ZlDUc(wC`CXjk2T^ z=}NHZg=KME+={0)4kug*+iLf9=YyGDLe&4#jAe^hi|+<1b(#WCl2TAT;!{XeVjif) zY9GBMHf)VUxz@`VLfgby2|%*G2Mtxa#R%(<^Mln9mb`VKiU44!YV=-$!Ku*emgo`x z@+(zPWk5{MIzzZx*p`L{F`$>sN=bdJ9j+C?ZSW7ND$vFmZh*!1W5NYM^+~h^z>T=- zR12kn;l<7qvh6`rhL^1MafqTe0PZJYNB(8sGy3>Qn`h0lW`QGqDtWd+ShUafqX z4}>}=92@qcO*RBXYz5tX_X^+ZuYj50vyu z+J>@i^>hTj!!&xj>@O}=l%%Ic0*66i?La-Vf=3)nW z`g7=5>pK`vZGoOX4(|MIpr@q@UtD9VkiDLs0NuV*PiN50>7sn~bqSOPw24*^L+TKZ2J5afCLR3PMNk3Qn>Sr0JX4KDi-W2^TdAE*!{`q1@KcDpHH2QhQ+eSa{ z2d7`Mem)h=*3X7M5;i>t{_8qk~iQGYDhi(&}eB zzmI;F{M%MPM`xtf&jaAAv-MAseili4|DqkLpRfE?M*VzotxJAIDodh0~+UX8H@tP0bOi|H7E!4hGkID z-Dpa}0X=%PxJsuq_3dW;0;{KN74&u*6S|DEDm%^vJq(DW^z<(1rLYH;0iD*hF&z3k ztqc0?%ZzUGbwR&57y7vZ-Z7gv@acBa1^o}`c!gdX7xYEOYn+t}+L>k0W9X1w1*+$R z46xY#qg!ddF95Pw(UR(uIF=bamfb)9C8& ztT(#)dCYMn>*|8*{dM(!UKU+_9=s)RNZJHS~pTaiw)!V(`oXDWJU;IU?-j+HIhdW2|!LIh1I=uE0 z=;9)zMl?`pISu=yUgB{da>FEzKT29i_C1PLqhcC@mMgL4=UnkCT z>FMq7qAmgA8C=v6C?2J$)4M>XJ(lVMDWnfE7kb#JY9AN%)$o#7AHsQN(`OY;Y@UOV zy^H$v7K30K7f9E2wbUVUv8hA$y1K;r{^dJ$wZA4#ACtX)mQM6e`0bQJN$>x#oy>4W z8*QQ{5XH&7;~ms17dZNP$+cC4y->}tjWYt zE=}dWxoLg*8Dd1STAeCU{1l*As!Hco@v^UA6VRY|8S9j=y4&YK-z3Dh1m9QDxoib| zhixx>58OKVUI?>gyU_O{^hR5OzN>z{<@napS&B0Pd9uBd;7N`I%PQ$;&h&Dt?U!A^ zxH!6Yg8;`Sxo+4WCxUGC?+n(CQ2WSpmiPy^9{$I}J(snVY%Tnw=&L#{G3n`lW#bOO ze>VE5t%UztxIed?{*-y^S*#0%x(z|_LsaJ25L;0c<%yjk>ytB0uf0yRbVqtONj?Ss z8}JIya=~_7{5!0@9Y;0TrO3sIOQCYq;PP2X<6p6K@aMzH=ZF88t$=^*l#cNK9F4gP z_)7;@5^XMEM;DGZ2d$&9P6CxL_C2S}Q~%WbM|70mIiK3>gjKz4X*2p(%&xhSIq9bz zAcJPz8F;x_z{^m-{KY}5JDdbvr4Pt^9j42@**)b|%c}O#Bm_r>dbU@nA|W_5&uqT} zq4XvJm@wXpa8kHpq!mexms%)hD%7_%7+&oPZ&npF-R~* zous*RH3o7B;$E$m+3um@$X#F=wG3SNm>DYm1oG$_Dgr=>btPJ1%21Ixu~%z4ast5V z8)T?hj)JVdQ#n*joT2KW=Ng~GJZiLIb8d`Bxu3!Lb&b!Lm%H&9t?&ui_&kBm!r()I zqY?yq$4NdH?7t zht^mA+D&WC`v)H}ygv~go1wK5o)YUC_^!AJ8uV&n5R z`WA!Fj&0+a`298O&*RG-`aU`<4Zk-mGW>499Ezc@;rDWkCH(mP2jm35e}nZHXy3C? zkTnkOL-gm9l&I_ey!~9^cToECD_?Z*Imm;L=6AV`&&TLb3_cFOqs_gd+q*|k!|!iG zfBvt>9a=BHBn|I3K4^Gx%c+taI=g>A^?yzQV@mGxRG4pB>BlZ&-i+`J)bvpPiA0=O5f}cz!kdT|;BT^R=+Q z{CK_yIl=Su$;Fnuc__##tMc+(`tw^aaPj<>wGKXqdGOIZud?y!?!srs@;ps@x9vB( zbN+ht=e=lH>;Cigi_-8raG&A#ZRmHC`TZu=KKb$c$%Vr2d;ccAw?xipaaDPk$T_;e*zJcvqmQ$SsAAq;9eN z?}SekR19r_4pnOs9LE!dy6sSRkWt&3erdTbc6oXPw>3Un4u8w&ot7TD6{KrP$xWwW zQ!xn_CKho1N{1mI5z~EyS49fwuvN(#THzIJvj$B-$BQgs>uL;@bW{enzTJkmynGlx zZC2Caru?a~PL|&V{o$ej2m}DqJYcwn0x_Xj=*d7%dik>}u3x$&FFVV(C2(8N|AZ5x zx*0^sT^xxfOpQca>hKaPiY{gGAKy+6N3bKjkn1%nIf+PsX zb?R%Cc+pKm0+^M>r=OOtg(gdk_dA{Zbc}zY2Y(!5>&E}EWc)S8s15LUx%gMj;<7mY zX-agV3SGlLBmFBXlIRcC$cbcvzwuSCid1(6^RD5Wk>0oeBnjUt55Cn}ULrMJ!PhhE z2}Ry!y>vz<1(}+D5`5c4A?%$<)M6;jG(JrZke<7P8p zH2lZ@CAj)Cr)$y&?d^>f+zPW*k)R=AYhHQaGE2v@$Q{3gke59pVQtpm zGD@yuv4_8|`WPMlBqT*vJgGV6pWf*B2o5;g?X$Rsb;5a|NT7TK|HjG+(iSyrz`H`T1c~?>_d|7CUl4s`fKIVGRj?3GBYn9iK zU3vFW%(`4ZSNrKBZV275{Mye1Yz*-&Ei?Vjv7IZ;nfUc1D)27X$0d(na0f%j{Q3vI zKbr2BF=L@QU zAH(j(FuY7dJ`QA>pg`AI(SunT)1%R;i4VB7=)b{RvdmcJND}EqjiTPQ;Tu4>Fl9lVcD)+P_^N~g#T=Ev8t~dPgledSyjYNLj zNroS^ZqKM(lGA(j^*n4g>kywI9ph8KsYK+W$G&B|1)`%@^8Ct>mY7JA#1u?tnT7zTJGX6?}g-D!#8Y7tvv&OOpd427f=$SQu#RTUcjjFnH1 zW&KLlc*}(*dA!)LsRT#ihiJFqS;Qw91hFqQ+mDL%;rM6|T&9aXO2x5L;mj=RReR8~ zz*E1&iKu85*1t{!>M(NDSI-|}wl)dyIr#1kxJUvR`HKR`7wX>DyqsYODr#@VTTx;T zfd^vy02=Hj!hR77%YpsJ<3NyX23Mw$xSq}=Q2nMt%-d%QBimZ1Pba9~g|Cw*&s zF3gF)fEUOP1BjZbQKC1{4GFraOk+_9@y)zUJrp~FG1Nd3R$8Bn3KZ!}&x<{A6-C8O z74;Y~gBa1}R!Hi8r>gs@25Ljev}vQv2gce4Fi4{^o5I^$O&qT4`W97A*!meYB2<;m zWc3froOm}ZGDZ+98-;w`i-~o}7pbx3^5r76ye1vr*04$0)Xn65G01{PSg4Z=R)cad zm1)%A3lss9J2H7osh(2{Ax#Bz{=MQ>2|;&DVI?VrEy<8YZ`P;+hnd z2y6hGP3$fzb`KjQ8zX9l20A{Nco`ykG@yA-07l6ZP;zcg!{#Bidz&b*oVi?4wWdUz zPGL%nfc8iRyl0OuG+7bp%^K^?hQQh+f_xK{C*egU>`o7sMv)#oyjm^a#dh1@nSwwI zp}L`yyHYCsg}O72SdZdO?Iq#x>tq#u`2nOd0lzIK2;csL&c#VMQfk*+E?O(n91UB2 zVSK6h-Inbxm@wD)F?O5iqDn~?`7QePk*`%EGQ{^!C%NToaXR_>okzaT!SDw+ui(;# zbnY#5TE&~E1neaU*bgXR!eV_z3(`Tr78?Q6Q7!?~Q5Tsa(+JpN9Kr?( z^8?#~grR)6G{=hsupt;JI~igT=XDIGWUrLDtEQxI0A_@j(;xWue#l!-3+o_U*l zzB^&6nB6hf#Jk1pc1QK@P%-n$SN@_%5DJRBSNb$Lp2Z`6>h>(&OmS)%c)@JrS?mE1 zlgHDk!5m;;3Oar%GhrjmVaSBMFUceC2$W&H$KG2te0W;3aFKf2Q#$-*wQhG8{xd7w z_}`)MzyETB|IzR`q`^Pt#-Evh|Ha6Zg#UqCh(G*kvuz&>Y)9+R!CGKqdr~M%tR{L> zo7Zr|Vc5DE;*@~;XT()9_|XwV4nwMjv`#h`#ngS_-b=h1HdPW{mGu|6Az^i3hJJ3* zEVLTyg5r1Dha&)iG{{0oRXto8Xrf1}Xck5gQ;a7%Y@O{3xSDAeUa~(&T7*R0Ypi?5 z;cN*u{`hWa=tuQnT}yN@ zDzaP=${=-9$jIgac82%h-;;?QiURCVMdSsCs&PzWn4R$L+H?soS3(y?9XS_Qx%F*M zm-uh>*L3Zvep4IB&1!#ur*+VfciQ3qEiEd=P+~noBKeoUf(I&0L$!|9JY~M2Brtt% zV|_|?)e>@Yk*ZuQt8ye`zH)@rIQep%eCT!O3bf`@$yXuyDs;XI~CAXS)ZQ z_vq)5g%y>l-OoO3UV*G7$)O0NT;rGvyiMj?gVhbM+|h}fJ1$EAz&ZG&(ka!W!Wl>= z+DTDH22+#SdgZ%pPOhs?3y|McCz`00XwS+-t;7pr5d>8jM$|Y4$S`i44CBVJB($k< zu`zgqF|MfEFrz*n=dyE<}Z4RykJOl z-CMZWTMe7VhBL6~_pIGVq42iCLPvxg4XNknw(piMsIYMA# z3ArU-s%^ehBb)HJ8ax?^s0agu#}VOign+2gg~t(7afioKZCF#8mGUwYJf2E;>3BTS z;qiQ-CqWW>YaNw&{mM4Hf3x)4R#%uw0A+qH$^O~P^fAW%IT^$=_RoQ^%WeAyrnen2 z5FHNs5C5Y9q-3wX2$fr#JGwQYt#(YcaJQ*KfIHLWt(jP-2BbYN?u8%|V7wRAbVLCKA7}+RxJ#AA&cw5-^nqitY4~yt z%AMa6A6>gSwKUIqlKM?`yRh5rQTbil0aqmVlGr@AQJQu0ay9tG+5;sS3(b%KY=&NIAR*pNmo)utpRGYe$CYid; zrBQD8WEwVaq7j8PiiJ9jqRg0BR2aTnftJaP;#1O7H!xnMQ@R4B!t4SXh8&e&4sr|`G9N-3?3+Byn^5!^sXCp@P@`ZoM%U9&RL46SfD#9<9DZHMcAdp6vpR9Cu zjXAP!K#&ry0wf$mOI+D%iCs~~0>pl{9#*Kf-_!$Nwy&e)AnUJC zrkk-NmnR@ukFYCMhAEH4u={nxhvU7Ci?KOv~dx(?u}%z%)_4 zCe{wuvyc&_fxL2zJSOo6bWLFlfolxtg-{g&(pq=zG@3CqrU z!UPTByEzvlYu|Y@$6iw?tM7(QLVK{S&3XdXx9TFro!bW_Dr?DmB$gi-FWsVavP%Of z%KFX^C=XZ)K}Y3fMM^jTWR3M6*VRdIqc}4~B-*Sga2)};X!hhX_!W`?A?0Ys_3UCT z%XQ7HdN7K*<7`a`PR7ck9l7MYev`71daNIA+n+VsYMO^92Maw%x5jIFDW!Lv4m*aY zVu{cE%o@jM-sf<)&-qmvH!TCNKmxTIcP(6V#^(%}`)HUfN7fBO@Tf&uhW?%k{X7+Z zk!u0Uw)?3?C5`g-OhlTAIkiW7;sqw-wVm05sa`PAsyJ0~3m}-p>b@%s50xf9Hz@r9 z{V?}KhWy~&g}5l-tpQF}ZW6o)`oGgIP9LWFEC$PL#ZuT|m|I;9#=y2fp-rW|b5npf z%*e?NOwU6f$^J!}Bs)xg@Q-wnI?a`!Cd~FA#4e;Y{#;KaLWVY#UfyTxcSsG5m1=PV zREuM!8bqsZ&u_d&!)8*fVGp4}R~tMz{)_g3u23B=Q6O|CW7r0~Bl$$mJLwc~d$p1~ zj54ar9yv^8CJQmH3`on6=w}~Bn^%~E;wNwv2nsI%<*Zw2G^zP};n?v7{MH3xe%z23 z8ZZNS5yvVvRpi*D7q1~fI;8&-lF%p^6NQ~VSPDrgHGK6N@<$+0S6 zs#u9KlmLNBv~8(uMU2lhJH~0xTN_wI&sz<^jJudtW|`zKOPtG4Ko~~|(d(j<@XA_J z__=zE$lEJvV~2JowG0SNIX&XjKygR}?uchK8hS{*#h;rar zY7HzEJ2hf_a}i{T0dOQR{WRo6zt)CFsd&|5Fqq5Nz1RFy9}fHoSVxzy+kk*_WE<0M z`Y=^sck#!?OzoRXFU?(Np~&(+YG$UKvQHbAf5^f?a2U_9NP8HtaIf23PPh{uGKM*b z8VlxKIM^Mc>Lo1=Za@g^LckMo;0ymicfKM@%ug0mRy3xiG}!LVOKDz$gr=qEK-QU~ zX>KlqiJQ*&l{X_WuTUiWB@&S)6gcKl-bm7|f^>tMMzu~2Pm`}g$j9-#UC)Ni-7gs7 zD)CE)nyRXrniZOw%v{O}e1K9_bCvQ@1%|M>0?R6sYI8~|hNwo3x&h8SeA~{Qs_7-n zxm27zs7zIK_*yzXWtoZ^@HooD$;lEm3%X!(_pREfWfJxw3l=(Sc{}41oVW=dI0swK3}F*%wjJll*M8Ssd$Y2 z1#-GsY#JAb&0$ zH*Uuv)6Sy)4^zMyFTw4dM*OmiH_ION_@x(zE8Wq8IA)uPrqrD4H)eC-W2dEW`B=qE zB@hwcyt6>CKm|6`1@*=|B;Z6pmrorMEs*_8`|FHB>m{sahQ!}GXQKiHzmug8E@r^I=Z=oJ>v-el}m4`-upj|*d zS3$Z9)C&})L@coMQwpvkP5oeiX&*}?H!BJMOvo4Cp(Q5kt(D0K`mZ^z-sX_i7~Qvehx)L*$$ ze_T=~B%($P#0vPxiRJMTj15ct82d6gQY-H@qYoc>GpREV=W9sR=V&DO4rv&HClmtF zW<3l}dnh(EElE3 zlzsqC;7V7iQBD!dP&mbM(8?*BLv>=aWRd1#IdNFz1b#hdwzhPnajZiZ{7 zIG*}5hPplVhbvEg<3!`B9|p72chK82 z;qvwkk`yvL0<7r6nUfOnruLFodC`Uy|z7L!V4p&GC- z4nI6)JqeMMw;r)v?}zSOqw z7=VOhq)bl6>K#OQD+AOqYXAPU*a=QaMN(3cwM;ATj2k~tK<5p-(-m*=&?FztCKYd!3xFAcmzmacC2}DgX%>IA0XU% z_eMU`Hftw1-KZN zZXP;a4MK(@O`?|sBB4=hdU*h*w(Rv;y{NW|KUYYSma zp#YrTgX&o&7!fIljPOtlta-9udySpuh<^zWxxj+6o*}LlAwlBrp`|BNO7^9x3j|{a zB8OV!(UMmK3N#O>w}B4!cuur@ko1&~dbq$KALPxpkdKaZN{YX)5E>u2U|LprJg`2S z`%Ri~>KurENN!Q=Fa(f^A#^f$gt^!N&s>=ahU3MKt|$sNkqq1{qRu19P27*KT$o3N zSync!{b#S&+b<9WVrIQwJER+^WdzQxLivvYqlV4l83Xj&Av1fcH!GYNufxu;V=uB} zPfQHfvE%L7lkM2=C3=V*o3UoL>qfb4zV}b*!RZ(-@OT(UBB(6g65SH(1f0725j6;F z=u2i%Hfw+6DXec_F@a-pGnI|x2^iobr!>&^+92dQjG=-kB1r=^fe~Aqb>7B}2qXs6 z=)YZr)tLE>Pofl08F_$~ew8n(P19~1tOjgy;n@dgmN}z`qXxJ~52vANVe~Ks8bYn( z?1e>>#(Gx(yj8mv`#S+VVvXt}o5vzpGl!alNQLoB2@a>(<5VAYSPKl9>0z^Mp- z{tT8hYMjXBe=xi7VFodF4mScosW2vz4D=+yKX*@n{G1Da^4C{>+E8nccDW&0 zyPPL8OI%p3<>#X06g{9cJo@L3fC1{#KapyRfYtHvFEM6wp;rBqBif?cy&$*8&^_=s8FZ1gILNTO&A>N0mhZjoD!eD82r< zF`lG<-0~ys=G)j6>5(wE{78zwLTPy9XDDn(mBlSTHE#K-amkMWsaEPgNq#21p;lsK zDL<3-e0P;~hLQR-3TU;=5M?Jne;_}#{9KxsMt<%%%E(U?{gRLTNDY6CVnu#_fkuH| zHf;xX0>D9jW{Mc)72{!T!YKM{BtOM$;OIw{b<@|dI>!0PZ<#o0{5SoB<^+Zm9Ng~u zUwkxV*i>%h(}piZ`_m>ZN@?IPmI084KNEda=irNVwgy90CA+EkSHk6H<6rXkF5zF3 z0sciWd2RSV%gGY|64E$g=-=;C$87GEe>sl{SChFdd4GIR=7kE&^t_Pr^F*vqhQX7# z014HmUP_|1fnjqQ#_3sdEMh%_u*9#%FU&C+U+s>7vk|b2<71WRNrs(p^ypSs#`_s| zB*UC^H!eyw&%qOFfN1NUvk2k@vK_ix7N)o-tJ|Og-eOwZ~zeF=grgxlS zN%VdZVIF#qg`P;J_b`Sf(R(+BCDFS*4ZRaCdOwPBi=p=gU%2VL7PNc|zn-W^A$}w9 zi{Mv*Up0Q8A})rf581jLoI-DDpS_gnnU3C1-zW6m{KF)AuZLPlruRyQCDD5!!aVd| z`!?v1B;SuREQ#KCGc1YT*Dx$ezUvvL<@-F+Udwks*jtW#j|cug#_vM>X5)7Qehcwi ziQjtsrr@^`zb+HjCu0h|MZT}cSi(oXPgyARt}aia_ik^c%6I#lsq&pbn1|j4q)!sP z{|8{n^tKq5MDG_EmPGGXhG}}2p|dsgKKp&V+xq0bAB_mC!0(^J!3m4C{s8 zO9-pL(}!$b4tCL-O73G=3m#4WI!1!DG(y}i63UJBmS-^5FM)=@9My0Wm@55@y4h4I zJxWRC{T|+ZQ=V}8+>XjSk>u1OI~Uzd=gQjyLT<{FmOPIJK&JXlebp)NBiP!VEALRa z2TXZVzfeczUHY0+-bt|0J1DOdGisjojMZdIjdft}ciJ)g7J}IZ_lL3-(L>jm9(v|J zM2vg58%nxh+n|)QLsF{LRrC>yN;ZAj5icO;$e+ zXFYBBbI^($3nrgFUyP-Q+08H~W?zC!okK!f<#cOLq7-}=^Bw>*=n zz5@Su5X5w&3rF zMZWbF`v2v*O!fWjy$tomxtM>;R9}IAIGjl7`FjM3)n$2h=|g2d%NS)W+!m(4Q)`ot zG+IQoR^`ir4W@QOJVaFIL>m)a4+AYQ(Us4Yy9l6`egf;6yP5$CmkfCU7TMQksrWV~h zg8Wh}XcP2QfRJl-mgw33_YxZ}Jw``Dpt8d+WL?9tSSI|2e5uLj;5P~SDl76mGuvK1 zf|b_RdTF)T6N$|R(IJ6ZavCIun5TQte*`=GrBBqf5}8|%9s?~vWbWH`awBuAp&~i= z5;cSm;#7zS5vXTev*9%@1~0zF+2MONhG}kmg{{RI@%@}y6F1@vtY5l?+pfvNT7#Dc57{1o$LE7w<;F!HNR{QafkV>5g! ziSyO_+BVd8l6o&%=dJHi9!_3?S#s9*AW!JcuN(f_JGQEw%8swz3N=+MPS4-*P*MK! ztn2%244O@S+rTwb-`~M;?v`h}zQW0y#Q*K8uY}%<_Mqh1u5XR2zBOB|zIOA*p^w}u z6wRsat=QBC9(#CjKkDQRC35sosatGdVkkUJP?SnHS`T3ZTwHb}zf8Tebbls@-j?W5tB$j~(anhid` zTbY8-Ms$$b;bYoMF^i^u8up#6q&pr%sWz)JK_OxQhGFP2Fa4{mP4o9i`@^dvynkX% zo*UkLFcNFsx&p6~@YcQJf|tK|jWrkE=S%?o@v9=dUt!o{<41T=j6|}5SE5*_?(Pa% z&wWn3XvxvH48`teUl@E${x+)u#)8B40B&W(sp^CT^p?YxS8JKTlaO^Tx#I^ptv&>d zTcDu*;4g#S=7OJ>Eqve?#2qS9Q@%eLDGU&4yzFUS_EIm=RgsXLZdIh%et$9oPm%&8 zD@e0jZ=mSsDj&z%f;K_k=Ha}GRSjhJ+3GmB^&Q#}=WN*7up(RlR?>u{|j$2VajNll>4ic`%B9Gk+O(K$y(O~=+z!gP9)SU^>J}XuWAy?|nj9qpd*cNx@ z7pMJFbW*zq}$zu@jM7&WAL1e=LS6ggx^H`n(!UylhX&q^y${e{B`F` zZl69qBmnUwnTqcj?A51F_ddN5pShKNePfgDAKot06>ZHGGBcrugU+c2k@(Z{E}qf&6nu1g^mE6#RPOdl7z%@%}!ZXW};szYX{v0Eznl ztu0bZc>3EQ&RS{Md|<4bTA~C4dN1rtQf8&;fP%d5F16n_8YclF2Gp@yDvfi>lAVP5JiY+`{R$afd!&hy z+bUh-F@SELod?Eg2 z#D{%Wd`?HH*mEb&%m|2`WdfU)Gt`~kdIw0;ZiKceeB%6Hj0l`Q4SgDZz43k-p8vf7 z>j3e58ozurnLsd@6I6fQ^wa(59?T8)&;h&1v!`jX|9?G={w=h*L;EyEKaFto)7f*B ze%eqc`sooolztMU5cfJe`bqAkP0~-fDf&V5(;&P2v^q=_)Sc8JKBZ7W=_r?i5(JVI z)GjFqh=Mvc18^!RAK*y}Diydi>VL64`(SPqlutAjlur~Dlur~Dlur~DluuNpSKDer zx>UJThU5MC-Wh6?q@hwdE*h!>j*E(Vh)v#B8|gYX(NR})m`s$^*_lC!mim6?G@_|O`3;Y)2w^L7L*0=8U2*uWQm8Vasmm-Ra;O!djI{>CfAw%Fh9 zH(2|vHz;-^)3Eu%TG#;^JMGz$Vk8hV133vX4K(%zf}QmrOi!paPrdAP8J+Dw%II@f z`5cp6h|>h@@^w4%M_{o=U>FSJP9k8+*Z#(aR@p*Y@UWRK-hEkL&6J4sUAP`b!FLU9 zMC9OCRH?_lugA@rmkpaw6Zh|6CNUi~$_6VVqhkG?4(e zbI~sP{!=*xRre=X;T%B}b=0?mj>ZU;MqzRWL7DwcjP%Ct zm=K-f`_msD8oT_Gz2yrT;30=~#+-Z^f)_~``l{8u(n~)m(TCB4By^CxYDh6LAcTcn z_68M+UC=-?@m%~d9s*)02x3Xo+})Of@PpDcM-m!&DMz%~vas7<-0bl9gwYf_UQcJ* z>5h7u_7EinI8H^wz_c?cqn1xN?V;TI;67;&rMf-XslVcKU&&5)0GqRF4=K|v!n^%J zLpe#d+&v;JHw{8U1<0vN68(|^)hWwP4G`T^v|CXnMVlx|WLH9d;~?DtOtEYf{gT4$ zMu9|_Qq+yYZKEIpjY6zB-6#|)NDeA3#}TFl)*@(=IPVWI){Qg@lM@rBXv!u^T7@U7 zh$|P1dFVh9n#H%|i&$Q8Od5mK7AZw+0*rKso_Eu}piLso8*W#J!g2Q4v zHx$!8RDZ$q5NrF0vS_Fa2j!^0SBE-#Eq8w*Pxf7gjvl>w{E}1IP+A5a(%bB{{5ux9 zn!T1vz!C5u(KATR3Bos_a{*07kM4?-e^&CA znJR?HsY0{yvNQzcF6S>5C5OpLLnY=G9ds`N)RTvfRG8bLD)3Q>z)E{nL!Gl|U<2;! zL3}yl%W9?!BHgXai+rXI;O0#gSgaG%?U zDp?U|Fe3lbxAhkq+Xzwy2_wi{WWI&MXg~%Fs$`s@56yr>a zaf#z3MdJH#pB!o5#QE2Db?608;HiJgZ4`;@whVmm%YOO{M#296=Y9z~^Hyw3T z!=!%_C9hhD`VNFli&6cTS^s38xBVa3Y%;h9{>xXp@gK#u*D`P;DyUANx*SV*4gTyt zBRHgQugpfB3r(N$!5O>!@#)H+Y?t3NP5Jv|UB0`0Ip)h6jwm5me)bjp4~T}<6wRrhD42gYYxh-l-5yZ*SQMyQ8-U!uqBG z3Pw2zs;AZY=q?+JFp4Qi43r~&6Xi?ju1-u)52rQlfyQE_ar7#;G|okfgfyODx2DhG z0X5Qy^}pE@R?B2Me0yJbhB;-wrABu17tAx0I&{^?>+w$N8bUNKFzu)3_6MlE#_b2=w zz^@IzW%w<}&(#dO{OWE$#pE*jcivRgrp6(-sYnINonPVSNxa(Jrpkq`LAN{ga~za5mCm!{OGc~(a`UiL@Sl(VJ$a>>; z@e=av+)j519s+l{zE{8K)c5?>H1)meQ&ZoAA4{$8G`N`k>RXANsBg|!eB>R7f~@yt zU@K=yZ{7Oh{+z7XyAe)D(`CM|$T`%B~m zfE6sECGS^wSnao}aXh5J$YG&EG|8xk944K$+R(>A^ySCgh)z<7_O=nd@evQAIIOkA zdJSt>QxIiNAiCy5L3B@r=w2wuIzbTK3ViVhWrmMrdCiu8MJ@xp^-(ujH2*&S!0_+a zn7lM5mujA4t(BOxN+FBp-%{iR|Bh5-c{m8N9C1sR`S*ki(LFqfYW^K-Bl`L>52C`q zz0)D8`B$J2y`Cks%*o~;>-y9UD?A?96hzkEsxjzk}nt$aA z(Kt(J$@?8BV!d?JH-vw;_i)G(S>`5-ZhzDMWyrD%y29l4SBj}pzxHii$1dI2ygoqDgo1ncFu)M-1Iq}y;aM=-`Vng7&<){eZ2VI$JNVI~TnTp5e<(J22cjVB-QOkAK^3ZaT;|nwEi=+U;ft`Y10Q##)p9oQ4j}N&8o|n=?KZI$Vl^tT!-tfz#A1 zX@+QUWq=-oUr0gj&`|owh45b+-d&Z{Ggj0ntv$aGGqg)8T|9~4|&A9) zDy&;Ine*+?vl*H%fDU4c_$Tmv%jaPqxH7z9hyK@WOR|f8F)-`iwV2XG< z2GuHR3Rdo#65@7f4MR-{c#r?hj+%nCj3xv9qY6w7Lrn&}$8WTw-gRZT+z$P~m4PYZ zQ|+iJc}@u@*r7EHH6`FZKGu#Z@8@I~Vuzm0P@RD(;=S#tHLeVwKwYUiyz0up6!BN= zs8GIB!V`Arfeh6pFh%?>J1SD(WZ+h2Rl>0h6$fPSAf`xMq{27sfpC3O{Fy4~JqGEd zj86PWg%=b$Nyn+6y%?mEGCENt_pc=O)zN4db~N6zxsfKdO@5O?jQ$tTSj3tCqG_eI z`|`iIm1PN93Y7E4jYhj)j*iVJOFAFmqKt%KYIW#}6f*ggU+XG=e7f={+vWG%qVmhQ z6o|_K)cF|-9n^x;y`0?&&xSKledCPse7-`-9tN z*%xCG*ev0{8=GYvriYBpVqEt9;aW=>kuoO+=%2m@&@BVcmw{>Cns+h4o7*HK(ubjZ zR8{oVHf2|%9RPLo+fXw(IMA5SZm~h~%#96~XD~J@F`oHg2tWbO#=^eDH1&-}UWZ1G zfS*YK6{LLrL_W2`WW2LL`Gz7opHaEewtgU>-5d2Kc z?HGa^S-S&nIX_vOgPf4Hb?@+zM?2RFU7jLqA)166=IsDko3q}j`X6p}S6$26Y9vsy zHWjl)rs`h$=FcjgpAFk6u0CBP>}VA7)S9GeU=YL)^^utLtk>Le&hmo z)wPWM90`<+1u>&#s{S>Qu}tz+onF4GGsu^n#VcQuWlQC&msswq(|G+RH<7h`1zt2n zzU>Bw$VR^2#E{ibzMgzR&l&XKRTZgf{& z%U2InK*`r#m{Iy#$ro2p+2;i{Zx_LZU-_<6*s zQ^Bn;;HI@Z8&yL#E;w<0x$zhCG=M!rg8p32gwzFdE*ZcgBB)mh!o$`bn9@n?>J1A| z%Uo4qhz~!aEEc!J@~qlCIJx*)u4WRG7K{T8ULYcyi~_ZLStnm<)R1)-=9HG~4x=&t zlvs{4imC$Y9N=n_u`<8m280voN_9D5xiuWQSr!uZhI2u7kjUcnBBbR0q9T-~7H!w= zVZ9G~OQ}3-oGB}D26>?hxPUO!d0M=#wpha`1`NIOZx8DpfkD5BwHZ@NOZb-9SI|!E z?&V{-bqyA^c4ZZ}lKpJ{^VocA1^RvwCRQbMR;2jLqq+xrJaN;|0Hq+*G+r8Es5w%+ z+$tE-K9l_M5iZjVtn&bqqS6#CM&cy-pE4zXzeZ9g5FNhu)8##51M(N;9Gcr7_ma0S zZ)}Ynjj-BH6CR$W|0XPJ|4RLx*^=9TNINDF4%>`>7q&&4bE0FB@$utY`gV(cwua}l zPZ+#>!evjyUKri_M0D@gXhU1(EsSZ%!JTQf2hes5oM97gUWULbs zRv`!Ap_1&U0t)d+%u&dC@QV(A>eCfHWBbkNHaoXJK=zKduRuWUzY~2YG(Yh~v?;fL zv|&Xs+T6`Swyb*_kyrRm@ZkDfV=LgqP6Cw1jkAmT$H0>n3R{Mcx5K~Z2?xG9J@8#2 zm^1mVb})|KSP{PvH#ifiG&J9uK@NTBMEvZP=-pV67>MOhnKuV(^IIFAkDY#3&)SbC zEHTWR@UUSQ9G=HDx6x87>;6>qv*#y_UOQp%x|kJhF5irN$2Wc&J0`mPy#l-+g7@#} z_xEB`;2|C_gvAWnTDugCS_mQN)V z#dEp|JM$ag7SUZXp}j5ElhW~Ss&q71!RbS@l9AODK%e}^X28_o*_y#%g0E9zQ>#DE za%AUcI_LzI;wSnO^kiG0xI}c&7?onA{v2W_pm4E}-Bbc_lb`vQjnje^1=B`9KcQiB z!39(zYz)h1_eYY%hZ7pC&;@%&oBBtaj)za-_yYV2(N;r@nD$RpiEqIRdNB#q2y?Us z5tMU5&)NOi`aa(FqAL?nCqgTSAv>If+B~{-DR%{Ze2=<#7tZ*Q^)3Qnl*ZW0gyd3m zWihCu5kzMPsmh^w!>4DIExWu(w7JLWv-Hkt^m(r0G5hK*ei-HeS$r=}2-xMLzm_w< zVMhYTsO_glC&10B>+cftAd(rMWG!I3A4!uccGWdmE->P{J7qw&^!VyZw~fzx8Zi1@ zYcDWbiN#RH#zzUVK&2b}dnv;k=Hz-EwZJGK>#g$6z?XG#Eqm(t9c0XmqPmFZf#C6wL)pxNcWgb&eCsoXPIH z>-_7@MNy~}eVT{QOT)kZ_Ij&aEb>d{-;wZ{`SI^%wZJGM%dYZn!I$+Yj8|~%&mR8W z?9aav8jf3^e@ogAth}0i6%E#?aB*MqyM}@h_41J|e4F!8O^C}@Dcb#~eu1-^+~!#;LPdiTqPrMr(Y+i$@KE_z1L3Oo^6RMBd#(Cr4Mm(f(qKX`WsUnbnV*DJa zLY!GZ5Qwc(vHetRRs1-_Qc7xAHZ>}ABNcjge13e7O8f%#Vsn6_to$qFD1RybQ3Pw; zmVX|se-o=wP_H%C4Os4gNtmg+(B+$hLl|XdssmUVP%e8hp%ij>MJ!R9U6yMHcH_Yr z*AZI7Bl7G%ty`jpHTXQDp<e?ChB#0q9jH-}N{uJ)6lxGht`Jfry3Yw*fXLYgt z=4q%4Aaq%^-(65`nf7(JUy8gA%+P+HMyhSsepj5Dx&5AuxhhCR$L)8dO4zyf`#((3 z0Q&#E_AB!p+UZk5_f>Qm`wXa8_&zbq2~qD2rY1S@xcZHQlhieWY2ZMj`}_LS%$!qX|0EL?;?FYLtmajEXVt5fY?|Y)KRxqO`SjuV`)6 zY86`-T&f8q5*C%k1;hnJ?HdLc;I9Tz^Z$O&z3hVW!eDxRrv8KcdBUEi>F^*wcyv%U*eeb?*y%-yUn5LyyWfp5<01G7rN zx>;9(kFzRMQ)HB!6ROV%g}+&z6KZKN2L?i0LThkY&EDCe9UvK6(vS6*XJMnJJVojMoo0k?BQ zFNtUO&2sQNZ{)||K6vk7ynF8%9>sW2q6)juNPES9@5}G^QQ{zsFG%fbE}m+0J_%dG z6z9q8&{FVwEQ%M*f*3#wW}vM3hf9R<{OXr5K8#I}!uY@AypCf0nJCki@h73I&G>7l zI~gB{B5>OzoAK9^@k6j=DvTdcR=v;$oeDEOFb^uCBqP*K5OGR0~>3iLBQz#tbb551-c5pKbiW}qLc z!~N4DKtA&~@T4O9jSjt@I}0C%gXmDMe4%&D+d&mIfr06sFqSSLIsTjra>nMATrl?h z^V(?IJ&~4OFB_{n`j63q<{KT_oEK^dy$f35i@#hJ3b%UiALez9Yz=)0&hFjnee`gz z3j=^|Gs*f$8G24d)(2=l`-^e%*1XW7(CaccXFeICpR*cQgjMx7=VIf;A{VFb%x5Pu zh?5)Wc)6ih1EE!*uz4ZL1^b9Q8A0(61EFnHEhA+dwupTYgT*Vk8LkrJO7uZea zg{(+B7r|b~wzKR|X=gnw*&eqO7aTV%T;@LuW+EjJT7$jfW-CW2)q^pk(U{^;Gh7?2 zK3H9ii10#KkAl$30^IhvJU_IA+Oc)W)8K%mP2#2B>qsY!lPvQz^0KITs@}H$#0vAt z-)R#tYCmqTf^vk*;XM^$TlG)8!Q;xS%Q+~jfb(S^ve10ac#v}~-Q%PK``MadfNqBhbFOrK|C~ zh0y;n_L-cFKb6y$5H=e3U7V4(sI@GX2RB?6p9j3wXdITpb1_XV9VZZ4fu1O{9p>R* zi%07i27s%X(6FUYu4%GYATQL+qAX-?|Eg{FWy~+|6+~5qxw2ix@GFP{>URFP_)JtD zc4zT9xn1@s{1|)=YL_wG3sJ-;v_u9>;q7C@$rTx+kK14QxMHWKZz>hj>VCOQ3tdfW zA!0^;9jF`iSMHSyt;wyMg1adfSEWO<8NcRqIpi<5E@zaIHE~~`L{^Bs`6ld<>ga*m zwN=NMUtv$eET3sq!1~vniW2ayA&1ihGX37q5z@--_7aqBZVhjs;tVZq^`1M#OBV>* zY}#Pyn6$rf(dac#FDixKPsQA&yakpR)lU-7o zkUhL=uVZslb1JiqmvMhOWt{c%F3nNWC2-*C$THQhu(Im5r9H90CbZvQl)gko*bwpY3Jkhe$qU^5D%wzobE2Nzyw+gp5wfp|FB*t0Avr>h{7W4zqM>;+_=9|ex_bmSmfMA*<()Bq{q zWvb%kU%^4(1P#`Fkl-{(;{+R-M&2DN9&HIm!Mos)fu5k*Ie;y+Mfe02#-4&0zeTh@ zotLg>f^zMg7q&f-z6LOVSB3^Xq=dQZ3}!zR9l2XzR(JZ0EDKZaBQe{J59s&UzLH(% ztpcR2!xWynO>9#5Pnf9EyZ{E})uX<8W*^L!)lS98uPk6pSx{z-fgiOp-*{om@da7l z4_EYY88eQAjF;sbS1&-!Ta2k5$oxjy@-0TO_jiavc-`pGlKh5n#ug*!or$O|MpAMM zPLP)wpDsYy^BuxljZazR-7QAR20WLP8B^*}v=Q$O%x^M3(BMmY1TTRV>jMqpqY8#% zU&=OPN*XdRQvixLDj+3zFIkFTn1Jwm4dEvI*5S7v@2l}+rOS;M)&X2qboW)y^cU&z zXrN~Ts?(?douuSyRXv)NlzxW_zl(IxhdeGOojk);Ja`>UK2e3eLsc`<&rR65#mbp!Bx8u3Q;*TCL9gQlC^Z~Wz`+&c&< zKyP)^hT`l%45@G1KUW~bQq=c+`ZSG7`WP#4oD~>i1$s+h^P?M^ zRs|a)=guLdI}yj41js#B&hb{D*b4Ynz70)li{EP6TAbdz3|OrySqTJI0;?5`AFcVP zx0hrpSulEJz3Kx6MxMJ2IoV=Rb<9G|dbR)6{0@@^VK=7x!17#B;qriHbsJ;&%j-`< z0ob=m)uX&mihVo1jeX0R4@q@dR&D^8Xw2Z%G6kV`^BW?^TgEPt3DqlU{_) z$ToJRDnC=9K9#XMP{lzd2a|m&?5$s-jU7#;7`spJ+kvt3ho1yO#=vR#3%r!Qo2+1X z?v;{B?r{o2)ZP&`F@XXvN&k9r)ZU#dIfL#&>Y4toofd2F_Lmxhp8a+HkM50c@9viJ zuy?G{ws$McP;<`Uh2N~m`DRtl;HAA9@R_EnzLW>c`l#Bk*%6(?M|TZM%WV|h?1i}4JdP1L+T{1h#f`e)@=_Np%@a@kU4uSSPfpc8F|tLS;N znSJFi;4EHV!OM-K5qN@uR2n0u!#H^|@U&><#0Pnrp?jNQu>R@3CYs5rAJ#5?^*y#e ze>D9?ywDn@KWGJJS%C_bZ-XSCC9!LsZ_-59=M#Y3F{s6;9_cVz10|*lV$6F-YokR2 zGX6qVUu?nmTY*EZKp!jc)!l-kZA$K26vvd*OQw~(d^)WnDxZup zjUPp=;-l&3N(=~)V+GQzfMEr`zKf-_RfOd#80=m6Dq8)*x-JFA3GU|*9zAk_(}F>W z#a`j@~qaHi6ugg7oA0F+~ zTQ7UU$VG-m_OBjw8`8Q=#<iZmP;W724qfhNpeM`@1+rCq<&Zg>n5^1sR`=M`}`p(~_`anULKu)3u0(A-4j*CfZ z6~$?@NFRn%aCAhi>645|#-xLJG)|?-=Cmr6M?T|N*)@WBQ4KIfZ~9)*g62EspBPGbj=N#!F=AF;8W)E1(&R*N;G4|>EJ&dK{jonZl`bMD ziJ8-U9R@L+1xHZlPhs~_`Df)}g62k_tEy*UQC=qET@jCbmnbk4DYNoG8~kSF`K74e zuIiW?sbT^IM}?3l5b4_{7vfMJ5}60Co{gVI=th1#bXHz}B&Gz8$?MO>=DhylI|XUo zywK?WN}BT$&B-Tx+}iZR)Y`egujz+t^mA%$J>CTd085MY5rw=$L8S2c6lSnm8bnt7 zMi*Kq8S+XIlZcp7T~j%*#BX$>c>q1{XY29Z*V@}uCD`JVSHa5b@lIscsd&c8J2zAX z>V7ZLb#;6*_byj>r{IM})pKgCU$WNmVNUhQcC@`-&2x2$B;YUV&2!Dn!}i;}E+S4) zg}@SfqkutTxEQ{WEdy4&rQ7FCiuBf5(bd_ovnNSoPJ@0?{Tw|l4_~BJVv6N{o7RcZ zjy|h)8e3L3I>|gZ6IL>$-lsRt1-j?|{By%`70fP1I{N$cP5sdhHl5s{#=*%f>XU#i z+>U;v_F2!Cyyi{cq95I^`wzV*Fr$WqC9@)2TKE@JCIn({rmH4CaJA^y=5S^*iBhG4M;-nceXNEs; zwi%i@)3y}m-{2*c8B-w&z_`q~#tI;&9x)0Qst{7xXMidcVij#@0DK8I`itxCSFu zM6P3G-R&x|ZnnIe*J8;`8u+D@MFUj;`CTLn^6_b&p?YH6?_wUzy`cw7cZAnMq^j$& z-w%OsmhO-uP8OYX1389O2ABoJ0D}m(tAh?8Qkwa9TvO_>!B|94ofE5#T0)u4(K~BW z=Sm~7ly3gvF!oO!Grf_5{omO?+ji$@f8CM&E5sr6xCZY=tYU``vkYDvGXPH9n5GP# z50rEmJV+XhUdUni;+Z*r1e#SDMLhi|lM-XxTwGOeZ`|&tsKLrvM$mGFVBYS_+C}pw z8Y?dl-@FB^jwj}=lor6Q3#vmKIQpY|Zr~n*?w~EC?000~{s>N^_M9{jccAE4bn70#-{BJdHo$DW+ z^$$P)fB#|r;rT!)P8YgUx{%G$sDD@jKjr834|`$wxaZwxGfsc(tovMW$nJF?CHC4c z-m!mp9JYfxdrznR!!Aesw|1a51}EB|Fx+bEA67WbOpHI+Z!`MM4BH=U>k9?w4+gY9 zSSY3@>JJ9!JYXwrtY;Y43oMO@6Q}$}mMCRef2{9!%a7hT-_-r3&J8k!VwEnpQYs;M(pFK55EaC3<&)plJ4TAEF z>7KhXKKuHB|Ct^dYcQkzbwoW!oY8lzTw{pC0rD}J%dP6MC_&v`)*S(wKpbx5NxuHE z<5XE1Xll96ij{ZkB?kW4sKC$3P|Rp^GE|HxE|-&8xbG{wz@5tDP$Z8N_Wq8htD^Ys z7+%#b!?W6-!a0yMPE3>;m0cj-38|RBh}U*fHi}QY@>QKEj{~11Mxvs_JHi!0R{zw} z3)2-wZPWd+WN6yg?2Wr}jVw%)BC} z2sI1krY3-p33y_*m4dF;Ez(e|ch2O#cqE)VwHLFnARpPOuF4*aI3^*ras~sT-l;>I zF`#YN5iEx7y9L4DsrFrnL3M9Zrj2JNVF1rIAA~*Af#<6MC!VFqk817$ ze1+%ilVb41ce1j~CGY{;;mMM~^8%Cvfc^^4F!9W@@Qe(h@CGT5h30b@u0{5Z^u>`p zN9;i$0T>x@sH>fDZ_ktEehP;WOy4wRl~L4^4kC)<5LGs)%5E(sax5D(f2+#ovMe*|vJ8U2K38QQ za3vQ8-DlKHK$H1K4NV<}I_36~Qu7IP52TdfHW*6d&)FaLv`1O?r=0z|f&}uL-O4~9 z31wmnsQ7?#X~a%@(H#X!`lwP5$aP90*5TNTUjMTtiR*J>BoV#nICCIogWIVpmV_kU zj*emir=)6Hl2(t{H)@Q`>OY* z0ThR3^MRwF}#lK=2O z(r{vIA?zNJRtE)!=pP^B`-q!9mVKSdfpmd@u;1h9(FwMVonXimb$Z9R%x zEO;?;p)PS%s!}BE`K^^B`S_u77$Eo>TJ{Ru3GIFL)O}p&C%)>Bjt^YCGH}I8?CaRK zf!hyIMJX1c>)hx0a4v>#th#jCq+?uFyrZfEfXO=oSS|p2YJljWSo}1e^^Z!$3ON?& zrB4RX3gzYm$RcE6=F z3C8?J9-a}X$lMDg1UrhLDj`Q+x-=BT3iB!Scg3Hx`zijMi365ERrG$QdAyD-OBYpI z7@@0K^k1k@+bHBV{qX~CPmJl0=+9;sh-yr16o`~}C=@w^+tvx<_n|;_KQ@;@D^T`e zvC55`?icd&9fXE`)b|#aT9b5eek1Z}W@rJ&^dx;^TU=W<^|P ztM{P(JhL@LW@)j8h)N>!c*zdn6>+tmD(G^Jgw$crjskr63=xuo)D-h#hz$r3bTl+d zf?W!=CyirJUMZatyL#}(Ll&O_Hg^u=v>CYsjbJ;Rpn){nL*J4r3ff3 zz)=vjKq=Zd4y_uev_Sg(=&FdKWuBhx)B-%ngq~W249Z75`PdjO0076BwIkzb0hWY% z-k+fBydimb8vh6%(UpQT6#HWDBC%XfEGPDae3sirq#RMivK%N~2`sNvSdMXExi-s* zCGP=6B~Jjl!twza42P})fMd)LN5sLBC4prnN&>(q^6-34EYBSXEU(72JF#4C)3U!oqEyHiW|j|O;02o{E7;?A2)mFdx1q=UcCZ=K z>is?`3L8M#7_}J#L9l^hJ9Gu^oCst!Odey?qj16z{Qjm-^@>@u8|w+)ih(~nyKx?t zBS11=YdvU&j1)ki72q~HiXdVO!|W@OvmJ?1u*lH{ECe_nSfNOv0*jhaPq-1nFLgJw zZm0;KYw}?ly&8optG8o_t15Ymbeq|!V$5))yQlzme|jUW-JYBNomkpml79{gV0@an zmFL5GEFGsuw;UhH@?Lr;&aTv53&UDH>e%b#XkP|oLY>A+!};9>-oePy6@lbI2)K=+ zRb|EzE3ZEof89M;`sRyKIy?n`+MI7P(wePm{LFY0x0~_c*2X*J6#EJs=v#sl>nl*( z3dVnn_`st2^T~T%#)lV+e?&E5!Im5&n6Oa( zE|_v)pkaLm&uszaH+fz;69?3+^Hh_2k|d|0-U+LxH;kYiT~v=2y8^4$u?!AC7cU6E ziU@Tchb0+s>tHuK6g!OIt&8*AOk_F+3!Wo`d#-|J9->T{9k$x=Ns-lh$uJ z(J1Z>otzZja)MEu3XPof9rO;alSqO!NNNC#a3-~IQt|@;iKpi>d5SXUpun8-nm~$T&rnHBT0XQ{Y;zD?3cig}XkU_htV&EiT0MvKQIL>EHd&|M!D~5t z9(0dYG)nHL@*zGrWFw}Nb$*<=F8%~dzKCY47iM{qk(g_owm2}op%r6VDr8vYq+ztp zNxfNziC;4sJd?V1DziNGc2zQJDUuWU)7-$*$ynm8A)5ah? z3Mn!87KD;}Ai1Cyu15`jfyop}jkX8r#dECmH`=GOPtQjNu-`jRo=LbvV68V7VX79m zV-w!WC^NoIAA$Blg1!nrgF%Gt4?uBkyVX)$Zy;pcmJh}uy60^YJ(|}wc}C$Sf7Ql< zq24TnjG1q7ND^{?iUNVbYW5yiP(t?&L-N!kpkjwgiSX#bOO4uxksDDdc2p%cK)A1E zVHxP)ekImi!~2z>ZR_P_kScT@UZAR>ZO@SC$B+l&f*HE-GZ+I?a?o~4H+5Cgfep|K zL28BK4e0ShmZ1>RHsO68@}d9mrk^BsYh0OR>#!jiN{4+06cO!tMxIU`ru5f8B|hk> zRp|g}@H_mV zW0HnEBh8>rDgG3?@TM%Hix!}*)X635k%<+eeb9nhLne*7T8b%M82$p}niCjVKRUD; z%;;7}sY))uWAxx=kax>$u-M40N7{Z&8{Ay!fsGl8uu=0Bs2=_`eQ+G6550>#3y~e= zdrMZb=kJIJ7`Y3O_72l@`3S;B%`+b1n%e_}!bbv*<&WF&CMb9>Nm0VP2q6vcW{JdC z(GCI{^s5(yKZ6j<{YxS58O+!VhxM(tc@Jg&Uda`BD2v<=A=Nf-7SrGt)DE&?Js_}Z z#P0+4;Sh5Wg%1%jYK}qghg6P0L8E3ea)Hj6=Eh(69Qf;PLAKnGrwR{qB^Fh~g#vII z0RrA#HoV&eURXu{RYg~(1NQ5Z;KO`=0eaD3&#g?$@?6L0*~O?oT!}wyFFIyEV%b#j zHL~$ic`jlHBY>y?Zs*BFu&SSoNtEIXzXH~)@r)C9=74@U2c!e~f4K$d??d!|gWMK> zC@fj-50D04$g}b#kk*STQ0eE0N2NyXTR=}L40B@2p^r!72H24ICY7(i$W6Y7phA?A zrx@zxUV;b7ZRD*sYDbaQ6j6N6(Ob%tUYnquAKvyuG= z;(_dUI%k&mL4-82igwaItmk!$36j>R*EOK8|C^Lnh< zhFe_CJx7E;gP}33P1|v;PYV9F9S|JLsyHC{HLNIPnsAMpm-rI$ zd~!26#6G_kAsD9wq>6DeYVy^9U?UQYn(x#L^BXl!VswDQ^XDy1YHf>w$oy_pI;YW=FAB~zR z&{=8(@E*!SQM`{wzIgt;%%quKep5K&eU_y*M?6p92@m~J6o%EPfCtdDwdAA5>F2?x z$9O#4_`rGa=@I%4x2Y||6C>v|`t;s(46s*~yo>u^JZlJSdvSf!hTw-BynE&&LIU?& zft#!V`6)?764>_WQr;l*4X{N0%VA_2KU(})xN-UoaN!#tI17dv6)tVsQ1UJko_D{D zjEHE#=z1ZZX4AGJcTX19KKld#BW{G!s3l+#})v79c_6JzxUDXrFd^>T3WKXX=!k)NRJ=6MlHl-nE2?R z{-{656xuqd8NS`gw;6xu+jjBMuPYKCz2Y1Y?b}b6$z49bL#C!}4hJ2#{CIAa$Ta1g zqaiEsdmHsH0k-bxNQ5&@^0{jf&hos0X)1ZW39odktE7`dUi_X2pDd^$O1aReVqpL^GH=*XMK@dqy9GRVL!moZg&U% zwzF{fSLj)~JPFwh@Ct))GEzk2Tlxw9^j%0+{`MQ_%x&xe(!(`Y`jhR`*}DR@fFCLG z`uW_Jwy`O^*83(3u>&t}S^tUz8Hc-@XpHp_k^_QQ~iRVPWlW zUxKhv^97-1c?;!bi*idMGpJao3D+ZJ)Z7E?KveqM=fJHIdq@9qA@jliLs{iN{v8p@ z(sjN_c}1((q1}NcfLO01W5#7K9HF7=94dyEik&_>cdZF0gz^PzwBQ zL})9zooRG=M%b|4aQL%m*`tz!DBO>bQA7U?RNf*l^dE(sDfkN$g}>hUNP!(Y3J>$Q z$*^Nn1mHAeB^!$ouQ+nLfasyPd%21h|M6Byi29GGF)hpUD@M=04Ee(~_@n*D9*89y z#ee*6n)V+zAb=?Pk1YsR^&_3?bvL57t^5lo?rQ!tto_F_lrmQx2=rfZ_|wXN{3C10 zfYH5=fh_RpO$5*v{)Pu?HEKTweo|w2I_t9g3+i*1BUAWt0gC=MranAY!a^VAza65$ z(7((=Q2CcU^{&Vu#m#h>I(yaiX8ee%RbuB8cwzW zaNEG89qv&t|%2>B4CYX;#V7xgt-vegXp?(C>OS;4F#6i z=9F<`PrV&-S|kbBOhTJ7x~VfczQ|$oF%db{$~r}|GNygj>D;^2)8(3S5^BYcEc|t! zaEjqFf7qLdb)vC*11s~_>(N*qI23poDoi;WNcqxT7`=tmbWgyX56@T{RH%sUq$27@ zET()?@Z|#_VbfB;?@#b6P!Yj*!zY?<%n>31-D3AW7j=>?JV;}{u@0bavOvL2zwu0B z>W;y*&+cF<;41(=ayXW;eF{NyA^d68Xb0C#>e<4}>=cgqHTUJti#at%Wc4>b%21#mp6 z=erwt+y=zh-9w@ly>_kr`#9R~akl>e-F~z}x4&1M_9w(?KTERxYAW)4A%o{QRAlzu z+`j#CJy5eb09(xWto?GH!FgvZ_GG`5It|FUs`f=_CPQ)tAd?|E@GM7)(XHDYByJ$; z)Y_1W8+$vc0{cRyeu)fKc~((nprT3;Z{~MjkSgIzVFD~P zCsPye^d#A_;a)bHZ})PdnWE6lx6!<}M+}-cNtR{4+cgfFED1CXh2|uAcvhIbT;|yd zO>UtJ)aetcCtz&pIAMh(eZmTXI47(ga7f#b7=#Z-e$bWk;fk)2#2AEe!Ya!=EFQuv z353U@BmgXuhbNQL_R!}-R|8mCbgk+RLjS}pSk*OhT;x!izCz6P(_HfC zMr3@$CUXCCH7>aS={5e(Tf>jp|1qI!_y0s^$FllAGU)!lSB#vh{@=Qx{Si&8{}Xhb zcOa(7VHJXSGrx<7oL;-@{r?k3|L^WZGlimA=gqg#ychE8I9{Xr{||A{WJ&gah2|uA zcvgJO{;$wn0!gjaz!-Ie}tC?u&@hr}SvUd;ZFxpm$DVObmqtNtGkVU}e7M@ja7 zd3Z8Wk@?U@q3Zx39Mk_3*@E`{|2^IRyT|l@9edM>kiA-V5_TkrvG1N)2o`` zqWwR80Lb?o&n0BQVa;f5g{f+%1x|<@rnJCw&;n(%66M9ZDYlSf99s`eH@kvrNc^M zpawW#6qnOyZXj>~LNB!4(BpN5X$7Ih+*cdKwGXsWDdyQcdfFMU)KMP*Kuil#llUD* zC9#R^2pji2XSAd)Mlk&YvjQUa0yG700E{ZyfsEnZuHs|)&uN5>9ma`f8vHmkJ?`j) z_Y3hpB_1e7{!-p@5K2-${ZQzxXe11MAe0Y`ix@aFk$8d3i3Oo9^7UBeM4gG|T#Tg2 z7t}2P{V3z&Q6*m$Mhtcx&tnu0Z45P4-O^gspW*@*=_BKfpKRcPqm)QL#HS)7lp=2{ zcwEKvTCLqZI&8H!N}rG6VC{@P(>L8oB%pxj5}VH5j&blIQTzM7%W2qTC|KupVZ}q) ziG{EU4m%;YV|2mXPP;1-SQ2*PRjd`jP7DVC*x&g>V1Flnyg@D;Y7Nu2J&&KutXr)V zb%1O`=Ydi+`waqrBvb-#TFjnNYu$}dXg>Tlb!xMD#s+cftFe@#ICA9oF&y#JbHC>6I2>U~a3ljI0pLD)c>2+DZ^V=sXQo;sS%DDF zz>yq}cx5U=O# z^s26ZxuYJ|!tb4Y>JL(Y%qLB@_%v&K44*Kcah$p6|Ha`GOM*|mQ4#=dl!s>uDl$*N zblZIPm#}mL+>bI(YT?*s!@le-j!}}_h;@7FBg_FF6`D&ibS6jT!jV$*rv5acnyttH z(Z_kuX0rrp5xKIpP|A#L*UE#{RBhLY4~ou@1$yAdYDatJRt$gSSj6XIf>FmGrQ&lV zgAgA;w2n_!@d4bQE9E_S|Mv*akHi0N4*qYC$N%eX{%?!Je@sxd)0`InQIhpB3{Y?jf zKOhtbSIyg;tj`f?_ntb*V*Ra{2yhrpbp2z@Wnac&JxikN?~RgR{a@wbsYXTS$?s!8 zG^RdsJ#R&lK8@}ZG(Ss%W#l(=u^f>ZsKa^#QS$4)KbMH0Yx~VNFl=UunAV_q3zS6x za%YP6)*b)#H@U8XC5}urFU}4cG_REP2E-Qr#BADAev~9f`H|TYhaWFawD|D@Y+GA? zWMgiqU02lnn2wU*$Ntyx;n{j1`0?D@xcoTZ=o~-X7%MyY@hv)UJAPcTDIP!GLk)U~ z;-|H@ZS^Bo5;#)v(?b)v@tK1tRfxm)s@i+)ohbj(GP-b`EI)nIB$yp+)!VQEuGPp! z-qKOZ82Gw#XpqF$-KoVs>IWqn?6!MhrRsJZYp88rCAZrE~}G`G>;>7ARW5xCYmXMW{G z|6zrGZJLFC|5)@fRd%|04rHpGl(QtzKNTf`{_O!l{}VjS6>!UG*MTP}uhCCX=;ucA zDYAuBNNg6n#6zvXk5q`8TN{o_>V5)S`^rzo`(Q{{}Lg*#LWxu(oLD(NM`>> zxsq+=*_Ow%*6)ct{#knsl*j2?oeb6T_%sG*%F{m?%QKn$YKg_Cy}N+LfU^ zZvN8AP%V$CsTM<@!+eB;p>S)?G{5>+9ENIn+&EYmIx<(}@p0H_vjRRxJN@`a%$m~D z?2djsg21&rj)*~D%i|?LLdjzbRJj9vk;kLsp|9m}s6xN;L_xm^5A&&2apdtsxCTJK zLwUU7rH?7`HWg{$Bcf@`8b#33a_HQg3XZB z#~}w~Te%(cI>x%V;xt81KXB$1hK88~b+hG0T=Rtk3E}qCdPH)~F2zhj|5fWFnAX>z zYc-(An_R<7scuQH>S>9bOu_h39B^TnHJC*|9j zE~`3_ZW0<|VN1lWMEk<)-8RtE?EF{9&3`1k?(kE{|0+IlXJO*2y4J4$21p(~pgDrO zM(S=XJc4F}iPYfgmPx7-go0H=2neebIw!Zokh*NPfFSK7eT`>}QU}|a2FN<5q6-#4 zFq10xC+Y|{X+#ueI>={b<19fY;)(yDDE|HV8pUEG#sfoD;J+2 zR4d)Nxa5KJ@VUTcl4AOq&8j~kmOHQl6T3#Tbv+t6Srr~2o+gU~)Y>lYSgdE0d?=VH ztH_z*iJaL5P3lpLOfgSuQ6Y8VZo07Bc)1`oJ*&Z}6=}3cnym3=H5FK=2LV`k6FqwuC z0YYk|hvZ@qvXf?|rQ*x6HF6BrBL3wX0nMiLDt^agSeJ;K4}mufK#tJKL+w7B?ob4W zL>n>Bz`tiV%-Mn0X;`yN zE8G`*_}C@V&Oiuz5$37lqfs2&6DCCUUY!OX`GC|og17QQJkq{dO;C&)0&X8^bNl`M zHMc9HAWpGBXbz`<;8YP&4u1^;6&3i(19czsAdqc_o}@6vmfO1kkJ!eLD++nY`X{8l!O=tloJUC0%!^ zB~r|4rHbxSMFa~EO0Th$S_`Y-UNn4XtJ9isIl@a3qah zb-SdoPtIkY0a&tOBqh(lc7zo3T(}*|!P(b_6tW;iR&jTN?cvC^+tNz{C=WpDTfE8w zDi23zhhkHqp;dituo)IuokkZ&<FZ=^t9F>bMjtXfPr%nDtvAZn% zx^i)#{#90A)dU-X`@|>IUq7(O_D2|dlFi2gKIP-6P_XI{8WK^uLg5KIE9k0$pj-u< zoaf}OXw8SmFe74-#`0b!*%7vrBTka0pp}hV2mB;0Rduul14MJ%&DaFnER2r4ABj@; zZ7Y`Q1eQtkT09%CbeZD*EpKQuuOhXjr?W#_qdhsqW>$)`lSx)A_?O6$DL_=N!z+*e`FbXxsPKz*vh&0NX>9;DAi> z%>sBn@Bnh*`S1bHhY#EH0RrOrh}lyH5D1HHEP*R=i1K_=8KjF~r5!@g=S0{l8>cZA z2AXFbx<0B~()CfHbccrMYXLzs4vm%nL!;erQ=`T682Pti6*uQ$A`m1fMQckf@8?k4 z`{9-0Q4{X;ex6jtuSIcsKT)MP(Sjd&pA3%U{u~Ngj<8j2AM7G;t5`?aFr5BR45P0y z$!Mz!DE|lDF6#e4)|xrU$W;E1?kcV>9)YQ-e%uTSyvq==f za`RSLJ{6jQ*<3<~H^GF5bwcS(Xq+~c!na_h2dGMWv(j5vT9qEAu)PVDs(w$k;v=4- zSACqL0zhA6zgSEXP@!th?r-g~NE-9(EPZQsK;OXmLf>QXF#nFZ@)-KQXw&yWo4(I! z`u-W4s1!jD#bSVizDK;G5=v!{YkUH4ERkAQ;bCUmwQ2(Ab(X*uD*FSKpMt>c>5E-W zvs0&m78GH~QxQBFh_K&mNL2DCi|Hc56}AYkIZqn-8O!NMH#JZCv5MNC`HP*dA6nmK}vJ z@RH87!q`ys$tM<-L?ry?N=R_DJsEa;GIXEIh@7U#vV^iobY^ym{N94dsx+WkF@Q2{ zK$#j)X2i`4+_A>`A8?p&7v!%C@Mm-5$=`2^MgC^sVZLE&GyTP|00^SwZ?-Les$Weq z7hrx;ku?|2d#wBgUetuvy}ZJB&MAPK;ekgP=CkP>6~JU$0Kb313Cfnh40yx}gv=44 z0?|B^%%MO_N#L4T3G9X;bKDZ!FgvOw@L^j5iSA*Q7bqE#&jFuhg&~0#L!}6)DlIrE zF%60*fu}1{4R^FAa=Qi6A%bs1RYXbiA1;D1_QtW_2D{+dw191~{W+@N)On8^BjPp^ z5AzIm$Lfyu>~{{{Aqt*BcuAZQ-d%Xwxc~MX!LJ$*^C_(U>?yo51@CmitDtYuA%1c9 z)02|$BT^uku84eM-u{FwDJ&o8NU2mGzJR8rkfl)T;%jZ#e7VGUxkpw*C01ZCnsp}Q zBQ4S7gc0@pHWqhZK8leuLqRCW-_GmOF|sk7S1)^jKh`6O;B$h%pZKR3&-Fe7s2}7^ zkOs40oB2S zwd;FTxkv44D^vX;wL zVEv%O7R0b49zPuQRd%kv#oR)$Yy3wKg8{{Sbj;Tdt#8_<@SC>JCh%ZYo6i|q^pBQ* z&Q&%GIW;)U+IMB=6$sD8gV479aaF^-F1k;3pgJ7sJgw_@EJvo;lK1d=%aL#2e1JfpQ_Fa7~aKb5Yoe;&H zUfq{EcY3v8e20mXV}J1Itx~UHDaEl>3Ol_r%wCv?X}9x`C9##%g^~a;>r`>hdZHrp zrYA%a0uGH7OYfb%l|@yxlOWZma8)RRDe72?Jcn87U7*N?j?J}SEsjHxwC^p7yofPW zTZ(K$AMc1FpMNJ5`IXum+``SZm4DkKidgclWurQ?lN+G39gR$iY2+rw_7j1s+9CHg z+{@TTW}5rPYa~m8?LAZ@`%loo9kTnr z*&MYLJC$~%S=;&_mL+#?;%_#;UeXa5hklcy_OAbh%iezf1M(yA&jiq>8|CgEx-eS2+Za(pFRs^s5b|h|} zQM1b_)Xm^%3gmJaG7NK7?Qgz-eW6Oy%tUxs^ZOxBcnSUxM5(J%jJ>qXn-Q2mHoIY)-2WJaO+75ppQmQcOh*DYCW>F`POppS^Bp>kjK zx&&Cqgn3;eC#%;kcs*7HyCS#`K31RkyA7@1tmcaOL}on5POaJ-sdN9dq18_7I)d28 zcP#~{+?nt#xGm8+sF=R#5l|(7b>aD>)4V6GiKv4>U)i;0r~U07**07h&cgf}&a~8{ zfUEK#9qKx{rw*mc_OD!~%1VVC&H&=9ngS3|*8Tg$sMLLP-GF&Kl}Gx8q?x@)u->G!iSjMQiVt76rqXVOfQnMdnG( zoTfhNUCEyrlmFpIAi`)xg$-fxGqOd_7r?aqB=b$|qQi+}?rQLvL;h$@56XTuA@AKf zd*lt{*&5j^3_eqm3v5X)V2z*_wM_;$_F)f6dQ~sPWK=hIbw*;zTP5plzfwb{uEFL{ zA00|EYVQJMgRlOFeEv1;Abww)e=52ghns+2CI?~>+i%_sCtzFq9 zl(kFFQzd~^#~dp9Q}Zo8PR-5AaEP~#(yXw2#=NB8hZ1Nu;V%;0Z>Nux$`yvx~ zv_{TXkyIszLs@)ws}OCRs_AHFO{?yZn#M)OMbeNn|9;6S%cYad-p-tls+{GKV=+`1;qFs~PqM}G zGeDLNdx1J#&?6GRoFg-zIcvVv-!Olrt>g<>&=a#IL262Sn9LVp~&w+lN5FXV39gjY_1sB!?OD$lghUk9Tt zjSZhqU2bi}6qXD^(*z;W<)f&}qf#^-Gh@)@kN6_XsO4Kw1G@xjE401!Le>k)6@pB==B-N& zx9A$6fyoz_D0zlry!F1o4K>qSmt3N!8H#%A0xerX>&RP=Et`b$wpewwT1sy{HeVw0 z@kot$>r&01I10MBM)FZSDlo!dR8RdBfJ&FjqeWs7C}%MBcMbQnnE7ro^Jp6gQMZ9K8Vf^WGSfe-Fs|(g}MhZ z2ifQWXMezWvN;fHKrlPdt%2zK+qwGE_BAk96p8T3G!Gz)&!*vQBnggU9x&;NTL*x) zonC}462LHP4kG!_mf^>+Vad)Fn9UcJE6i`P)6DpRScdsvt!*m)fCO_WX7X%Pfe{8x zMK9?LVk;&nWT?iEg8KJ?zNGk_&Z>RRs$UDKs+l7)B{C9)3gI@e&|GJs?c8Ny_0KzX zA?AqWNBT!AmDNap;G5M#PO`~QP>(o4&2xeptwBi+{ej=z*QUReY)gR->OrwD3@Q7b5$@)>N2!@dAOkvSB4s3ZH5f|9T=+hiih^IJU3zuXS&p}Z@I zmfhf0G!;OtBFyjHveQ!Suy4-C(>$VC6$-=@dPsK*c4ZsVp8?+v zj#vTXt4)mL5);Fam>3yH2)KI8N3xNAjwAf`I07Lxj)*Os29*CNnTy1Is?S>*k>a$_>)llRl z+8S#pB58MEgAx#fm(FP=u{ANWxRsj)U~BFKcKm0{^YOADOLz8nFe0F>VJ_R&(1vH4 zM^BBlHLt+$v~7(ZmWZth*tSLw8E9)7ZvkM3*_e+C%*H0xrmHT|RnJ9=wlyC!%3&a+ z&~45_hw4I)u#mDfx>B(<0c~qQ4zP=$<{_iq^js&X_wH0pmmJd@O=SFKKB}$3*u!^O ze`>ql!1bp(s(f@nY+R=w2M4E+QkP;b!CXtuQ(bbU X`%gtO&9(8J2X4mUWfkA6m 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 `^ly`nDHQ-vQIoz=DHqH=% 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 zÐ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 - /// Generates the bindings for raylib(WIP) - /// ConsoleDriver.Run(new SampleLibrary()); - /// - public class SampleLibrary : ILibrary + static class Generator { - void ILibrary.Setup(Driver driver) - { - var options = driver.Options; - options.GeneratorKind = GeneratorKind.CSharp; - options.OutputDir = Path.Combine(Environment.CurrentDirectory, "Raylib-cs"); - options.Verbose = true; - // options.UseHeaderDirectories = true; + static string template = @" +using System; +using System.Runtime.InteropServices; - var module = options.AddModule("raylib"); - module.IncludeDirs.Add("C:\\raylib\\raylib\\src"); - module.Headers.Add("raylib.h"); - // module.Headers.Add("rlgl.h"); - // module.Headers.Add("raymath.h"); - module.LibraryDirs.Add("C:\\raylib\\raylib\\projects\\VS2017\\x64\\Debug.DLL"); - module.Libraries.Add("raylib.lib"); - // module.OutputNamespace = "Raylib"; - // module.internalNamespace = "rl"; - } +namespace Raylib +{ + public static partial class rl + { + #region Raylib-cs Variables - void ILibrary.SetupPasses(Driver driver) - { - // driver.Context.TranslationUnitPasses.RenameDeclsUpperCase(RenameTargets.Any); - // driver.AddTranslationUnitPass(new FunctionToInstanceMethodPass()); - // driver.AddTranslationUnitPass(new CheckOperatorsOverloadsPass()); - /*driver.Context.TranslationUnitPasses.RemovePrefix("FLAG_"); - driver.Context.TranslationUnitPasses.RemovePrefix("KEY_"); - driver.Context.TranslationUnitPasses.RemovePrefix("MOUSE_"); - driver.Context.TranslationUnitPasses.RemovePrefix("GAMEPAD_"); - driver.Context.TranslationUnitPasses.RemovePrefix("GAMEPAD_PS3_"); - driver.Context.TranslationUnitPasses.RemovePrefix("GAMEPAD_PS3_AXIS_"); - driver.Context.TranslationUnitPasses.RemovePrefix("GAMEPAD_XBOX_AXIS_"); - driver.Context.TranslationUnitPasses.RemovePrefix("GAMEPAD_ANDORID_");*/ - } + // Used by DllImport to load the native library. + private const string nativeLibName = 'raylib.dll'; - public void Preprocess(Driver driver, ASTContext ctx) - { - ctx.SetNameOfEnumWithMatchingItem("KEY_UNKOWN", "Key"); - ctx.GenerateEnumFromMacros("Flag", "FLAG_(.*)"); - ctx.GenerateEnumFromMacros("Key", "KEY_(.*)"); - ctx.GenerateEnumFromMacros("Mouse", "MOUSE_(.*)"); - ctx.GenerateEnumFromMacros("Gamepad", "GAMEPAD_(.*)"); - ctx.GenerateEnumFromMacros("GamepadPS3", "GAMEPAD_PS3_(.*)"); - ctx.GenerateEnumFromMacros("GamepadPS3Axis", "GAMEPAD_PS3_AXIS_(.*)"); - ctx.GenerateEnumFromMacros("GamepadXbox", "GAMEPAD_XBOX_(.*)"); - ctx.GenerateEnumFromMacros("GamepadXboxAxis", "GAMEPAD_XBOX_AXIS_(.*)"); - ctx.GenerateEnumFromMacros("GamepadAndroid", "GAMEPAD_ANDROID_(.*)"); - // TODO: MaxTouchPoints, MaxShaderLocations, MaxMateiralMaps - } + #endregion - public void Postprocess(Driver driver, ASTContext ctx) - { - - } + #region Raylib-cs Functions + +{{ CONTENT }} } -} \ No newline at end of file +} +"; + + static string exampleTemplate = @" +using Raylib; +using static Raylib.rl; + +public partial class Examples +{ +{{ CONTENT }} +}"; + + public static string InstallDirectory = "C:\\raylib\\raylib\\src\\"; + public static string ExamplesDirectory = "C:\\raylib\\raylib\\examples\\"; + + // string extensions + private static string CapitalizeFirstCharacter(string format) + { + if (string.IsNullOrEmpty(format)) + return string.Empty; + else + return char.ToUpper(format[0]) + format.ToLower().Substring(1); + } + + public static string Indent(this string value, int size) + { + var strArray = value.Split('\n'); + var sb = new StringBuilder(); + foreach (var s in strArray) + sb.Append(new string(' ', size)).Append(s); + return sb.ToString(); + } + + public static string ReplaceEx(this string input, string pattern, string replacement) + { + input = input.Replace("\r", "\r\n"); + foreach (Match match in Regex.Matches(input, pattern)) + { + Console.WriteLine(match.Value); + } + //return input; + + //var match = Regex.IsMatch(input, pattern); + return Regex.Replace(input, pattern, replacement); + } + + ///

+ /// Proocess raylib file + /// + /// + /// + public static void Process(string filePath, string api) + { + var lines = File.ReadAllLines(InstallDirectory + filePath); + var output = ""; + + // convert functions to c# + foreach (string line in lines) + { + if (line.StartsWith(api)) + { + output += "\t\t[DllImport(nativeLibName)]\n"; + string newLine = line.Clone().ToString(); + newLine = newLine.Replace(api, "public static extern"); + + // add converted function + output += "\t\t" + newLine + "\n\n"; + } + } + output += "\t\t#endregion\n"; + + // convert syntax to c# + output = template.Replace("{{ CONTENT }}", output); + + output = output.Replace("(void)", "()"); + output = output.Replace("const char *", "string "); + output = output.Replace("const char * ", "string"); + output = output.Replace("const char*", "string"); + output = output.Replace("unsigned int", "uint"); + output = output.Replace("unsigned char", "byte"); + output = output.Replace("const void *", "byte[] "); + output = output.Replace("const float *", "float[] "); + output = output.Replace("const int *", "int[] "); + output = output.Replace("...", "params object[] args"); + output = output.Replace("Music ", "IntPtr "); + + Console.WriteLine(output); + + filePath = Path.GetFileNameWithoutExtension(filePath); + filePath = CapitalizeFirstCharacter(filePath); + + Directory.CreateDirectory("Raylib-cs"); + File.WriteAllText("Raylib-cs/ " + filePath + ".cs", output); + } + + /// + /// Process raylib examples + /// + public static void ProcessExamples() + { + // create directory in output folder with same layout as raylib examples + + Directory.CreateDirectory("Examples"); + + var dirs = Directory.GetDirectories(ExamplesDirectory); + foreach (var dir in dirs) + { + var dirName = new DirectoryInfo(dir).Name; + var files = Directory.GetFiles(dir); + Directory.CreateDirectory("Examples\\" + dirName); + + foreach (var file in files) + { + if (Path.GetExtension(file) != ".c") + continue; + + var fileName = Path.GetFileNameWithoutExtension(file); + var text = File.ReadAllText(file); + + // indent since example will be in Examples namespace + text = text.Indent(4); + + // add template and fill in content + var output = exampleTemplate; + output = output.Replace("{{ CONTENT }}", text); + output = output.Replace("int main()", "public static int " + fileName + "()"); + output = output.Replace("#include \"raylib.h\"", ""); + + // REGEX WHYYYYYYY!!! + //if (fileName == "core_2d_camera") + { + // remove #include lines + + // #define x y -> private const int x = y; + output = output.ReplaceEx(@"#define (\w+).*?(\d+)", "private const int $1 = $2;"); + + // (Type){...} -> new Type(...); + // output = output.ReplaceEx(@"(\((\w+)\).*?{.*})", @""); + // output = output.ReplaceEx(@"\((\w +)\).*{ (.*)}", @"new $1($2)"); + } + + //output = output.ReplaceEx(@"#define (\w+) (\w+)", @"struct 1 public 2 public 3 public 4"); + + var path = "Examples\\" + dirName + "\\" + fileName + ".cs"; + File.WriteAllText(path, output); + } + } + } + } +} diff --git a/Generator/Generator.csproj b/Generator/Generator.csproj index a9b40b0..ed1eb63 100644 --- a/Generator/Generator.csproj +++ b/Generator/Generator.csproj @@ -4,15 +4,13 @@ Debug AnyCPU - {3B25D9D6-17A6-4A32-B9D1-C637002BD554} + {063F21F1-12D3-41C6-B598-125C725955B1} Exe - Raylibcs - Raylibcs + Generator + Generator v4.6.1 512 true - - AnyCPU @@ -33,74 +31,15 @@ prompt 4 - - true - bin\x64\Debug\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - true - true - - - bin\x64\Release\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - true - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - true - true - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - packages\CppSharp.0.8.20\lib\CppSharp.dll - - - packages\CppSharp.0.8.20\lib\CppSharp.AST.dll - - - packages\CppSharp.0.8.20\lib\CppSharp.Generator.dll - - - packages\CppSharp.0.8.20\lib\CppSharp.Parser.dll - - - packages\CppSharp.0.8.20\lib\CppSharp.Parser.CLI.dll - - - packages\CppSharp.0.8.20\lib\CppSharp.Parser.CSharp.dll - - - packages\CppSharp.0.8.20\lib\CppSharp.Runtime.dll - - + + + + + @@ -109,18 +48,6 @@ - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - - \ No newline at end of file diff --git a/Generator/Program.cs b/Generator/Program.cs index 598a56f..4c03b90 100644 --- a/Generator/Program.cs +++ b/Generator/Program.cs @@ -1,16 +1,16 @@ using System; -using CppSharp; namespace Raylibcs { - static class Program + class Program { static void Main(string[] args) { - Console.WriteLine("Raylib-cs binding generator"); - ConsoleDriver.Run(new SampleLibrary()); + Console.WriteLine("Raylib-cs generator"); + // Generator.Process("raylib.h", "RLAPI"); + Generator.ProcessExamples(); Console.WriteLine("Press enter to exit"); - Console.ReadLine(); + Console.Read(); } } -} \ No newline at end of file +} diff --git a/Generator/Properties/AssemblyInfo.cs b/Generator/Properties/AssemblyInfo.cs index 6ff3e83..171731b 100644 --- a/Generator/Properties/AssemblyInfo.cs +++ b/Generator/Properties/AssemblyInfo.cs @@ -5,11 +5,11 @@ using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("Raylibcs")] +[assembly: AssemblyTitle("Generator")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Raylibcs")] +[assembly: AssemblyProduct("Generator")] [assembly: AssemblyCopyright("Copyright © 2018")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -20,7 +20,7 @@ using System.Runtime.InteropServices; [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("3b25d9d6-17a6-4a32-b9d1-c637002bd554")] +[assembly: Guid("063f21f1-12d3-41c6-b598-125c725955b1")] // Version information for an assembly consists of the following four values: // diff --git a/Generator/packages.config b/Generator/packages.config deleted file mode 100644 index 8472b34..0000000 --- a/Generator/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/README.md b/README.md index 1cb2bb1..4926c2f 100644 --- a/README.md +++ b/README.md @@ -3,17 +3,40 @@ C# bindings for raylib 2.0, a simple and easy-to-use library to learn videogames programming (www.raylib.com) ## Installation -- Download the repository -- Run ExampleApplication.exe in ExampleApplication/bin/Debug/ +Tested on windows 10 64 bit. + +1. Download the repository +2. Run ExampleApplication.exe in ExampleApplication/bin/Debug/ + +``` +using Raylib; +using static Raylib.rl; + +static class Program +{ + public static void Main() + { + InitWindow(640, 480, "Raylib-cs"); + + while (!WindowShouldClose()) + { + BeginDraw(); + + ClearBackground(WHITE); + DrawText("Hello, world!", 12, 12, 20, BLACK); + + EndDrawing(); + } + + CloseWindow(); + } +} +``` # TODO: -## Cppsharp generator: -- Add utility constructors for types -> Vector3(x, y, z). -- Add utility for cleaning up types so they are destroyed with the type. - -## General -- Allow raylib to be used inside windows forms -- Convert across raylib examples +- Finish binding generator +- Use raylib in windows forms +- Bind physac, raygui, easings ## Contributing If you have any ideas, feel free to open an issue and tell me what you think. diff --git a/Raylib-cs.sln b/Raylib-cs.sln index ff687c0..2925e0f 100644 --- a/Raylib-cs.sln +++ b/Raylib-cs.sln @@ -5,7 +5,7 @@ VisualStudioVersion = 15.0.27703.2035 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExampleApplication", "ExampleApplication\ExampleApplication.csproj", "{A2B3BBC8-3D48-46DD-B3CF-263F554E4474}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Generator", "Generator\Generator.csproj", "{3B25D9D6-17A6-4A32-B9D1-C637002BD554}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Generator", "Generator\Generator.csproj", "{063F21F1-12D3-41C6-B598-125C725955B1}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -29,18 +29,18 @@ Global {A2B3BBC8-3D48-46DD-B3CF-263F554E4474}.Release|x64.Build.0 = Release|x64 {A2B3BBC8-3D48-46DD-B3CF-263F554E4474}.Release|x86.ActiveCfg = Release|x86 {A2B3BBC8-3D48-46DD-B3CF-263F554E4474}.Release|x86.Build.0 = Release|x86 - {3B25D9D6-17A6-4A32-B9D1-C637002BD554}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B25D9D6-17A6-4A32-B9D1-C637002BD554}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B25D9D6-17A6-4A32-B9D1-C637002BD554}.Debug|x64.ActiveCfg = Debug|x64 - {3B25D9D6-17A6-4A32-B9D1-C637002BD554}.Debug|x64.Build.0 = Debug|x64 - {3B25D9D6-17A6-4A32-B9D1-C637002BD554}.Debug|x86.ActiveCfg = Debug|x86 - {3B25D9D6-17A6-4A32-B9D1-C637002BD554}.Debug|x86.Build.0 = Debug|x86 - {3B25D9D6-17A6-4A32-B9D1-C637002BD554}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B25D9D6-17A6-4A32-B9D1-C637002BD554}.Release|Any CPU.Build.0 = Release|Any CPU - {3B25D9D6-17A6-4A32-B9D1-C637002BD554}.Release|x64.ActiveCfg = Release|x64 - {3B25D9D6-17A6-4A32-B9D1-C637002BD554}.Release|x64.Build.0 = Release|x64 - {3B25D9D6-17A6-4A32-B9D1-C637002BD554}.Release|x86.ActiveCfg = Release|x86 - {3B25D9D6-17A6-4A32-B9D1-C637002BD554}.Release|x86.Build.0 = Release|x86 + {063F21F1-12D3-41C6-B598-125C725955B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {063F21F1-12D3-41C6-B598-125C725955B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {063F21F1-12D3-41C6-B598-125C725955B1}.Debug|x64.ActiveCfg = Debug|Any CPU + {063F21F1-12D3-41C6-B598-125C725955B1}.Debug|x64.Build.0 = Debug|Any CPU + {063F21F1-12D3-41C6-B598-125C725955B1}.Debug|x86.ActiveCfg = Debug|Any CPU + {063F21F1-12D3-41C6-B598-125C725955B1}.Debug|x86.Build.0 = Debug|Any CPU + {063F21F1-12D3-41C6-B598-125C725955B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {063F21F1-12D3-41C6-B598-125C725955B1}.Release|Any CPU.Build.0 = Release|Any CPU + {063F21F1-12D3-41C6-B598-125C725955B1}.Release|x64.ActiveCfg = Release|Any CPU + {063F21F1-12D3-41C6-B598-125C725955B1}.Release|x64.Build.0 = Release|Any CPU + {063F21F1-12D3-41C6-B598-125C725955B1}.Release|x86.ActiveCfg = Release|Any CPU + {063F21F1-12D3-41C6-B598-125C725955B1}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/header.png b/header.png deleted file mode 100644 index c4b467dd67af65d5206cb513932bec697834378f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5120 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

gkW+n_LngZ=tZlU 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 CIz~+Z literal 2527744 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�jvgIr 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