From 6b6b345551c73862be5363680d69d0a1cf8d1dff 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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 G2mk;c#HE%1 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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 z 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

&g)2ZB{n8 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 p6EMJUc*<`6#=%#5GBVPAHCt(rHi{ zB%XUslA+|9Bt!KzNd{1QCly2TA1R^m8I;dI^GAZC^|J@R&VlA1jKw_1!LbQi%>G&q z5?q)HApr;rH?rdJGrwSniUh>fNTmii_Ih(v1VHH+DgHnQM1s=OXZ{#)aSAIqK11>` zhzrWP(6j%ED7D}rbpkXh4B3xkgpyuB=5@D%N~ca%u`)FRMIl;#1Zjq^%EPt_yLm6j zWQJ0OZq`r>RfhiuT)Gc<^op|Tg34Upa|SXDFP3zD|8IQ2qj@jLFosgaZdPpzRfgsR zOc15Fbihh4gOpZ6ltQYS;|-vzGC?uu0lilG?&RK~3)VWa;cs!7i);62@1glbXa))cbV$s3^E}x~NEe z0@pmB5H%0jeX!aAIqacjU?~?k*6;4?h6XBw>uZU4Rm(6mWb%QGu2TK-CyL6Cl-(pu_b+^|VLxUQpG`P|9w6 z;N>$=@@(EK07|#~Eo~s)aaRuT-WJdaR2+~Ks5m^jTfxR!x^fgJc|huS4@edMiC@4$ z;uC+QBgc#KuJu0Apgq9G$2z7i(Gw;7>i<$=B5)+(%u_YSNJp$1B8{2&h&3i%XZWv1V zK=(p{nt`B2MGOoc&3i#-r!ka>cr@uJv^Yt zq=5%WEL%ZV7g>Ti(1YE;Dvd9BeBTOkj7KME$syQ!kN+n;zF+X@_Ra86hMJb)(YzOQ zIT}Mr1kzpf*tdj(O@myPQ>^9D?Fu?h4ZMmPw6_Z~E#cAK3o;FQL9a(A%f;7QJum_g zrxCaZZ?9NGCM$#=aGGY!K1quqy=<6F2hSHhR^(hEsUVJI_?U( z+7(;$7P}&1Et1tg9Tb&utm$AH62Gn*FB$_t5fulD?x+Khpodrk4f@wBi0fMsQ|N-n zf57bzL`N(v+@tXgs2GAL=LAHH5)}NPqRXSV7c@@rVmbJ1E?*9h?w=mrA9fmmPDfwT z4K6@BK^<36{_b?;fgGjS=?bcsz?r$zRRLD?feNHvP=N$4`w*tU3bpPZ9=*N~JbFd% zUzKKfu@p3y+^})UF(cKCWfH`{A6={YSA3zHLz>Wr0-tojc8mTD)b|k3t0FM?MR7Zm1 z1J*%?HS4xBF)%ppXjsC)0P4bmyT~utKyHV1pFtH6*wE$*2?m(1Mo^m<(nM>n;9w}> zg|4=0uHaB8gEl*3A!bHY1Wf}k7^D9GZ#_^V57pc4AaLRyQ{^AHs_p=adJ`0-p?=j4W zww#-H_<+{?^0%%9HAEpz^X45nAhA-=R%=io9B%;e1<(~R6{9Ku-7pC^6{JI<3{?TB z2Le^l-H@?_fdSIJhKx@zlyE~Bj3olEWuVS~VHxuM|7%eg&olD-|JUr`PR(m3V^CZF z0%%l)_{>5~fj7WvaJCo0RT`}H!PChAw+umwAuU5taRTXhY=uN1s1ecK0E+caR~8SH zjzxE;%Mu2LZdaDh)+-F4J3K)oLrGNgUJ!$^L=VDXDq(t^>C+7^-hE)bjj13jp`DBu z*J8i_f9-)+38&xp|F2c?Dmmc&{XaCGL3KTWfkHCl4QF_-;9+2Z7o=Lu3=BI!Hhf+U zs^3n49T2SN9hfNq&T4!%@Pw}N^spkf$QEra}P2^QgRHsb~r?O={acP}{Hz?}h)PH-&`+BgWRIXhdy&4NZq z$Hswyp$ybP0f{j#*@GvlRcd|5q(hf^UcQ4qK&X%(V zObiUK7aea+f!YK&8Ke~As4_c&@_!2}CJm&ZPV`u9VW{}TVK<#hPkUn2`D~Jv9 z8Hh&n8Ayn~c?lcDL6F20$*O!;3N+*aiq+5j0v(XV2)`;wg#}f$CSKJpXsU(rs!l;u zT^lWf$0aQ+Ag?Y#@+yc8@+ye#1_y;@D~QeC{16=IQLP}?zj#p%>ODk(jvj730=6=$ z739zt=aD3yKqWwKda(^jf`t_n08ytD=8l28Fl2tbXDVCBC9iEtOFIK;#V*6+6= z;weyZh=CET_o3n~P;rQP5v<3d;!9xSV3)-}?GbD}0u={&0hHh%_6W82Z^6@V)0=>}k3^a=KnLmm^dQXbSSDuc9jZU}*!MIU`-7+#bYfLc(X5fwRz4v@hh9pzvh z4Im@BdqH7_l4`+W^_f2cnmh!-{Fl@JA+&(1KCl*#UQpWsWR6Ft%UOY!rawW7Akw{{ zW*D@+(FtyJL1G3P@sL&#w5G#WfpH+WwOUoc-Vp@1xga(7{{!6zz-IC5gJp}AyIG~> zR2f)%7#J8Jq3ae0%`MFf|c<%PXygT)Y^ii z1;hqv0nt#iyBk1GummeBj_n3(g}M&Xe(RnJcJ#&WQ_Q^}eOS`M60i?JZtDgsL8>iU zL2}^vm)8w1JwWG_f*YQe;Korg(`(k3+rInZ~CEb!0~IXb6mi5Wv~LKLHw^gpH?cLLDf50g~%xb?}1q?`JSE zFhCZ(Shj*RmYeu=_ugP)VDRZ~y}-o4&^;9->e1bM0IahWL_s=c-3MNlGBPl{EMNpR z*FlvssH+L;bAi~PLJ35J))s+`0r%Z4!8Js&TsN5R2G`^s-BUsKcyzNI0#^yI_j?>~ z1uek@nFd;A1hUr>EW+RX7c$ZVlJ@BC1-lH^A%_$<;A#WfJ%@PM!Ay!#~M;gH8>U+>NsNG=OJmBT(HWnF%7d@`9 zaupPv9>!;1m==P|)fG&Gw_L@RejP(YgTr_HkYHeVaW?V$e-G^kKH!Aho1^03(fsrQ zXibqF8_I~4h9s!kXU%h0W$*-#SS^rXVDN0-%OD9Iv2qYYj96uGg6sEKux~gXF*NiI1oqBRRyjXG}zqf>eB7%a`6Fpk+2Ko zTv50J(1gIj7m(5O5@FaKUd<2wLDapjMNL^N~a~mas5JUeTfLjj{xcC5a7zbPvX!ykgGK}ZhJrxwD9=*Mw0q+<2;6=Wz z`k*}D`~Y+gDhCT_76&v=2cE?NabGz2gA#XZK4_E*qRN8}MHPtqLdyU9|KqKo&KE3K zg4m#338K4QQ!K%fwQAk2F5SH#F;F`Wv1AWP%xgP`erHjqgS44&Ps zpfuxQ+1kOzz`)-eC;%3N#5gF*E1O!__{a(0!kkgsLj)XR%!Q+wO;1K|;KpUxgEfM5%mM4Lhv+yA(P0A8k%XcH)V%_^>N9_&tBUaf zetlN=(^3pYa-aEQSZz;(x>>Adr==K*c|CSQVv3=`gZUt+({lpeui#(@l^5Wc^X%>g z$0Mu?(SS&Ssm@jp2oJ2@63i4q6nrNBQDQ2BL=w z>ZyS|3+}RYwt_lv$HAQ!koh}6<7v>Tdr&Td7{wW zb?*lI6f{W63i2E{IYUCUyBDOQdn(8>=8N5@x=(r}PX!72bhm=6fs8LX@(Z#|c)b9g znjpm%q=YGzMiYjVQT#2*tPBiC{|K-y_K;yX`bV(!02d_uK;Z^T2_Wwt{c-F7!;#0e z5(gMTN*K5yS`46C9JoO}HPD>j!5_?>ttH%`rpgpO4P6mdT z6951IKi+BrnreX#9D~>(KZ9tPpFwQ?-bm0I{$#LXu%CM&c6fBQM({8&Ag3S@-y@lY z5j;Nak$sZUqkAeujE8F%B&A(q^63Wa^Gp^Ia0F}i%|5{F)7=YF=%38O=m^&Bn|+eS z2cp|QnTN{}tlc;J601-5T!=~$VaMGdGkvpfvw1)Sy^>|5;ezZQ-FrbQy^?L@eY@v^ z%CRE{s{~q_K`Txsdv<_C3_vOKAUM4=U|9{vc`SyNL7XMu*hW4DdP|KlFX z|KWkp3JrYsZWczz{|9`N55S{<4H^aR-8@{5{}1{mpM*yQJ2WEPyG4W@{~z*AzC=+V zgCYVPUa&wu`bz*3T*zSzjs|!bgF+n~4e&4qiGbq)DU1(*=8lk(Z+9=K1cGN-23`gR z4}|p5KLU^}0?K+05|C^QG6KYBfbv1n2I3zO2TxOhlzH?{1<88!_JRaou-g6q56*>UKLB-C|FA)boIzjB0?SH_ET0xv6k89b$3`V%p?==vmAS3<=v^s$3|1}W$ zk06xBA^rm*4ysV5NI(im$jDq-C%jkRuG%NcNVBOmkj23WFHXlfW#N1Uh(K`mEZ%%7f3Bs8q}_XOIv`XyIVmN zzXrrnF(3yuNPtS*sUQm4@Or_>#{iN^fan03%P+vdAK3~L;MeE{c>%K4mtV6L!~q`= z2QINd6(*>?0u9m@R**C(tU&@W6^sN`FcDP2j8g?H=0G9a%hCafIZ#~<8sP*5EQsy~ z*Y@xcM`#rZ86p>KZQ+B|b|95-9iRpIfeswSf!=r4SIGU*iNU%yYRx(t@o|pvpidf%d9E_=2r0{2+M&=rDN%ln+U)F9X5j zil7!%cQ2?h1R8$?br2ANBnX~sfhNxgaK8!6dAaQyXha#L6{ZQ~a8O$gJoF5f=xjL) zGVP`NH}FU$q@~vjYRtn^7l;EbkGdN`jo;2z6@GBb5u_R%(C}INV+TN;w@6nOs0Q%h zG`JBBp38uX3N|n-faf<*Lk-FYH>WxqLAF5EcK3oTgIKJ65E`W2ouHlqsQC^R=xhWD zK(&B^2Gpwl%pU_b7TiV#S#qGW)rB84kO3kY_`z%Fp?V+|AoWx{I$JaN5l#dxSpfSZ z>cETcI7mYisukf!@VGWy6vdCn!664K3XZq7@PlYbIs~yn=@3Lib;1U^K|;j^9^GJf zcpQAd)ZGgb^2j{N0B(9t1=a2zy**qYu1EJ&kaIl_K4S9FKGi)HqVf_*$`jHK@L;~> z(S6yYbLtEU(2&*vkM4^e-K`*wNB4;reUab)zs&vr|3B0b&~WYU1b3l2K%ra4+q@SV zaH*hPX>aQWa5DH|d|)T2SNeI?@zx`t6=cxH6^IS;8iuhBa1eNa~c}p<61ktAiRT#}D7@_(gs}o<#LiKkyfTbV& zLy>OY3o?(PL^IDuR~uAPJpcfVX@Ps0VnWjP>OK26!6o z1~2i08jUq9%_kD55-ic_zXIKz;=Y_;epIzVsr^?)(4O-7jaq2bW8rG6*r!C-X&` z;l(0D*hn9En9KO=3-8$P|2=z`-jHBmh>wnSq-;&_NEkOC_2Xy=jE2C_3jxF~4bUbH z@bC=AreDw!R?v!C57_2h=$dNvX6P1NC|?|O2NK}qCD`$<3v=mlu33w8|1FVx@x4IA)luyz@Pdbr??J2#ja7(jhS!Bz&azFrXZ z;^gIj|M@jt9r!g|9rz<%1wic2{L!usY5euB1s=Vw1sd+ZT3}fgFBnTQh^Xcxr09yL!%r5}hlm?ov1qnFv3qZ!FK=Y~~0e*ogU69~~=-?Na z1Kw4~FLIM#k+17Q7G(C#jfMOenCz{2R`Q$F2bPdavs2!IEu;Nwl8 z!9I`<#CQ|c-3{6S!yoNhz^~!!07-28nysKcWBeKrO0#tWDDE`C=SJ{rwkAM$pe7=} zW~%`+xDgCe;?X-5BSLgqKe$7_Uh4=g#VCpk}y^D&1N3ZV%k6zKd*U}6x zL^MDLq2z-_m+oL5ymPIfjDT&cF1W0Ol%hx*i$SF*c+&%HcQ@A#F$M;Pm#&af10)67 zFQo($GlYln}FIaRN zX9s9cI@k(i%RrLgE$iSOGp6m+;5LaN+XONPx2(G}xB2IaJ0$&`CNW!4h@$w`jltGD)0bhPv2vSGrcm+quVPfEP z4jI|v-^b8;phOcY4oa&KanPX(9^F$x)_Q<@to)#C@p?Hd*@F&ikigJ&jDf-Uz-vk5 z7yuawO8(%qPSbM|u&o~fAF%~0SfD8z`))E&^#Cfsz=fJVs9zQ50mJ}MqZi~p4@*}K@YxC=&i_(Sw4$1eC0aq2g8dB&AL{MF#*(dY3gL`zP%!{% z=z>qq!d{JmiVn!h5+KD4VBdpU4h*F%#s^*-c|c1Q$Wa;|ogAn~YC+H2fo;2I696qg zSqdsZiRvgoeT38fpq;27_k$biSPrD~IPRhXPA|t@R6sjTF%JAPKKWmC+I@9Uvkl}u zk4{HWg$8DV_Ar;S?|1|{-wIZmc6$iCcqsM#KWM)dq?GUW;P@{Zb6=f-v>p)DV^9j- z@c^Fy1!+_uo&VI`qXP0MWNS5Ke=Ky@^8r=}7qUy1t=z*S8QdK8=;eKJ_bKQ+uM{OI z$a!8nK7u@=1KB963a*1*%NZYdEd?%uUJLI4?TdKLvja5N{F)W43~`VbzdVDAk`#ls zk`#lHk`#lbk`#ljk`#lBk`#ltk`&2jb|HFN;E)EdQ|tb-6HfvxWqQp6OGJPC2_+)p z&EEw&w+z;!1;^!$2kLmwZUIFZ!hG=Vd01D-4OD%DGrV{tgVbUMg&XlX2;p9E z0S^mrtVO&npOzW}Ln*IEFE6W>8pD54esF;Ja{Lz+1+kzF(QaQ3575CW;3F1vmP#|c zaFPK>3o$N3xCgu#6y}~F)bPsy)eVrItp~V@sO1131XlJ|1#uAA#RuRnchEy=h8G2P zpe{GKHt1$BzGQsz|AYY0-al8+YFY-UI4IEnPuKz4%3Q0$P$~lvc8CC;;u^ z-L4$R8^AdWT+jJ(yvTU}_dh5NyaczjL579B|NFoB2Xl#HH|ydzATMb{7IFQ%5B3tf zfDFTnxwc4N0=sL%2B?XhjUe+uu4&!@VlkA6gE$_nkX5-SUPRk{|NoNh|NsBHKv^54 z`Gqmu{V+vlF!y(ZljHvhptAYp1@L-Vkgs6=G2N?#cb#T?1K9D*Qyy_BEeZDxQ z3eFlJ*AbOzv7N618h8O2fayJ?jt9s#{%sD@tp`eFJ(9uwc4(>T(e0@LJ^N0i@wJ~v zGWg^}Y?2sK9Q@m+g4(7XB8&(*P(ji?71R*u6lo+f7;(lhk?{xaP^qq3wQAMH7m&zo zd>9%U8hY^|_rXrEB;-6lRggsoUogSc7#kZKAAHD!rs%_m4<8P`V1X&(=jZ1?_>cun z5yOAbO&wU>>OjHp9}Dr8c?Sm8IKP1+-P(V}=LxJhN_31?VD<2v--- z&}@oFvMcCZ70`i2a2ZrVL6%0So1izIL^yypyt=x)?s{DcSxVa40@|I1al9AYEq)+d zx_w!?LsdWvMLm*Ff{rx}f;p_&TFYM9X3K9abK~W6S3Q7ZzP-q2l z`L{VpwjL-I+a(IFGJ8QMgT6@cVqkcA5qzqE1*l%+?^_NU)`YANhSbfiAcf649FwC1E}c>>Og~B(!ApeXw`fPC^!2sF)*M+%~1~qhL>g_3td(C z*SAW5SiUTv9LNmLA>F;8ZTI}^dqFbR2kVr&!G~YKm8w9cw0&7XI|YzZLbq=Uv@}S8 z`UzGVTmt7j7f{%M4%Tx49jxa9*?eK?>cZa(Is&QN)ur1v1>_EJNdO5qL`eX?6%DlF z>j@~CLCOOGP^3279Aqf50O!ACUlq_85lFO~8f(v6`awb26s1riZw`S%~%)Q?V57& zN4KvFD4#=iU3nyfvo`4bBCv^_AWwFOs#uCNmP>Vm<-j}4!1_|aN!2w4REnfr{L$%} z0v-Ye1s1eLF5!{v>Vh!L0<=+_rLoi11w|ZIM}YDGXj?iX14DN&h-29SD&cElA%zoY zTRO;5oxLDWLn;ms3#sA&`5#_!fH)9yy1|tJxZ(f_LMo1KSC^OI9hBYRU_(?G;DMr- zD?wI4A{62oP^b0PV^B??4yg$`jlea*EK?bV7ccZcH377+0)+?UxKdcKJFr-~vhern zfy{)ImY_g_)sD9RL7NYmUY~@PJ5V_d4~S1al0!j@^g*J&-3}a%{M$e~BtRW>{%xlm zyDwaR)P3qdsCfkPTlXYT>?>dFKIPFp6%;y_JWc$q;0`pV#n2G71XrXrWvJGJD{iO? zs7nZiIZhk8J3$c%N-j_XVNt;H+65ZpXyN}_=jHZ)|Np}(OOV%I%y0x}Mi3iKwMXw# zP z;JI>0iwn|P1S^nS0gfIJ8yX2o`*clT7V zlI~v6v9vEj{(=Hn1=1;Wb%FPL&w!FfH+X|SsNV}J$-w)$QpPAU>RS=2&2YY7SIuXwc?Ocd_ zAO?o*-L5L&x)IdD13AE>yBA~kkm3B> zPCz_(`2no;AI3m1&(UUavtXPLm!2;Q3DQ`PyKgAd+(ir~?U`ZUXHALpp!710>hYx_}jSJ_)F& z1a0v;?f~5k3OU>^Q$z#W&Ujq8HN`(RX}AvIOD%O2kO(i zx^%XRKp3Dv1+{-wJi6f)dUW@K{n_cGq5--~%%!^*q#Cpe5B>^C0lwoz+m!{DV!^%wrC25ghRY8;l6_e^U3v>%?}2uzSrDede9OY$ zD+CH#NP`X*ES=zkSQ__&=9ZvM)?>|J9z&g+M>1Hpxu&&%p;Q2JX3Kxj&OuQ5a1*Kw zyfkPps0{&8-R;s^(Af&=KtmPOa6%Xgpei-x1}J#tAi*oG4i4Te>M{&3s+2*&3$^jM zOKSnRUxX!$K?MN9^`J47?p}~>FKSlNEzZIPc^WQxIjKyp#<@fE2@iKK!FE3 zjFl0bQ^7~KLW0&3%&yDwNCq>&!468224EXhAvQc$1>5jKO@`rx8`uU&(g170o;o1m z1L_cZB=>@>2PKu4RiIIp>wjT&8TdRI(7Hx3F&TyzHvhl<_vi+l(*??Ypz~y&YJn$z zKw}v6E(dWGj{`1@R=y!hYEU+VHOxU(X=I_192s-WrUK$F#(Bt|JI+YUCbm|2Srh#JH8my&G z3}O` z>yMJbgShs{w|F|NlXwK%hb%)GF!*i^4R6Z0d%`47eTY0V>0{PX!s0)+yo$9yEN(2AZ;l z-1yL|Aj9xt^KVc_1eau>To|to&V`^6!=aZ8u}!6chC1Ob+bYySJIDxi>jOydRl4;6 zf9poXs4zyW6SV#Xl>Wg3Gqs`6(i&s||27dukM3TOK`*8!fK#anR2n1(Zc6erzOZ=& zsu6ra`w}3+lRzV7oh)75u8;xs*Hd72fXCb{U0p!M^URB&3V<6@JbNgBi|2)kG7K-4 z%YZ6?*MT@)3N?kLRu7A7);$EfhQ*_MDynNOQ6G|Y{UW-B%pbEpR zN&($J4fVi_({Z4<(h$xbvK?m~}sJLt13nCfo@*t() z#UI_hpxg>7K_Nx2M>4q7h1v=Yw(hAQgF$1cYLN03GT4eR17s+qv<0z1+x0>8#UGG) zv)7%_;tPkVpoHac9+a>&AqnffEI45`$jdOi@RI^1ET~tY;pzkqwq&r=5lIF#It#iM z6jWVwvov(FbfH@d>Ij9Vbcis%mPVKA1nKS$W$6@Ye5njBmzILY(T85aL#37iVtfR3 z=NGuk0;}&Ap_XBw^Y=WuSug%jfnKKoYHLC&e9)e8Y!$u$B-M4dE&z39z)6q4x0)He z37dg|0d$xesI`vN84`G*&xEb|2N{5<{y{uQf&?{}@m2pI55cN`Yfy_NxfLV?t^P|- zW2yd|AFx5HI!LX^#t&Y|g2;EE^bg8a*qQ?Tz3V}fdEjON^8t?;9%wBB(2<6iErJP{ zEdt172FM6VqX5G1bzxwn*ieWe5My5&f||~<;Ikn?wKo%gD`=9RIM3FGLRTCrmf_NKp0x77d z2RF$YAWbrmJh(~b1&ZjDKcHQR;1!~~#AO&>D0~7p$v_zy)FeA23vQBuTIVCSWW-*; zg8N5^MjyO?1RAb_xA~BUle>FVKr=qwt)NllgFl$SqgW6&Gq{nF0!q!@t|^_aF0Tb) zjk0dn6wpN|;E`PLS_c_W(r|S-_<#v?lq2YXczJnHD$)XvPD8GMi8}DY^wBrSb?cC& zEg(mM4z+IVM$!624vW@155N8A4`*Ey0lG{ObWL3fcwcKb`22FHAu0b4z^q?@VMZM5 zlS!cherj_sgA*)^rtg#jLr*JQDT#+wHaA3$9W8pVf&0kYm%*z`_%01nBd zaP*LboANRSG5`x2iyY+n3p~mRPvxNTQg|vynx5p9 zK*O_1pFrEFL3h=zDhJ(DspZQ8T2udtKazDOSRj(sQbva1h3|bx1ibKu9@PW7+LB)e zbiZOG=m4k}I#31BAyJUaz%lf?kD?hUaQ;S&@4|f!8Y2by9K4++578d#?ok0R3TxfK z2s-Z+H0R6T(hIJ)Kx`)de$aqM^IniNTYWj?9#tk#OStR^s3pt-X$e1tT!6qQEyM7_ zg&))s#^_){rvE`xL^|EApf)RX0QLYQ=nSA%kORA?f~IARoc+JxdmV@x1t32S#F+kA==_W#~1m_`c(9zf!D zPD8AU1i27&AU0^8sspqz3e?#E9qhQ)5@>~jNAm$D56Bf)FD*dZZxC0vf|prK-vVmdLT*=O;_nA_4x0CZ^t18zPX&)|qGDGA7 zaUNux0HnT~r}2f+>;L~>R)QKkpxf{uDj*&Jb!Y1r(D_z85IG318!QH{nbCa# zPT{q#P%nVWJLq8#P%m_VW-L6C!8;dyx?4e>^X%q1;nB+z2z9?l_k|ayK~}B?Wh}_V z2&Bve1&)D7GT4_M7r}EM*iC|*s3h|B+yB>lDJtl&H*ZK51x14dxRO9jg@JpfG?W5XedNpmG8TpWOAJ>i3vpvj1O zP!|&<3R%nrnzn#Wpt^ut!=MBLy^Yq8TZZ9<_;YX$21OoKYGw!U=3S6+(A^UL#0_&}l)%PePetqMo2K4?mqfuW%YG)&9Lz_4BRAPaby7BuGuZsE9G zd|(Wn+ID$;7@TB#c^ST_GIWQ!bc!^-?j?7JP)CT00K8JfzUc+Frw80yKKOuxe_JnT zuSEA$&=#13uOy65b)WR;6)pO#%3#dWMdA(ywDJp)=vHun4#)(ZsNel(=PJPs8`S*vNN!yK5`mnE+yG)SH-aiJ@U`er$?jf|1poFH zM;k`aU8ta13v|CZ|279+Xk7zcl$d$I19Yx2M1x0n=K@fafW`trgJsQoK^mDrQ;##a zAR`|pTnr4LdKkp-Yz6VU!6anN1Y`$fl--h}m=DZjfT#lL0ZlMKcrZPnfe^4N@W{NS z2TL(OmkLCv-UL-SsZ(8u^by0Bu z-DbfBJ`x2KKM?J zJ(6{x1p?P#4pJ#)ec8;%zyMu-05Ss7!fUQ|;o$FG%LO{=7PQ_JlrfICf-dI-v6}aS ztY_kHtpyL-f#TE>eA@?qZyI<>v1>+mFGw5zdJhiJ-Oj!l%#4uxI=fpzH)A$GVC-yF z0WB>6b3tRqE}&HkwJr?&t&2dx-0hkH%1a)o*@w9ilzl))c!CD)AaQ`aqz{w~U$}uT z@Px=AFX?M-0qIGGP>{Jo$ihCbNb_EhGy{LnJaC&8ECyTP0N)R?1ngoE=>g5poxPyQ zhph7hu^<+L*ZG0m0$=9`;&k_dbRsSF0|~;H`hhqQuQ1et)@y_KNK5^|4gw|V*OH(k zK|x-DIN`)kZA(&A}LT6 z+YK%#V2K30q_`V3d?D`jcG60ieDr;Cb3H#l#0 zx~Ld<^tOW1s7I%ZiiSroIQ4?q3NGEfpxofo-P!@pu~Q)?Knk^8r$85hm$JSD<=WRK zkg}JfyBFk3(4bsrD~Qz%CXq4)ND!7OUd{&JG6xC=P~d{-mmPop|9{EFjwlFP^D%NF zX!9@FJ}fyAbh9nuK3mA8xSilzVnJ;u;c6L76j`@tgHvQ zkmxK3au7TVf*cQZ!i$h|pezWI26YTU+tk2&drLrB5F!fpt4B8?3xb3p9tLH>|DYxU zEL^~8n7Uce65Q=aE~nL@g)G)`nuUR32eDZYbZ;hTQ4{E<8a!DLbZ=(!UJwb%f*=;I zESLc@3sgK{$%2skiXmALbjKg|EC?|Hk_F9=L$ly4(8ZX#;4I<5(cKHWp%Ib=K`i9l z0OCV(!^=gOd2bph@AYA1w;FIV#a^a?uKDZ+-?}^VJGkoXKGX@m-4{i$6MQW$@fq+1 zIGC_!K&MLV84z@vEvNuw1xfdUOn_!UkVNxd5Q)fuAf87zSQTt#YiBF?rdu!xP5mCE z)q!CBWM)8+gWwqup2x8&NfGa>o;>duY zyOlwi4paw%ZU+XjG3!8x36Ko9?JzV0O0qC8ytW5>8k7M+w;@9^Ac)o73L-J`2a+Hp zf4rQ4nI(%rS<>Tk%*iN;(@k0gB8Q7PSEAf-K`)Jnr%qTxgee7wq8LFg6CY2b3xLe4Zonf#t>B}L=@~-GUZCY^tg0*Q6p|)v3*R+8;o1nPEm!H`{tv}G^*$n(WpuNJ-vCYW#e9upHTZ^pgYDu$+X*nqq7xsse(sxE66ZhMFQwfFvyNZQ2VzVtOYvf05Zy_ zyLAQFwy7Y6u*l^p0WDuDWqPgj^2)#e|6le)vMw~BL6?ZXtOI4;V9*3Kw8z#9nw#$Q zsPX9aJpda2eJc&RrxVmwe{tzaXBJO@5+5PF&|ctQ7m7DiALnSWcS38=bWe-JV< z4OtupnsY#32?wrb8Z6jAQ{tehTK?X1;HnV391dbs3!@w8U=#4^A)tx~B;VZ&wa&5i z0DlkY$X!esh;D>Kz{B0i5M#Q1GeF@1I%EK{2MDs_9kT4N#IW0y1yYlN^gwGe(73k? zWU*`aRM7Z5XkQ;F{G7p!0FX3faVunS9OChpe4w*1Tv;Fn*Cs>S4$y04`5<*BXy67k z(%%hI24d9Oz&w)-9+~&(6@5QX1ys|4HW_?&c@ zL(uy1p;YxD@(1erQqW3hQ1$>HCxm5%LR zFUyPQJ>UL=&UygLLgE0T88Rt@NY>r1EHl5?s(??GU}31`1+67I0g2Gp+#t>Y2&daO zJ?5H`a&-OYnnMMuAO%r5#YV0wo0)AJwMWplK!0Ex({-3+YvXSfGun;B787+TE@y zkQ0f(egF$XlR9`c1Vj%gf4&y(c1=NEA`TKnBv&x6SJYt+k-m883R&L-TBS0`5-Vyd z#6E!uDxyI%mY~JxpfCncUv_qYVgf4E4BoWKP$~mCC7iKD7%Bm|JPpU?S$-BFOlqa zWdR>%${)^p%mB1DO%QyJ^J@W^#3z1;$R~aQu*@fZLD!6KR~KCoW(I~&{86qMpZTK> zbYFOp@)5E)%cFNGXs(}-Rbaj>1Q+T9B}_2va=?=Jtg1D)V4j$n}v(6Mye4jg>I(G5BC3P~;pCMSR?7XXu! zK*)8wvQTt>I4S;V1-ae>bR1AgvIp#NSg)F{&h~}`mPeAO}ru2i32TMN{3qApMZTm-u`Cf)`zaL?r4Q zc1b|mlb~f@FFO8%&hB7=EXitqApu^10G7%7|NsBN2dLTeWhlZ1$SfB_sUXxL$H8a1 zfQAsE0?1CNt@G#xuVH%u+JOu?920yHJ$U&WB%y%@#EcKT`~-F#SR69E#=q@Ex2wwK z2T&83p@#~Bjf2l9gPaUe-h6-qsuD7j1-|YP>LjR}!KZR|fvPX?N;J^WB|~Q~Xu%uE zF7PV1%Mbp8QU}=BPVjL|CqSoiLIVnF0cq#jfMW#WM({CKAhRJ(gk&#JAxueiK~h>H zMlssbHSm@oSb_wtY((m{LAO2KIt*Jy1nS0t#=St@g`?ZS163gXos5n3>69npV27Hh%izL zECVhPLIYq5_tbrPK2Q$f<8CBMBc9MVwXPDd7)ayF209N@I*k$sY#f13|4 z$H9jj%m-mY98e(vgb*iGNP-!3pe8tg!8ZYbSlyuOmB9hLB^wqR;7$JzJbFbHK?je! z?+3*TXwyG9wv5ld_yAd>J4p7npq7V(>J-T7)u7#SV3m+FmAe}zFn~JRAfZwz#4IkP zz2wo|!nlByf#G!oyzB?nIF{f$5)jJ4dx=4b7N%U&_(1D{QpIl8O;bVD4RoEl?Gtcy z6V@!v@M6vbP<2CAD;JS7v8^8kc?8~4169{ZnGjTfKs^F!*?<;zfX=#x)?OaWj-YEl zK((5OwWCED=$us$2hqSWJ^<42hCs^jS=xbPC0oh5kscg@jIfI(MK(!-0WUvTJKfVMV;f)>Yt3jG(#84L`r zpu`ahT8#!4dhid_wka`(7-8wEQUod@z*23SzWuibS5(F9kZ=<2MrgdA&cN_`6R2tP z1G-lC=v`@s7umZZdAoNhC{<9WT7mb!uy+liYg?fgMuF>CK}H6K#=W34#^AufP+JI* z6R4H+NCr2=JbHPb_oy)N?_*(n2|9%3wHH)169Yr70wfC`{K4um!=smXA5>xU0oIp0 zK?}v@VDemG`FU`8u9q`G7nOmsGSoN*2F6-97@LEkRu-m}AFMSQu9g3F;%jM`qzG8j z4K6A2+U2zq%oGL%gej6>g|cvklCPy-OTtW%14}Z%CFN+Ao)IMngyjN03#ZdX1+oYo z9(|y#Z_pLjn7i>jl3PJXaf9k7P+PB;r4hQ&7u2%`4KR9ug<3%!zi#j$Yml9Lp!sDM z@JUplWAga>)Y%vq;MWW81Whk`WP|Se3e5m54PyXb1<%6t*^xhng#&aXxe842f0*L` z9^JSUyTBAPz!WoJQ5?a-0apidIcT_$5hjAy8YG?nF?51%-2v@i0v!>j0veTsn+d8Y zpfbKLpZOzs7(esJ9E8~j(gzAP6lZ`0p;|ykvq!REH4J18$gl{wVgEr91P(<(7SR0$ zkOhIgAfuoW1Y*Lh{s#-De^`PEJp%s16#vDo7#;z5O-2gFe;C1t*BT_9e=&3-hZ!hj zu!k9D1pGq|Gg#0d8wS#X-7t_fs1fiN*)WgfR{Rn02NtG(aEB>82mFR9{*7BPJOc2V zj1-K2FoF@UHAp&tW9UQE24>M3`g2D`u1O6a~8Kn{M8`&^|5%3EZroV89DLevx z!W93+tr#8wcuhtM#$Oo0h}Rk6L?7-&|@qxppbxU%R5*A5Ua zgo!JEygdFBwAp?ss7j(vBL!0RjgoW-0i5j%(E4-8b#R~oV`vWrwA&xFm>tp-0AGv@ zI-vx#lZ_Fj0RXN=nIH`Wu#8K0D|mbXbe{=KOCv~23Pb|B86Q~+JXHjd1s}Z8-HRd% znzVt)LXNNiooEfU5o9oUHYgixDKmIOJ&I<~wj!t`Hk&~csGvp^I1qY4J#lD-3`*mm z%`FfKFb~?40#B!cy6T`_19-D7=tNIQJ8B|m@gpqEVC516Xww5^Z!_ow1yC3wno{8N z%wU-txtRk#v=`L+VuS=Pk`~Y=CYToFHWfB4NF@`f90GX+rAb4`N+kWDRt#J}XuC6L zPWdx`B=|CM@X>{z`6EG1DMTFtvJ&EFK^8`k7Le27TA=ztTF}}`U_T2YYAWQ03pQUu zT16;fiQHnrqXpz3SXdIW1t}~*trK`y!1NQc5=lR(K?2tg3K(cuxTbvO7l4H&_(*=_ zMk&ZvticJ^1vLVy3lX9qyWqNDZbfd1;0Yd(nJ_KLO%Oa(U~PauKJglR!;S>VwEau!SrAzP5b1=NawhYL(UAuEyegBlKS{h;6hIUN){ppq3i zTtP)Ca=3ylh6fKwBgg~D8leV(&xb`0SCEZxjULIZ8$e|+=-gw-5iTC!+blu*=s;aw z6lstyxHO3KGWHjw#lkeY&XNvo40>9D>wFV%*A6!EfppPKcaI8a6-Rd~Xgf6cIbL z*Yp^6AZY^)prC5|;nD32ayqz?hGO7%m<-5qC^GPh^cxQEAp0F&YktL{7-T%m@3>7y z@&su30@V|^?Lg878oPjK1C>@FCxWie0@)63vA~@04dQKRg9aiU0}Y)>S9rJdD_j{& z;}=+i5HzenC`G_4+s{OV3cQ;Ag02|Jd!R7|i1%O)!fgkVHqd|qsp9w%KNTg=k zXP68m@Q`Fa!Tb*D(G&7JymtDC?j2}54;1JyPr$3fPw0w~JOS#?qk00j9Z1?heR+sB zyeZ-n#M{sm0r7hbG<1+s#7DR?5aY#bBhY3UR}XN{yZgk8+Xy~r3c};%lHcIE3sjGd z_O>amT5$D$LBR{3NkY0Vw7W+IT$NxOVdnt#3_+Cx=!R-Y1)%{MUT=QD+|771o9G%Ee4xesU4b)o1 zH3gOr;8h4{Bp!=Oa0vxd46i~!Bk?GTky1aX3IUDwBf4R@?Lg87szOk;fqH?U0dCM3 zdm3Z0Ms94c&(1233TJSC{(2R2Ui_*aS0P> zVaig_5)V?Fh~V`~sEcaA3sqrVXDr9vK~A>=@AQH&!R;3n7@HZgp^F97Lk2G!0v(?7 zqQ#v7bQBKQY{)HV9-S?x3P8JvL6-s?e87ZI8-Z1A14OL~s<}E?)lLAbZH3qdx!0_D z&q0uF3?)V$$>4e+fMb3gj}-{wt8HyQdrkDTmtqW(C-87mte%5D{?Q6`R!?um&nf zl%Z4@C5Y0`{{R144b7R|Qx1aELhU^=33jPb?^4hzE>hDi{c=32P2m0m_`Gb?OatDt z-U~ghZxLwD45SZoTpwr)y+=1|;SAV9TLaK3OUGM5`^-TLSi4(68^EC%3dDqECb;wvZyJ6k0{C-GInq@f4SDS&M6ZUs}2 z1Lr_Yj05LBZT$A%L;C^jz&Q=bfpZ`?dvs3)=>YBR1RXe6+yGh;*a}hrI&cm|dqAxA z=mxvMqq7xMG$6p=!~k%Q4syq^hb34Ie~Tot zF|c6@9CLP&h($_FFr|zb(|bIiQNBnX4&>2r&^#$9GotooaGL>MZH3J`OqU_7Lv(dO zO&Yj$9*~1(J(^!|fDRA@mj&R^^8hWshXf?_YEO^m0|L;Y^_Q1HCmw*}0Wz%$4qiww zg60D}x*>6E362&1CPSoPWCESr2A;zcU}5ABXPqD?g;-t&T8IFaL+X}*oC`AaGrs^2 zBY!w=Jdy@b$bq67V~G|>0`5mxTMpf7QS2rm`n2d)Kas`iR@9y(NE6&@l7jaIJa~75 zj$H0;1qW*d5Ed!L1prW8X)vyo%xeY7@%L<^a z$WSeyg}hKLpe?A#TEJ2;EuhW0(5s0(EWu}V^EZ`)R{le?8zXYU1zGOX-3qb>b#MZF z?jPI^m=;h1#;qj-8f(AD@Sz+|ippw|*0^}r&fI~JCy<8`se@u?p{!X;DzR;|NlWZe1b-pAx(#aKbXJY==Np#e=<8%g+cpN_f(L=gTGih zr;328ZO8(3P^(43rTc^n=s44gB%O`{bpw`sOi}q%JTn|OE=glF8u4kW;kkJaOrkUacn-o;>f@4gbO6u zIbQzZ*nI+Yngu8~fN~7zJPSzk5u9WXd31x5?2FqM{{Md&2|5P<*}wn)F~f!p95Uvh zC0TCn>^O zs2nWdo8&=x7JPOm_>|Jl)+Njg44}{k(I7bx-Mkk>GSroJw}R~cexth=38c+0 zKxbz$GcbT}OnO!HGLSPb!Ob2I%T|y&{-*Pw1|=vPKo4-y03D6E9dwQ= z;z&x58OW6%$P^#Q&NA5H6oM>VkaH?Qi~nG1LA4$}wV)d{Pz(k+2$#Xl2bdAA0GW(k zG3+QBP(ua3Pr&^N7SQo;;6@={pMV-RMEe9}Fm}g5f(XSYAd|5x2GvoZMA!^&%7WB@ z`VI&Ykb6LR87y)Dbc8X;zb|DW&0TPB&JrBcCCc5bQgJE_th*Q(7(l73S9JLr@K{*K z25E*DY%4)yVICO0MDXZJXX^@(`Q2cHK;29b4>X?C-3v)@E{z{NI$I&RCX2Do+2|8L6))0a>eL>AFELtMKJ7mCzjKZ~m){;O?WdyB&LN*W7 z3IX{A-1Px1GXotm3R(^Yx>yEuf+S8;Knh`!7^Z-%0QEmXrleq-P{iS5sPjQ5Y{JYY zSkE3(r-Sp!88#H1MT;hHeVfSO&P zScRJeGT}3S4A^>@B2aS=t_UUwZ-Ii6Hpm{raSdqgI4Llk_sRmnIgHjD#5$FhOP)Pu3V}s%W)G|kifUE?y%)uhy@(ZN((cQ6G;jhsa|}|(fJ?Dnmqw6q2J+rH^kJwItl$;^tjYs- z_92zw3-F+-E2u+=BnmoS6w)xlqD2Gb0BDhC*$T3kzo``|Z?nNFICjvG6dSk-@n8ez zO7!6*c9>E&45f(Sq?m)C(gSp&1}u57fd+P1U1G5{8cAcMgMz)T0}fCVC^BrIe=l_bco zh>$@KM0kkB9@+1--N$K~;hdbSgsCs|(WmnvsFQ5z?&b6`ky= z0$PFX@nS;jxBsmNN>JVUcjf>8FL#56NWm`1KEMLnQ~D*#k={3Xtg*ND>i7Ng{14{{MgN4w1)~FoaPOMgT~cAoN0(mrws9RzQIkJ&cUT zA7bq!Xr>l=qEQjzIABo80h%U-B>(IK@ZQfKkM60UW2Jq%TR{}4uL4?M0~v{OWg%8Q zY_JPtBPii}WFLU9_5X$43aA#)hGCd3gtS0iJOEA_3g#pdbgC4;n>8Rs`Dqj;siD zTtSR0{6rYgE^c(`2!u3fGcsHnbQsuhS+otR&*6uRLFP z!E(iJ*6Gfm-B{40ADt$FCz-UTNHe@x*aw-K;iXqoEtU zo=*fDtpGCG4Qw=Mk8$r((3%T67xP%wcY~r5TJT~yG7+{!xzkkxzJS+P!=o2;9h0jE z?8;PloIutTf+|{dXho|5+JNcNDRK~Y{X1xvG;~FotH`!7Wa3dU(;c71`LDqePjsbr$ zX~F;hFCQTZI6@3*{*jKRG6SS?2a-y0Tq^BADnXa2ctFk{fAMw^*kR2-f=h%^Y!_MZ z|NrZBm@>6!(8-gfpxpq$9*~pJ`L{KkW@BK0wAzfIg2x-KurYuERNz_TGjjYs#Nomdhnv>gs^N-<(y{R~T# zF8sZlK^{$Z1zj%#+K0fuoyF1Gm8H(v169lex`-dLHGzLSkC*kqS~(BMo`!B;mrf2e z4WOihYJ|0`N-Z(Q)`5(T0QHKn8mscs40727CO$>9xC1Hx z)df049HI;239yHuR&{rRJER>T^J+lHsDl(9hu8*+H;DD{^X)-@%Am zu`?e6AMl|9J<=B%Da@|01AO6E2!PD$_Emx0B7k(xJ7{vJ+g0WJ4e-_&kg69wqM+^i zU}r*WmQqlD2FW310T36G=3dJ{ZAVI52wA8c^-CQ+1x?MT=w}S>PH2Al3S|6kkId zsmu%vuel&>P)KxxMLWSdyTPOfIl%(nuLExc!CShZ4z~wv;0p6V-R@Sr2i;8}!Qa0JQQAVUU;tkm0V(f5w<~~R30io; zt^g5%@}XI+^*|}p>v9ihEiiF5_}U84a9AnR>jbD$$mI(Bp!*_N!1qOfEP&q^0ph^# zivV#T%0U}eAf`etV}P0kai;`-Un;05rb&AnoSwk#6||fJD&#;Z3Vgp2mh!QAFKDL- z1Al8bXwfcsli*Cy4k|_lhVPc0t}2)1eyMcqI3Nt?Ql& zE>nAXy1@6Z_VP^Z4pjlI)pY4T;R9afja=9s37ZSj{f=0GkbJkbRmkQZLJ)49Y$v@*lO zJsRH#fR+Hk$^p>PWzd5!L7fN-kX$$Gt_0Y&y%)?3498lxfHs33YrO)Yrhus9ty@5? z8E}T_1sVBbuh+N#o#2ezycd+IL7Ow#k>p*c{Qv*5o1K9HlG`m?C0H03%EWeYBdJjY zsYz!C*Eb+TJ-WeWcXxuWN9b+<9hI(q5VTdWH3Ss4U=m_bG0$uLdY8pNOoxIqs8K^HCrnt<9rve5QV6S)2Jv>nv`sRy-xx?Kez zt}a)E8uLQN89da@1x_0;LAMDTA9xwd23kX9Vd=`l-*OMUjvK@-QtW2^U<|TA9b!Q? z#DXgz3r^KREa2((wSf3s1bnzXhy>L*U<9cGoy6X-7sO>K z9coE|I?SHo`2Uu&js{kU3AjX4+MW%u@e&Ub3$ggqg6Mw`(NcsaC392?; zeh1x=wilcj!R8*Qm1cPH$K~69WXq<51fRQn``-K`Ao|27{+NTG_#;~(_6UOS z{sRrifbIoM9xk9k9|5qoPyCUr*-s=HKJg3mf_(XjKLQe*AU$xu zBO7tHMw;OTE69hgJRom@-2&2DCf*GdK?^x#-Tffl$DKiuVFA7%0uufQVD_i+>z^o- z>vlzv#ABX4$h>mrZ~s4e@asUD5*J`;`!?wA5_RKC-L0ThxD&Lp{rksmUmnnvG!6g% zgIk*5Y_^FNeBp%gC78~_IiQwqDeFr!a5)5ub4HKe&2K|4-B zIq#(yXs?qi2ej=s6?DfF%(-*HWiq(bda=+G93Eo3RFMkJH+}#Azcd2RwY7qRvAf{~ zXzCGsrCak}(8X^IwTj)Wd-XvcO@nyUq7Lj)Pmo8aSAjg*4OZXT3MykkTQop4Xp07j zZr%$b8R}HJ!P5UvfcH0m>;iR1K+}@oxug=%tm9FLn$FfO;LE%~Btt#u{y2#82Kb0g zDbwqiZWNyi!%A6DvjOIPeLqmOf*c@oJivj#`ce_pJL-n|8PrDwxfkT$m-?W_5Jcv9 zLk=sbQh?VfkS;Jt$OEPV)civc0QG{91fWAm2=$<86mSecEbj&RvJ>1vJ`N5ckY0Eo z9)JXDH#kHr!Sc1BlLA0t3iTx{7!g@PoP&Yk^**Tdi^#=bFN4||K2TRcN>0m;3|0n) zGGUYial7aL|JN$un&h=C%!u7K-~OYh+S>E~Ke+bt1>Lk1UMbD+;%+EtnHK1#B~ZQZ zVSM&QTO)X-)(2(=hWNPH!{GMyC@~rW$RU7eUxJ#KpaFkSr$7NTj*0u`C;n{?F0BW^ zLu}cQYz(@72XdbhDEGi_bOK#{$=@;w)Di)23PRlFWB_AYJ6aUWK{h|ZgqR(XWDSZ9 zV5Y(D)AF?N==1=M*&r+hwPuYEyu1hMCaB>w4R&wT%WaVC57OW5pa8iu7SzVK2D`F| zr*SVRAV4jZB3Z~G5dZ)GuZOw=;!Ti^uce?uD26~b#k(3Gfb2ShDgochSy%;XCze7F z!2xwVKu$my=m^`(z!;=$~g0UapFh^rk&f+5}w#3{wgjW`bWZj2Q9<4W58YEmOEs4~ZAO zW#Ef~AsGic00JtzE+8w~SqkZm>g z;+|8eH(>44<{xrsTJk|!CV>rxy1x}Vor`X`D@bLAK4_gEXoA+G7ktqm*w4Fq!QD8q zU0g^3AqrA&0W!JQm*qwILU1^uy7yD#|Nk#VK}xzImS1cJ8HDDmk3fU%sACfgD&`~pe%$wScKd`fp{3M?uYL3Xo%LJ8XC zYpzXUC_M+0S3(#xA8ZgfO+cHnw(y0IpnQM)GAJdMg4&oMiIV}jVAaRd2c%X~`8bOAd`9c?DZ-6!^ zy0Dn*(|rIm90ZZ+?f@C^;%4x-|HoTFKE)OW&>YtdcAX_y8GmmtxR^cys=PoBg08!T zI34N`4`zsCJ6k~~)Sv_c7gDzS;e-|~xwZfQznq|j7H-#(lI{;@G%Z#jEwSiYmLO{h zL({?z(xQc~r4XV8#j&wXpbODC__z70fUjEy`KFT*MTr#_ZE9dK7Zi0uV50>1xB0q& zuXsi^(~$)w#XoKQ|G%>pba{01UJ%Jp!gCy4@_-{r97XL;uv$>D1lo7T#K6G6trx`W z@Q{WIfC@}y7`uXn0WCOwRR90~Qd$$7Xh0t1-v&NzR356MI{>tu6r3FIefRodFa>+AumK$Apo_b~XG1}Bf%>7K15=n77_1#x&t$^%D|BN z407gA^Ip)&KMW;_D4`rx4+>?Ex&O-qe03hdpXpdyD>pZ%9L9q&2D&PD= zp%k@DoLKq)|I00E3=FS@P?aBJVf_D67Bb2RibRO>`CCBkTZBIk{$R3f1=+>la~|PU zXnE7^DPZZrQU{tp2E`>b!n!?KIz0qnMj(>0`A2Z63bM-s((?o}n=3fb)8pNW|Nmby zsKK*_N3sJ8_=@bQAb&zl_UQKDcrhykG~5SHZZ6#ppsm~x72u}J3)W8{8^N+3-43Ah z6Ctu-kz)?hpe-#RH$c2z!q*M6$Z!72;O|NnnEMTLRkCFt}esDaHpK=v~5 zw}8fypkmzFRgfaH0c;TL*nzz)Cpud}=WxNQV+R3CFux3x zxIxZ_oSW6@A>aeO-3n6hp{7JoxV-ST0k@^Bp2f{8~ z=H{Z9Yk^`eh=*=2FUVX2gt;Ew4IpJ6&7h4>kTCCT1c@N;4FH9kM|USk_&5s(Xc>}E zHzY>8p~V1L=L-gBkSD=e8WODhEsaPeRWdkiK;Z(KHbM>Tr(l18wR)hbg9vs9Xuu+7 zCqgZ1{DKm~i`fWSkK+y+kgN)E-vsmj|963ATVN*DSArZ2mh5npM5GAG<{wOGHQkls z|NmcpSAa)8|27B7)&u-~HEay<)xco;wJZPs?>_Our37R&*zKSB1sw!nt1-c9*db~Z zP}PW_xb1NTxZ3H4x=sS6E<08MG94-f8ubN55y(l+KNw3v>-9kVZcyd`Gdx&cgq(-# z=ya5M4O(*tl7dwf4lMlZL8mBy#5x^8Ywkd-<_Z~50s{3cU_o}K=>Pwh@8#j)(Cr`t zJNg>zwLNdZO`sQ`CQ0*N5Ct*;xryEdGGVPesOJGHr$G^fvn-df1ef=?(9n?wEkYn%o!w-NCdI6m~*SyySng^?9aOn#})d$nnT%o`~FpQ#J z{r?X;jT{`MHw*s%fB8oi)Fy@a3N!%=@;anY>IApTU&9ld18DR>0NghhU|{G3p9P4! z+J>AJ2#IF?-iwR~TNDr#HOMk(0o2XX2(^$0(jbKJV9hwt$%4nhCj){ScgMk(+QL#8 zXm1#(wE&`_A=1rY30A`28^p-K09sT4GT{5xCCnfmG<3fg%5)#5&F9 zGuUn5>2Z)Qk8V!|&{!l$G3exuMySdB+Z?1?50nTX$$<|)>;`KGui*x1w`Q!(Homk2 zRD2^mW(f|fGD7*r?FCxCIhyzX|H~KBh+?1@6lDDCJ!HBMLQZCU+5PYT|Cjub~NchE;C*T+cu{}B) z4M4rcZpgSy^9~RXz19c;*<3COibR5AH6RNi-sA7>U}s=J@nUx&=+I5@AeKk>RFM5? zoh@E#KrV(35*&0O5a>k6Z4MlkklI=m#S$ryCGg%e*kdkSoUeDG zSXY|$|NqMw;tUKgFM-Y_ASUQ$aDWoS77hjmP?3hxWnZ2T4n&ZO4o18#2Pxs-#sGDA zB#N67L8ibR4pQ0S!o`TFl|Ul=+gunKty@8^r~}=90&3BCboaugI>Az}+i^Rh8>|B2 z0RH}dMg|6y%J)tlI3CcQp|}e)AOuZRFSh4_(=^2LsUXWcT(}G|U252Rpd=b4a%!>Z zbi~x@2(`)@JZM`ZhSD+Gk@5fk%iE%$=m6ENSnFGOVF+>^DAWwGPZz-IV^H~v;?m2x zpi{eH!!X$=1w6XJKK1DJ;R^Cdo(i%#t&=4X=JxCZ0?>%?=yhQX@<;|>Jk7tK#RH#L z-lqTm|58Adf#Idi|NsAA2LAj1A0?!HL9RFeHMpbE1l0Nmm6K32U+Cr{QeLAe=(IX; zJY^qXFg^)&a9U>%6R5S}(cKCOiw2N7?4bc(-sq8i5_C=&NO4+c3m1~!;|&&U3=AL} zaHlW0HPA%P-@6J_W?{q!V`u9XaE<~6B#tNqDS-MN6orbA$f^y8+X40pqWLPH0}l<4 z9T4zt|Bo+pS*Psy}ko_LXVE6d+^6H)W{~vmiNcRPgUa;mDuHm2= z15jpz1rvx3YFUD4Xjq`Q3ba5EEQji8TYH1<4tTO1u&7#P5*&LjII z1OK+EAUz!-pgTDs`oM)4xL)Rcv%Q(n1cd?f13l3NA>{$L^8d56CM{HosOUlyC8KQ%@q>p3A8!!|NocE_(<|5 ze=lhNE$&`z^IlNl&B5P$8I(LAMLhqu7FLkEyTSF}E>J*Re$;(R`C#h-{uWRXf)Zo7 zY2Y*p3V07_9ShpM!t5o1yNU%V==PL=wrPp0XIm5g|9`oHmw^F%%^AcxNQDhDjoDEG zT3_!1we8Y6MLb>#{r~^}(Sn*LS-xvOv-_ zf3F&-Xy^tPBsksC4LZsH3n)K>%lA&mjU-b+BCz!Cc^wg_-BTg%3=;6@WH|+^EW3Ll zqMiaC%{B+o!{lZhX#9s8G@=7C7PKxNl*~YN6o`iLA&HNnCJ&L%d0>MxpsO-wc7tbS zzyIt$1Z%}1T;r1r9<1=_<~ilm!2(+70&)>3e_=HO;?0-UpfoWDG|u4j3$1!tk_;`h zK!ty2Bjm6oNCz{y0nE!jV1P&=s@K3N1fi7-jeme{N`u!~ zFhgMp0<62c1El*!i7_Zm5UgH6M!>3<$B=dkNRLPM0niF$uz}1F$91+^aG_N%o033% z_Yf{n-yKAv&vFZaoNS8hWCs?H>;p*IMByqp5I`nFrv<@GEYpI=V*dYs`4YWgHAn&% ztnw(mDCs0W({4oasP&|W#`L{U;Sc8uwsspVLgb8(mg?538ELd7T zn+URkzhxq*pM<=$WD97R7Su2YX-?~8#9c^2t>@nkANzAcM0d9X3wYl=YZmg%csOV| z4WwZ6$UX@=`50u2M|TiM2MZUp9RkyNIulu^EN-2Uz9c9Ifnvdcs8{yH+!U!#Q(Y(pO&4-K8 z`XJhb_JOGX|6e|4XJB|a3v`tXk1guJ?iN z+=MiRaTK5+&mrb{3s92Vns`KEhZa>XTuiV64>Qm}=SxFe;VEE!5G~NJNB;l+@)sKe z!%NVp$ZJm$Tqld&%405!Obo9N<24B49MDuJs50U2Jp*drAgB2QasU6L)ZXjk5T5Uz z3ew-KHiCA7;vU3=<+}!uGFYj}3(CsS)->dt z3y@JBy)BHOb1pnO!I$mqLM~CNW5IxRLq^K52(KZKo4hPq3Xo0K+Qt!*c z!0_@6xU~dXfUzV3fc4XAp7RqyyY6C%lHyxVB`Bog#N|Y^@IGK4DLdr zOf!~ZRSmj@!UG!nkj{}u^PYnsH$bi}hByu!AYcj5$PM_~Vl)YmIp{V1m>ydo`7X8q0?w$mS4X7Gu#CaeB+vDPk&ekbhppM2D(2{6y zykCK`K#e#M8x-##8mhe;+yl341qt!@{)Y4>KpYQjJzWWIaC;f#Y=}o^Y99jK{$&CY z2T6DLf;g5O#i05fEWiM1*uCcIZUsp}c(7@_5Dc9jEX6{g>u^EMP}mG3cD*GaC9NP6 zx_d!v(023A)+yYe8NF^W?a|!}a>DmQj?UICVAY_2u>`a0c)G!KXDdkTraVPI!1;64ikcB-fy^hAIcplfkk4}i~lE`aW~hwqpM?QIr@ zEzJh)@qY2f_5c6Z93koM3g~7}NUsUsR&k;tlNA5=f~byK6z)@W2L|gSnt%Xu(_!H@LPJGGHkekM35G6zJsXjw7IfN~l49T@gwTx`CYq zwWG5Uw22+6&w~|o4i!|!r5h>*TD%A{^+mWpc$5de#T+cS$@%~Pm!Kolpk^EgpPcpY z|NsBs6Fb?OYgPW2q(LQNXWe$Xra-P>Khf!$0@@#3Bj=Iq3fe;qG848_9=t&bd=1YP zuo}=oEFk%A-;~Y{(D__2Q+-)FJKlf~js|<5e;aso0W{Nl5T&BnNX9WTi4_e_$tg?(y|jm@~kdA=14rjM5Nkn4|;fo@wwAJRsL} z_kxb+fEWTA;O=&1>1@3KP9$J2c=Uo5c=T5IAdW$U8U;Bv8sr~HW&<6=2tI#myOK1+ zi&$>h5Cu3b8lQc^W)2>r*Z{hFVz`_?1<9YF<0}Z3kIj2QnV+GQ>9stpY?Si=joeKI ziNl0e@A&_pgj0QRo_7si^b9Mmn@~#&4JPo>d>*}1p~(ughV4b9D)0=b>#49-YWoFKUD%6D+IATppu-O z9I%60U0FI^Rk~eMI$d4BXVPDM06IuzpA^_~(9&U#=Di?_p;Qd2`$a0_xBojpIr$|U z=%i3rm2O`b(6FLMvagCq_f(K-k6s=x*vYP~Ah$zy4TD%OE{lUsodX@~(YzN#GL*8u zoD0qYARhFP6Uf=?Aobn7AYuOX9xUAlyM0x_c?0ZXD975>r7ou1)#c&?WG{dUCy+y4 zEN24y1iUG&8FJQ7DJa6hlC3?$1GE~xMhA3pHX{SWaZs7W;L_a+x-QJ4dn(v2$Z6Ow zxM3o)B&Yxu(6P9#ULj? zD3``!SP2>-23a`O0d%Ou{}PamAQNHte}E2cyp0kHP$OX81YKFDeefmdm^O$l3Z=PF zCD5zX@YpI(p{-xR^$Pe@@)s?-pact!zHacEyv`0tVbqEUL2$M5611`0rQ6rV1#|*A zA`Fv!L09r&o;wZo4QPVem8I4Ie5*^cZwhF#1{~Tghd>ij9=$9b9?9TK(m~+|nk#z% zS_Hb&qj@jrC|QOQ@G?rU4zPnES6k|U&2`t=j)D_oV50w^N8d%$^;N?hkt(k54!gQ-UR%@ zC(ZC8iVU}^bts@%{023gt&j{)k;=&03LVN|jp$L0# z9(0miH>6f_1)Zt|;zN!)0#$yX*e2qJ0yO(zB>;9CLE!m7XI&fcH+fjjprZhOnz(p6@`G}xG8s1bvx@-e<$UeC3 z(A^5UIs@u*cvA%=_Cm(=|NocbjNoQ~ichbr3-qWou%x^)s2NbI=>aj|cmq75VFIwE zV0_@^B?i#Ev#*Lvx2sDx__#H&8PRT_YLMl)YYHee$lpG_t{mX@paQ6QR`cxZe^4){6}(}=Ri%y-atlVMs|xt`T8nO1 zl};BGgX1nL&=V3|IY2iLfd&>p2Do&4us}}40PR-n?giaP@#3Q3|Nq^tD&PP+;L$4@ z2nw+8zrX$mhZm@5CnLOY`4{AHkbiMs2Lf^vW2ur01u|50x|8)Us z&?G(u2MstFg1TK*_}7Ck-mwM;Rh1vOoO z!?2sx@~<+3hw)Jl_yMI7pys{)B-va{4k3&!;6zYAz=YI z5EZm+qzKgM?_K%(^A2$3SOQv>1S;IS8$d^(zh-~U3LbbMTzcb5 zzu$ zSa&D5XapDAprgG&9T>=^%CMmVuTUqJlNsEuhlW{aBS@$l959xyDy2-XW#I(`s3-Qq;o(=% z_&L*S)|d7Fz!@5zhU0law`6>WmUy6Imy8k*mXm2i<4TX9tp%X+6nv68miwZ+TS3cc zXMW!cQV70I2~?PX8i}C&ap3fs(%lM@v~*1YrB4vE(>0|Vbjy+pe{Ulsae@?kboYWN z^u!5T=?*!Pq8n0?Tf3^%2!I+BzABJp2~vT3MKnY&Y;O!`RtNVecDHK^WJPdo04yCL zJBk^+@6#h0v?UkhRCsHodn#yv8+12z$7g;)Cg?ab_;jRB@No3&>7W&ppnL{eF$tof zfdWoqwMtMOkRvWYp$9S#S^uGzYXATLhxi2=4xmxI?pBaHV96B}5YSMBCRcDMqoh@k z`WI8~!P9CnIIX(C)2cD2G{cL?FVM6K8q*kbX%&)PiW?_6(Ks$6mMnlZ(^ik1(HK;(MpazvoH>g~i3Tk^o4k>$4&jBi5U{*qkEs$zx zIsi4Ip>17AnFVqZdYJ`M|Dxv(JRNX@k{41dZ8e89!;8RA&~yN5M$$DM;EG>RWdw>} zaQiL|wcP?5c7qhqGr#WzB?Of62vkUe<2wajTY$LSkDZ~ z`XFQZ*MsYN@Yy~f1s=UDjvk%h;a^x)26hvqYyf*1XH|w-Hh|Q>sJI1B6VH*#22i_H zoK2eHh3yAungHb#x~2(GzK3C4<8|P+E8go;dqIux7qJqc^Ws$?H&q}yK-0y+op7)c zD~WIawOv&@T|r%%ZtwsuSiD#qJdx3famgxbCqnAgSI~qQnT>aB{sTAM4}eyU!y1Si zKsx|HK?0dge*u!~W^MQgYq-w<3rxKMqI!J|UYJ>dn~q>JI$c30T7Z}@0zeZ@t^wVx z54b>`@`CQx6JSP&2S`)mLeL~Zi7A*P!q30}zD=UJmV=>0(WBSZz@xjC!=wAdPS9F$ zPy^nVOf@;xb1`OR)bzq))Yz5&I`~G(~AHx z(5R~`hX*)leP@p6GlmT33!i^UYhrU5(NWzGs;o$a2_H7eKiL~Y%55CN2hCqM>062fZ80OBnFvz z>U7QU=yr|p=yXkhC8UC5t|biM7#ErU|9|U&5+5+^UuxIhUC zGF9aPx|xJP8Y|L7O=FXON-?~sc#WRM6hS$^cPTB?7$~E{FeUM|;4Mmgbx#FlTX2Ae znGqE|$6QMo!Rp)Qf?}goyLs;h&?p=@lY$D1o40$<|{ zk?3?)0gaqNE~EgdfARhjXl_CUqN7}~o3-PBGDGtL4$y&ay`sPQz?*nj#6a^E+@MW7 z;LbY8rJyFKM>n{hV+QwHp&V=Q&}W@uH>(}kBus50XqFXG>axd-P>I;1uw3JLtNyQkaLqBViC_%&sg@m3**Z6)|RDc*x7)!1d{-^Vzl@;E z4LpiKBi$gSFsV*gmDiw#3Pj8UG#vo$K7jZyg8Kjehb|fL=nZv&8uNl%4Lql&4z&d` zVW|SCB|!R)H-KCU3h0;mNN$~a6XezuXm_*JwHsmL%Ra0YEm8$r#PnLS+co9?0r2Pn z#NVC}vtDn4+(rYk^~I7t&`D;Xrm08oRM7e|n0vcbKuH9m@xB!32ocb-OqlFhun1^8 zs(CL+{C}w~i~#ih7vBwxE^Q?9W-Dd%R@UmK%oH>@=fXVh=6lk zIz3`w9Pof$r$+*0;t^!+i%Y#Aha<)Q|56^rMdGhP%V$99y20Vy3BDm0a!)R#tN_(? z@t>s_UYI_F)O6jw;6!J9_QgHWBDvnBpaOru`o-9D6X~Le{PzQt24OvFJJkFKn$ZD8 zIRgX33#YSR|92nw?7^>f02KP5ii82gJMo!6?jXSl5v2Jk(4tgOkH`bEr~zBYs~ggA zVt_1u1hsj(89=!VG^D`-x`iEdRWB&7yw(B_G_#cP9B&1A1ayJ}=o$|Y8`R?M28%*( zJZ=T)@*uC}f(S3L(_!Tm7RT=b^^>7@Gro8VN{pa}bhj%9-ku+#zkn7}po$9A^Z|EL zvrwZ4loCC;+Q^xUm2dj%8wCfOcdd za%EB=xe_a=5%BhvGAPYJmX^J^B=Z0NOJyVjCrUup05ZLP`??vb6S9Hb9L9ra?e?s( z^e6yTsJjfCVhSWSSv^z zTF7!BtaF9cFgDq)E}(`f$W(a4)B{oob}}MKGQ(P}u$CPo=%9dBP+^HM9@4V(b?M{) zi8FZgE(MLp4*Ama%o&{d6*OuJ%CF!F3T%sVdR(4w18$RHzV-qWWSJPi;4 zPNKaIpw`Uu-=ORV-l7x-UM~tssvtRdQtj>q>*(}Ru>dWKflN4n%N!IUH0Z(FbqCf6Q~(RKCWwI!jRXzP1&A>) zbhk8u&O+$~XFJe53|Q8I5qd}(NQnpRkTh2gNM3~HI_RW3Xueqm+G1)2X#g)$QsM7? z3O*VOTvRZ7fLD5ePUCW6Wa?~X0i8>j?5c9S1-v^2T;3)_M7w=CKqnswcDAa36+x)( zUXaP4vphkkh_@anmEI)^jsURuix&R>|6i^ZWMFui4Ym}b34T^MNH6+X;T}lmt%2lU z91sB|8~zq4kO|$bAbI|64WKiL|DW)f;nB-Gf1NS|_`-xGT%hA$j&L!6*0eHsfJ#G% z`#ic^4uVd*@#t*L039OO3sU)l9dsGh3GmrGV2i><{{M%Z*pq#d!J~UBNNHLp3s*Np z`3)J+(aZ?t8c51PCl|w%A9n@MDT9LF1r+?CU0M)FGg!L1@b}7r5BqTiHKifKE{u$w ztxrHBlF1ONyB8***xAYg8oa`gFzjqq0iWptBEjd|cJ_*Z)5wYLRuJRz1JH?uF5I9H zN#O=XBbYFn) z5dx=5kXJERo`B=k(lv#@mlM?3fJO%7IB!twgOBs>?gd3)_f(J($``v&c_g3Y-_PRF z*?I&VHlWz#-*%!K?A*&gAnt133zB5u@9Ba>GKhyOVmUw~+K}*qga%T?zAVNbu}?sW zA-NSyb@zfyfJQ7xqY!57ARd_&$Y=TH=sCtkVu^^q~Ml8rd@Q4LD z9_oY_RYyS)3z7!ie8B@Mi^10;f+7|o3id1V{VZVN8>U3|Kyf^vd8|Mnj6G3qXmWCChrxOAU%={^K0>AEj;w}Q%r?h`Le z3qU>l7O=y>&Ig4w|9%$7&Q=y)P@)4#L5g$8fZ-BwQUr;1wjKeqL8N6XNW4~{8%#4F z=xlw$!@vMq5(ARG_yEFh-U~95fxqP~sKQGI2LvoCJRqJ!a9v$s>~64OmS6|fBy@wV zg;-dp4&in8f(!;ZkhvA)H0Xk2kYCa|S-f6rc7ru{_ktur%DQ_&?(KEq_>ZnM7^1ZK z0cZ=jDuna@z{MX3z34g=A&Ov1z)O)K3!35fLpBt4w!RQ$VDM<%3!*?1FvU!-Szi<% z2Q{_8Qcw?r>S0h_2hz^JeJaS!p#1SN{O|w&xT;Ecimg=xZC(T&?hH!utp`d)K>VGc z91O3Zd7NG!0NoZ3Z?%B(#Y=|o@O*^mt$~VpXog4h)-Egu_15wsy|v(PQVbrwygt9A z7+!4p^z}bzx))sWfzL%d_<#x2;Ow0W-n!e{`+jz%YDR2<3$MKe<2D}g(Uk5|gcyzXMfZD^2dqEUDS;-s)Co7N` z)D%dvO6~=@*`s?Z$a(PfZJjM=K?Zk&Z3Pv2_&ZOJNhwjKc;f!*5*auv7} z(+w7Z6foeiI2VW+9=%gR211k0i@X>A{=eJ;8OjG+++2~tPy)JL3e1DFR-g$?xtleA zsWJmAsKX0MVjn((lh{j8&&2-&B#D6&%l{LgkywsyR~0Y|w04`nM-p;TEdv7ssClmf zTF(G#*P0VAn@gDBr9S*rh?1~w@Lc2f8_-+=nY8O}Z2)y4z)Rdf zl_*>iw6P2tB*z;->*hiA2~+?wo5b+)3MgP<4QG%B2L6_npfTju46vb~fdC{!EgL~< zYP`F#OLupIq>jCvPz$Syt@8keq%MA+FZty<1?p}~EsIJDU8tQn& zp1IectwJE}u+7NqP$h5*9Gu;qpi?(2J8rNsFz~kqg8CCMKZC-BfxqP+A{^kS&9HzD z;&_UX=xzX=)zR5{gdfxb139$27ZmhJ{$&PFqgsNM@Hc}366z4hEG|T%7_`14LJYR= z{55D756BM?HQl`+^Py&fRDlN*L5yw&W@r%hg188Auq!M%>R{$VoCVr#2~J`Vb3MAj zx|l(y(SmG)Bpz_v8=MNd!Dd5-2%)xvly!H4JdGp((FgSwM!JGd)R$<%j043yl5R)< z!ILO-(ivnCq;Z3@?)f}VnSqss5wxcbG#pm)7F_q_ew1Q(arq^r?r8;u3e4|dk3pu6 zKth26)+-*OJTu?%!(Ik}A^}Zb zfMns9Xn~eCyLx~x>M6;@)|K=?y%-0q8FCE}_#z!wm0HkwS}Gphz8)Uko&p}-A_t*+ zKVBTl|NsB>7LRU_9RZ-b0zsNztN~s62oaNjshpAj|Nl#C$eB1GMIOyNKo<=$@VETJ z>%|!i3=EbaFYbhS5q@70*cj$UkTD*Rb+#EE-2tE`AxP$h8pIVKF<6+q5JHH7u0jW^ z`vJ4j50(Z^S3tNgN-?FuT>+?c z7|3}o7+!6zWntp)1qUmt(FKqr>%eg=g=usHlJsxT9gC>CCm>1R!IWNrB)u0?dIOU5 zJkYJXeuzZST%p2H0@@r5avAuvgO+RH1`lYSks8y7L%5{G?sRPX5j;R+&9IdvlTep> zWPs$lSzGtRCP5(w#{t%ISfdvt{Nl&gfB*Tn9q4prX|84Q=WlI8lC#|m zT34ph?W)rJLJ~9+%miBM=1>M&C6UYw+WG4O>cxSwA7oChxz>fHRt>81#axKd;30`# zQTIM&2L5e4T-FCmKnFdY@#w~I7e6xt1IP&e){jh}88*;j2T> zrC1iy1@-9VebuYX&^;9-2f6^M!$maX^%?BCq>DjCGuZ2Yzx?|T>0)%a@MgRQ?JWk0 zBZpKiXm1V3j~>|vSopWOux7L#C}DjWgd{8m76wlidSssz=ilbTn{n_V2lGLgkOWjn z03jp^6_Q{+2)U;UvcgS_0WuyA@&~G4rHXZ+e(i*uTi3i7wCqtDJUSe@5!90aiyw1g z&0u)F7jc0V#9-WkC|xWEF_?c_2x|u9p1&6Zlx_P@o3%)%4rNGqA;BX z8$hAl3li;Q^l0820GbslF@*V@73}xs2cSE6KwV#uG;{|AXcZ`g3vwrTAQC*^4f4+m zkJSJF!DhS`fov}WiyEc=|NqkI4`|p0wB`b|-thiSDTWtEcYquL>NJA0w(;2)c~8J) zDCktg(J~aR7zM8<0iWN8x>EquH~=jq0k=l6>}Q9rJckbB@V6L(+XawiO5ppCAcvAd z3LNOlrWf@;{((-Z0-YRzF)s}@5IlgG!r%K4)bazbK>;NQP{IWb?SXPUh=$}x$QE?| zUeKN#(5bGFbLJp>%$XsR)*jtcAuS~6aX87~p*)}NR*)M&w{d^4GAz; z7RVt1koEb{F&L11XCr87IhN)*B)CCMES1_KjJXrg*8g76jt@{_0oh+r>kb-R?e=x) zo(h)05lEpbKFO{wK9DW_p50R}Ca^$8-#b1#@e8svy`J;39CGe119(wY2*lx*;N1?j zJdiE>o!}D>pyvdG-GSsK=0?z|SkQFQ3Fcs^>|F|4Z#TqpEYhkh@HSLX0SwPa7N~6z z&*v*U?s;Lz!L#b13ivAfR3jDtxp7P+={2hi8H7L7V-UMpI%># z1G)OHgBG}g4}vZccj?ABZ0p@G$bkW{3Ptat6vK;>P0)?p(CkjxU zAg$5^)lwK88ISH(ke+UE=z}^`GT^RM_5l&l0%=e~u!WHWdWhWXQ&82AQ&U;^dow|8 zM)1MCEVZC^sSq1zJREe4V)F~;&Q=fu!^Uo~Ft~TE1#0d>dO)BC6{z*t{KKEWl^0bU zaz8QjHuql9>SkpI&=EA1he4bC_*?ITrW0LRnh!`>gN?3L>IU<`Tl8V(cKfn`4zz}- zsNn-2Rt<9A%VlugDC(OJNO!uXU@7@P_MoV=bakm!h8%L%>%t+8BG>Jk0xBXwXNB)Y zEHlP1wYkh%efHosJ@sPQGJA`OJ1yU@6T z#4LD^2~tdh?`i}^d}kvl+kveHZ#V0d*t?x&+Mioaho* zT@SJu9NLhG22Dnygf=LzL1PY@%Su7#8SVcA9|?iVLgE#iji!Nmo}g@m$hF;&Tnp*n zpylZ97DiBmHGrO=13oGnOJWCgzg{GOmn4FiueYGvITh3=f%-xF5cnisln?~@4MPveC}?^` zlWX1s4h;tWR`6xQuwVoo@QX0k2U1EpcK2|AlAmP{6Ug8Et!u&aqhJTY{R1iXps|Ef ztAR2U@`g%qeni^72eTV;fGso!cDFEr(hPjA4P;334$y4b{}P_#tydU9TjLlQKwD}+ zY-o)NQq|oH66ovz&1*sm-PfQkqF^a-aSvKe3sM4gD@;A8K=4Qgo9qEfQCNe*qjwJ% zC@4I8w=jU{ouG?PKQ955Opw9Ammz;aN2Y+%l}GPV(0(o&)Y+&t_$ZH-A%JKffwpeJ z8yQ&kqdD$?>{b*#Sq-YGdqGD8zBs)bR9k~K`hnVSpiv!Ak_E9rNw&Kc#PaA}dV}bb zH$L+VhNws&HGn|7)>m{uoCdka0C2$|EHu^)E@mDQjo3z?e?X_>*$%tlMu zpe`D8KPHwf=1`A;N^rv01_#uvX9V}T!E!|1o>Jd3Fj9Anrtf+gS@U&BlQo#IQxNziBkgM*6}UW6w- zS#K?e4b_8E3bbhOfSg4Ko%w?0edzquXZ|<`o*keGDbOPI&-{Wetf2K`V7nj_MxgNH z0hJcmbTH!50m;HhS_EL0FyYc70LoRcNm-D);98h*X#wXO&>^^>IUtZ05tuD3xU`6X zY{9C96`}=Z0_$h~C>K@@7?_1yxO)^WQ83c^2yYmrxGa`FFq^g!9=^ozKo6et=)!g;k?m8}7lK zkYsw2{WHIS3#$gdz6-BLInVJ{5u_F)hz-ih-C)s9R~Aq|_6PJRFlkn4h8GtXf`=%& zdqG(QbnI{SS@4iIIU^Q0GVTx&#%OPVN8v!{zrhi}{jzS>;>ECHrUNvd z;tGlv29I9w`3In7Y28~vhV0~l48Qe)xBo)KcQ7$9K*fEa>U*bxb_aX(f={-5(Z2!| z8NM1G-9J6LKR}gw^n!;$JbFRmKalR;>IL`mUO?(gLDvwE-qr%J6MI1p09n~v$b&Eh zG#7%!kf~rjy^smanT?>ffuL&%sJ=bG1gcjeTOqW7Z^&o~dF1`op0nz;Wtm>MQ49L|p{4i8AMrno@KJ%f85EOu*MELC#$lpsRFwyQfI)bSZ zyuTPnq5!QgfK3zYFrw_0y#bQzW{q12PZTVmxm;MH2mlRzb^q|_-nxMW9{C=dwX9nF)+N)1`W#h_JVpnsCl@%^#mlq zT0wH3`2|5o62pY!t9|(L9^f(5R;pwm*lt)Sx(AnHLzK?j^XdRsx=7Kk`# zXlthqD03|7ZUtR8)ajz40SaBvd_Abeq@v){3qHoo2WHJwu&KShAVXeQ)r0c1FX%9` zd*7rOUR;?0n(znDFoJ5G25^?A*H{*~egP+M^yo1F?W>1XFFl~uFrdr=If@|yB-hRQ ze->h0xVWng%*y%QYl2GA1F0UUv# zd}ILHTm?Ea0>m)^aX=ke5XS<(Lj=cae2qJ~*j|Ctp zaQnuC3*Nr*>1~B*nF^Nf?bTpoV0f`72$bxmC^*oT4G`a<#t+^h(;JzzLbb9o*Cg89DqGc*ry0^CjWPvZl0?=XubPGO! zOu_Dh10X3ZK7eSM3YPBe1&y)3=$``)B2W>GYC(6a1?Z$_ju!`ye*M1_G=KYIO5fN2 zF8teiqq!IuT==)OMsYDP@Nb(M38s2M<;IJWGobPgtQAyrgZllDVnM)z-+6 zf;AdIdDEl26?EZ+M|UrX0yTlbrOqYk|Ao(LMKiaG#l%7GFsNClEY$k-%Ur6Q6_ zP>x1Z2^n7mtNcCzVJ2wu!4;J0S)(LD$Gd}F@|j-%l=eZT5XfE&col4hq6Sn{!KYsJRnz)dGz{Ppp^FAt)Q#|+5r5SUmzCbs8GB!ayja`^&N|@WGd}yme-}u4DX57_|H)6J_C0$42sAkWN(w` zs;u}m4!)2^Qp+EH2~B8Sy3JBS>}E}Z^4whPr?To652?RqB!_A|&X zjI?nHA_uYyr@x}m?3xGB1F{P`+K5PpO%OS(cBMh&Kz8Bu*Snpl{xX8-!D^QnL=I#Z zM%wr#2=+5xyPDAKItI~$)vi?#Igni#Vb}+e1KEW$48_pwih}6DYL^{E4rCXGzmylZ)R&sgoc2a&^TR~njKs~~znc43r+wTAbPOc zr38_~Y8M+s4rCY3bl8Vx*Cjr1IDzcK$jjRxa#-z}1(CyRmlB#?X%IbF?ec=iVYN#S zA_uYyXWH1d6*UZh@xuLu5nuNpa#-y;1d#*Tg) z(CqSp=mFV&r$OZK+9ii(R}w@I$S#a9bc4u&?85Mu7DNuOU7OZ^{r|#v z!PoyUTFSu#4xllgfgf-nZZX_`^@~haY(1+w}E6l({VzQa3=CH?ztyVwTsSdpAJifJ_iM zlrj`FP7fLfe8vFQhqnyPTLHHAGrs`qdD!<|N63p&4h#XeCvmkOH zyK%NLKP?CQlUEI*mQ@bqfSoyDLGZawpg~YYh$L1AutMZO4uDryFwejIF9A9Z7q0^f zp$=I3UjnoMr$9=e*FV`7vvmxT?z||dk{Ii&Pjtfhj$i4 zE$gIz5)3bN(Ht-pB8k-jl@K|Q12Ezu79xk&0Z*5LJP#>n9tt3FT%qv&5AIO74Uq#m2WN^*20I6w5>3#oodeMh3I&W( zpaCKW3I&Y7Pl3qcwf4ligcC$d_u-g6NH#j&zcH@lr zg2iCFc$Yxbvd;M}!SKQy%>nZvk{}0Qq`YQ`999RUL*(!};Qb_9a#pz%{csk&QNMd!<`(I#>gWQCXEH6XkKyJdB4x$%atcHaWH-*>ezO4NP zQG!R=cOpbBYv&IMh8HSm4(NeMVs$_PL=F@l z80A3-L=LY5?#zccK;Q=?`K?F+^Wo_LBo0k}80p~4cev*nDgr|^ zYiB~VgS?DkZ7oC&>kv7ROK>K}c(6;rDR06z35FNiXm(GAm;tgIBNWOZa#%wl8X||+?#FY% z{^S*hsAc5`Ibc;1SP&ljLJ&!;4*2#J?s<&ZzXg%Q>wqMv1Ezh2q&z(|yFud6l!p=U zRS@$*p2x5|4kCxw?q_qp{(q6)|MmZiKcizAROkhc8ZjCIkPyInz7%LPDrh7Cyo%5R zb>$eShwsq~zW)cjif$`t`4@CyJ>)b4&`LVcJ$H~*KH%kIpf%#4C1#*811KA`x(;+1 z(TfSQz@w8NKu1E5e%=@Icm~zhFHKqiUhoDQy8yWwwBQZO1}}_*vKe03dBGOC$tFTZ zHSnxo`a2I&Rzv%wtZ5&>MtdT9;|k;LF7Po!Rs7Y z7`}Q34iCI`6`|R+4Wb9DU9%u^SnaBV$l$1KEYM5i@Hl zY8c*o3l0mcb{&GqVYO=+L=LZAdT4ePLG)m?D-0qBvI`^4TS4UT+I46Os=wGEdO&u; z+as|2_391S&sgm`2a&^TR~VXIvmkn~+EoXU!)jL&L=I#Z&iwUiGOEAyAbPOcB?OVf zYS*{dU_axvs}9YsLl8Y!?OFzr1KEX+0V4_3R9AaYpka)Zd>wd)*si85kMtPn&G zR=d8v1p66e7e@ZN1(CyRR}z|C%OH9{cELM4u>92pkptOx@Rt=t z56CWzyetQi!)g~3L=LZAU1)ZldjSq7kX;!5+60lqYS%P~9LO%5d07t4t|W*akX;!5 za)ZcWwMz>khu5x6{itdF+jHFhx&@H~*@cld_Ce%8cHvC(ZfJIOLG)ntR~|$Tt6f15 zIlOk=>O=LH97GSuE{ynMg2-XD>)A7Kc!2D}8DDv5c5Q;_0ojESU(+CRSnaBU$lT&eub_D5K;M4gq}qGtgu&sGAAipoHbdqUODz?QG1oT*q6% z3z{0gR&W3EVhAdEolmdbj`Y<6V9O9#rd~Q?SxD?gHB|4 z0jt_T4&v8mZFnTXz~82fII-om*bb1?%btd7i)b5BRJK z&|D_?P%luh3ABMM(sFeH?L6GQ8xd@MP#1u<(IN*MNTKK?h(efa?NQXiT?&v$gwuCOI6)Wtylp}E0$2mg3vIg)ffkA42y9+}X$5=18=@8Fg&$!!y^z@g zlG1Vo9s0v70?`HzwC5;#AU1+hH%OuA>z!by!OWk5q825HI9tB{fB6iwJ+!s#>;D(m ze8H_h&`{OrYRw_s^1<$OeC;6)&;hNm{kB*(Y&Y)(4a|evLtqA|J@g!Ostyr*xF;LK zhN_FaAnhS-XnRNtRGx2}stKkbXKDr^ZQF*IYalDJG<{YwgH9fT*2dqqffGGAcbp6c zWt&LowsFB$(2i?R?f`GlJ_}I@%N6;C6QUL7hHpX0?nQA!I(|1WKnw!A;WCOT1l@3SD>%SlZYV<0jpByK^?1Xf z24WD{4gOG5K<2b8N7fg!`luq7Y_@8H!rCC7_1D z^4hQeUz+^+|Nn(@!PoyUO5DLU%-}eH0DCbxXhjjn4}$Usy!VQwv<5Ag%DMs?V-j>_ zd12oI?zckE)Bqoe0A+*wtxz_@i`TlKWF-&^DkZ^ZS-7&ikg$N2-P>G1>t0|>VR)`c zFubU(gb9I~lzXdTJdpLTFH11Ih=D5r3Ecn*O^2ugH9JpShOFi=gR24=Q-)Bm9I8MR zq5!043REbd8thil7BC;Y8s|NDVGhWFAY=5Q3X%~D&Q(D41R#VstH1t#(Utr4|BKr$ zbWfO&IpaBQ8hB8P9v-PkHw$$4sDK(|kO}UY+J`Rw=yYX)oN=P$3_e8U`;AUl z70|^PDxiCmRk~eSEL~Oj`!6zr?%PyhC@lkZd7LhR(t`l66@+Frx+KByVs|+tNK_$$ zys{9QRTLyS4=Tw45#(in(5yc$N-(@=gi5}?2r>3Cgl4@Bl1wT8`u{cPa8}VZ>p`WF z0PhkA%{phjB*P0=sNQ~vAa6T_W~~QFYCt86AcDME5Sld!B*_hx421~t`a)<{SCHhp zGH7T(D(Fb?6$_vu3v^m0xOD+KJ?smpk*{$9vZ}8Y#CyS92?_;pX->Q*NNNIiJRzF8 zU0J^0fE>>fiO;sF;ADuT5#&Uc&-{2bB~*O<|56&%P`{G}PN<+FV34=b(bso?5;>^g zhbM9@*9<_?wU+~=o%k7YNKfl0P@HX>`VmY)Zu`)x0~czLLuny{aZon6P=m4=UZ{f> zZFRST?1inTfU?2rplpU0|3UqqhD>nSf-YDjBW%I!J0v%ZiIt~V;3AEb9 zptE=phn&KXP6Qp3jBySX=ulLUdhnru7Oe1d6FqucKY)4$U~vPGcmwDN?j_x=9;^%u zpu-2T3m#V5RK=aFG5F)&oyJ@GvmIlcfza%6ZxnybKH;-K>0Wu=qIvQrz7tzzgbq zK+mLtupwtsLD-;0Mxa1?aX}m8J6{3l`HAquM_W0-3L{xg`TL4~n^>HU$`~b+&y&%sasRtdx3RXWABHfz-vRK3pY;glf z26CP?#1zoM^B}R_sbHzz-V-3z&uqb}!IuIctM=$^T>v`15^_Eox^o;rQr*4a=mZ}r zn*epH4@}!su#(9*^GE2Jiv72)T`*dnk8;Pl#LsI!qWW4LZ9Uutp=c?2%Lv1P!6{T9ls4uD_cP(?SvF!F5SHykR#BiHh}c? zP6cc4?FFfRp`iBl{|km^#==up1irJ$4S<4IpOi8DQs(_VOy1gYPl^*y+A z17(BjcPN|T1)n0QjVCY_bnYLhBjJ4<+-?Oo3|<&%!)EL*m=kPyY$yfyb3lf$9hU%a zPt@`N8!r0ps1#_|D5$e@`IrR5i&c3L@oNb2(?_KkUQB|DuR8|P4_?&286;i>6`zI> zpA8aEf{NE6#EU`ZdqKs^5avgN#En3)v^nAH{}(J4pmem9%oYvKsKP3NI1d!m(gQV6 zK}j5(WpVUT*By}p9i|QI&IFr50-qZ?Jjewe7o5rorob0Yy)Z5zs6+tN*dSt9k~bGr zn!=8qbPxd@sSjEt4DAnlzz*<)-ckiRK~Mm6ygrf|(4oBGMMelU0X(1iBSVqYNPOmp zukiqlhC$Ez12JE8<$V4Bf;%1@MWB`_8I4Y?F@aqWoWCHQPRLLKxM>O+odm@bxF{lP z!L=j!VrR!4;B)l(1t4cyLz)pU{H4I2BWr~N=%TO!D-76b&)t|jq?j1 zP`TX=zLyQw>IbzXKye6)8Yr9L#Sa;92Av8r5H!jNrCUMt3mJ7-sj$l!lInt?2{Qs?t``5?3S;1ffc7l1m~klFrgHXxq}wt}us z%yb3Mm(KjY7c_7H>5>YFUY!qC4I8st3f3Ud3)1kJA8ZI{m=82p2yr&Z5um&Pa|DQu z>Im>qb{(p*+F)Y^!I!)u%mEb!Fmpg`EasS@n!^S)hli1Y0lR-#Q8jF`1_gjXFGvI2 zKLU`sPmPP9$OYZZ_d-1L>wkp1KmiML7l{4+XSXlQ|AYMN526J0ta;#|1CNX5g6)9> zbhoR@{{xu^K(mKvft>--0SjykuqKiN8{IMB0Ov(DdY2W*--H7kt62xMYoJb`&pKz_ zf$oE9mJHM^P@rS?mo%z|6BeL=AQ<4fY4`&iqd3_z8ytM#z-|ZI0ZHZ99n}U=4NE#< zU=1V(HnJnYsaqe_*gNJRzY-2;40E2(0(%DLyzNkPa0l`>R1L{s4Fm)EL<)(4><_U9 z9LP#wJ0O9KJG;q3bijP_)(jLPln3;&nJ58N3^taGfUZL|#}8@_D4=os$rDx6H&ck8 zK$`HB-O9fY*REksRRYjsd6cKvbjunSlIF zIMA`0#foayRj65@FvK137p8+l1Ln6{uqJ}3{88f9|1Z71|Ns9|>HGixFCs&}{(rFw zJgl`8G%rirW-Io_?5OC74*?4L2RiBCz8|z703J1fvcaPUP&UJh8v>vVDuBIz@J9+Z zH#$q5VE>>hm0Kt#h7}F1U=1V}dl(gQ z9ICP0U}Fgvc^Kx1p_=ndAL1WSafjVMPbYzW5A)9?um*xf-S-$W>X<5sRp5a31=|A& zXx!zn2Sf+VaS~unBnLLudg1Lv6o1dsg9H?)_k-y8fI4BYjt_{9+3^9_R|`?iDukK^ z3Uu6l%R$v73D!g~;OnBv2zW+_Rp5ZX0$#pADB#aeKnb1sU`^Bs_!3m36~RUmPU%=9 zQ3KViA3Bgo#2@gV`%(P10IZ2%z_Uh?5%3)ltH1#t4Ymgo@Yu6r6ht*FwQGSjP$$s; z_o4WCjW#5p$V%;-QO#nu9x#*Pv>M z1ZyA|$ooRS{(tEP>LbX3`Us{TU;n>olLwFfj`k5od|Q1W0sv_d4rtOq19Y!&Z;ncW zNB5tdU8s`=9$-09wS`ik8Gq1R{fktuum3$dT{%2@MHept3Hx%qkPHQ-XVKj-J|~FZ z-TDGFEzr&2(JT58Ci6Z7+`)jzIIwv1ioSzMT>(k;in1+*8hQl67lZM)K=^Jj{*n+- z&jCDb0Nd~*2yT3Jx~g=$x-=hP?sNqmcMGzso59jmr8XNZ%;Yh{qq`R*>e21V@tHr0 zrLo)9<^KV6VV*{hWRL;KN<|t!@e8`BDDZ3CO!MTg0~4T2ix0v)!5{MV|I4!f@Vzz1 z!52z{ciD({yQY98JNNI-#{m{J=IkwkTk0N9Zp$x!7m2Z4ln8u>MD zfStmxaS=p=T;mOMO=Ixa|F1iaw=MxWfPsPGc$Pk*SQIpw0g~+o%YecR%s{va ztg5yICXW($3Sf6Zq)=T9k^zMu)G(NfLBhC#aM@yLyq^jB`u}AdCoQNJbFcWU@n#dxj5?o|NkDnqS7!y z)*w(y_vLso)$HqkpYB#r=JDti{l7?x0kW8HvkfTIEIq-6KwZ(Y0wmYXI!7M1;w%Cr&aFEajc7=(x53)kToFJfsE^dii7UB28qLrD}suHF75`2LyZfE8W#+ehF<2~3NnsA zoYev(oj?7pwd!MY3RZlu&MmvtpC9w636;`F~sYj6#yXJ zAj3g^cnlQ>&ANibp{AaIYC8gz26b^j(jd3;hqJDPN-u>S5;mT?Fwxs09oX2bsek&iV)(W^t_dpwgffZ6Ilov-rbV4@0H*L#07WG(gfIQ~ASL zmq4W#K&4f{O9BMI`I$eQwG}Ge2$cryD*)*R84hx5CRAJpstszYA5@zcR2n)43Nuw7 zDyTDrDJUR7j=2LB2d#PlX#+WuKb-X- zRNG#tv3L9T$T9~=2!Kp&gNnm$0tcB263>H*gH~XJY=asX3^mRlDjfo~ z4dh7va8?tjv;kBaw88|W8)m8mR6GW%4P+|FHU_9T^k4{BNInIJR2=KW1&|;~fog*p zcM>WNT2%nD24>twsCW)kJ;-$+Yi2^lAv?AaX|fS2UIJAQGKW8$H4SQg5>y(rksf3X z%s4NoIP5NOkhA#1S@ogXw4u_VQ!zl=pr#5yrFo#zEl^8Art*igegp?a9P8Wp5I=*C zz5wZl8h!~XeGV$!1Jw;Rd^1#fJyaUBnh~TMWH=}UrbET2K(#?lt$}K*fJ)DRN`p)V zX-j~L&w+}=jPrnsgKA}vHBjSpp~h)KrI$dp!Hg4xii7UD25AEs#~;r64ICnIte@sV zybija9kNWn^#W-9P&nw0>((m}!&tXKRe>&$hpK|!DbG3+Dg|m_fmRrHLitY+rhppz zAgMg4)ElU&aZo;JF+SAPFHk9GsMHTA-x$jOgD{l=wB(;(fK>u2#li$?R)C$&fnf3= zm;z7@&*wtCEP{}dKrm&Xst!U`DIlaπ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
XEZU3|XFXcgto^09yCk4BNC21!~i0FqF80Xaj~4 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%0D4sI(iT=^1vE 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 z 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 z%0D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%0DwXeceFK?1y8)g&djp$1yCVuR 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]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 z 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

  • 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

    X~Ce8{x#g%@Tm;Js|1zU}`W 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%0D#I2O9nQEZwwp^UqR|YZsO+w=XvD3 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 diff --git a/ExampleApplication/core_basic_window.cs b/ExampleApplication/core_basic_window.cs new file mode 100644 index 0000000..98e10cb --- /dev/null +++ b/ExampleApplication/core_basic_window.cs @@ -0,0 +1,8 @@ + +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/Generator/Generator.cs b/Generator/Generator.cs index e88fcc1..4310a1f 100644 --- a/Generator/Generator.cs +++ b/Generator/Generator.cs @@ -1,69 +1,178 @@ -using CppSharp; -using CppSharp.AST; -using CppSharp.Generators; -using System; +using System; using System.IO; +using System.Text; +using System.Text.RegularExpressions; namespace Raylibcs { - ///

    - /// 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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 F698Fvh~EGJ