📄 displaymode.htm
字号:
FACE="Arial" SIZE="3">DirectDraw</font>参考手册”中的“像素格式掩码”。</p>
<p ALIGN="JUSTIFY">显示模式可以由多于一个的应用程序改变,只要它们共享同一块显卡。只有当应用程序拥有对<font
FACE="Arial" SIZE="3">DirectDraw</font>对象独占的访问,你才可以改变显示模式的位深度。当显示模式被改变的时候,所有的<font
FACE="Arial" SIZE="3">DirectDrawSurface</font>对象将丢失它们的页面内存,并且对任何操作不起反应。这时,一个页面的内存必须被重新分配,调用<font
FACE="Arial" SIZE="3">IDirectDrawSurface3::Restore</font>函数。</p>
<p ALIGN="JUSTIFY">必须重声的是:<font FACE="Arial" SIZE="3">DirectDraw</font>的独占模式并不阻止其它的应用程序分配<font
FACE="Arial" SIZE="3">DirectDrawSurface</font>对象,也不阻止它们使用<font
FACE="Arial" SIZE="3">DirectDraw</font>或<font FACE="Arial" SIZE="3">GDI</font>的函数特性。但是,它确实阻止了其它的应用程序对显示模式或调色板的访问。</p>
<hr>
<b><font FACE="黑体"><p></font><a name="还原显示模式">还原显示模式</a><font
FACE="黑体"></p>
</font></b><font SIZE="3"><p align="right"><a href="#目录"><font face="宋体">返回目录</font></a></p>
</font><p ALIGN="JUSTIFY">在应用程序结束的时候,你可以明确的调用<font
FACE="Arial" SIZE="3">IDirectDraw2::RestoreDisplayMode</font>函数,使显示器还原到原始的显示模式。如果你使用的是<font
FACE="Arial" SIZE="3">IDirectDraw2::SetDisplayMode</font>函数来改变显示模式,并且应用程序具有独占的控制级,那么,当重新设置控制级为普通时,原始的显示模式会自动还原。如果你使用的是<font
FACE="Arial" SIZE="3">IDirectDraw::SetDisplayMode</font>函数,那么你必须明确的调用<font
FACE="Arial" SIZE="3">RestoreDisplayMode</font>以还原显示模式。</p>
<hr>
<b><font FACE="Arial"><p></font><a name="ModeX与Mode 13显示模式">ModeX与Mode 13显示模式</a><font
FACE="黑体"></p>
</font></b><font SIZE="3"><p align="right"><a href="#目录"><font face="宋体">返回目录</font></a></p>
</font><font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">DirectDraw</font>同时支持<font
FACE="Arial" SIZE="3">Mode 13</font>和<font FACE="Arial" SIZE="3">Mode X</font>显示模式。<font
FACE="Arial" SIZE="3">Mode 13</font>是一种线性不可换页的<font FACE="Arial"
SIZE="3">320x200x8</font>的基于调色板的显示模式,因为它的<font
FACE="Arial" SIZE="3">16</font>进制<font FACE="Arial" SIZE="3">BIOS</font>模式编号是<font
FACE="Arial" SIZE="3">13</font>,而被广泛的称之为<font FACE="Arial" SIZE="3">Mode
13</font>模式。要得到更多关于它的资料,请参阅“<font FACE="Arial"
SIZE="3">Mode 13</font>的支持”。<font FACE="Arial" SIZE="3">Mode X</font>是从标准的<font
FACE="Arial" SIZE="3">VGA Mode 13</font>模式演化而来的。通过使用<font
FACE="Arial" SIZE="3">VGA</font>显示适配器的<font FACE="Arial" SIZE="3">EGA</font>多图象平面系统,它允许开发者使用最多可达<font
FACE="Arial" SIZE="3">256K</font>字节的视频<font FACE="Arial" SIZE="3">RAM</font>(而<font
FACE="Arial" SIZE="3">Mode 13</font>仅为<font FACE="Arial" SIZE="3">64K</font>)。</p>
<p ALIGN="JUSTIFY">在<font FACE="Arial" SIZE="3">Windows 95</font>系统上,<font
FACE="Arial" SIZE="3">DirectDraw</font>为所有的显示卡提供了两种<font
FACE="Arial" SIZE="3">Mode X</font>模式:<font FACE="Arial" SIZE="3">320x200x8</font>和<font
FACE="Arial" SIZE="3">320x240x8</font>。某些显卡同样也支持线性低分辨率模式。在这种模式中,主页面可以被锁定和直接访问,这在<font
FACE="Arial" SIZE="3">Mode X</font>模式中是不可能的。</p>
<p ALIGN="JUSTIFY">应用程序在调用<font FACE="Arial" SIZE="3">IDirectDraw2::SetCooperativeLevel</font>函数时,只有使用了<font
FACE="Arial" SIZE="3">DDSCL_ALLOWMODEX</font>、<font FACE="Arial" SIZE="3">DDSCL_FULLSCREEN</font>、和<font
FACE="Arial" SIZE="3">DDSCL_EXCLUSIVE</font>标志符,才能使用<font FACE="Arial"
SIZE="3">Mode X</font>模式。如果没有指定<font FACE="Arial" SIZE="3">DDSCL_ALLOWMODEX</font>标志符,<font
FACE="Arial" SIZE="3">IDirectDraw2::EnumDisplayModes</font>将不会列举出<font
FACE="Arial" SIZE="3">Mode X</font>模式,并且调用<font FACE="Arial" SIZE="3">IDirectDraw2::SetDisplayMode</font>函数以请求一个<font
FACE="Arial" SIZE="3">Mode X</font>模式,将会失败。</p>
<font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">Windows 95</font>和<font FACE="Arial"
SIZE="3">Windows NT</font>不直接支持<font FACE="Arial" SIZE="3">Mode X</font>模式,因此,当你的应用程序处于<font
FACE="Arial" SIZE="3">Mode X</font>模式时,你将无法使用<font FACE="Arial"
SIZE="3">IDirectDrawSurface3::Lock</font>或<font FACE="Arial" SIZE="3">IDirectDrawSurface3::Blt</font>以锁定或<font
FACE="Arial" SIZE="3">Blit</font>到主页面。你同样也不能对主页面,或<font
FACE="Arial" SIZE="3">GDI</font>的屏幕设备环境使用<font FACE="Arial" SIZE="3">IDirectDrawSurface3::GetDC</font>函数。<font
FACE="Arial" SIZE="3">Mode X</font>模式是在<font FACE="Arial" SIZE="3">DDSCAPS</font>结构中由<font
FACE="Arial" SIZE="3">DDSCAPS_MODEX</font>标志符指定的,该结构是<font
FACE="Arial" SIZE="3">DDSURFACEDESC</font>结构的一部分(<font FACE="Arial" SIZE="3">DDSURFACEDESC</font>结构是由<font
FACE="Arial" SIZE="3">IDirectDrawSurface3::GetCaps</font>和<font FACE="Arial" SIZE="3">IDirectDraw2::EnumDisplayModes</font>函数返回的)。</p>
<p ALIGN="JUSTIFY">目前,<font FACE="Arial" SIZE="3">Windows NT</font>还不能支持<font
FACE="Arial" SIZE="3">Mode X</font>模式和某些线性低分辨率模式。</p>
<hr>
<b><font FACE="黑体"><p></font></font><font SIZE="3"><a
name="对高分辨率和真彩色的支持"><font face="宋体">对高分辨率和真彩色的支持</font></a></b></p>
<p align="right"></font><font FACE="宋体" SIZE="3"><a href="#目录">返回目录</a></p>
</blockquote>
</font>
<blockquote>
<font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">DirectDraw</font><font FACE="宋体"
SIZE="3">支持显示设备驱动所支持的所有屏幕分辨率和色彩位深度。</font><font
FACE="Arial" SIZE="3">DirectDraw</font><font FACE="宋体" SIZE="3">允许应用程序改变显示模式到计算机显示驱动所支持的任何一个模式,包括</font><font
FACE="Arial" SIZE="3">24</font><font FACE="宋体" SIZE="3">或</font><font FACE="Arial"
SIZE="3">32</font><font FACE="宋体" SIZE="3">位色彩模式(也称为真彩色)。</font><font
FACE="Arial" SIZE="3"></p>
</font>
</blockquote>
<blockquote>
<font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">DirectDraw</font><font FACE="宋体"
SIZE="3">同样也支持对真彩色页面的硬件仿真层(</font><font FACE="Arial"
SIZE="3">HEL</font><font FACE="宋体" SIZE="3">)的</font><font FACE="Arial" SIZE="3">Blit</font><font
FACE="宋体" SIZE="3">操作。如果显示设备驱动支持这些分辨率的</font><font
FACE="Arial" SIZE="3">Blit</font><font FACE="宋体" SIZE="3">操作,那么硬件</font><font
FACE="Arial" SIZE="3">Blitter</font><font FACE="宋体" SIZE="3">(位块传送器)将被用来进行视频</font><font
FACE="Arial" SIZE="3">RAM</font><font FACE="宋体" SIZE="3">对视频</font><font
FACE="Arial" SIZE="3">RAM</font><font FACE="宋体" SIZE="3">的</font><font FACE="Arial"
SIZE="3">Blit</font><font FACE="宋体" SIZE="3">操作。否则,</font><font
FACE="Arial" SIZE="3">HEL</font><font FACE="宋体" SIZE="3">将被用来完成此项操作。</font><font
FACE="Arial" SIZE="3"></p>
</font>
</blockquote>
<blockquote>
<font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">Windows 95</font><font FACE="宋体"
SIZE="3">和</font><font FACE="Arial" SIZE="3">Windows NT</font><font FACE="宋体"
SIZE="3">允许用户指定它们所使用的显示器类型。</font><font FACE="Arial"
SIZE="3">DirectDraw</font><font FACE="宋体" SIZE="3">核对已知的显示模式与已安装的显示器所限制使用的显示模式。如果</font><font
FACE="Arial" SIZE="3">DirectDraw</font><font FACE="宋体" SIZE="3">发现所请求的模式与显示器不兼容,对</font><font
FACE="Arial" SIZE="3">IDirectDraw2::SetDisplayMode</font><font FACE="宋体" SIZE="3">函数的调用失败。当你调用</font><font
FACE="Arial" SIZE="3">IDirectDraw2::EnumDisplayModes</font><font FACE="宋体" SIZE="3">函数时,只有显示器支持的模式才可以被列举出来。</p>
</font>
</blockquote>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -