summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-03-21render: vulkan: add check for null pointer for debugHEADmasterDanny Holman
Add a check for a NULL pointer during initialization of debugging extensions. Signed-off-by: Danny Holman <dholman@gymli.org>
2025-03-21render: vulkan: replace depreciated version macroDanny Holman
Replace the depreciated versioning macros with a simple function call that converts a version string to a uint32_t. Signed-off-by: Danny Holman <dholman@gymli.org>
2025-03-20Version bump to 0.63.00.63.0Danny Holman
Increment the version string to 0.63.0. Signed-off-by: Danny Holman <dholman@gymli.org>
2025-03-20core: init: remove hot reload supportDanny Holman
Remove hot code reloading support from the core API. This functionality is not achievable under current conditions and does not align with project goals. Signed-off-by: Danny Holman <dholman@gymli.org>
2025-03-20core: input: fix coding style issueDanny Holman
Fix a coding style issue in the input system. All API-level types should be fully opaque. Signed-off-by: Danny Holman <dholman@gymli.org>
2025-03-20core: logging: make terminal settings configurableDanny Holman
Make the settings of the log output configurable. Both the color output and the output of debug messages should be togglable at runtime. Signed-off-by: Danny Holman <dholman@gymli.org>
2025-03-20core: refactor core API to be in proper styleDanny Holman
Bring the rest of the core API to be in line with the project coding style. This commit also makes the coding style change formal by updating the coding style document in the documentation. Signed-off-by: Danny Holman <dholman@gymli.org>
2025-03-20core: alloc: make the mem_block type opaqueDanny Holman
Make the mem_block struct into a fully opaque type. This brings the allocation manager in line with project coding style. Signed-off-by: Danny Holman <dholman@gymli.org>
2025-03-20render: vulkan: fix synchronization bugsDanny Holman
Fix a host of synchronization bugs involving the Vulkan fence objects and the state of the command pool. Signed-off-by: Danny Holman <dholman@gymli.org>
2025-03-20render: vulkan: make all types opaqueDanny Holman
Make all the types specific to Vulkan fully opaque. This brings most of the rendering backend in line with the project coding style. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-11-27render: centralize the type definitionsDanny Holman
Centralize the type definitions for the Vulkan renderer. This removes the possibility for cyclic dependencies in the include paths. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-11-19core: thread objects should be replaced with listsDanny Holman
Replace the thread and mutex handles in the thread API with list_heads. This will prevent a possible NULL pointer exception and make the code more readable. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-11-19util: add a NORET macroDanny Holman
Add a NORET macro that expands out to either an attribute flag in the case of GCC/Clang, or to a declspec on Windows. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-11-19render: fix missing Vk*CreateInfo struct membersDanny Holman
Fix several instances of missing structure defines that cause validation errors. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-11-19render: create a vkqueue struct for Vulkan queuesDanny Holman
Add a vkqueue struct to the Vulkan device interface and shift queue operations to helper functions that interact with this new struct. This makes the initialization routines more readable and simplifies the interface. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-11-19render: streamline the common renderer interfaceDanny Holman
Streamline the common renderer interface such that all functionality is set by the renderer initialization function. This reduces the number of API functions and allows developers to define custom rendering interfaces easier. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-11-19build: add a file for Windows backtracing libraryDanny Holman
Add a build file that finds the Windows backtracing and symbol resolution library. This will enable the backtrace function on Win32 platforms. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-11-19build: add a function that enables compiler flagsDanny Holman
Add a function that enables a specified compiler flag. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-11-19core: add an exit code listDanny Holman
Add a header file that lists common exit codes and use them in the abort function. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-11-07ui: rename window.h to app_window.hDanny Holman
Rename the main window definition files to app_window. This should differentiate it from a future window class that is part of the engine UI. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-11-07core: add stack smashing protection and Win32 btDanny Holman
Add basic stack smashing protections and enable it for all engine functions. Add proper backtrace support to the Windows build. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-29build: use lib name in version macrosDanny Holman
Use the library name in version define macros. This should prevent collisions when using the engine alongside other libraries, as the VERSION keyword is likely very common. In addition, create three new macros for the major, minor and patch numbers separately. This allows the engine to use only the part it needs, when it needs it. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-28render: error check when creating device queuesDanny Holman
When creating Vulkan device queues, the returned queue objects should be check for NULL values. If any queue is invalid, the process must be aborted. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-28render: move get_vkerr_str into vkassert.hDanny Holman
Move get_vkerr_str into vkassert.h and use its output in the vkassert function. This reduces the need for an error message argument when calling vkassert and makes error messages in logs consistent across the entire Vulkan renderer. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-25Version bump to v0.62.0v0.62.0Danny Holman
Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-25README: make language more clear and conciseDanny Holman
The readme file should have more clear and concise language on what Rune is and where to find things relevant to it. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-25core: rune_init should only call subsystem initsDanny Holman
The main engine initialization function should only call up background subsystem init functions. No window or rendering context should be created inside this function. Likewise, the cleanup function calls should be removed from rune_exit. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-25render: call rune_free during renderer exitDanny Holman
Call rune_free on the renderer object during close. This ensures the memory is marked as free so that the memory API can clean it up. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-25render: fix a build bug in the vulkan rendererDanny Holman
Fix a bug causing the build to fail during the compile step of the Vulkan renderer. The frame number has been moved into the swapchain struct and no longer exists in the context struct. Therefore, its initialization should be done inside the swapchain init function. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-25ui: make initialization functions more consistentDanny Holman
Make the initialization functions more consistent with the rest of the engine. Init functions should have the format `rune_init_<object>`. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-25render: move all rendering code out of uiDanny Holman
Move all the rendering code out of the UI subsystem. The new rendering API now has hooks that the UI code can make use of. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-25ui: finalize how the rendering API is accessedDanny Holman
The hooks into the rendering API that is used by the UI subsystem should be finalized. This should give developers a baseline implementation to build a different kind of renderer with. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-25core: ANSI colors need additional setup on WindowsDanny Holman
The ANSI color codes require additional setup when running under Win32. The logging API should reflect that. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-25core: call the system exit function when abortingDanny Holman
During an abort procedure, the system's exit function should be called to terminate the running application. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-25render: add a skeleton DirectX implementationDanny Holman
Add a skeleton DirectX rendering implementation. This is to satisfy build requirements and is not yet functional in any capacity. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-25core: add documentation comments to API functionsDanny Holman
Add documentation comments to the functions and structures exposed through the Rune API. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-25render: create the rendering subsystemDanny Holman
Create the rendering subsystem and populate it with a basic Vulkan renderer. This renderer is not yet functional and should not be used yet. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-25doc: add license requirements fileDanny Holman
Add a documentation file that describes license requirements and compliance information. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-25doc: add introductory documentation filesDanny Holman
Add documentation files that act as the starting points for the rest of the documentation and introduce a beginner to Rune. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-18doc: hook documentation into build systemDanny Holman
Add a target to the build system that will generate the included documentation. This target should be called "docs" and should only be called explictity, not during the default build target. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-14ui: input: use scancodes instead of keycodesDanny Holman
Use scancodes instead of keycodes for indexing into the callback array. This makes the engine keyboard-agnostic. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-14include: create a master header fileDanny Holman
Create a header file to act as the master header file for the engine's API. This file should include all subsystem header files. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-14core: thread: make helper functions staticDanny Holman
Make the helper functions for the thread API static so that they aren't usable outside the thread API's translation unit. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-14core: alloc: move mem_block alloc to helper funcDanny Holman
Move the logic that allocates and frees individual mem_block structs to their own helper functions. This should simplify the engine's memory API and fix a bug in rune_calloc that improperly allocated a mem_block. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-14core: mod: create a mod interfaceDanny Holman
Create a skeleton mod interface so that the engine can load shared libraries or DLLs as in-game mods. The API should be compiler agnostic as much as possible. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-07core: alloc: fix a bug in reallocDanny Holman
Fix a bug in realloc that wouldn't copy the data from the original pointer. The new implementation now copies the data and marks the old block as free, as well as returning a new block if the ptr argument is NULL. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-03core: thread: wrap the pthreads APIDanny Holman
Create wrapper functions over the pthread API so that the engine only has to provide an integer ID for threads and mutexes. The thread and mutex handles should be handled internally so that the end user never sees the underlying datatypes. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-10-02core: logging: make color output optionalDanny Holman
Add functions that toggle color output from the logging framework. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-09-30core: callbacks: make error_callback use log_outputDanny Holman
Make the error_callback function use log_output rather than vanilla printf. This unifies the engine's logging features into a single API. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-09-30core: abort: disable stack tracing on WindowsDanny Holman
Because the C runtime on Windows doesn't support the backtrace or backtrace_symbols functions. Signed-off-by: Danny Holman <dholman@gymli.org>