Commit Graph
36574 Commits
Author SHA1 Message Date
Brandon Wandteejusb a3f3587c19 Fix style in MovieTexture_FFMpeg to match Google C++ style guide. 2024-08-25 12:52:34 -07:00
Brandon Wandteejusb 88511c59cb Use avcodec builtins for constructing and destroying AVFrame and
AVPacket, and switch FrameHolder to unique_ptr.
2024-08-20 21:09:25 -07:00
sukibabyandteejusb 5c847dbe45 Fix ArchHooks_Win32Static.cpp
1)   move file scope variables into an anonymous namespace

2)   properly bracket functions

3)   fix GetMicrosecondsSinceStart calculation
2024-08-20 21:00:00 -07:00
sukibabyandteejusb c1c78270c8 Update RageSoundReader.cpp
The warning inside the loop makes the log too messy and is too much of a performance hit on very low end hardware.

I'm changing it to remove the mid-loop logging and only return a logged warning on a failure.
2024-08-20 17:37:19 -07:00
Valentina16andteejusb 52cf6170e4 Sprite DecodeMovie when required 2024-08-19 09:24:36 -07:00
sukibabyandteejusb d452ed9f21 Static cast m_FrameBuffer.size to int 2024-08-19 09:19:44 -07:00
sukibabyandteejusb 6b67a0c476 Fix two mutexes 2024-08-19 09:19:44 -07:00
Rafał Florczakandteejusb a0e4f6a4b0 Parallel github workflow builds 2024-08-12 13:31:18 -07:00
Michael Votawandteejusb 7b1b287760 Replace forward declaration with include NoteData.h 2024-08-11 09:43:54 -07:00
Michael Votawandteejusb f96ee75ccc Return the noteType for columnCues instead of isMine. 2024-08-11 09:43:54 -07:00
Michael Votawandteejusb 5db1a56d48 Add ColumnCues calculations, exposed to themes via Lua function on Steps object 2024-08-11 09:43:54 -07:00
Brandon Wandteejusb d74ad50707 Remove singlethreaded, old ffmpeg decoding code. 2024-08-10 15:44:06 -07:00
sukibabyandteejusb 10125caa7f Remove GLU dependency
gluGetString, gluBuild2DMipmaps, and gluErrorString are all functions from the GLU library, which is not part of OpenGL.

This lets the game run without libGLU1 (or whatever it's called on a given distro).

Update README.md
2024-08-10 11:53:09 -07:00
Brandon Wandteejusb eb8f76023e Allow frames that didn't decode to skip. 2024-08-10 11:48:20 -07:00
sukibabyandteejusb b938ac449f Migrate to universal build for macOS
Instruct cmake to generate a universal release, instead of separate executables for ARM64 and x86_64.
2024-08-09 04:25:26 -07:00
sukibabyandteejusb 36892b4e56 Create RandomSeed.h (mt19937 RNG)
This exists to replace the use of RageTimer as a RNG seed, which results in fewer GetTimeSinceStart() calls and better entropy.
2024-08-07 10:05:13 -07:00
Brandon Wandteejusb d4ab7b12ed Consume background thread movie decoding. 2024-08-07 10:04:18 -07:00
sukibabyandteejusb 7492793463 Initialize SongPosition variables 2024-08-07 02:00:40 -07:00
sukibabyandteejusb 6a2de50101 Remove RadianToDegree macro from ModelTypes
We can remove two macros from RageMath which are only used in a single place.
2024-08-07 00:58:18 -07:00
sukibabyandteejusb 5e00535522 Prevent divide by 0 in calc_mean 2024-08-07 00:56:16 -07:00
sukibabyandteejusb 3c64940974 Update WinMoveFileInternal 2024-08-07 00:52:34 -07:00
sukibabyandteejusb a1c316cfc7 Initialize variables in ModelTypes 2024-08-07 00:52:04 -07:00
sukibabyandteejusb b30bf85399 WaveOut: Reattempt to initialize on failure
If the device suddenly changes, like say an audio cable gets unplugged, this gives the game a chance to recover gracefully instead of just crashing.
2024-08-07 00:17:25 -07:00
sukibabyandteejusb a0d1198cc1 MixIntoBuffer optimization
Reduced risk of error as well, improved readability as well as improved performance due to removing a repeated calculation.
2024-08-07 00:15:22 -07:00
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