オペレーティングシステムはDebian 12です。ビデオドライバはNvidia 525.147.05です。
DirectXを使ってワインを使って昔のゲームを試してみます。 (ディアブロ2)。ウィンドウモードでゲームを実行しましたが、これを行うとフルスクリーン変更されました。 (私が知る限り、明るさ、コントラスト、ガンマ)。ゲームはうまく動作しますが、ゲーム終了時に残念ながら以前の色設定は復元されません。
ここで何が起こっているのでしょうか?アプリケーションはデスクトップ全体の色設定をどのように変更しますか?どの設定が変更されたかをどのように確認できますか?に明るさやコントラストなどの設定は表示されませんnvidia-settings
。
ゲームを始める前のカラー設定をどのように復元しますか?任意のアプリが色設定を変更できないように、これらの色設定を「ロック」する方法はありますか?個々のアプリが設定を変更していることを理解できます。私自身色はそうですが、デスクトップ全体を干渉するのがかなりおかしいですね。
答え1
実際に起こるのは、おそらくDirectXが原因で、Wineがディスプレイの色深度を通常の32/24ビット「トゥルーカラー」モード(=同時に使用できる数百万色)から16ビットインデックスカラーモードに切り替えて、これを実行できないことです。正しく戻ってください。
インデックスカラーモードには、画面全体に何百万もの色から値を選択できるカラーレジスタセットがありますが、同時に画面には同じ色しか表示できません。利用可能なカラーレジスタ(例:16ビットインデックスカラーモードでは65536色、8ビットモードでは256色)。 X11の用語では、これらのインデックスカラーモードを擬似カラーモードと呼びます。
X11が最初に開発されたとき、True Colorディスプレイは一般的ではなく、これらの適応は、複数のプログラム(オプションでネットワークを介して複数のシステムで生成されます)がすべて同じ画面のウィンドウに表示される機能をサポートするために必要でした。
以下は、この適応性を処理する際のX11アプリケーションの要件の説明です。https://hea-www.harvard.edu/~fine/Tech/X11visuals.html
様々なカラーモードの説明およびユーザへの影響は特に適切である。
24ビットトゥルーカラービジョンは基本的に色が無制限です。色が欲しいなら、その色を得ることができます。色を割り当てる必要もなく、色が不足することもなく、正確に希望の色より少ない色に満足する必要もありません。
8ビットPseudoColorは、アプリケーションが256色に制限されていることを意味します。さらに、これらの色は通常、すべてのアプリケーションで共有されます。したがって、他のアプリケーションが茶色の245の色合いを使用している場合、アプリケーションは白黒になります(ほぼ常に割り当てられ、その茶色と選択された最大9つの異なる色も含まれます。2つ以上の他のアプリケーションが実行されない限り)。カラーマップがいっぱいで色を選択できない場合があります。
もちろん、8ビットアプリケーションは「プライベートカラーマップ」を使用して実行できます。これは、アプリが他のアプリと競合することなく、256種類の色を使用できることを意味します。これの欠点は、ほとんどのハードウェアで「カラーマップの点滅」が発生することです。あるアプリから次のアプリに移動すると、フルスクリーンが別のカラーマップに切り替わり、現在存在していないすべてのアプリがサイケデリックな土砂のように見えます。一部のユーザーは、適切な色を得るために専用のカラーマップを使用して喜んでいます。ただし、ほとんどのユーザーはこれに耐えられません。
Windowsはほぼ同じことを行いますが、可能であればすべてのプログラムのカラーインデックスに含める必要がある約16の「基本色」セットを適用し、ウィンドウの装飾やその他のUI要素は可能な限り使用されるように設計されています。 、プログラム間の切り替え時の色の歪みを最小限に抑えます。
良いニュースはデスクトップの実際の色設定です。いいえ実際に変わるのは、限られた色のセットで一般的に使用されているデスクトップを見ていることです。 Xサーバーをリセットするすべての操作(ログアウトや再ログインなど)は、正常な状態に戻す必要があります。
残念なことに、トゥルーカラーディスプレイが標準化されており、カラーモードの影響を処理し、あるカラーモードから別のカラーモードに切り替えることも失われた芸術になりました。最新のデスクトップでは、ディスプレイが常に最大の基本解像度と色深度で実行されることを期待しています。しかし、古いDirectXゲームを使用すると問題が発生します。
以前は、 - キーと - キーを/etc/X11/xorg.conf
使用してファイルに設定されたさまざまな表示モードを切り替えることができましたが、現在表示モードが自動的に検出され、モード切り替えキーがデフォルトで無効になることがありました。誤って押した数千のキーのいずれかを押すと、非常に混乱してしまいます。CtrlAltNumpad+Numpad-
X11にディスプレイカラーモードを切り替えるように指示できるすべてのプログラムまたはツールはこのライブラリを使用する必要があると思いますlibXtst
が、ディスプレイをデフォルトのトゥルーカラーモードに効果的にリセットするプログラムやツールが見つかりません。そのコマンドを試してみることはできますが、xrefresh
大きな期待はありません。ここで必要な機能を正しく実行できないようです。