Commit Graph

251 Commits

Author SHA1 Message Date
Doyle T 6d6565c605 Cleanup DqnVHashTable, FixedString and add DqnCatalog 2018-07-25 01:33:31 +10:00
Doyle T 34907eeb04 Refactor DqnVHashTable to be simpler 2018-07-24 23:05:08 +10:00
Doyle T 71a1446fe0 Add post fix/prefix operator++ and arbitrary operator+- 2018-07-24 20:44:01 +10:00
Doyle T fc11e9ac0e Allow unordered iteration over hash table 2018-07-24 00:05:43 +10:00
Doyle T c876f2af0b Minor dqnmemstack annotation clean up 2018-07-23 00:12:11 +10:00
Doyle T be4762c3f7 Remove non-used tracker variables 2018-07-22 23:59:11 +10:00
Doyle T c282097a1f Update DqnMemStack to use struct for metadata 2018-07-22 23:53:08 +10:00
Doyle T efe015017a Start reworking dqnmemstack to have unified push/pop interface 2018-07-18 01:53:58 +10:00
Doyle T 0bfca792ee Log DqnJson in unit test, convert MemStack to use constructor 2018-07-18 00:47:13 +10:00
Doyle T cbf8e37295 Fix QuickSort regression taking a ptr to data causing memory overwrite 2018-07-15 21:45:50 +10:00
Doyle T c1245619ff Add natural quick sort back for better debugging speed 2018-07-15 20:18:27 +10:00
Doyle T 1c5fdc6ce1 Update quicksort/bsearch to use templates better 2018-07-15 20:09:55 +10:00
Doyle T 9d12c532d1 Add lazy init to array/hash, rename 64bit max num, minor bug fixes 2018-07-15 02:17:34 +10:00
Doyle T 964304d1b7 Use bucketsUsed variable and more error handling for VHashTable 2018-07-14 23:21:57 +10:00
Doyle T 8997364892 Add DqnVHashTable, hash table backed by virtual memory 2018-07-14 23:00:25 +10:00
Doyle T f1efb6f8f1 Make DqnJson handle more cases 2018-07-13 00:46:08 +10:00
Doyle T 33cf476d29 Move static functions outside of DqnFile 2018-07-10 23:01:18 +10:00
Doyle T 25410c7aac Fix ReadEntireFile bug 2018-07-10 15:52:12 +10:00
Doyle T 7785e35f91 Restore win32 prototypes, add virtual mem allocation and array, add fixed pool 2018-07-10 00:53:54 +10:00
Doyle T 39d75ae5bf Fix DqnFixedString len bug 2018-07-07 01:10:43 +10:00
Doyle T 6fc26c7bb8 Fix DqnJson bug matching property too early 2018-07-05 12:20:19 +10:00
Doyle T 9ebb4f8f23 Fix DqnArray::Insert count bug, misc unix fixes 2018-07-05 11:26:04 +10:00
Doyle T da4ba37771 Fix return to pool negative free indexes 2018-07-05 01:38:35 +10:00
Doyle T 602cc32744 Add DqnPool and minor cleanup 2018-07-05 01:04:49 +10:00
Doyle T c5d26f09c4 Fix unit tests, re-fix DqnArray::Insert 2018-07-05 00:58:40 +10:00
Doyle T a23e2687fe Improve platform defines, update sprintf 2018-07-05 00:47:11 +10:00
Doyle T 49577e2c27 Merge branch 'master' of https://github.com/Doy-lee/dqn 2018-07-03 23:02:36 +10:00
Doyle T 4ee040b6b0 Improve DqnArray::Insert 2018-07-03 23:01:15 +10:00
Doyle T a0246bf996 Update for unix compliance again 2018-06-29 18:07:54 +10:00
Doyle T 6df3b32f4e Use simplified array from imgui 2018-06-28 23:25:25 +10:00
Doyle T 86d3418315 Fix DqnArray bugs 2018-06-26 15:50:47 +10:00
Doyle T 7e507ee470 Simplify nix get file size 2018-06-26 00:33:46 +10:00
Doyle T cf648c2281 Change true/false to yes/no for enums 2018-06-25 20:54:38 +10:00
Doyle T 5d77aa3f4a Simplify DqnJson array iterator, fixed string ctor change 2018-06-25 20:51:18 +10:00
Doyle T 920df31c51 Add VirtualAlloc and fix up platform defines 2018-06-13 23:16:05 +10:00
Doyle T 5dee3d9f89 Simplify DqnRndPCG 2018-06-11 19:16:54 +10:00
Doyle T 0bf1b6d3ff Sprintf returns bytes copied. Add IS_DEBUG flag 2018-06-11 18:40:54 +10:00
Doyle T d740efdf06 Compact operator overloads for FixedString 2018-06-11 18:03:18 +10:00
Doyle T 056c0b3aea Add DqnFixedString, remove DqnIni, minor cleanup 2018-06-11 16:26:57 +10:00
Doyle T 2c24eacc28 Clean up const func decls and vector constructors 2018-06-09 14:29:19 +10:00
Doyle T 6998fb84de Simplify DqnArray usage (zero is init), add multi-insert 2018-05-28 23:07:29 +10:00
Doyle T 8c34a0e6d1 Remove reliance on windows.h 2018-05-18 23:19:50 +10:00
Doyle T 101037b856 Tabs to spaces 2018-05-17 21:19:58 +10:00
Doyle T 0bc8a48dbd Fix off by 1 error in DqnString::Expand() 2018-03-11 21:26:18 +11:00
Doyle T dc22ba2a02 Const overloads for DqnJson_Get, restore InitLiteralNoAlloc 2018-03-11 01:23:04 +11:00
Doyle T 6fcf111d2d Make library work on unix again 2018-03-09 02:03:05 +11:00
Doyle Thai 540deb4774 Update lib with named bool parameters and minor fixes 2018-02-20 00:21:00 +11:00
Doyle Thai 7f2950b3dd Add slices, make returned bufs are null terminated 2018-02-07 16:39:40 +11:00
Doyle Thai b0217483db Fix mem leak in hash, add reset tail for allocator 2018-02-05 17:42:27 +11:00
Doyle Thai 701140287f Try separate mem apis for head/tail 2018-02-05 01:50:36 +11:00
Doyle Thai 019aad46ca Write tests for testing realloc stack 2018-02-03 23:11:14 +11:00
Doyle Thai 9be5194b17 Write more tests for push pop to tail 2018-02-03 21:39:15 +11:00
Doyle Thai b8157a3c9f Draft double-ended stack allocator for temp malloc 2018-02-03 20:58:15 +11:00
Doyle Thai 7228a8b344 Fix memstack free not clearing metadata 2018-02-03 15:51:47 +11:00
Doyle Thai 21ff2f43dc Write basic tests for new revamped memstacks 2018-02-03 02:49:54 +11:00
Doyle Thai 1fc49c4fde Cleanup tests to be more structured 2018-02-02 23:26:05 +11:00
Doyle Thai 15a4c6ad22 Revamp MemStack with bounds guarding and simplify api 2018-02-02 19:34:44 +11:00
Doyle Thai 87b7d3362c Return true on resize to 0 for arrays 2018-02-01 00:08:42 +11:00
Doyle Thai f838cc79bf Add strutil getlastbackslash 2018-01-29 19:03:20 +11:00
Doyle Thai 06b0f25f2a Fix realloc bug destroying memory in stack 2018-01-28 12:43:53 +11:00
Doyle Thai 86d2db397c Update array api 2018-01-26 14:54:03 +11:00
Doyle Thai 47bf005dbf Fix string init with 0 sized literal crash 2018-01-25 18:55:05 +11:00
Doyle Thai b8aee7cef9 Fix off by 1byte error on tracking string free 2018-01-25 16:43:51 +11:00
Doyle Thai 9f25d5a98e Add msvc natvis for better debugging 2018-01-25 12:26:33 +11:00
Doyle Thai a412bf0bfa Add file copy, better log, iterator for array 2018-01-24 14:58:03 +11:00
Doyle Thai 1464181cc2 Add clear function to hashtable 2018-01-21 21:18:34 +11:00
Doyle Thai 0468024f35 Fix array off by 1 in remove/get 2018-01-21 13:28:53 +11:00
Doyle Thai 7e996981d6 Fix memstack not freeing right size block 2018-01-20 21:08:04 +11:00
Doyle Thai 121c630126 Change memAPI to ptr, add mem info, improve assert 2018-01-20 19:03:29 +11:00
Doyle Thai 2d7b942010 Disable sso strings because problems. 2018-01-19 23:56:25 +11:00
Doyle Thai 398ca0bc96 Add SSO for strings, memStack quick initialiser 2018-01-19 21:52:34 +11:00
Doyle Thai feeec0c610 Remove useless request api in DqnMemAPI 2018-01-19 13:48:01 +11:00
Doyle Thai 912ca43056 Fix formatting and clean up documentation 2018-01-18 20:25:44 +11:00
Doyle Thai db25c5997f Minor fixes, add trim whitespace 2018-01-18 16:01:37 +11:00
Doyle Thai 7809185daa Fix string append crash on 0 len 2018-01-06 16:53:53 +11:00
Doyle Thai fd00b9071c Minor const changes, string fix and name changes 2018-01-06 00:46:44 +11:00
Doyle Thai 5876c16abe Fix array resize crash on 0 initialisation 2018-01-04 16:27:50 +11:00
Doyle Thai 8209593f57 Fix literals not working with strings in structs 2018-01-04 16:07:18 +11:00
Doyle Thai 18967312d6 Clean up DqnFile to be more C++ and minor fixes 2018-01-04 00:40:27 +11:00
Doyle Thai ee4f8eca17 Finally fix clip rect bug? 2017-12-06 19:08:49 +11:00
Doyle Thai 3d3d741ad6 Add missing default constructor for DqnV2i 2017-11-12 00:14:49 +11:00
Doyle Thai 25d6308a5f List removal for arrays, template specialize sort 2017-11-11 20:08:43 +11:00
Doyle Thai 88bac561ec Update vector and rect api to use constructors 2017-11-10 23:14:50 +11:00
Doyle Thai 2f6624fad7 Make DqnRnd a class, make array memapi aware 2017-11-08 21:32:06 +11:00
Doyle Thai 25098ca74c Add hash table and binary search to library 2017-10-29 20:30:07 +11:00
Doyle Thai 15dad9d8d2 Simplify DqnMemAPI and DqnMemStack api 2017-10-29 12:45:00 +11:00
Doyle Thai d01e2fbc2f Remove the need for isFreeable in strings 2017-10-29 11:51:16 +11:00
Doyle Thai b6a3600283 Clean up tests, fix DqnString bug, rename DqnDir 2017-10-29 11:41:26 +11:00
Doyle Thai 3ee5500124 Remove C-style api for strings, fix stack alloc bug 2017-10-28 23:25:17 +11:00
Doyle Thai bfa00944c6 Various fixes, string lib, start removing C-style API 2017-10-28 19:58:09 +11:00
Doyle Thai 5533ad0b68 Fix typos, add utilties for wstr/file reading 2017-07-26 21:31:17 +10:00
Doyle Thai d2ebb53322 Fix mat4 lookat, add translate[3f|v3] 2017-07-16 20:47:49 +10:00
Doyle Thai be0b84a244 Static analysis cppcheck 2017-07-13 12:50:01 +10:00
Doyle Thai 979679470b Fix DqnMat4_Rotate not normalising axis 2017-07-04 14:22:24 +10:00
Doyle Thai 924aa84e7d Fix problem exposing platform w/o implementation 2017-07-03 15:17:09 +10:00
Doyle Thai f8a4d4fe4b Fix crashes on unix using gcc -O3 2017-07-02 16:31:29 +10:00
Doyle Thai 2d163fa554 Add fix for strict-aliasing in DqnRnd 2017-07-02 14:47:38 +10:00
Doyle Thai cbf7b4d606 Add quicksort generic to lib 2017-06-28 22:47:27 +10:00
Doyle Thai 825caefe4a Fix non-used param bugs, add minimal win32 sample 2017-06-27 17:45:51 +10:00
Doyle Thai db1f76996c Add quicker filesize query, and ReadEntireFile() 2017-06-26 21:46:28 +10:00
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