50 lines
3.0 KiB
Plaintext
50 lines
3.0 KiB
Plaintext
[#TODO]
|
|
[ ] Base layer and OS abstraction for Windows. (Ryan's Win32 platform layer is ~2k lines of code.)
|
|
• ryan uses os_thread_launch (CreateThread) /join (WaitForSingleObject+CloseHandle)/detach (CloseHandle ?? what type?)
|
|
See: base_threads
|
|
just implement the stuff we need for:
|
|
He launches a bunch of async threads from `main_thread_base_entry_point`
|
|
• Creating / destroying threads.
|
|
• rdtsc for timing
|
|
• Thread primitives (Mutex, Semaphore, etc.)
|
|
• Thread Creation / Deletion
|
|
[ ] CreateWindow and other Windows-specific features for handling messaging.
|
|
[ ] Context should include links to other living thread data (+ save dead threads in debug mode)
|
|
|
|
[ ] push_scratch() macro. (basically an auto_release_temp)
|
|
[ ] Start removing irrelevant header files (for unity build system)
|
|
|
|
[ ] ... Mouse / Keyboard inputs
|
|
[*] This is the order I want to follow, because I need them in thread context.
|
|
- Entry point(s) `Entry_Point_Main.cpp`
|
|
-> We can have a lib_init() instead of a clear entry point for now.
|
|
-> Switch from library to application once I add an entry point
|
|
-> See how rjf abstracts his entry points for each platform with TCTX.
|
|
|
|
[Design Stuff]
|
|
[ ] "Primary Thread" <- Main entry point thread
|
|
[ ] "Secondary Thread" <- does all the heavy lifting for the first thread and synchronizes with the first.
|
|
[ ] Tertiary threads (launched by secondary thread and awaiting work as assigned by Primary and Secondary threads)
|
|
[ ] Multi-threaded by default with sync points
|
|
[ ] Need bindings for Semaphore and Mutex
|
|
[ ] Does calling SetProcessWorkingSetSize(.., -1, -1) cause the program to crash? Why tho.
|
|
[ ] Maybe we just shouldn't do this?
|
|
[ ] *our* program memory usage can be calculated by Stack Size + allocations from GPAllocator + allocations from arena.
|
|
[ ] I want to be able to create new Windows (instances) of the program that can communicate with one another.
|
|
I want one program to be the "Main" and always in-tray, and the others to be "child instances"
|
|
[TODO - Low priority]
|
|
[ ] Fix implementation so all source is just in .cpp files (including templates), and auto-generate forward declares like Vjekoslav does.
|
|
[ ] Implement Secure Arenas (with VirtualLock, wiping memory with RtlSecureZeroMemory)
|
|
[ ] Way to serialize and deserialize settings in Text (I think using binary is a mistake here?).
|
|
[Project Ideas] - order of operations:
|
|
[ ] Pushbullet replacement should make it easy to understand how data can be securely moved over the internet via a central server.
|
|
[ ] Signal replacement
|
|
[ ](Graphics): How do I create a basic overlay that shows the time, date, cpu/gpu temps, frequency, memory usage all the time and responds to global hotkey to show more info
|
|
|
|
[Documentation Notes]
|
|
Main inspirations for this codebase:
|
|
(1) jonathan blow & jai compiler project
|
|
(2) casey muratori and "handmade" approach to software
|
|
(3) ryan fleury and raddebugger codebase
|
|
|
|
Always contemplate your impulses |