Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix some small problems with Device Selection Dialog #3851

Open
wants to merge 13 commits into
base: master
Choose a base branch
from

Conversation

forkerer
Copy link
Contributor

This aims to improve Device Selection dialog that shows on startup if more than one monitor is present. It's partially based on the changes introduced in SilentPatch, although the approach is a bit different.

Changes:

  • The dialog is now visible in the taskbar
  • The dialog now has an icon assigned to it
  • The device selection drop down correctly displays the monitor names, instead of using the GPU model as all options (The name retrieval logic is copied from SilentPatch)

Here's how the dialog looked like before the changes:
original_naming

And here's the result after the changes:
new_naming
obraz

And here it is in the taskbar:
Taskbar

The main reason for these change is that in most cases the device selection dialog is lost somewhere under all the windows, making it hard to find. I didn't port over all of the changes from SilentPatch, as i wanted to keep it simple for now.

- Show the dialog in task bar
- Show the icon on dialog
- Display actual monitor names instead of GPU name
Copy link
Contributor

@Fernando-A-Rocha Fernando-A-Rocha left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems like an improvement. Well done!

@Fernando-A-Rocha
Copy link
Contributor

Is it possible to use translation for the strings in the dialog box so they can vary depending on MTA client language chosen?

@forkerer
Copy link
Contributor Author

Is it possible to use translation for the strings in the dialog box so they can vary depending on MTA client language chosen?

Not with the current approach, but should be possible to do in the future. At this moment I don't touch the dialog creation at all, so i have no control over the UI elements, only thing that's hooked is the message handler for it

@forkerer
Copy link
Contributor Author

forkerer commented Nov 10, 2024

(Partially) fixes #3073

@forkerer forkerer linked an issue Nov 10, 2024 that may be closed by this pull request
1 task
@nekjutsu
Copy link

Why is this dialogue needed at all?
I haven’t seen this in any game (except some Unreal Tournament or Quake from 1990s)

I suggest turning it off

Client/multiplayer_sa/CMultiplayerSA_DeviceSelection.cpp Outdated Show resolved Hide resolved
Client/multiplayer_sa/CMultiplayerSA_DeviceSelection.cpp Outdated Show resolved Hide resolved
Client/multiplayer_sa/CMultiplayerSA_DeviceSelection.cpp Outdated Show resolved Hide resolved
Client/multiplayer_sa/CMultiplayerSA_DeviceSelection.cpp Outdated Show resolved Hide resolved
Client/multiplayer_sa/CMultiplayerSA_DeviceSelection.cpp Outdated Show resolved Hide resolved
Client/multiplayer_sa/CMultiplayerSA_DeviceSelection.cpp Outdated Show resolved Hide resolved
Client/multiplayer_sa/CMultiplayerSA_DeviceSelection.cpp Outdated Show resolved Hide resolved
Client/multiplayer_sa/CMultiplayerSA_DeviceSelection.cpp Outdated Show resolved Hide resolved
Client/multiplayer_sa/CMultiplayerSA_DeviceSelection.cpp Outdated Show resolved Hide resolved
Client/multiplayer_sa/CMultiplayerSA_DeviceSelection.cpp Outdated Show resolved Hide resolved
@AlexTMjugador
Copy link
Member

AlexTMjugador commented Nov 10, 2024

Why is this dialogue needed at all?

A single computer may have several GPUs from different manufacturers in use at the same time, and each GPU be connected to different monitors. (For example, this is commonplace in high-end laptops with Intel CPUs, where both a integrated GPU and discrete GPU are present and used at the same time to balance performance and power usage.)

This selection dialogue allows players with such computer configurations to precisely select in which GPU and screen the game should be rendered, which is necessary and useful in those environments. Other games implement such selection within the in-game graphics options (which is a less straightforward thing to do in MTA), have separate, more polished launchers for graphic options (this is unfeasible for MTA), or use a default GPU and screen provided by the operating system graphics APIs (which can be a bad default and inconvenient for the user to change, so it isn't a proper solution for MTA standards either).

@Fernando-A-Rocha
Copy link
Contributor

Fernando-A-Rocha commented Nov 10, 2024

Why is this dialogue needed at all? I haven’t seen this in any game (except some Unreal Tournament or Quake from 1990s)

I suggest turning it off

GTA:SA has that dialog before the game boots on a given screen device.

If we want to remove it, we can do like most games: if no previously selected screen or previously selected screen no longer connected, auto select the system's default screen; add a setting for changing screen for next launch? (This improvement could be made in a new PR, this PR is already a good bugfix)

Client/sdk/game/RenderWare.h Show resolved Hide resolved
Client/sdk/game/RenderWare.h Show resolved Hide resolved
Client/multiplayer_sa/CMultiplayerSA_DeviceSelection.cpp Outdated Show resolved Hide resolved
Client/multiplayer_sa/CMultiplayerSA_DeviceSelection.cpp Outdated Show resolved Hide resolved
Client/multiplayer_sa/CMultiplayerSA_DeviceSelection.cpp Outdated Show resolved Hide resolved
Client/multiplayer_sa/CMultiplayerSA_DeviceSelection.cpp Outdated Show resolved Hide resolved
Client/multiplayer_sa/CMultiplayerSA_DeviceSelection.cpp Outdated Show resolved Hide resolved
Client/multiplayer_sa/CMultiplayerSA_DeviceSelection.cpp Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add information about screen in device dialog
5 participants