![]() |
Wie DPI-Wert des Monitors ändern?
Ich hab das Problem, dass bei Bildschirmskalierungswerten <> 100% vermutlich durch die Skalierung die Performance meiner DirectX-Anwendung leidet. Nun kann man auf einem 4k-Monitor nicht immer sinnvoll arbeiten, wenn man 100% eingestellt hat.
Ich würde daher gerne den Monitor auf 100% stellen, wenn die Grafik startet und danach wieder auf den ursprünglichen Wert. Es scheint aber nicht so einfach zu sein, hier gibt's schon etwas Diskussion dazu in C#: ![]() Hat das jemand schonmal in Delphi hinbekommen? Carsten |
AW: Wie DPI-Wert des Monitors ändern?
Unter Windows 7 gab es eine Option in der Kompatibilitätseinstellungen des Programms, wo man das einstellen konnte.
Unter Windows 11 hab ich die nicht wiedergefunden, wurde die entfernt? |
AW: Wie DPI-Wert des Monitors ändern?
Ich will nicht mein ganzes Programm in 100% laufen lassen. Das hat auch diverse Fenster usw. die man normal benutzen können muss. Nur während die 3D-Grafik läuft, soll es umschalten.
Carsten |
AW: Wie DPI-Wert des Monitors ändern?
Schau mal hier:
![]() |
AW: Wie DPI-Wert des Monitors ändern?
Ich glaube das hilft hier nicht. Wenn ich es richtig sehe, bleibt dort ja der Monitor unangetastet.
Die Probleme hab ich aberm sobald der Monitor nicht auf 100% läuft. (also zuindest war das mit meinem Delphi 7-Programm so - vielleicht sollte ich es dann erstmal nach der Portierung auf Delphi 11 testen) Carsten |
AW: Wie DPI-Wert des Monitors ändern?
Vielleicht rede ich dummes Zeug, ich habe schon ewig nichts mehr mit DirectX gemacht. Dass das Bitmap-Skalieren Zeit braucht, ist irgendwo klar.
Was macht dein DirectX-Kram?
Ein Fenster hat eine DPI-awareness. Falls du, aus welchem Grund auch immer, deine Anwendung nicht updaten willst wäre evtl. die Möglichkeit mit ![]() |
AW: Wie DPI-Wert des Monitors ändern?
Ich zeichne "ganz normal" mit DirectX-Mitteln eine 3D-Landschaft auf einen Backbuffer und dieser wird dann in ein TForm ohne Rahmen geblittet, so dass ein Vollbild entsteht. Der "echte" DirectX-Vollbildmodus kann atürlich auch den Monitor nach Wunsch einstellen, aber der hat auch diverse Nachteile, weshalb ich lieber den normalen Windows-Modus mit einem rahmenlosen Vollbild-Fenster nehme.
Die Beobachtung ist nun, dass das unrunder läuft, wenn die Skalierung des Monitors nicht auf 100% läuft. Meine Anwendung weiß davon ja aber gar nichts bzw. macht nichts anders, so dass ich vermute, dass das Effekte in Windows sind, die bei z.B. bei 150% anfallen, bei 100% aber nicht. Carsten |
AW: Wie DPI-Wert des Monitors ändern?
Zitat:
Carsten |
AW: Wie DPI-Wert des Monitors ändern?
Hast du Mal das mit diesem API Aufruf getestet?
Wenn das in dem Fenster ein eigener Threads ist oder sein kann könnte das doch eine Lösung sein... |
AW: Wie DPI-Wert des Monitors ändern?
Welchen Api-Aufruf meinst Du?
Carsten |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz