⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clipper.htm

📁 DirectX 编程初级教程中文版。只要有C++基础和一点三维知识即可。
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>裁减器</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>

<body>
<b><font FACE="黑体" SIZE="5">

<p align="center"></font><a name="目录"><font face="宋体" size="6" color="#FF8000">裁减器</font></a></b></p>
<b><font size="6">

<p align="right" style="margin-top: -10; margin-bottom: -8"></font></b><a href="index.htm"
style="text-decoration: none"><font face="宋体" size="3"><span
style="text-decoration: none">返回上级</span></font></a><font FACE="黑体" size="3"></p>

<hr>
</font>

<blockquote>
  <font face="宋体" size="3"><ol>
    <li><a href="#什么是“裁减器(Clipper)”对象">什么是“裁减器(</font><font
      FACE="Arial" SIZE="3">Clipper</font><font face="宋体" size="3">)”对象</a></li>
    <li><a href="#裁减清单">裁减清单(</font><font FACE="Arial" SIZE="3">Clip list</font><font
      face="宋体" size="3">)</a></li>
    <li><a href="#共享DirectDrawClipper对象">共享</font><font FACE="Arial" SIZE="3">DirectDrawClipper</font><font
      face="宋体" size="3">对象</a></li>
    <li><a href="#独立的DirectDrawClipper对象">独立的</font><font FACE="Arial" SIZE="3">DirectDrawClipper</font><font
      face="宋体" size="3">对象</a></li>
    <li><a href="#用CoCreateInstance创建DirectDrawClipper对象">用</font><font FACE="Arial"
      SIZE="3">CoCreateInstance</font><font face="宋体" size="3">创建</font><font
      FACE="Arial" SIZE="3">DirectDrawClipper</font><font face="宋体" size="3">对象</a></li>
    <li><a href="#对系统鼠标使用裁减器">对系统鼠标使用裁减器</a></li>
    <li><a href="#对多窗口使用Clipper">对多窗口使用</font><font FACE="Arial"
      SIZE="3">Clipper</font></a></li>
  </ol>
</blockquote>

<hr>

<blockquote>
  <font face="宋体" size="3"><b><font FACE="黑体"><p><a
  name="什么是“裁减器(Clipper)”对象">什么是“裁减器(</font><font
  FACE="Arial">Clipper</font><font FACE="黑体">)”对象</a></p>
  </font></b></font><font size="4"><p align="right"></font><font face="宋体" size="3"><a
  href="#目录">返回目录</a></font></p>
</blockquote>

<blockquote>
  <font face="宋体" size="3"><p ALIGN="JUSTIFY">裁减器,或<font FACE="Arial" SIZE="3">DirectDrawClipper</font>对象,限定你的<font
  FACE="Arial" SIZE="3">Blit</font>操作到一个指定的页面区域。一个裁减器对象拥有一个或多个裁减清单。一个裁减清单是一个或一系列封闭的矩形,描述了页面上的一个或一系列区域,只有在该区域内才允许<font
  FACE="Arial" SIZE="3">Blit</font>。这些区域是用<font FACE="Arial" SIZE="3">RECT</font>结构来描述的,按屏幕坐标。</p>
  <p ALIGN="JUSTIFY">裁减清单是一个颇有价值的工具。它们最通常的作用是阻止你的应用程序在<font
  FACE="Arial" SIZE="3">Blit</font>操作时,超出屏幕的边界。举例来说,想象一个子图形从屏幕的一边逐渐进入屏幕。你不会想让你的子图形是突然出现在屏幕上的;你想让它从屏幕的边上一点一点的出现。如果没有裁减器对象,你应该需要在程序中加入一个逻辑判断和运算,逐步修改<font
  FACE="Arial" SIZE="3">Blit</font>操作的参数,以保护那些超出屏幕边缘的页面内存,如果没有这些逻辑操作的话,你的应用程序会产生内存访问异常(<font
  FACE="Arial" SIZE="3">memory access violations</font>)的错误。,</p>
  <p ALIGN="JUSTIFY">下面的插图展示了这种类型的裁减。</p>
  <p ALIGN="JUSTIFY">你可以使用裁减器对象来指定目标页面的特定区域为可写的。<font
  FACE="Arial" SIZE="3">DirectDraw</font>在这些区域中裁减<font FACE="Arial" SIZE="3">Blit</font>操作,以保护那些指定裁减矩形以外的区域不被改写。</p>
  <p ALIGN="JUSTIFY">下面的例图展示了这种类型的裁减。</p>
  </font><hr>
</blockquote>

<blockquote>
  <font face="宋体" size="3"><b><p><a name="裁减清单">裁减清单</a></p>
  </b></font><font size="4"><p align="right"></font><font face="宋体" size="3"><a
  href="#目录">返回目录</a></font></p>
</blockquote>

<blockquote>
  <font face="宋体" size="3"><font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">DirectDraw</font>用<font
  FACE="Arial" SIZE="3">DirectDrawClipper</font>对象来管理裁剪表。一个裁剪表是描述页面可见区域的一系列矩形。一个<font
  FACE="Arial" SIZE="3">DirectDrawClipper</font>对象可以被依附于任何一个页面。一个窗口句柄同样也可以与一个<font
  FACE="Arial" SIZE="3">DirectDrawClipper</font>对象相依附,在这种情况下,<font
  FACE="Arial" SIZE="3">DirectDraw</font>更新窗口的<font FACE="Arial" SIZE="3">DirectDrawClipper</font>对象的裁减表。</p>
  <p ALIGN="JUSTIFY">尽管在<font FACE="Arial" SIZE="3">DirectDraw HAL</font>看来,裁减表是可见的,但<font
  FACE="Arial" SIZE="3">DirectDraw</font>调用<font FACE="Arial" SIZE="3">HAL</font>只用于符合裁剪表所需要的矩形区域。比如,如果一个页面的右上方被裁减,并且应用程序指示<font
  FACE="Arial" SIZE="3">DirectDraw</font>将这个页面映射到主页面(<font
  FACE="Arial" SIZE="3">primary surface</font>)上,则<font FACE="Arial" SIZE="3">DirectDraw</font>将会使<font
  FACE="Arial" SIZE="3">HAL</font>进行两个映射,首先是页面的左上角,其次是页面的下部区域。</p>
  <p ALIGN="JUSTIFY">通过<font FACE="Arial" SIZE="3">IDirectDrawClipper::SetClipList</font>函数,你可以将整个裁减清单连接到裁减器上(如果设备支持该操作),而不是多次调用该函数,每次连接裁减清单中的一个矩形。除此之外,通过调用<font
  FACE="Arial" SIZE="3">IDirectDrawClipper::SetHWnd</font>函数,并且指定一个窗口的句柄,你还可以将该窗口连接到裁减器上。如果你已经让裁减器使用一个窗口句柄,那么,你将不能给该裁减器再设置另外的矩形。</p>
  <p ALIGN="JUSTIFY">覆盖页面的裁减只有在覆盖硬件可以支持,并且目标关键色没有被激活的情况下才能使用。</p>
  </font><hr>
</blockquote>

<blockquote>
  <font face="宋体" size="3"><b><font FACE="黑体"><p><a
  name="共享DirectDrawClipper对象">共享</font><font FACE="Arial">DirectDrawClipper</font><font
  FACE="黑体">对象</a></p>
  </font></b></font><font size="4"><p align="right"></font><font face="宋体" size="3"><a
  href="#目录">返回目录</a></font></p>
</blockquote>

<blockquote>
  <font face="宋体" size="3"><font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">DirectDrawClipper</font>对象可以被多个页面所共享。例如,同一个<font
  FACE="Arial" SIZE="3">DirectDrawClipper</font>对象可以被设置到一个换页链的前台缓存(<font
  FACE="Arial" SIZE="3">front buffer</font>)和后台缓存(<font FACE="Arial" SIZE="3">back 
  buffer</font>)上。当应用程序使用<font FACE="Arial" SIZE="3">IDirectDrawSurface3::SetClipper</font>,将一个<font
  FACE="Arial" SIZE="3">DirectDrawClipper</font>对象依属到一个页面,则页面将递增该<font
  FACE="Arial" SIZE="3">DirectDrawClipper</font>对象的引用记录(<font FACE="Arial"
  SIZE="3">reference count</font>)。当页面的引用记录达到<font FACE="Arial"
  SIZE="3">0</font>时,页面将递减<font FACE="Arial" SIZE="3">DirectDrawClipper</font>对象的引用记录。除此之外,如果调用<font
  FACE="Arial" SIZE="3">IDirectDrawSurface3::SetClipper</font>,并使其裁减接口指针为<font
  FACE="Arial" SIZE="3">NULL</font>,则<font FACE="Arial" SIZE="3">DirectDrawClipper</font>对象将从页面上分离,其引用记录也将递减<font
  FACE="Arial" SIZE="3">1</font>。</p>
  <p ALIGN="JUSTIFY">注意:如果在同一页面多次调用<font FACE="Arial" SIZE="3">IDirectDrawSurface3::SetClipper</font>以依属同一个<font
  FACE="Arial" SIZE="3">DirectDrawClipper</font>对象,则它的引用记录只会递增一次。以后的调用不会影响到该对象的引用记录。</p>
  </font><hr>
</blockquote>

<blockquote>
  <font face="宋体" size="3"><b><font FACE="黑体"><p><a
  name="独立的DirectDrawClipper对象">独立的</font><font FACE="Arial">DirectDrawClipper</font><font
  FACE="黑体">对象</a></p>
  </font></b></font><font size="4"><p align="right"></font><font face="宋体" size="3"><a
  href="#目录">返回目录</a></font></p>
</blockquote>

<blockquote>
  <font face="宋体" size="3"><p ALIGN="JUSTIFY">你可以创建不直接属于任何特定<font

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -