A new tab is added to the debugger that can help profile a game's memory usage.
Specifically, this lets you save a snapshot of all the objects in a running
game's ObjectDB to disk. It then lets you view the snapshot and diff two
snapshots against each other. This is meant to work similarly to Chrome's
heap snapshot tool or Unity's memory profiler.
Using custom macros for defining and registering message handlers hurts
readability and navigability.
This commit simplifies the ParseMessageFunc signature, expands the
macros, and streamlines initialization.
Move the individual message handlers to separate functions, to make it
easier to follow and add additional message handlers. The function
is also more efficient as it only performs a single hash lookup for
the handler and then dispatches to the member function.
Similar to #104425
Update servers/audio_server.cpp
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Apply suggestions from code review
Co-authored-by: Adam Scott <ascott.ca@gmail.com>
Fix a few lines for new member names
Add command-line argument `--debug-mute-audio`, and pass it to game if started with mute enabled
Apply suggestions from code review
Co-authored-by: arkology <43543909+arkology@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
Fix icon for svgo
Currently the mouse cursor jumps in unexpected ways, when a `ViewPanner`
is used in SubViewports or embedded Windows.
This is caused by providing wrong coordinate systems to
Input::warp_mouse_motion.
This PR replaces the use of `Input::warp_mouse_motion` with
`Viewport::wrap_mouse_in_rect` and makes sure, that the correct
coordinate systems are used.
This change makes it necessary, that all classes, that currently
use ViewPanner, need to provide the correct Viewport to ViewPanner.
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)
* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable