운영체제는 데비안 12입니다. 비디오 드라이버는 Nvidia 525.147.05입니다.
다이렉트X를 이용해서 와인을 통해 옛날 게임을 해보려 합니다. (디아블로 2). 창모드로 게임을 실행했는데 이렇게 하면전체 화면변경되었습니다. (내가 아는 한 밝기, 대비, 감마). 게임은 잘 실행되는데, 게임 종료 시 아쉽게도 이전 색상 설정이 복원되지 않습니다.
여기서 무슨 일이 일어나고 있는 걸까요? 응용프로그램은 전체 데스크탑의 색상 설정을 어떻게 변경합니까? 어떤 설정이 변경되었는지 어떻게 확인하나요? 에 밝기나 대비와 같은 설정이 표시되지 않습니다 nvidia-settings
.
게임을 시작하기 전의 색상 설정을 어떻게 복원합니까? 임의의 앱이 색상 설정을 변경할 수 없도록 이러한 색상 설정을 "잠그는" 방법이 있습니까? 개별 앱이 설정을 변경하는 것을 이해할 수 있습니다.내 자신의색상은 그렇지만 데스크탑 전체를 간섭하는 게 꽤 이상하네요.
답변1
실제로 일어나는 일은 아마도 DirectX로 인해 Wine이 디스플레이 색상 깊이를 일반적인 32/24비트 "트루 컬러" 모드(= 동시에 사용 가능한 수백만 색상)에서 16비트 인덱스 색상 모드로 전환하고 이를 수행할 수 없다는 것입니다. 올바르게 다시 전환하십시오.
인덱스 색상 모드에는 화면 전체에 걸쳐 수백만 가지 색상 중에서 값을 선택할 수 있는 색상 레지스터 세트가 있지만 동시에 화면에는 동일한 색상만 표시될 수 있습니다. 사용 가능한 색상 레지스터(예: 16비트 인덱스 색상 모드에서 65536색 또는 8비트 모드에서 256색). X11 용어에서는 이러한 인덱스 색상 모드를 의사 색상 모드라고 합니다.
X11이 처음 개발되었을 때 트루 컬러 디스플레이는 흔하지 않았으며, 이러한 적응은 여러 프로그램(선택적으로 네트워크를 통해 여러 시스템에서 생성됨)이 모두 동일한 화면의 창에 표시되는 기능을 지원하는 데 필요했습니다.
다음은 이 적응성을 처리할 때 X11 애플리케이션의 요구 사항에 대한 설명입니다.https://hea-www.harvard.edu/~fine/Tech/X11visuals.html
다양한 색상 모드에 대한 설명과 사용자에게 미치는 영향은 특히 적절합니다.
24비트 트루 컬러 비전은 기본적으로 색상이 무제한입니다. 색상을 원하면 그 색상을 얻을 수 있습니다. 색상을 할당할 필요도 없고 색상이 부족할 일도 없으며 정확히 원하는 색상보다 적은 색상에 만족할 필요도 없습니다.
8비트 PseudoColor는 응용 프로그램이 256색으로 제한됨을 의미합니다. 또한 이러한 색상은 일반적으로 모든 응용 프로그램에서 공유됩니다. 따라서 다른 응용 프로그램이 갈색 245가지 음영을 사용하는 경우 응용 프로그램은 흑백이 됩니다(거의 항상 할당되며 해당 갈색과 선택한 최대 9개의 다른 색상도 포함됩니다. 두 개 이상의 다른 응용 프로그램이 실행되지 않는 한). 색상 맵이 꽉 차서 색상을 선택할 수 없는 경우가 있습니다.
물론 8비트 응용 프로그램은 "개인 색상 맵"을 사용하여 실행할 수 있습니다. 이는 앱이 다른 앱과 경쟁할 필요 없이 원하는 256가지 색상을 사용할 수 있음을 의미합니다. 이것의 단점은 대부분의 하드웨어에서 "컬러맵 깜박임"이 발생한다는 것입니다. 한 앱에서 다음 앱으로 이동하면 전체 화면이 다른 색상맵으로 전환되어 현재 존재하지 않는 모든 앱이 환각적인 토사물처럼 보이게 됩니다. 일부 사용자는 적절한 색상을 얻기 위해 전용 색상맵을 기꺼이 사용합니다. 그러나 대부분의 사용자는 이를 참을 수 없습니다.
Windows는 거의 동일한 작업을 수행하지만 가능한 경우 모든 프로그램의 색상 인덱스에 포함되어야 하는 약 16개의 "기본 색상" 세트를 적용하고 창 장식 및 기타 UI 요소는 가능할 때마다 사용되도록 설계되었습니다. , 프로그램 간 전환 시 색상 왜곡을 최소화합니다.
좋은 소식은 데스크탑의 실제 색상 설정입니다.아니요실제로 변경되는 점은 제한된 색상 세트로 일반적으로 사용되는 데스크탑을 보고 있다는 것입니다. X 서버를 재설정하는 모든 작업(예: 로그아웃 및 다시 로그인)은 이를 정상 상태로 되돌려야 합니다.
불행하게도 트루 컬러 디스플레이가 표준이 되면서 가색 모드의 영향을 처리하고 한 컬러 모드에서 다른 컬러 모드로 전환하는 것조차 잃어버린 예술이 되었습니다. 최신 데스크탑에서는 디스플레이가 항상 최대 기본 해상도와 색상 심도로 실행되기를 기대합니다. 하지만 오래된 DirectX 게임을 사용하면 문제가 발생합니다.
예전에는 - 및 - 키 를 /etc/X11/xorg.conf
사용 하여 파일에 구성된 다양한 디스플레이 모드 간을 전환할 수 있었지만 이제는 디스플레이 모드가 자동으로 감지되고 모드 전환 키가 기본적으로 비활성화될 수 있습니다. 실수로 누른 수천 개의 키 중 하나를 누르면 매우 혼란스러워질 것입니다.CtrlAltNumpad+Numpad-
X11에게 디스플레이 색상 모드를 전환하도록 지시할 수 있는 모든 프로그램이나 도구는 이 라이브러리를 사용해야 한다고 생각 libXtst
하지만 디스플레이를 기본 트루 컬러 모드로 효과적으로 재설정하는 프로그램이나 도구를 찾을 수 없습니다. 해당 명령을 시도해 볼 수는 있지만 xrefresh
큰 기대는 없습니다. 여기서 필요한 기능을 제대로 수행하지 못하는 것 같습니다.