Commit Graph
258 Commits
Author SHA1 Message Date
sukibabyandteejusb 5e3bc389c3 Fix uninitialized variable in Crash.cpp 2024-06-23 21:39:40 -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 626e127589 Replace src/archutils/Win32/ddk/hidpi.h
From SDK 10.0.16299
2024-05-28 10:19:50 -07:00
sukibabyandteejusb b730a5a750 Remove AltiVec code
The content of src/archutils/Darwin/VectorHelper.cpp is very old, these are AltiVec and SSE2 instructions. This is only actually used in RageSoundMixBuffer.cpp. This level of micro-optimization is not needed since platforms this old are not supported by ITGm.
2024-05-28 09:34:59 -07:00
phantom10111andteejusb bbf556450d X11: Don't call any X11 functions on fatal error
If X11 functions are called after a fatal error then it just triggers the fatal
error handler again eventually leading to stack overflow.
2024-05-11 09:46:26 -07:00
phantom10111andteejusb 3df79a3f11 Windows: Remove old mapconv and verinc project files
mapconv is being built by CMake so no need to keep its project files in the
repo. verinc isn't used anymore so it can be removed completely.
2024-04-12 22:40:09 -07:00
phantom10111andteejusb 9a55cb99c1 Windows: Add manifest with UTF-8 code page specification
On Windows 10 versions starting with 1903, this manifest will allow Win32 -A
family of functions to accept UTF-8 strings as arguments.
2024-04-12 22:40:09 -07:00
phantom10111andteejusb 7dd50cf995 Windows: Generate version number in resource file
Windows executable had an old version number hardcoded in the resource file.
Automatically generate a file with correct version set.
2024-04-12 22:40:09 -07:00
glitchbearandteejusb ad5f3e0653 Windows support for fullscreen borderless window mode 2024-03-02 23:47:12 -08:00
Martin Natano 56edcee48c Use compiler intrinsics for byte swapping 2023-04-21 22:13:41 +02:00
Martin Natano bacecae1f7 Decouple <vector> 2023-04-21 22:13:41 +02:00
Martin Natano aa87f85eef Decouple <cstdint> 2023-04-21 22:13:41 +02:00
Martin Natano 78fb2e9fc3 Decouple <cstddef> 2023-04-20 11:21:29 +02:00
Martin Natano 093675cdc3 Use attributes where possible 2023-04-20 11:21:29 +02:00
Martin Natano b68ca517e6 Clean up math functions
- Remove checking for standard functions from the build system
- Prefix all invocations with std::
- Replace suffixed functions with unprefixed versions
- Include <cmath> in all files that use it and remove the global include

e.g. floorf(x) -> std::floor(x)
2023-04-19 19:31:40 +02:00
Gareth Francisandteejusb f39ed52dbf Remove calls to dwmFlush - Were never called before and cause frame drops with opengl renderer 2023-03-29 13:01:01 -07:00
Brian Phlipotandteejusb 4a6b1a743c Enable more compiler warnings and treat them as errors. 2023-02-02 11:54:17 -08:00
Michael SundqvistandMartin Natano 0cba3579de Remove global "using namespace std;" declarations, use "std::" prefixes on all std elements
Fix whitespace changes
2022-07-31 22:14:38 +02:00
Martin Natano 1010798e26 Update logo 2022-06-29 21:15:43 +02:00
Martin Natano 61f12e8165 Prevent out-of-bounds array access
Fixes https://github.com/itgmania/itgmania/issues/27
2022-06-27 20:10:52 +02:00
Martin Natano c40985122e Remove workarounds for ancient MSVC versions 2022-06-07 22:49:05 +02:00
Martin Natano 838de6fb81 Remove support for mingw
MSVC works fine and the bundled mingw libraries are outdated.
2022-06-07 22:49:05 +02:00
teejusbandMartin Natano 8612d34283 Prevent hanging when going into "Graphics Options"
Remove calls to ChangeDisplaySettingsEx(CDS_TEST). This prevents an an alarming system hang on NVIDIA GPUs with DisplayPort displays when using "Graphics Options" in the system menu, and doesn't seem to have any downsides as far as I can tell.

Taken from: https://github.com/ClubFantastic/stepmania/commit/46061f818d020138eff80ba5785e0ea88cd68dfd
2022-06-06 11:23:49 +02:00
Martin Natano 3eb239ad3b Replace deprecated macOS APIs with modern equivalents 2022-06-05 12:04:37 +02:00
Martin Natano 327278436d Remove support for building with system libraries 2022-05-31 18:21:35 +02:00
Martin Natano 15b77ee278 Update documentation 2022-05-28 11:21:13 +02:00
Martin Natano ee65b7b0c4 Replace logo and clean up packaging 2022-05-21 10:05:44 +02:00
Martin Natanoandteejusb 02008eb469 Rename to ITGmania
- executable name:
  - linux: itgmania
  - windows: ITGmania.exe
  - macOS: ITGmania.app
- config path:
  - linux: ~/.itgmania
  - windows; %AppData%\ITGmania
  - macOS: ~/Library/Application Support/ITGmania
2022-04-02 20:14:57 -07:00
Colby Klein 261daef933 fix build and no audio out on macOS 11, closes issue #2080 2021-01-08 07:58:35 -08:00
Colby Klein 6c48eb3d5c Fix compile on raspberry pi 4/A72
Game runs pretty close to fine, needed to use system libpng and haven't
attempted to use ffmpeg, however.

I'm seeing in the 50fps range in gameplay with no performance tweaks
but having set -mtune=cortex-a72. There's a lot of perf opportunities,
so consistent 60 is certainly within reason without too much pain.
2020-06-23 16:58:00 -07:00
Arusekk 46f3e8aa9d Unix backtrace call detection
If the supposed return address is a pointer to the beginning of an
executable page, and the page before is an oversized file mapping,
like vvar before vdso, the backtrace would be terminated by SIGBUS.

To avoid this, check not for readable, but for executable instead.
2020-06-17 10:04:54 +02:00
din 653e8ff6fe Small memory fixes. 2020-05-14 16:19:23 -05:00
PrcuvuandGitHub 44b76446bb Merge branch '5_1-new' into win64 2019-10-06 00:55:50 +08:00
Prcuvu b1e5d9f46d A missing data type to change 2019-10-05 05:34:06 +08:00
Prcuvu 96db8d3be7 Update VDI format for Windows x64
Update VDI format to utilize 64-bit pointer types for stack tracing.
Revise mapconv and CrashHandlerChild.
Tested on both 32-bit and 64-bit builds to be working properly.
2019-10-05 05:08:20 +08:00
Tracy Ward 6aedffabf3 Add GetErrorString to DirectXHelpers; Add error list
* Another thing lost was DXGetErrorString. Re-implement it.
* Include a partial list of errors.

(backported from master, where it was two commits)

Note: If we ever drop support for windows older than win8, we can
remove this and just call FormatMessage.
2019-10-04 09:29:01 -04:00
Tracy Ward dce0d0f91c Fix potential security issue with FormatMessage use
From MSDN:

Security Remarks
If this function is called without FORMAT_MESSAGE_IGNORE_INSERTS, the
Arguments parameter must contain enough parameters to satisfy all insertion
sequences in the message string, and they must be of the correct type.
Therefore, do not use untrusted or unknown message strings with inserts
enabled because they can contain more insertion sequences than Arguments
provides, or those that may be of the wrong type. In particular, it is
unsafe to take an arbitrary system error code returned from an API and use
FORMAT_MESSAGE_FROM_SYSTEM without FORMAT_MESSAGE_IGNORE_INSERTS.

(backport from master)
2019-10-04 08:58:05 -04:00
Tracy Ward cdc4bd9da2 Replace missing dxguid.lib functionality
One thing that did not make it into the move to the Windows SDK is the
dxguid.lib library, which defined the IIDs for all of the DirectX interfaces.
This replaces that, defining the ones we use. Currently, we only need to
define the DirectInput IIDs, so that is all that is here.

(backport from master)
2019-10-04 08:48:19 -04:00
Prcuvu 2a8ca62ba6 CrashHandlerChild rva type fix 2019-10-04 15:41:05 +08:00
Prcuvu 4baa25710d Create a thread for exception handler for separate stack 2019-10-04 15:28:17 +08:00
Prcuvu 31604f48ce Use static array for new stack instead of calling VirtualAlloc 2019-10-03 14:01:59 +08:00
Prcuvu dea6917f02 Explicitly expand size_t on min and max overload 2019-10-03 09:44:07 +08:00
Prcuvu 4026d41c16 More Windows API type inconsistency fix 2019-10-03 09:33:27 +08:00
Prcuvu 7e96188088 Reserve register parameter stack space for MainExceptionHandler
Windows x64 functions always assume there is at least 4 QWORDs' length of space
reserved for register parameters (RCX, RDX, R8 and R9) after the caller return
address even though there are less than 4 parameters. MSVC compiler will try to
utilize vacant space there. If we forget to reserve that block, the exception
handler will abort.

Reference: https://docs.microsoft.com/en-us/cpp/build/stack-usage
2019-10-03 04:51:08 +08:00
Prcuvu ef4376cb6e Implement a working CrashHandler::ExceptionHandler for Windows x64 2019-10-01 14:56:09 +08:00
Prcuvu 3cd1bdcc8f Add WinDDK x64 libraries 2019-10-01 14:45:55 +08:00
Prcuvu 4f864911fc Use SetClassLongPtr compatible for both Windows x86 and x64 2019-10-01 14:14:38 +08:00
Prcuvu e5321deed4 Fix DLGPROC prototype 2019-10-01 14:10:56 +08:00