Commit Graph

12 Commits

Author SHA1 Message Date
Eric-Paul Ickhorn a6595f584c Add automatic tests
The first automatic  tests are for the ECS and  the utilities. None of
them are testing much.
2024-09-14 09:43:42 +02:00
Eric-Paul Ickhorn 25399640a4 Support tagging entities in ECS
The ECS previously wasn't capable of  adding tags to the entities; the
'C' of ECS wasn't there. The tagging still needs some tests.
2024-09-12 23:27:12 +02:00
Eric-Paul Ickhorn 81e10aa64b Fix a bug in the UUID assigner
In the UUID assigner, malloc() was  used somewhere where it would have
been correct to use realloc().
2024-09-12 23:25:00 +02:00
Eric-Paul Ickhorn e3e4e5ee84 Add first, inperformant version of ECS
The ECS can't handle many entities in this state; it is really slow.
This commit also doesn't contain any tests for its functions.
2024-09-11 12:18:33 +02:00
Eric-Paul Ickhorn 0408d19a72 Fix pool allocator
The pool allocator would only allocate one item and then stop, its
allocation wasn't reset correctly because of a comparison operator
being the wrong way around.
2024-09-11 11:40:58 +02:00
Eric-Paul Ickhorn 44885e161d Make windows close-able with the window buttons
A window can now be closed by  clicking on the X in the title bar. The
input  controller is  already running  in its own  thread, calling the
handler-functions given to it on an event's arrival.
2024-09-10 00:16:06 +02:00
Eric-Paul Ickhorn da3ce2dde9 Add (unsigned, signed) integer vectors
Those vectors are needed for storing a position  that is only on fixed
points on a grid. The  position and size of a window must be expressed
as integer vectors, for example.
2024-09-09 21:31:49 +02:00
Eric-Paul Ickhorn 79415a2929 Add engine core module
The core module will connect all other modules. Currently, it can only
display a message saying "The build-system is working!".
2024-09-09 14:54:06 +02:00
Eric-Paul Ickhorn 6644a59270 Add INI parser
The ini parser will come in handy for configurations, for example once
the time has come for adding shader packs.

The parser isn't tested yet; writing some (automatic) tests would be a
really good idea.
2024-09-09 05:49:48 +02:00
Eric-Paul Ickhorn c3fb07b871
Add first utilities
The utilities are grouped into the following categories:

- Math
  Matrices, vectors and special rounding functions are included in the
  math category. This still is severely lacking in functionality.

- Containers
  Datatypes for  storing arbitrary data in a  special way, for example
  for being able to search  through it quickly, in the  case of a map.
  Currently the only function in this category is for testing how long
  a string is, with a maximum number of bytes to check.

- Allocation
  Special-purpose memory allocators with restrictions on what they can
  allocate. The restrictions are used to be faster in those use cases.

- UUID
  Universally-unique  identifiers are  used to  identify one  specific
  object within the engine's lifetime.
2024-09-08 17:12:42 +02:00
Eric-Paul Ickhorn 004f089cf0
Modify build-script include folder keys
The key for getting the path of  the own module in the includes.txt is
no  longer '{self}', but rather '{module}', as that is a little easier
to understand.
2024-09-08 16:45:20 +02:00
Eric-Paul Ickhorn f40ba7f27e
Add module skeletons
The "skeletons" of the modules contain a README explaining what it is
about and an includes.txt which is used by the build-script.
2024-09-07 22:11:10 +02:00