diff --git a/.github/workflows/linux_examples.yml b/.github/workflows/linux_examples.yml new file mode 100644 index 000000000..c268f4796 --- /dev/null +++ b/.github/workflows/linux_examples.yml @@ -0,0 +1,32 @@ +name: Linux Examples + +on: + push: + pull_request: + branches: [ master ] + paths: + - 'examples/**' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Setup Environment + run: | + sudo apt-get update -qq + sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev + + - name: Build Library + run: | + cd src + make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=STATIC + cd .. + + - name: Build Examples + run: | + cd examples + make PLATFORM=PLATFORM_DESKTOP -B + cd .. diff --git a/.github/workflows/windows_examples.yml b/.github/workflows/windows_examples.yml new file mode 100644 index 000000000..05bc49940 --- /dev/null +++ b/.github/workflows/windows_examples.yml @@ -0,0 +1,26 @@ +name: Windows Examples + +on: + push: + pull_request: + branches: [ master ] + paths: + - 'examples/**' + +jobs: + build: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v2 + + - name: Add MSBuild to PATH + uses: microsoft/setup-msbuild@v1 + + - name: Build Library (MSVC16) + run: | + cd projects/VS2019 + msbuild.exe raylib.sln /property:Configuration=Release /property:Platform=x86 + cd ../.. + shell: cmd + diff --git a/CMakeOptions.txt b/CMakeOptions.txt index d60ca2b79..ebdba0c9b 100644 --- a/CMakeOptions.txt +++ b/CMakeOptions.txt @@ -86,4 +86,5 @@ cmake_dependent_option(SUPPORT_FILEFORMAT_MP3 "Support loading MP3 for sound" O cmake_dependent_option(SUPPORT_FILEFORMAT_FLAC "Support loading FLAC for sound" ${OFF} CUSTOMIZE_BUILD OFF) # utils.c +cmake_dependent_option(SUPPORT_STANDARD_FILEIO "Support standard file io library (stdio.h)" ON CUSTOMIZE_BUILD ON) cmake_dependent_option(SUPPORT_TRACELOG "Show TraceLog() output messages. NOTE: By default LOG_DEBUG traces not shown" ON CUSTOMIZE_BUILD ON) diff --git a/cmake/CompileDefinitions.cmake b/cmake/CompileDefinitions.cmake index b07503c16..36062b309 100644 --- a/cmake/CompileDefinitions.cmake +++ b/cmake/CompileDefinitions.cmake @@ -54,6 +54,7 @@ if (${CUSTOMIZE_BUILD}) define_if("raylib" SUPPORT_FILEFORMAT_MOD) define_if("raylib" SUPPORT_FILEFORMAT_FLAC) define_if("raylib" SUPPORT_FILEFORMAT_MP3) + define_if("raylib" SUPPORT_STANDARD_FILEIO) define_if("raylib" SUPPORT_TRACELOG) define_if("raylib" SUPPORT_COMPRESSION_API) diff --git a/examples/core/core_3d_picking.c b/examples/core/core_3d_picking.c index 01fe2b550..1360f006d 100644 --- a/examples/core/core_3d_picking.c +++ b/examples/core/core_3d_picking.c @@ -90,7 +90,7 @@ int main(void) DrawText("Try selecting the box with mouse!", 240, 10, 20, DARKGRAY); - if(collision) DrawText("BOX SELECTED", (screenWidth - MeasureText("BOX SELECTED", 30)) / 2, (int)(screenHeight * 0.1f), 30, GREEN); + if (collision) DrawText("BOX SELECTED", (screenWidth - MeasureText("BOX SELECTED", 30)) / 2, (int)(screenHeight * 0.1f), 30, GREEN); DrawFPS(10, 10); diff --git a/src/raylib.h b/src/raylib.h index 5696be2a2..659cbc74a 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -876,11 +876,6 @@ typedef enum { // Callbacks to hook some internal functions // WARNING: This callbacks are intended for advance users typedef void (*TraceLogCallback)(int logType, const char *text, va_list args); // Logging: Redirect trace log messages - -typedef void *(*MemAllocCallback)(int size); // Memory: Custom allocator -typedef void *(*MemReallocCallback)(void *ptr, int size); // Memory: Custom re-allocator -typedef void (*MemFreeCallback)(void *ptr); // Memory: Custom free - typedef unsigned char* (*LoadFileDataCallback)(const char* fileName, unsigned int* bytesRead); // FileIO: Load binary data typedef void (*SaveFileDataCallback)(const char *fileName, void *data, unsigned int bytesToWrite); // FileIO: Save binary data typedef char *(*LoadFileTextCallback)(const char* fileName); // FileIO: Load text data @@ -991,9 +986,6 @@ RLAPI void MemFree(void *ptr); // Internal me // Set custom callbacks // WARNING: Callbacks setup is intended for advance users RLAPI void SetTraceLogCallback(TraceLogCallback callback); // Set custom trace log -RLAPI void SetMemAllocCallback(MemAllocCallback callback); // Set custom memory allocator -RLAPI void SetMemReallocCallback(MemReallocCallback callback); // Set custom memory reallocator -RLAPI void SetMemFreeCallback(MemFreeCallback callback); // Set custom memory free RLAPI void SetLoadFileDataCallback(LoadFileDataCallback callback); // Set custom file binary data loader RLAPI void SetSaveFileDataCallback(SaveFileDataCallback callback); // Set custom file binary data saver RLAPI void SetLoadFileTextCallback(LoadFileTextCallback callback); // Set custom file text data loader diff --git a/src/utils.c b/src/utils.c index 568c6c886..9579346e2 100644 --- a/src/utils.c +++ b/src/utils.c @@ -63,26 +63,18 @@ //---------------------------------------------------------------------------------- // Global Variables Definition //---------------------------------------------------------------------------------- - -// Log types messages static int logTypeLevel = LOG_INFO; // Minimum log type level static TraceLogCallback traceLog = NULL; // TraceLog callback function pointer -static MemAllocCallback memAlloc = NULL; // MemAlloc callback function pointer -static MemReallocCallback memRealloc = NULL; // MemRealloc callback funtion pointer -static MemFreeCallback memFree = NULL; // MemFree callback funtion pointer static LoadFileDataCallback loadFileData = NULL; // LoadFileData callback funtion pointer static SaveFileDataCallback saveFileData = NULL; // SaveFileText callback funtion pointer static LoadFileTextCallback loadFileText = NULL; // LoadFileText callback funtion pointer static SaveFileTextCallback saveFileText = NULL; // SaveFileText callback funtion pointer -//void *MemAllocDefault(unsigned int size) { return RL_MALLOC(size); } -//void MemFreeDefault(void *ptr) { RL_FREE(ptr); } - +//---------------------------------------------------------------------------------- +// Functions to set internal callbacks +//---------------------------------------------------------------------------------- void SetTraceLogCallback(TraceLogCallback callback) { traceLog = callback; } // Set custom trace log -void SetMemAllocCallback(MemAllocCallback callback) { memAlloc = callback; } // Set custom memory allocator -void SetMemReallocCallback(MemReallocCallback callback) { memRealloc = callback; } // Set custom memory reallocator -void SetMemFreeCallback(MemFreeCallback callback) { memFree = callback; } // Set custom memory free void SetLoadFileDataCallback(LoadFileDataCallback callback) { loadFileData = callback; } // Set custom file data loader void SetSaveFileDataCallback(SaveFileDataCallback callback) { saveFileData = callback; } // Set custom file data saver void SetLoadFileTextCallback(LoadFileTextCallback callback) { loadFileText = callback; } // Set custom file text loader @@ -172,28 +164,21 @@ void TraceLog(int logType, const char *text, ...) // NOTE: Initializes to zero by default void *MemAlloc(int size) { - // WARNING: This implementation allows changing memAlloc at any - // point during program execution, it could be a security risk - void *ptr = NULL; - if (memAlloc) ptr = memAlloc(size); - else ptr = RL_CALLOC(size, 1); + void *ptr = RL_CALLOC(size, 1); return ptr; } // Internal memory reallocator void *MemRealloc(void *ptr, int size) { - void *ret = NULL; - if (memRealloc) ret = memRealloc(ptr, size); - else ret = RL_REALLOC(ptr, size); + void *ret = RL_REALLOC(ptr, size); return ret; } // Internal memory free void MemFree(void *ptr) { - if (memFree) memFree(ptr); - else RL_FREE(ptr); + RL_FREE(ptr); } // Load data from file into a buffer