Age | Commit message (Collapse) | Author |
|
Fix several instances of missing structure defines that cause validation
errors.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
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>
|
|
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>
|
|
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>
|
|
Add a function that enables a specified compiler flag.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Add a header file that lists common exit codes and use them in the abort
function.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Add documentation comments to the functions and structures exposed
through the Rune API.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
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>
|
|
Add a documentation file that describes license requirements and
compliance information.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Add functions that toggle color output from the logging framework.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
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>
|
|
Because the C runtime on Windows doesn't support the backtrace or
backtrace_symbols functions.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
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>
|
|
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>
|
|
Add the UI subsystem. This subsystem will control the window display,
events and input.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Add a generic linked list implementation based on the one found in the
Linux kernel.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Add a basic framework for logging messages to the console or to a file.
Signed-off-by: Danny Holman <dholman@gymli.org>
|