Commit Graph
36550 Commits
Author SHA1 Message Date
sukibabyandteejusb bb5a538026 Range based for loop in GetBPMs 2024-08-07 00:05:50 -07:00
sukibabyandteejusb 5a0bfed42d Re-order Linux default audio driver list 2024-08-06 23:59:27 -07:00
sukibabyandteejusb beecd2bd47 Clean up messy GameLoop function 2024-08-06 18:07:21 -07:00
sukibabyandteejusb e34450fbe8 Prevent overlapping assist tick sounds 2024-08-06 17:34:23 -07:00
Brandon Wandteejusb 10e4323e3e Add DecodeNextFrame and DecodeMovie functions to populate the
FrameBuffer.
2024-08-06 17:18:12 -07:00
sukibabyandteejusb 5d2667add1 Fix two small RageFile bugs
1) RageFileDriverDirect was failing to assign m_sRoot

2) Improve check if m_sRoot is empty

3) Fix a semi-broken logging method in RageFileManager
2024-08-06 17:17:21 -07:00
sukibabyandteejusb e60cf2aa0d Use stdlib for trigonometric functions
Profiling showed this performed significantly faster than the RageFast_ implementations.
2024-08-06 16:18:39 -07:00
sukibabyandteejusb 64fa8e9971 MusicWheel::readyWheelItemsData remove ragetimer 2024-08-06 16:16:47 -07:00
sukibabyandteejusb bfde995b60 Fix CacheFile 2024-08-06 16:03:40 -07:00
sukibabyandteejusb d53d1b113b Remove ERASE_SEG macro from TimingData.cpp 2024-08-06 15:37:24 -07:00
sukibabyandteejusb 091b762f79 Remove macro from public Luna<TimingData> 2024-08-06 15:33:34 -07:00
sukibabyandteejusb dfa7589345 Revert "Prevent setting the position of a nullptr"
This reverts commit 47ff2cf095
2024-08-06 15:32:11 -07:00
sukibabyandteejusb 2fd1bff510 Threads_Win32 fixes
From top to bottom,

- Fix incorrect gcc implementation in `SetThreadName`
- Static Cast in `StartThread`
- Fix `MutexImpl_Win32::Lock()`
- Remove unnecessary pre-winXP methods in PortableSignalObjectAndWait()
- Static Cast in `EventImpl_Win32::Wait`
2024-08-06 15:31:24 -07:00
sukibabyandteejusb e2ae82deb2 windows sdk 5.0 -> 10.0 2024-08-05 16:35:05 -07:00
sukibabyandteejusb 630617ff1e Undefine macro in RageTimer.cpp 2024-08-05 14:52:59 -07:00
sukibabyandteejusb 81b98c6e34 Remove profiling defines from RageTimer.h 2024-08-05 14:52:14 -07:00
Brandon Wandteejusb 20452b244a Add FrameBuffer vector and decoding functions.
These functions are based on "DecodePacket" and "ReadPacket". This
PR does not consume the new buffer or decoding functions yet. It also
preps the class for adding a fast cancel to decoding, in the case that
the movie texture is destroyed while decoding is still happening.
2024-07-25 23:11:47 -07:00
Brandon Wandteejusb 23f7ebd476 Add FrameHolder struct and logic around finding totalFrames of movies. 2024-07-25 11:42:16 -07:00
sukibabyandteejusb 75531a67a0 Update README.md 2024-07-25 11:35:47 -07:00
sukibabyandteejusb fb5ffb0cc6 Update README.md 2024-07-25 11:35:47 -07:00
sukibabyandteejusb 7ac77f5b78 Make Pi constexpr in RageMath.h
This is the same value used in the vorbis code.
2024-07-22 10:38:15 -07:00
Rafał Florczakandteejusb 5369f16e16 Implement cross-platform FTOC using clamp and static_casts
The old implementation relied on the tricks that no longer seem to
optimize anything and break strict aliasing rule, which in turn is an
undefined behavior:

/var/storage/rf/proj/itgmania/src/RageTypes.h: In function ‘unsigned char FTOC(float)’:
/var/storage/rf/proj/itgmania/src/RageTypes.h:300:42: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  300 |         int ret = reinterpret_cast<int&>(base);
      |                                          ^~~~

Compiler explorer summary: https://godbolt.org/z/5857747P3

It's also possible to eliminate this strict aliasing violation with a union,
while leaving all the tricky code (also included in the link above).

Online build of the test code that's suggested for FTOC: https://onlinegdb.com/O7N0Orl0r

ARM version of the code wasn't correct -- as in not passing the attached test.
It didn't perform accurately around the end of the input range.
2024-07-17 20:21:55 -07:00
sukibabyandteejusb 515090b7f7 Don't log FPS by default 2024-07-15 07:00:27 -07:00
sukibabyandteejusb 5bb4e04957 Allow building on BSD 2024-07-15 07:00:07 -07:00
Brandon Wandteejusb b2ada0ad61 Remove dshow movie rendering code.
It hasn't been built into the binary in years, not since before forking
itgmania.
https://github.com/itgmania/itgmania/blob/5d4f9dcb07493ed4c51d6be23e9b41978162305a/src/CMakeData-arch.cmake#L81-L91
https://github.com/stepmania/stepmania/blob/d55acb1ba26f1c5b5e3048d6d6c0bd116625216f/src/Makefile.am#L388

This helps to consolidate the movie rendering code into one main
rendering path.
2024-07-13 21:50:24 -07:00
sukibabyandteejusb 06bfbbf15d Make BUF_SIZE constexpr 2024-07-10 22:09:23 -07:00
sukibabyandteejusb 51e00b2d86 Remove macro from TimingData::GetBeatInternal 2024-07-10 14:57:56 -07:00
sukibabyandteejusb 963f401c0a Rewrite TimingData::ReleaseLookup 2024-07-10 14:57:10 -07:00
sukibabyandteejusb 8f5b45f2ca Revert some thread priority level changes 2024-07-10 11:57:37 -07:00
sukibabyandteejusb 56444b560a Remove macro from TimingData::GetElapsedTimeInternal 2024-07-10 11:41:54 -07:00
sukibabyandteejusb 264244d6a3 Copy & swap assignment operator 2024-07-10 11:28:43 -07:00
sukibabyandteejusb dd4f92d289 Remove COMPARE macro from TimingData.h 2024-07-10 10:45:48 -07:00
Crash Cringleandteejusb bc65d16c4a Move LastOpenSection declaration outside of if/else, add clarity to comment 2024-07-07 16:14:07 -07:00
Crash Cringleandteejusb 667d27b361 Fix Level and Preferred Sorts to account for a song being in multiple sections
This commit properly returns you to the correct pack when leaving a folder or returning from another screen.
This is achieved by returning you to your last open section. Previously behavior searched for the first instance of the song in your sort and put you in that section.
2024-07-07 16:14:07 -07:00
sukibabyandteejusb 0447d9ae58 Consistency in Windows ifdefs/windows.h includes
Changing all defined(_WINDOWS) to defined(_WIN32)

Defining WIN32_LEAN_AND_MEAN in all files except those in Archutils/Win32
2024-06-24 15:48:05 -07:00
sukibabyandteejusb 65fe06bcd3 Prevent need for fallthrough attribute 2024-06-23 21:40:09 -07:00
sukibabyandteejusb 5e3bc389c3 Fix uninitialized variable in Crash.cpp 2024-06-23 21:39:40 -07:00
teejusb 5d4f9dcb07 Update SImply Love to 5.5.0 2024-06-18 19:09:56 -04:00
teejusb cf7bf6fdb1 Version bump to 0.9.0 2024-06-18 16:32:36 -04:00
Scott Brennerandteejusb 17524f22e8 Bump macos-build-x86_64 runner 2024-06-18 13:24:02 -07:00
teejusb f0c249c03c Static cast int to size_t 2024-06-18 16:09:24 -04:00
sukibabyandteejusb ae6d7cecb5 Update ActorMultiVertex.cpp
Encapsulate actor resize functionality.

Significant performance improvement on the `UpdateAnimationState` function which was bottlenecking many operations.

See ITGmania PR #253 for more information.
2024-06-18 06:37:44 -07:00
sukibabyandteejusb 9e3c7fc207 Update RageSoundMixBuffer
1) Set a buffer of 2MB instead of setting the buffer to nullptr and depend on it being grown by assets being loaded at the game launch

2) Update some C style code to C++ style

3) Improve Extend feature to support handling a larger number of samples, and error handling in case of a memory allocation failure
2024-06-18 06:27:56 -07:00
Rafał Florczakandteejusb 90aabddc7f Drop libbz2 dependency
Dynamic linking against libbz2 was problematic on some distributions.
We only needed it for pcre's CLI (which we don't use) and ffmpeg's mkv
decompression in case a user forced encoder to use it, because its usage
is discouraged by the standard.

See https://github.com/itgmania/itgmania/issues/217 for the related
discussion.
2024-06-18 05:39:51 -07:00
phantom10111andteejusb daad1a2333 Windows: Mark executable as DPI aware
When any scaling other than 100% is set for a display, Windows will
automatically scale any DPI unaware applications. This leads to ITGmania being
unusable in fullscreen mode, as parts of the screen are cut off. Add a DPI
aware indication to the manifest to prevent this from happening. Note that
ITGmania won't actually adjust its rendering to the new DPI, it will just
prevent the automatic scaling.
2024-06-17 22:45:48 -07:00
sukibabyandteejusb 5b0070f403 Win32 thread priority isolation layer
other changes merged in this commit:
Update RageSoundReader_ThreadedBuffer.h
Update GameLoop.cpp
Update CMakeData-os.cmake
2024-06-11 06:32:27 -07:00
hayoreoandteejusb 481532ab77 Don't necessarily hide the mouse cursor when full screened.
Since the ShowMouseCursor preference exists we don't want to force hiding the mouse cursor when full screened. Instead let the user/theme decide with ShowMouseCursor.
2024-06-11 05:49:41 -07:00
sukibabyandteejusb 47ff2cf095 Prevent setting the position of a nullptr
Also implemented copy just in case
2024-06-09 21:07:49 -07:00
sukibabyandteejusb 339aafcd65 Remove bad line from fallback language files 2024-06-09 21:06:49 -07:00
sukibabyandteejusb 471a92e322 Improve error logging in IniFile.cpp 2024-06-08 20:31:31 -07:00