Commit Graph

251 Commits

Author SHA1 Message Date
Doyle Thai 866126e735 Make atomic add allow amounts not just +-1 2017-06-26 12:37:52 +10:00
Doyle Thai fca8db0366 Port atomics, mutex lock and job queue to unix 2017-06-26 01:57:51 +10:00
Doyle Thai 19c427d756 Add opt. RAII-isms for destruction, fix thread bug
Thread Bug: Incorrectly using && operator for while
(DqnJobQueue_TryExecuteNextJob(queue) &&
!DqnJobQueue_AllJobsComplete(queue)) causing it to prematurely exit if
the main thread has completed its work before other threads have
completed the remainder. Should be using an || operator, so instead
creating a helper function which encapsulates this functionality.
2017-06-24 14:59:48 +10:00
Doyle Thai 886425eaa3 Add CPP api for dqn file and lock 2017-06-24 11:00:44 +10:00
Doyle Thai 45bc637773 Expose job queue, update init function 2017-06-23 23:12:20 +10:00
Doyle Thai f9de41b6c0 Add cpp members to DqnArray 2017-06-23 21:17:26 +10:00
Doyle Thai 3d61d66388 Fix destructor premature call in memstack cpp api 2017-06-23 19:05:51 +10:00
Doyle Thai 9bb8efcf9d Add CPP member functions to DqnMemStack 2017-06-23 15:30:21 +10:00
Doyle Thai 187fc14d02 DqnTimer unix implementation 2017-06-22 18:10:44 +10:00
Doyle Thai f464e869ec Add compile time asserts, table of contents 2017-06-22 16:16:28 +10:00
Doyle Thai b2639447d0 Reorganise layout with table of contents 2017-06-22 14:43:53 +10:00
Doyle Thai 81c68ad908 Add better documentation 2017-06-22 14:00:11 +10:00
Doyle Thai 84149d0ad1 Add file write tests and delete functionality 2017-06-22 01:26:08 +10:00
Doyle Thai 93bbc25b11 Fix compile and warnings on MSVC 2017-06-21 19:01:36 +10:00
Doyle a067fed81f Implement dir read/free and file write in Unix 2017-06-21 18:52:14 +10:00
Doyle 245e6b11f1 Basic file open/close/read implemented in Unix 2017-06-21 18:05:30 +10:00
Doyle 036afb9b10 Implemented unix DqnFile_Open 2017-06-21 17:48:00 +10:00
Doyle 73b5d05df8 Enable more warnings for unix, fix StrtoF32 bug 2017-06-21 14:54:57 +10:00
Doyle 341388bb70 Get basics to compile & work in unix 2017-06-21 14:10:53 +10:00
Doyle Thai b1e7fdc264 Reorganise platform specific code 2017-06-20 22:23:34 +10:00
Doyle Thai 307621fb03 Add more win32 functions from dtrenderer 2017-06-20 19:19:52 +10:00
Doyle Thai 65ee7bab4b Add new mat4 functions and some external testing 2017-06-08 16:41:24 +10:00
Doyle Thai fceac54ecb Add helper V4 functions, change allocate to push 2017-05-26 01:10:32 +10:00
Doyle Thai 25744855ee Switch membuffer to memstack and add pop 2017-05-22 18:50:21 +10:00
Doyle Thai 034de12235 Add support for scientific notation in strtof32 2017-05-20 22:59:21 +10:00
Doyle Thai 44ef3759e5 Fix strtoi64 and add a basic strtof32 function 2017-05-20 19:11:28 +10:00
Doyle Thai 5c06410929 Various small changes and helper functions
- Fix typo for int32_t and int64_t
- Add new helper functions to convert v2i to v2 and back
- Add DqnRect_ClipRect to restrict rect to some specified clip-rect
- Improve I32ToStr and StrToI32 to support up to I64
2017-05-15 17:45:53 +10:00
Doyle Thai 73f0fd448c Differentiate between freeing [non]linked blocks 2017-05-08 20:10:14 +10:00
Doyle Thai c47748c168 Remove default mem buffer api 2017-05-08 18:57:47 +10:00
Doyle Thai 00cae20654 Rename file flags/actions to be consistent 2017-05-08 17:59:51 +10:00
Doyle Thai f9555d8edb Improve realloc for MemBuffers in default callback
Realloc now works for arbitrary length of blocks in MemBuffers and also works
slightly more efficiently than the old implementation.
2017-05-06 17:28:57 +10:00
Doyle Thai 6fe75928f0 Create a default MemoryAPI for MemBuffers 2017-05-06 02:44:17 +10:00
Doyle Thai 1c3c78d738 Add custom memory allocator support for DArray 2017-05-05 02:37:38 +10:00
Doyle Thai 116861d888 Add str find first occurence, fix array pop logic
Array pop was incorrectly returning the last element which is now an invalid ptr
to data.
2017-05-04 00:22:30 +10:00
Doyle Thai 2203e9b4f2 Add comments, make alignment function to macro
Alignment function becomes macro so that we can pass around alignment as a u32
instead of size_t.
2017-05-01 21:03:27 +10:00
Doyle Thai fef763aaff Add MemBuffer with allocation from stack memory 2017-05-01 18:29:45 +10:00
Doyle Thai fbb9c8bf9d Add operator overloads to vectors 2017-05-01 16:40:52 +10:00
Doyle Thai 4bea4f6505 Change naming scheme to be more compact 2017-05-01 14:01:05 +10:00
Doyle Thai c3ebef2ea1 Add wchar operations 2017-04-25 17:37:40 +10:00
Doyle Thai 8d471a1502 Add some wide len, win32 error code display 2017-04-20 22:43:58 +10:00
Doyle Thai a4bc798a6f Remove inline for now
I found in another project that using inline, inlined some functions in the
output object code. When using single file build, the implementation is defined
in one file and if it becomes inlined, then the function name is lost.

If then another file references the library and tries to use a function that has
been inlined, the linker won't be able to resolve the function name and the
object code since it has been inlined. So I've removed it from the library until
I find a case where it's suitable to use.
2017-04-19 18:10:00 +10:00
Doyle Thai 00685b9ce9 Add better push buffer system for dynamic alloc 2017-04-18 23:38:52 +10:00
Doyle Thai f42fca6350 Add more string check functions 2017-04-17 23:12:10 +10:00
Doyle Thai 2cbb897efa Add pushbuffer system 2017-04-17 22:48:20 +10:00
Doyle Thai 3985455fc2 Add dynamic array pop, i32 to str returns len 2017-04-16 21:33:26 +10:00
Doyle Thai 34c3481c19 Fix non-compile issues in non-unity builds 2017-04-15 15:23:05 +10:00
Doyle Thai f066d8bc4e Add ini.h, extra win32 functions, clean up formats 2017-04-15 01:27:11 +10:00
Doyle Thai e0cae3029d Switch darray implementation to C++ with templates 2017-04-11 21:05:40 +10:00
Doyle Thai 9106f185a3 Add darray remove operations 2017-04-11 19:00:55 +10:00
Doyle Thai 15220a9646 Add stb sprintf implementation 2017-04-10 21:31:11 +10:00
Doyle Thai cbb3adae52 Change naming scheme from dqnt to dqn 2017-04-10 18:40:15 +10:00