Robust.UnitTesting was both ALL tests for RT, and also API surface for content tests.
Tests are now split into separate projects as appropriate, and the API side has also been split off.
* PR time
* am dum dont make PRs at 3am
* file scoped. I pushed this to the wrong branch initially because I'm stupid
* Revert "file scoped. I pushed this to the wrong branch initially because I'm stupid"
This reverts commit 9a911caa77.
* Review
* Update API used by content to actually use the default values
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
This means we don't have to JIT a bunch of UIs that you might not open, reducing memory usage and startup overhead.
One (1) UI is always JITed in another thread before prototype UIs are loaded, so as to warm up the JIT machinery. Said type is DropDownDebugConsole which always gets used anyways so there's no harm in it.
In total, these changes save more than a second of startup time for me.
* Added basic loading screen
* Make it look better!
* I forgor xD
* Fix test fails
* Add comment
* Removed unused import
* Only write to file if the number of sections changed
* Servers can now have their own settings
* Minor optionzation and rare colors
* Remove some of the cvars
* debug only loading messages
* Added a few more steps
* Only one section at a time
* nullable section name
* Lock out functions if finished
* Get rid of saving the ccvar
* Cleanup
* Forgot!
* A few tweaks
* Disable vsync
* remove colors
* remove outdated vsync functions
* Silly me xD
* What I get for trying to be clever... ;(
* Better seconds display
* Simplify drawing logic + it looks better
* Type does not need to be partial
* Make interface to expose to content
* Use correct define to gate showing debug info
Should be TOOLS instead of DEBUG
* Use appropriate exception type in BeginLoadingSection
* Fix exception when closing window during loading screen
Would try to stop the main loop before it exists.
* Rename CVars, put debug info behind CVar instead of conditional compilation.
* Add to RELEASE-NOTES.md
* Add UI scaling support
* Make ILoadingScreenManager fully internal
Didn't realize content can't touch it as it'd break the total amount of sections
* Don't re-enable vsync manually, GameController does it at the end of init
* Add command to show top load time usage.
* Improve verbosity of debug time tracking
More steps and some steps named better
---------
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
* System font API
This is a new API that allows operating system fonts to be loaded by the engine and used by content.
Fonts are provided in a flat list exposing all the relevant metadata. They are loaded from disk with a Load call.
Initial implementation is only for Windows DirectWrite.
* Load system fonts as memory mapped files if possible.
This allows sharing the font file memory with other processes which is always good.
* Use ArrayPool to reduce char array allocations
* Disable verbose logging
* Implement system font support on Linux via Fontconfig
* Implement macOS support
* Add "FREEDESKTOP" define constant
This is basically LINUX || FREEBSD. Though FreeBSD currently gets detected as LINUX too. Oh well.
* Compile out Fontconfig and CoreText system font backends when not on those platforms
* Don't add Fontconfig package dep on Mac/Windows
* Allow disabling system font support via CVar
Cuz why not.
* Rethrow more exceptions when EXCEPTION_TOLERANCE is false
* A
* update test
* Revert "update test"
This reverts commit 37f4da67fc.
* actually we probably want to know if Deleting an exception throwing entity throws another exception
* Allow component trees to be disabled
* forgot
* I'm pretty sure this wasn't working as intended
* also outdated
* reduce branches in QueueTreeUpdate
* remove update hashset
* try fix
* Use Entity<T> and add ray overloads
* Move InRangeUnoccluded to engine
* reduce code duplication
* move _initialized check
* release notes
* modify light attenuation function
* support for changing attenuation curve type + lots of docs
* this is what i defaulted to typing in a prototype, so i guess it should just be this instead
* Allow a continuous range of values between inverse and inversequadratic rather than two set curves
* calc is slang for calculator
* fix
* oops committed it at 1 while testing i think, values are balanced for 0
* Autocomplete more map commands
Also added some extra helper features.
* Finish
* Fix bug, avoid IocResolves
* grid is grid
* file filename clash
* turn hint into option
* a
---------
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>