切換xwin解析度如何不讓視窗超過螢幕範圍

歡迎提問 debian desktop 相關問題,何謂 desktop ? 舉凡您日常生活會用到的部份,如上網 ( www 、 bbs ..) 、程式設計、繪圖...等等。 通常以 X Window 環境底下問題為主。

切換xwin解析度如何不讓視窗超過螢幕範圍

文章阿信 » 週五 12月 20, 2002 8:59 am

請問一下,小弟在x-win設定檔中設定好了1152x864 , 800x600,然後預設是1152x768。

進到x-win後用kb切換解析度,切換到800x600的時候都會變成虛擬桌面的樣子,就是x-win畫面會超過螢幕,就要用滑鼠移動才能看到全部的範圍。

小弟也在設定檔中加入了modeline的敘述,但是依然不能限制x-win的畫面超過螢幕。

請問一下這該如何解決。
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

re:切換xwin解析度如何不讓視窗超過螢幕範圍

文章moto » 週一 12月 23, 2002 9:57 am

man XF86Config-4

找 "virtual" or "visual" keyword . 我有點忘記是那一個...但是可以從這方向去 try ;-)
頭像
moto
摩托學園站長
摩托學園站長
 
文章: 2808
註冊時間: 週二 9月 03, 2002 3:37 am
來自: 台北

re:切換xwin解析度如何不讓視窗超過螢幕範圍

文章louie » 週一 12月 23, 2002 11:20 pm

這個問題也困擾了我好幾年了, 看來是沒辦法解決的, X server 會以最大的解析度為 Virtual Desktop, 如果強制設 Virtual 800 600, 那個 1152x864 的解析度就會不見了, 好奇怪。 和那個無法直接切換 depth 一樣, 這可能是 X 的限制吧 !
louie
快樂的大學生
快樂的大學生
 
文章: 593
註冊時間: 週一 9月 09, 2002 7:58 pm

re:切換xwin解析度如何不讓視窗超過螢幕範圍

文章阿信 » 週二 12月 24, 2002 4:45 pm

唉唉唉唉唉唉...看來只有放棄了,這樣實在是很不方便呢。
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

re:切換xwin解析度如何不讓視窗超過螢幕範圍

文章louie » 週二 12月 24, 2002 11:38 pm

不曉得阿信兄什麼時候要用到 1152x864, 又什麼狀況下會用到 800x600, 如果系統夠強的話, 何不開二個 X, 一個是 1152x864, 另外一個最大解析度為 800x600, 這樣子就勉強可解決了
louie
快樂的大學生
快樂的大學生
 
文章: 593
註冊時間: 週一 9月 09, 2002 7:58 pm

re:切換xwin解析度如何不讓視窗超過螢幕範圍

文章阿信 » 週二 12月 24, 2002 11:46 pm

耶...因為小弟平常使用1152x864的解析度當工作用,800x600是看影片的時候用的,所以才會希望切換解析度的時候,畫面不要超過螢幕。
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

re:切換xwin解析度如何不讓視窗超過螢幕範圍

文章louie » 週三 12月 25, 2002 2:10 am

看影片應該沒差吧, 我用 mplayer 的全螢幕模式看得滿不錯的啊
louie
快樂的大學生
快樂的大學生
 
文章: 593
註冊時間: 週一 9月 09, 2002 7:58 pm

re:切換xwin解析度如何不讓視窗超過螢幕範圍

文章阿信 » 週三 12月 25, 2002 9:32 am

最主要是realplayer...不能夠全螢幕,所以想縮小解析度來看,才不會失真太多。
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

re:切換xwin解析度如何不讓視窗超過螢幕範圍

文章octapult » 週三 12月 25, 2002 11:23 am

阿信兄,您可以試試我用全螢幕模式來玩 Warcraft III 的方式:

在 /etc/X11/XF86Config-4 裡面加上:
代碼: 選擇全部
Section "Screen"
        Identifier      "RealPlayer"
        Device          "Generic Video Card"
        Monitor         "Generic Monitor"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Modes           "800x600"
        EndSubSection
EndSection

請修改 Device 和 Monitor,對應成您的 Device 和 Monitor。
接著退出 X,再執行下面這個指令:
代碼: 選擇全部
xinit -- /usr/bin/X11R6/bin/X :1 -screen RealPlayer

X 就會使用 RealPlayer 這個 800x600 全螢幕的 screen 了。
缺點是如果要在這個 screen 執行其他的應用程式會有一些麻煩,而且所有的視窗都沒有 title bar,沒辦法移動視窗位置。
octapult
摩托學園!學園長們
摩托學園!學園長們
 
文章: 512
註冊時間: 週六 9月 07, 2002 10:30 pm
來自: Seyda Neen, Morrowind

re:切換xwin解析度如何不讓視窗超過螢幕範圍

文章louie » 週三 12月 25, 2002 11:13 pm

請教一下, octapult 兄, 照你的方法, 果然可以開另一個X server, 可是我沒你說的問題, 我的有 title bar, 但是發現了另一個問題, 就是去檢視 log, 發現原來在 display 0 的那個 X server, drm 有啟動, 但是 display 1 那個的 drm 就無法動了, 這樣子會不會影響遊戲的速度啊
display 0 的 log
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 5, (OK)
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 5, (OK)
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 5, (OK)
drmGetBusid returned ''
(II) MGA(0): [drm] created "mga" driver at busid "PCI:1:0:0"
(II) MGA(0): [drm] added 8192 byte SAREA at 0xd88e6000
(II) MGA(0): [drm] mapped SAREA 0xd88e6000 to 0x41191000
(II) MGA(0): [drm] framebuffer handle = 0xec000000
(II) MGA(0): [drm] added 1 reserved context for kernel
(II) MGA(0): [agp] Mode 0x07000201 [AGP 0x1106/0x0598; Card 0x102b/0x0521]
(II) MGA(0): [drm] Disabling AGP 2x PLL encoding
(II) MGA(0): [agp] 12288 kB allocated with handle 0xd90ea000
(II) MGA(0): [agp] WARP microcode handle = 0xe0000000
(II) MGA(0): [agp] WARP microcode mapped at 0x41193000
(II) MGA(0): [agp] Primary DMA handle = 0xe0008000
(II) MGA(0): [agp] Primary DMA mapped at 0x4119b000
(II) MGA(0): [agp] DMA buffers handle = 0xe0108000
(II) MGA(0): [agp] DMA buffers mapped at 0x4129b000
(II) MGA(0): [drm] Added 128 65536 byte DMA buffers
(II) MGA(0): [drm] Registers handle = 0xe8000000
(II) MGA(0): [drm] Status handle = 0xd90f3000
(II) MGA(0): [agp] Status page mapped at 0x41a9b000
(II) MGA(0): [dri] visual configs initialized
(II) MGA(0): Memory manager initialized to (0,0) (1024,1535)
(II) MGA(0): Largest offscreen area available: 1024 x 767
(II) MGA(0): Reserved back buffer at offset 0x300000
(II) MGA(0): Reserved depth buffer at offset 0x480000
(II) MGA(0): Reserved 2048 kb for textures at offset 0x600000
(II) MGA(0): Using XFree86 Acceleration Architecture (XAA)
Screen to screen bit blits
Solid filled rectangles
Solid filled trapezoids
8x8 mono pattern filled rectangles
8x8 mono pattern filled trapezoids
Indirect CPU to Screen color expansion
Screen to Screen color expansion
Solid Lines
Dashed Lines
Scanline Image Writes
Offscreen Pixmaps
Setting up tile and stipple cache:
20 128x128 slots
5 256x256 slots
(==) MGA(0): Backing store disabled
(==) MGA(0): Silken mouse enabled
(II) MGA(0): Using overlay video
(II) MGA(0): X context handle = 0x00000001
(II) MGA(0): [drm] installed DRM signal handler
(II) MGA(0): [DRI] installation complete
(II) MGA(0): [drm] Mapped 128 DMA buffers
(==) MGA(0): Direct rendering enabled


display 1 的 log
(II) MGA(0): [drm] bpp: 16 depth: 16
(II) MGA(0): [drm] Sarea 2200+664: 2864
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 6, (OK)
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 6, (OK)
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 6, (OK)
drmGetBusid returned 'PCI:1:0:0'
drmOpenDevice: minor is 1
drmOpenDevice: node name is /dev/dri/card1
drmOpenDevice: open result is -1, (No such device)
drmOpenDevice: Open failed
drmOpenDevice: minor is 2
drmOpenDevice: node name is /dev/dri/card2
drmOpenDevice: open result is -1, (No such device)
drmOpenDevice: Open failed
drmOpenDevice: minor is 3
.
.
.drmOpenByBusid: busid is PCI:1:0:0
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 6, (OK)
drmOpenByBusid: drmOpenMinor returns 6
drmOpenByBusid: drmGetBusid reports PCI:1:0:0
(II) MGA(0): [drm] drmSetBusid failed (6, PCI:1:0:0), Device or resource busy
(EE) MGA(0): [drm] DRIScreenInit failed. Disabling DRI.
(II) MGA(0): Using 6072 lines for offscreen memory.
(II) MGA(0): Using XFree86 Acceleration Architecture (XAA)
Screen to screen bit blits
Solid filled rectangles
Solid filled trapezoids
8x8 mono pattern filled rectangles
8x8 mono pattern filled trapezoids
Indirect CPU to Screen color expansion
Screen to Screen color expansion
Solid Lines
Dashed Lines
Scanline Image Writes
Offscreen Pixmaps
Setting up tile and stipple cache:
32 128x128 slots
18 256x256 slots
7 512x512 slots
(==) MGA(0): Backing store disabled
(==) MGA(0): Silken mouse enabled
(II) MGA(0): Using overlay video
(==) MGA(0): Direct rendering disabled

竟然說 Device or resource busy, 真奇怪。
louie
快樂的大學生
快樂的大學生
 
文章: 593
註冊時間: 週一 9月 09, 2002 7:58 pm

re:切換xwin解析度如何不讓視窗超過螢幕範圍

文章octapult » 週三 12月 25, 2002 11:43 pm

嗯,我也不清楚耶。
我的顯示卡是 nvidia 的卡,所以沒有開啟 DRI,而且在開啟了兩個 X 以後,還是沒有降低效能的感覺。
(因為另外一個 X 處於 "休眠" 狀態 :-P)

或者您可以試試將 screen 0 的 X 關閉,只開 screen 1 的 X 看看可不可以啟動 DRI,再確定是否是 /etc/X11/XF86Config-4 的 Device 欄有問題?
octapult
摩托學園!學園長們
摩托學園!學園長們
 
文章: 512
註冊時間: 週六 9月 07, 2002 10:30 pm
來自: Seyda Neen, Morrowind

re:切換xwin解析度如何不讓視窗超過螢幕範圍

文章louie » 週四 12月 26, 2002 3:29 am

按照 octapult 兄說的, 只開 display 1 時, log 就和開在 display 0 時一模一樣, 看來是 dri 只能給一個 X server 用, 不曉得有沒有人知道這是怎麼回事。所以我改天要玩 game 要在 display 0 玩才是, 不過為什麼 nvidia 的不會有這種問題, 好像滿厲害的。 另外, 如果 octapult 兄同時在二個 X server 都開 game, 一個是 war III, 另一個則是 wolfenstein, 不曉得會不會 delay ? ^_^
louie
快樂的大學生
快樂的大學生
 
文章: 593
註冊時間: 週一 9月 09, 2002 7:58 pm

re:切換xwin解析度如何不讓視窗超過螢幕範圍

文章阿信 » 週四 12月 26, 2002 12:58 pm

這...會不會太操硬體啦!!
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

re:切換xwin解析度如何不讓視窗超過螢幕範圍

文章octapult » 週五 12月 27, 2002 12:41 am

關於 louie 兄的問題,我上次的測試是只有其中一個 X 有開遊戲的狀況,才會沒有效率降低的問題。
這次我開了兩個 X,其中一個開 Warcraft III,另外一個開 Quake 2,結果 Quake 2 的 fps 由 44.1 降為 35.5
(Nvidia Riva TNT 2 ultra、1024x768)。
如果當時 Warcraft III 再執行一個 replay 的話,這個數據應該還會再降低。
octapult
摩托學園!學園長們
摩托學園!學園長們
 
文章: 512
註冊時間: 週六 9月 07, 2002 10:30 pm
來自: Seyda Neen, Morrowind

re:切換xwin解析度如何不讓視窗超過螢幕範圍

文章louie » 週五 12月 27, 2002 1:42 pm

ok, 謝謝 octapult 的大力技援, 從中學到了不少 ^_^
louie
快樂的大學生
快樂的大學生
 
文章: 593
註冊時間: 週一 9月 09, 2002 7:58 pm

下一頁

回到 debian desktop

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客