summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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>
2024-09-20make: add additional information to installDanny Holman
Add additional information to the install directives so that a CMake-compatible config file is generated and each component is placed into their proper place as set by a package maintainer. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-09-18core: logging: print errors and warnings in colorDanny Holman
Print warnings and errors in yellow and red respectively. This will make these messages stand out and make it easier for a developer to find them in the terminal window. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-09-17ui: add new subsystemv0.61Danny Holman
Add the UI subsystem. This subsystem will control the window display, events and input. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-09-17core: add several new filesDanny Holman
Add several new files to the core subsystem. These files will be the basic building blocks upon which the rest of the engine will sit atop of. These files will be present in all builds, including headless and platform builds. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-09-15gitignore: add files generated by the build systemDanny Holman
Add files to .gitignore that are generated by the build system during compile time. These files will be specific to each developer or user, so these should not be in the master repository. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-09-15build: break the engine into its subsystemsv0.60Danny Holman
Break the source code into various subsystem directories. This allows certain subsystems to be disabled at compile time, if needed. Move the build system from raw Makefiles to a CMake generator. This drastically simplifies the build and requires only editing a single file, rather than the several make.config files in subsystem directories. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-08-30Add README fileDanny Holman
Add a README file to the project root. This file will act as the introduction point for the entire project. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-08-30Makefile: retool the build systemv0.55Danny Holman
Retool the build system to be more modular and more flexible. Move all subsystems into separate directories and create make.config files that will conditionally compile based on information from the root Makefile. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-08-25core: refactor entire project rootDanny Holman
Reorganize the project root such that each subsystem is placed into its own subdirectory. This allows the build system to select which subsystems to enable for a particular build. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-08-24core: add a header for utility functionsDanny Holman
Add a header for dumping utility functions that are commonly used across several files. This header should only contain small, inline-able functions of no more than 5-10 lines of code. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-08-22core: add headers for basic types and export macrosDanny Holman
Add header files that contain basic type information as well as export macros for systems that use a specific export line for linking, e.g. Windows. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-08-22core: add a linked list implementationDanny Holman
Add a generic linked list implementation based on the one found in the Linux kernel. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-08-22core: add a basic logging frameworkDanny Holman
Add a basic framework for logging messages to the console or to a file. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-08-04Initial commitDanny Holman
Signed-off-by: Danny Holman <dholman@gymli.org>