mirror of
https://github.com/raysan5/raylib.git
synced 2026-10-11 04:01:54 -04:00
Compare commits
5 Commits
cb95b8fba7
...
79046d32b7
| Author | SHA1 | Date | |
|---|---|---|---|
| 79046d32b7 | |||
| e33f1cbd15 | |||
| 84cab61804 | |||
| 46395747e3 | |||
| 65d28cf605 |
@ -99,6 +99,10 @@ shapes;shapes_penrose_tile;★★★★;5.5;6.0;2025;2025;"David Buzatto";@david
|
|||||||
shapes;shapes_hilbert_curve;★★★☆;5.6;5.6;2025;2025;"Hamza RAHAL";@hmz-rhl
|
shapes;shapes_hilbert_curve;★★★☆;5.6;5.6;2025;2025;"Hamza RAHAL";@hmz-rhl
|
||||||
shapes;shapes_easings_testbed;★★★☆;2.5;2.5;2019;2025;"Juan Miguel López";@flashback-fx
|
shapes;shapes_easings_testbed;★★★☆;2.5;2.5;2019;2025;"Juan Miguel López";@flashback-fx
|
||||||
shapes;shapes_drag_puzzle;★☆☆☆;6.0;6.0;2026;2026;"Gabriel Piangers";@gabriel-piangers
|
shapes;shapes_drag_puzzle;★☆☆☆;6.0;6.0;2026;2026;"Gabriel Piangers";@gabriel-piangers
|
||||||
|
shapes;shapes_ellipse_collision;★★☆☆;5.5;5.5;2025;2025;"Ziya";@Monjaris
|
||||||
|
shapes;shapes_outlines_testbed;★★★☆;6.1;6.1;2026;2026;"Matthew Roush";@MatthewRoush
|
||||||
|
shapes;shapes_outlines_thickness;★☆☆☆;6.1;6.1;2026;2026;"Matthew Roush";@MatthewRoush
|
||||||
|
shapes;shapes_polygon_lines;★★☆☆;6.1;6.1;2026;2026;"Matthew Roush";@MatthewRoush
|
||||||
textures;textures_clipboard_image;★☆☆☆;6.0;6.0;2026;2026;"Maicon Santana";@maiconpintoabreu
|
textures;textures_clipboard_image;★☆☆☆;6.0;6.0;2026;2026;"Maicon Santana";@maiconpintoabreu
|
||||||
textures;textures_magnifying_glass;★★★☆;5.6;5.6;2026;2026;"Luke Vaughan";@badram
|
textures;textures_magnifying_glass;★★★☆;5.6;5.6;2026;2026;"Luke Vaughan";@badram
|
||||||
textures;textures_logo_raylib;★☆☆☆;1.0;1.0;2014;2025;"Ramon Santamaria";@raysan5
|
textures;textures_logo_raylib;★☆☆☆;1.0;1.0;2014;2025;"Ramon Santamaria";@raysan5
|
||||||
@ -178,6 +182,8 @@ models;models_directional_billboard;★★☆☆;6.0;6.0;2025;2025;"Robin";@Robi
|
|||||||
models;models_animation_blend_custom;★★★★;5.5;6.0;2026;2026;"dmitrii-brand";@dmitrii-brand
|
models;models_animation_blend_custom;★★★★;5.5;6.0;2026;2026;"dmitrii-brand";@dmitrii-brand
|
||||||
models;models_animation_blending;★★★★;5.5;6.0;2024;2026;"Kirandeep";@Kirandeep-Singh-Khehra
|
models;models_animation_blending;★★★★;5.5;6.0;2024;2026;"Kirandeep";@Kirandeep-Singh-Khehra
|
||||||
models;models_animation_timing;★★★☆;6.0;6.0;2026;2026;"Ramon Santamaria";@raysan5
|
models;models_animation_timing;★★★☆;6.0;6.0;2026;2026;"Ramon Santamaria";@raysan5
|
||||||
|
models;models_mesh_uv_painting;★★★★;6.0;6.0;2025;2025;"PanicTitan";@PanicTitan
|
||||||
|
models;models_procedural_decals;★★★★;6.0;6.0;2025;2025;"PanicTitan";@PanicTitan
|
||||||
shaders;shaders_ascii_rendering;★★☆☆;5.5;6.0;2025;2025;"Maicon Santana";@maiconpintoabreu
|
shaders;shaders_ascii_rendering;★★☆☆;5.5;6.0;2025;2025;"Maicon Santana";@maiconpintoabreu
|
||||||
shaders;shaders_basic_lighting;★★★★;3.0;4.2;2019;2025;"Chris Camacho";@chriscamacho
|
shaders;shaders_basic_lighting;★★★★;3.0;4.2;2019;2025;"Chris Camacho";@chriscamacho
|
||||||
shaders;shaders_model_shader;★★☆☆;1.3;3.7;2014;2025;"Ramon Santamaria";@raysan5
|
shaders;shaders_model_shader;★★☆☆;1.3;3.7;2014;2025;"Ramon Santamaria";@raysan5
|
||||||
@ -213,6 +219,7 @@ shaders;shaders_depth_rendering;★★★☆;6.0;6.0;2025;2025;"Luís Almeida";@
|
|||||||
shaders;shaders_game_of_life;★★★☆;6.0;6.0;2025;2025;"Jordi Santonja";@JordSant
|
shaders;shaders_game_of_life;★★★☆;6.0;6.0;2025;2025;"Jordi Santonja";@JordSant
|
||||||
shaders;shaders_rlgl_compute;★★★★;4.0;4.0;2021;2025;"Teddy Astie";@tsnake41
|
shaders;shaders_rlgl_compute;★★★★;4.0;4.0;2021;2025;"Teddy Astie";@tsnake41
|
||||||
shaders;shaders_cel_shading;★★★☆;6.0;6.0;2026;2026;"Gleb A";@ggrizzly
|
shaders;shaders_cel_shading;★★★☆;6.0;6.0;2026;2026;"Gleb A";@ggrizzly
|
||||||
|
shaders;shaders_lights_bloom;★★★☆;6.0;6.0;2025;2025;"PanicTitan";@PanicTitan
|
||||||
audio;audio_module_playing;★☆☆☆;1.5;3.5;2016;2025;"Ramon Santamaria";@raysan5
|
audio;audio_module_playing;★☆☆☆;1.5;3.5;2016;2025;"Ramon Santamaria";@raysan5
|
||||||
audio;audio_music_stream;★☆☆☆;1.3;4.2;2015;2025;"Ramon Santamaria";@raysan5
|
audio;audio_music_stream;★☆☆☆;1.3;4.2;2015;2025;"Ramon Santamaria";@raysan5
|
||||||
audio;audio_raw_stream;★★★☆;1.6;6.0;2015;2026;"Ramon Santamaria";@raysan5
|
audio;audio_raw_stream;★★★☆;1.6;6.0;2015;2026;"Ramon Santamaria";@raysan5
|
||||||
@ -223,5 +230,4 @@ audio;audio_sound_multi;★★☆☆;5.0;5.0;2023;2025;"Jeffery Myers";@JeffM250
|
|||||||
audio;audio_sound_positioning;★★☆☆;5.5;6.0;2025;2025;"Le Juez Victor";@Bigfoot71
|
audio;audio_sound_positioning;★★☆☆;5.5;6.0;2025;2025;"Le Juez Victor";@Bigfoot71
|
||||||
audio;audio_spectrum_visualizer;★★★☆;6.0;6.0;2025;2025;"IANN";@meisei4
|
audio;audio_spectrum_visualizer;★★★☆;6.0;6.0;2025;2025;"IANN";@meisei4
|
||||||
audio;audio_stream_callback;★★★☆;6.0;6.0;2026;2026;"Dan Hoang";@dan-hoang
|
audio;audio_stream_callback;★★★☆;6.0;6.0;2026;2026;"Dan Hoang";@dan-hoang
|
||||||
|
audio;audio_amp_envelope;★☆☆☆;6.0;6.0;2026;2026;"Arbinda Rizki Muhammad";@arbipink
|
||||||
oang
|
|
||||||
|
|||||||
@ -1494,41 +1494,27 @@ void PollInputEvents(void)
|
|||||||
{
|
{
|
||||||
if (CORE.Window.dropFileCount == 0)
|
if (CORE.Window.dropFileCount == 0)
|
||||||
{
|
{
|
||||||
// When a new file is dropped, reserve a fixed number of slots for all possible dropped files
|
int newCount = CORE.Window.dropFileCount + 1;
|
||||||
// at the moment limit the number of drops at once to 1024 files but this behaviour should probably be reviewed
|
|
||||||
// TODO: Pointers should probably be reallocated for any new file added...
|
|
||||||
CORE.Window.dropFilepaths = (char **)RL_CALLOC(1024, sizeof(char *));
|
|
||||||
|
|
||||||
|
// Reallocate array to fit the new file path pointer
|
||||||
|
char **tempPaths = (char **)RL_REALLOC(CORE.Window.dropFilepaths, newCount*sizeof(char *));
|
||||||
|
CORE.Window.dropFilepaths = tempPaths;
|
||||||
|
|
||||||
|
// Allocate memory for the file path string itself
|
||||||
CORE.Window.dropFilepaths[CORE.Window.dropFileCount] = (char *)RL_CALLOC(MAX_FILEPATH_LENGTH, sizeof(char));
|
CORE.Window.dropFilepaths[CORE.Window.dropFileCount] = (char *)RL_CALLOC(MAX_FILEPATH_LENGTH, sizeof(char));
|
||||||
|
|
||||||
#if defined(USING_VERSION_SDL3)
|
if (CORE.Window.dropFilepaths[CORE.Window.dropFileCount] != NULL)
|
||||||
// const char *data; // The text for SDL_EVENT_DROP_TEXT and the file name for SDL_EVENT_DROP_FILE, NULL for other events
|
{
|
||||||
// Event memory is now managed by SDL, so it should not be freed in SDL_EVENT_DROP_FILE,
|
// Copy the path data from SDL to our internal list
|
||||||
// in case data needs to be hold onto the text in SDL_EVENT_TEXT_EDITING and SDL_EVENT_TEXT_INPUT events,
|
snprintf(CORE.Window.dropFilepaths[CORE.Window.dropFileCount], MAX_FILEPATH_LENGTH, "%s", DROP_EVENT_DATA);
|
||||||
// a copy is required, SDL_TEXTINPUTEVENT_TEXT_SIZE is no longer necessary and has been removed
|
CORE.Window.dropFileCount++;
|
||||||
snprintf(CORE.Window.dropFilepaths[CORE.Window.dropFileCount], MAX_FILEPATH_LENGTH, "%s", event.drop.data);
|
}
|
||||||
#else
|
|
||||||
snprintf(CORE.Window.dropFilepaths[CORE.Window.dropFileCount], MAX_FILEPATH_LENGTH, "%s", event.drop.file);
|
// NOTE: SDL3 will handle path freeing internally
|
||||||
|
#ifndef USING_VERSION_SDL3
|
||||||
SDL_free(event.drop.file);
|
SDL_free(event.drop.file);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
CORE.Window.dropFileCount++;
|
|
||||||
}
|
}
|
||||||
else if (CORE.Window.dropFileCount < 1024)
|
|
||||||
{
|
|
||||||
CORE.Window.dropFilepaths[CORE.Window.dropFileCount] = (char *)RL_CALLOC(MAX_FILEPATH_LENGTH, sizeof(char));
|
|
||||||
|
|
||||||
#if defined(USING_VERSION_SDL3)
|
|
||||||
snprintf(CORE.Window.dropFilepaths[CORE.Window.dropFileCount], MAX_FILEPATH_LENGTH, "%s", event.drop.data);
|
|
||||||
#else
|
|
||||||
snprintf(CORE.Window.dropFilepaths[CORE.Window.dropFileCount], MAX_FILEPATH_LENGTH, "%s", event.drop.file);
|
|
||||||
SDL_free(event.drop.file);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
CORE.Window.dropFileCount++;
|
|
||||||
}
|
|
||||||
else TRACELOG(LOG_WARNING, "FILE: Maximum drag and drop files at once is limited to 1024 files!");
|
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
// Window events are also polled (minimized, maximized, close...)
|
// Window events are also polled (minimized, maximized, close...)
|
||||||
|
|||||||
@ -1040,8 +1040,13 @@ int main(int argc, char *argv[])
|
|||||||
FilePathList clist = LoadDirectoryFilesEx(exBasePath, ".c", true);
|
FilePathList clist = LoadDirectoryFilesEx(exBasePath, ".c", true);
|
||||||
|
|
||||||
// Load examples collection list file (raylib/examples/examples_list.txt)
|
// Load examples collection list file (raylib/examples/examples_list.txt)
|
||||||
char *exList = LoadFileText(exCollectionFilePath);
|
char *exList = (char *)RL_CALLOC(REXM_MAX_BUFFER_SIZE, 1);
|
||||||
int exListLen = (int)strlen(exList);
|
int exListLen = 0;
|
||||||
|
|
||||||
|
char *exListFileData = LoadFileText(exCollectionFilePath);
|
||||||
|
exListLen = (int)strlen(exListFileData);
|
||||||
|
memcpy(exList, exListFileData, exListLen);
|
||||||
|
UnloadFileText(exListFileData);
|
||||||
|
|
||||||
char *exListUpdated = (char *)RL_CALLOC(REXM_MAX_BUFFER_SIZE, 1);
|
char *exListUpdated = (char *)RL_CALLOC(REXM_MAX_BUFFER_SIZE, 1);
|
||||||
bool listUpdated = false;
|
bool listUpdated = false;
|
||||||
@ -1098,7 +1103,10 @@ int main(int argc, char *argv[])
|
|||||||
exInfo->author, exInfo->authorGitHub));
|
exInfo->author, exInfo->authorGitHub));
|
||||||
|
|
||||||
// Add the following examples to the end of collection list
|
// Add the following examples to the end of collection list
|
||||||
strncpy(exListUpdated + exListNextCatIndex + exListNewExLen, exList + exListNextCatIndex, exListLen - exListNextCatIndex);
|
snprintf(exListUpdated + exListNextCatIndex + exListNewExLen, exListLen - exListNextCatIndex + 1, "%s", exList + exListNextCatIndex);
|
||||||
|
|
||||||
|
exListLen = (int)strlen(exListUpdated);
|
||||||
|
memcpy(exList, exListUpdated, exListLen + 1);
|
||||||
|
|
||||||
listUpdated = true;
|
listUpdated = true;
|
||||||
}
|
}
|
||||||
@ -1126,7 +1134,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
if (listUpdated) SaveFileText(exCollectionFilePath, exListUpdated);
|
if (listUpdated) SaveFileText(exCollectionFilePath, exListUpdated);
|
||||||
|
|
||||||
UnloadFileText(exList);
|
RL_FREE(exList);
|
||||||
RL_FREE(exListUpdated);
|
RL_FREE(exListUpdated);
|
||||||
|
|
||||||
UnloadDirectoryFiles(clist);
|
UnloadDirectoryFiles(clist);
|
||||||
|
|||||||
Reference in New Issue
Block a user