编写:Ove K鍁en <ovek@winehq.com>
(提取自 wine/documentation/cdrom-labels)
多数 Wine 用户在一个叫做 X11 的窗口系统下运行 Wine。在 Wine 历史上的多数时期,这是唯一的可获得的显示驱动器,但是在近几年,已经重新组织了部分 Wine 来允许其他显示驱动器(当前只能获得一个可替代的显示驱动器是 Patrik Stridvall 的基于 ncurses 的 ttydrv,他声称用它来显示 calc.exe)。在~/.wine/config 的 [wine] 段中用 GraphicsDriver 选项来选择显示驱动器,但在本文中我只覆盖 x11drv 驱动器。
x11drv 驱动器由两个概念上的不同部分组成,图形驱动器(GDI 部分),和窗口驱动器(USER 部分)。但它们二者都被连接到 libx11drv.so 模块中(你用 GraphicsDriver 选项装载它)。在 Wine 中,运行在 X11 上,图形驱动器必须在窗口驱动器提供的 drawable (window interior)上绘图。这与 Windows 模型有一点区别, 在 X11 中,窗口系统建立和配置由图形驱动器控制的设备上下文,而允许应用程序在它们喜欢的任何地方用挂钩连接起(hook into)这个联系。所以,为了要在兼容性和可用性之间提供有道理的任何折中,x11drv 有三种不同的操作模式。
缺省的。窗口管理器无关(完全忽略任何运行的窗口管理器)。 窗口装饰(decoration)(标题条,边界,等)由 Wine 绘制来使感观如同真实的 Windows。这兼容于依靠可以计算出这些装饰的精确大小的应用程序,或想自己画它们的程序。
使用 --managed 命令行选项或 Managed wine.conf 选项(见后)指定。普通的顶层框架窗口,有粗边界,标题条,和由你的窗口管理器管理的系统菜单。这允许这些应用可以与你的桌面的其余部分更好的集成,但可能不总是工作的很好。(非常需要一个重写的这种操作模式,使它更加健壮和更少瑕疵(patchy),并计划在 Wine 1.0 发行之前完成。)
使用 --desktop 命令行选项(加上一个几何,比如给一个 800x600 这么大的桌面 --desktop 800x600, 或者在显示器的左上角自动的定位桌面 --desktop 800x600+0+0 )。这是与 Windows 模型最兼容的模式。所有应用程序窗口都是在提供给 Wine 的桌面窗口内的 Wine 绘制的窗口(桌面窗口自身由你的窗口管理器来管理),而 Windows 应用可以随心所欲的在这个虚拟工作空间操作并认为完全拥有它,不受你的其他 X 应用程序的打扰。
只在你拥有一个基于调色板(palette)的显示器时使用,例如,如果你的 X 服务器被设置为 8bpp 的色深,并且你没有想要的一个私有颜色映射。它指定 Wine 所占有的共享颜色映射(colormap)单元(palette entries)的最大数目。这个值越高,其他应用程序可获得的颜色就越少。
在你拥有一个基于调色板的显示器时使用,例如,如果你的 X 服务器被设置为 8bpp 的色深。它指定你不想使用共享的颜色映射,而是使用一个私有的颜色映射,这这里可以获得全部的 256 种颜色。不足是这个 Wine 的私有颜色映射只在鼠标指针在这个 Wine 窗口期间可以见到,所以如果你频繁使用鼠标就会经常见到迷幻的闪烁和滑稽的颜色。
它确定在 blit 操作中对于特定的 ROP 代码使用快速 X11 例程还是严格的 Wine 例程。多数用户不能找出任何区别。
只在多色深显示器上使用。它指定 Wine 应当使用(并告诉 Windows 应用程序)那种可获得的色深。
它指定使用那个 X11 显示器,并且如果被指定了,它将屏弃 DISPLAY 环境变量和 --display 命令行选项二者。
Wine 可以让框架窗口由你的窗口管理器来管理。这个选项指定你是否想使之成为缺省的。
它指定你是否想让 DirectDraw 使用 XFree86 的直接图形体系(Direct Graphics Architecture -- DGA),这可以接管整个显示器并在全屏幕下以最大速度运行游戏。(使用 DGA1 (XFree86 3.x),你仍需要首先把 X 服务器配置成游戏所需的 bpp,而使用 DGA2 (XFree86 4.x),依赖于你的驱动器的能力,有可能使用运行时颜色选择。) 但要当心如果 Wine 在 DGA 模式下崩溃,要想收复对你的计算机的控制就只能重启动了。DGA 通常要求要么特权要么对 /dev/mem 的读/写访问权限。
如果你不希望 DirectX 使用 DGA,你至少可以使用 X 共享内存扩展(X Shared Memory extensions -- XShm)。它比 DGA 慢很多,原因是应用程序不直接访问物理的桢缓冲区,但是使用共享内存来绘制桢至少比使用标准 X11 套接口要快,即使通过 Wine 的 XShm 支持有时仍会崩溃。
如果你不使用 DGA,你可能想要一种替代的方式来确保鼠标光标滞留在游戏窗口中。这个选项就是干这个的。当然,象使用 DGA 一样,如果你的 Wine 崩溃了,你就有麻烦了(但不象 DGA 情况下那么糟,因为你仍然可以使用键盘来退出 X)。
只在你使用了 --desktop 命令行选项来在一个桌面窗口中运行时使用。指定建立的桌面窗口是否有双缓冲区的 visual,是多数 OpenGL 游戏正确运行所需的东西。