Commit Graph

34 Commits

Author SHA1 Message Date
3bba87d8dc Refactor bitmap, add RGBA5551 format 2025-08-26 10:40:43 +03:00
d05efc5f85 Refactor bitmap, add extra accessor for color data 2025-08-07 22:05:12 +03:00
4ce443f0d9 Add input checks, fix overflow/wrap related bugs 2025-08-04 20:35:19 +03:00
deb4ec00f4 Add macro functions for checking unsigned wraps 2025-08-04 20:30:30 +03:00
0da77c00d6 Refactor bitmap, add new formats
Small refactoring of the bitmap module and added more indexed formats.
2025-08-04 12:38:17 +03:00
9c593932a3 Remove extra file 2025-08-03 20:15:06 +03:00
f9feb23d4d Add bitmap support 2025-08-03 19:23:41 +03:00
92fab9dbba Add color manipulation utilities 2025-07-25 10:41:15 +03:00
703fb0f240 Rename MT functions, add tests, fix bugs
Renamed multithreaded related functions, added simple unit tests and fix
bugs caught by said tests :)
2025-06-24 16:48:21 +03:00
6ff6896969 Remove extra newlines 2025-06-21 22:22:04 +03:00
fc774fd0ff Refactor, separate docs from headers, add ru docs
Doxygen kind'a sucks and I need multilanguage documentation, so I did
that. Also, separated massive Math.h file into smaller files.
2025-06-21 20:12:15 +03:00
7ee69fc397 Add array sizes to math functions 2025-04-29 18:17:00 +03:00
1b6c858a1b Refactor IO, add buffered IO
I wasn't happy with existing implementation of the IO, so I decided
to change it - as a result there is no longer BH_IOOpen and BH_IOClose
and many IO operations are now optional (behind BH_IOCtl).

Finnally implemented buffered IO and fixed size memory buffer IO.
2025-04-26 10:42:22 +03:00
6aee5a83aa Refactor string functions, add unicode support
Refactored existing functions. Added Unicode support and UTF-8, UTF-16,
and UTF-32 encoding/decoding.
2025-04-05 13:56:00 +03:00
f9ebeabb18 Refactor strings (avoid using dynamically allocated memory)
Refactored strings functions to make them use supplied string
instead of allocating new ones.

Additionally, split String/Int.c into several files to avoid define
mess that was present before.
2025-04-05 13:56:00 +03:00
4b2e3da567 Add int tests, fix bugs, add docs
Added tests for string to/from integers and added documentation.
While adding tests caught few bugs and shortcomings (now everything
works as expected)
2025-04-05 13:56:00 +03:00
82bea0ebf8 Refactor bigints, add int and float conv functions
Added functions to convert from/to ints/floats. Floats are converted
according to basic Steele&White algorithm (without speedup).
2025-04-05 13:56:00 +03:00
69515af77f Fix styling issues, rename scripts 2025-04-05 13:56:00 +03:00
fc3d4e22d5 Add initial bigint implementation for the fmt library 2025-04-05 13:56:00 +03:00
d403d41f2c Add initial implementation of threads/mutexes/semaphores/cvs/spinlocks
Added initial implementation (or wrapper) of the threading library.
It's rather basic, but should work for most of the tasks.

Unfortunately, spinlock implementation relies on GCC/Clang compiler
built-ins (or in-worst-case-scenario on Win32 - InterlockExchange).
In the future, I should revisit this code and fix/reimplement some stuff
(or add support for Windows XP).
2025-03-02 23:18:23 +03:00
2ca6a3e316 Fix BH_INT2PTR, add generic callback definition 2025-03-02 23:12:43 +03:00
a2d0913c79 Add utils for working with endianness, more documentation, refactor CMake
Decided to update the docs, as well as adding few new features and small
refactoring.
2025-02-28 21:44:22 +03:00
54e1c88f1f Fix missing newline in Args.h 2025-02-28 10:05:07 +03:00
37feb762cb Add argument parsing
Added (IMHO) relatively simple argument parsing function (as well as helper
function for printing help information).
2025-02-28 09:09:58 +03:00
cae66889a1 Add 2D/3D boxes/AABBs and intersection tests.
Added support for 2D/3D boxes (or AABBs) and intersection tests between
them and rays/segments.
2025-02-24 22:56:16 +03:00
67e7582d63 Add line, plane, ray and segments, split math unit test
Added some basic geometric primitives such as planes, rays, segments
and lines (plus some extra functions like xProject, xBarycentric, Lerpf),
as well as some intersection tests between them.

Additionally, I split massive math test into smaller ones and tweaked
unit test library (testing no longer stops after first failure).
2025-02-24 09:37:22 +03:00
7a7134a2f5 Fix function documentation, add missing function 2025-02-03 15:18:57 +03:00
f86f1f4f74 Fix function declaration, extend math test 2025-02-03 08:26:10 +03:00
d917eaa479 Fix file and directory permissions 2025-02-02 22:51:28 +03:00
586a9ace21 Change file naming
This is a follow-up to previous commit.
2025-02-02 21:40:31 +03:00
c89cf8f316 Change code and naming style, fix several bugs, removed math types.
After a while I felt that putting underscores between words was not the
best solution, so I changed the underscores to capital letters.

Fixed consistency bug between POSIX/Win32 platform in BH_FileOpen.

Removed definitions for math types (vector, matrix, etc.) due to
potential aliasing issues.
2025-02-02 21:13:34 +03:00
47c21a2035 Refactor math functions, add unit tests
After some testing, I decided to ditch the DirectX approach of writing
math functions.

Additionally, I added unit tests (with reference wxMaxima calculations)
for most math functions and fixed several bugs along the way.
2025-01-29 09:14:58 +03:00
ab27004af6 Document existing math methods. 2025-01-18 21:12:42 +03:00
453843f51a Initial commit 2025-01-18 17:24:36 +03:00