亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dx5.txt

?? 我下的時候覺得好編程類的
?? TXT
?? 第 1 頁 / 共 5 頁
字號:
以通過定制的用戶接口利用這一信息來顯示安裝狀態。另外,DirectSetup提供了多個玩家的游戲的方法,在游戲中,玩家可以使用
DirectPlayLobby從注冊表中去掉注冊信息。
6、AutoPlay	AutoPlay同DirectX3中一樣,未做變動。

DirectX5.0最新游戲編程指南
 DirectDraw篇

    DirectDraw是DirectX SDK的主要部分之一,它允許你直接對顯示內存操作,支持硬件位塊傳輸、硬件覆蓋、表面翻轉,并且保持同目
前的基于Windows的應用程序和驅動程序兼容。
    DirectDraw是一種軟件接口,它除了能直接對顯示設備存取外,還保持同Windows圖形設備接口GDI(Graphics Device Interface)兼容。
對于圖形來說,它并不是一種高級應用程序接口。DirectDraw提供了一種設備無關性的方法,使得基于Windows的應用軟件和游戲(例如
三維圖形軟件包和數字視頻游戲)能直接獲取顯示設備的特性。
    DirectDraw能工作于各種各樣的顯示設備,從簡單的SVGA顯示器到能夠提供剪切、拉伸和非RGB格式支持的高級顯示設備。DirectDraw
接口使得你的應用程序能仿真基本硬件的性能并使用硬件加速特性;硬件不提供的特性將由DirectX來仿真。DirectDraw提供的對顯示內存
的設備無關性的訪問能使你很容易地管理顯示內存。你的應用程序只需要識別一些基本的設備屬性,它們都是標準的硬件應用,例如RGB
和YUV格式的顏色。你不需要調用特殊的過程來使用位塊傳輸或操縱調色板寄存器。使用DirectDraw,你可以很容易地操作顯示內存,充
分利用不同類型顯示設備的位塊傳輸和顏色解壓功能,而不需要依賴于特定的硬件。DirectDraw可以運行在Windows95/NT4.0和以后的版本
中。
    DirectDraw的硬件抽象層HAL(Hardware Abstraction Layer)提供了統一的接口,通過該接口,程序可以直接在顯示內存或視頻內存中
工作,獲取硬件的最佳性能。
    DirectDraw對視頻硬件的性能進行估計,只要可能就會使用硬件提供的特定性能。例如,如果視頻卡支持位塊傳輸,DirectDraw就會把
位塊傳輸委托給視頻卡,CPU不參與位塊傳輸的處理,這就大大提高了程序運行的性能。另外,DirectDraw提供了硬件仿真層HEL(Hardware 
Emulation Layer ),使得在某些硬件不存在時可以用軟件仿真來支持本應該由這些硬件提供的特性。
    DirectDraw運行在Windows 95上,能夠利用32位內存的優越性和操作系統提供的“平坦”內存模型。DirectDraw將系統內存和視頻內
存作為大塊存儲而不是一小段一小段地使用。另外,DirectDraw還為 Windows圖形程序員帶來了許多強大的功能:
  .DirectDraw使得在全屏模式下的應用多個后臺緩沖區的頁翻轉變得容易
  .支持窗口模式和全屏模式下的剪切功能
  .支持三維 Z緩沖區
  .支持Z方向的硬件輔助覆蓋
  .提供對圖象拉伸的硬件的存取
  .同時訪問標準的和增強的顯示設備內存區域
  .動態調色板、獨占式的硬件訪問、分辨率切換等
將這些特性結合在一起,你就可以較容易地編制出性能超過基于GDI的標準Windows游戲甚至是MS-DOS下的游戲。

一、DirectDraw的基本圖象概念
    DirectDraw提供了一組不同于GDI的圖形術語,因此,要用好DirectDraw,首先應該了解其中的有關概念。下面就對DirectDraw中重
要的概念作一介紹。
1.1設備無關性位圖DIB(Device-Independent Bitmap)
     DirectX使用設備無關性位圖DIB作為主要的圖形文件格式。一個DIB文件主要保護了如下信息:圖象的維數、使用的顏色數、描述
顏色的值及描述每一個像素的數據。DIB文件還保護了較少用到的參數,象有關文件壓縮的信息和圖象的物理維數。DIB文件的擴展名一般
是“.BMP”,有時也可能是“.DIB”。
    因為DIB在Windows編程中的應用極其廣泛,DirectX SDK已經包含了許多相關的函數。例如,DirectX SDK提供的ddutil.cpp文件中
有一個函數,它將Win32和DirectX函數結合在一起,概念是把一個DIB文件裝入DirectX表面,代碼如下:
extern "C" IDirectDrawSurface * DDLoadBitmap(IDirectDraw *pdd, 
    LPCSTR szBitmap, int dx, int dy) 
{ 
    HBITMAP             hbm; 
    BITMAP              bm; 
    DDSURFACEDESC       ddsd; 
    IDirectDrawSurface *pdds; 
    //  This is the Win32 part. 
    //   Try to load the bitmap as a resource, if that fails, try it as a file. 
    hbm = (HBITMAP)LoadImage(GetModuleHandle(NULL), szBitmap, IMAGE_BITMAP, dx, dy, LR_CREATEDIBSECTION); 
    if (hbm == NULL) 
        hbm = (HBITMAP)LoadImage(NULL, szBitmap, IMAGE_BITMAP, dx, dy, LR_LOADFROMFILE|LR_CREATEDIBSECTION); 
    if (hbm == NULL) 
        return NULL; 
    // Get the size of the bitmap. 
    GetObject(hbm, sizeof(bm), &bm); 
    // Now, return to DirectX function calls. 
    // Create a DirectDrawSurface for this bitmap. 
    ZeroMemory(&ddsd, sizeof(ddsd)); 
    ddsd.dwSize = sizeof(ddsd); 
    ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT |DDSD_WIDTH; 
    ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; 
    ddsd.dwWidth = bm.bmWidth; 
    ddsd.dwHeight = bm.bmHeight; 
    if (pdd->CreateSurface(&ddsd, &pdds, NULL) != DD_OK) 
        return NULL; 
    DDCopyBitmap(pdds, hbm, 0, 0, 0, 0); 
    DeleteObject(hbm); 
    return pdds; 
} 

 1.2、繪圖表面(Drawing Surface)
    繪圖表面接受視頻數據并將其作為圖象顯示出來。在大多數的Windows應用程序中,你可以使用Win32的函數如GetDC來訪問繪圖表
面。GetDC獲取設備上下文DC(Device Context),獲得了設備上下文后,就可以重畫表面了。然而,Win32的圖象函數是由GDI提供的。
GDI是系統的一部分,它提供了抽象層,使得標準的Windows程序向表面繪圖。
    GDI的缺點是它并不是為高性能的多媒體軟件設計的,它主要用于商業軟件如字處理和電子表格軟件。GDI提供了對系統內存中的視頻
緩沖區的訪問,但不提供對視頻內存的訪問。盡管GDI對于大多數的商業軟件非常合適,但對于多媒體應用程序和游戲軟件則顯得太慢了。
    另一方面,DirectDraw 能提供表征真實視頻內存的繪圖表面,這就意味著當你使用DirectDraw 時,你能夠直接向視頻內存寫數據,使
得圖象的顯示速度足夠快。這些表面表征為連續的內存塊,使得尋址時更加容易。
1.3、位塊傳輸Blit
   Blit是“Bit Block Transfer”的簡寫,表示位塊傳輸。它是將內存中一個地址的一塊數據傳送到另一個地址的一種方法。位塊傳輸經常用
于精靈動畫中。你可以使用IDirectDrawSurface3::Blt 方法和IDirectDrawSurface3::BltFast方法來執行位塊傳輸。

1.4、頁翻轉(Page Flipping)和后臺緩沖(Back Buffering)
    頁翻轉是多媒體、動畫、游戲軟件中的關鍵。軟件頁翻轉是對卡通畫家使圖象運動的過程的模擬。例如,畫家在一張紙上畫了一個人物,
然后將其置于下一幀的工作狀態,對于每一幀,只很少地改變人物圖象。當你快速翻轉紙片時,連續的人物圖象看起來就成了動畫。
    軟件中的頁翻轉類似于上述的過程。首先,你建立了一系列DirectDraw表面,這些設計好的表面準備“翻轉”到屏幕。第一個表面被看
作是主表面(Primary Surface),在主表面后的所有表面都稱為后臺緩沖區。應用程序將數據寫向后臺緩沖區,然后翻轉主表面,于是后臺緩
沖區就顯示在片面上了。當系統正在顯示圖象時,程序就可以向后臺緩沖區寫數據,這個過程一直持續到動畫的結束,它使你快速而高效地
將離散的圖象變成動畫。 DirectDraw可以利用相對簡單一些的雙緩沖區(一個主表面和一個后臺緩沖區),也可以使用較復雜的技術,加入
其它的后臺緩沖區。使得你能夠容易地建立頁翻轉的程序。

1.5、矩形(Rectangle)
    貫穿DirectDraw和Windows編程的一個最重要的概念是表面上的對象──有界矩形。一個有界矩形由兩個點來確定,即左上角和右下
角。當以位塊傳輸的方式向屏幕寫數據時,大多數的應用程序都使用RECT結構來傳送有關有界矩形的信息。RECT結構的定義如下:
typedef struct tagRECT { 
    LONG    left;    // This is the top-left corner's X-coordinate.
    LONG    top;     // The top-left corner's Y-coordinate.
    LONG    right;   // The bottom-right corner's X-coordinate.
    LONG    bottom;  // The bottom-right corner's Y-coordinate.
} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT; 

    其中left和top成員變量是矩形左上角的X、Y坐標的值,right和bottom是右下角的X、Y的坐標值。

1.6、精靈(Sprite )
    許多視頻游戲都使用了精靈。從最基本的意義上來講,一個精靈就是在屏幕上移動的圖象。精靈畫在一個表面上,覆蓋在已有的背景上,
合成后的圖象被送到屏幕上顯示出來。
1.6.1、透明位塊傳輸(Transparent Blitting)和Color Key
    精靈動畫中的難點在于對非標準矩形的精靈的處理。因為位塊傳輸函數是工作在矩形方式下,你的精靈也必須放在一個矩形之中,而不
管它在屏幕上是否矩形。
    精靈圖象本身不是矩形的,但卻包含在矩形區域中。當用位塊傳輸將圖象移動到目的地時,矩形區域中不屬于精靈的像素就被“透明”
處理。程序員選擇任意一種顏色來創建精靈,這種顏色就被用來作為透明度“Color Key”。它是一種不常用的顏色,程序員僅僅用于表示透
明度或特定的顏色范圍。
    使用IDirectDrawSurface3::SetColorKey方法,你可以為一個表面設定Color Key。設置了Color Key后,調用 IDirectDrawSurface3::BltFast
方法來使用已設好的Color Key,而不管像素是否同該Color Key匹配。這種類型的Color Key是源 Color Key。源Color Key禁止“透明”的
像素寫到目的地,這樣,原來的背景像素就保留下來了,使得精靈看起來就是非矩形的了并且精靈還可以在背景上移動。
    另外,你還可以使用一個Color Key來影響目的表面(目的Color Key)。目的Color Key也是表面上的一種顏色,它用于指明像素是否
可以被精靈所覆蓋。
1.6.2、精靈和修補矩形(Sprite and Patch Rectangle)
    為了產生精靈運動的效果,你在將精靈畫到新的位置之前還必須從背景上擦除舊的位置上的精靈圖象。當然,也可以重新調入整個背景
再重畫精靈,但這會大大降低動畫的質量。事實上,你可以保留精靈矩形的上一次的軌跡,僅對該位置重畫。這種方法稱為“修補”(Patching)。
為了修補精靈舊的位置,可以利用原始背景圖象(已經調入到一個屏外表面)的一個拷貝來重畫這一位置。在這個過程中使用的是位塊傳輸
方法,在整個表面的循環中進行,需要耗用的處理時間很少。下面是這一過程的簡單步驟:
(1). 設置精靈上一次位置的修補矩形
(2). 使用位塊傳輸將屏外表面中的背景圖象的主拷貝補到該位置
(3). 更新精靈是目的矩形,它反映了精靈新的位置
(4). 將精靈位塊傳輸到背景上最新更新的矩形位置 
(5).重復
    將DirectDraw提供的強大的圖象功能同直線式的C/C++程序結合起來,利用上面的步驟,馬上就可以創建一個簡單的精靈動畫。
1.6.3、邊界檢查和碰撞檢測(Bounds Checking and Hit Detection)
    在精靈動畫中,邊界檢查和碰撞檢測是兩個非常車間而又相當重要的任務。邊界是限制精靈活動的范圍,邊界檢查就是通過RECT結構
來檢查精靈的位置,判斷精靈是否超出了限定的范圍。
碰撞檢測就是檢查多個精靈是否占用了同一個位置。大部分的碰撞檢測是檢查各個精靈的矩形之間是否有所覆蓋。

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av在线看| 免费看日韩a级影片| av电影天堂一区二区在线| 国产精品久久久一本精品| av一区二区不卡| 亚洲精品亚洲人成人网在线播放| 99久久精品一区| 亚洲福利一区二区| 日韩午夜电影在线观看| bt欧美亚洲午夜电影天堂| 综合色中文字幕| 欧美日韩亚洲综合| 免费高清不卡av| 国产精品丝袜一区| 欧美午夜精品一区二区三区| 日韩电影在线观看一区| 亚洲精品一区二区在线观看| 成人一区在线观看| 亚洲国产日产av| 欧美xfplay| 99久久精品费精品国产一区二区| 亚洲国产成人av网| 久久亚洲春色中文字幕久久久| av在线不卡观看免费观看| 亚洲国产成人精品视频| 久久婷婷国产综合精品青草| 色老汉av一区二区三区| 美女视频一区在线观看| 亚洲视频电影在线| 精品电影一区二区三区| 91色九色蝌蚪| 精品亚洲porn| 亚洲综合免费观看高清完整版在线| 日韩亚洲欧美在线| 99精品欧美一区二区三区综合在线| 日韩主播视频在线| 国产精品盗摄一区二区三区| 欧美一区二区在线不卡| 99久久婷婷国产| 久久精品国产一区二区| 亚洲精选视频在线| 26uuu色噜噜精品一区二区| 欧美中文字幕不卡| 成人三级伦理片| 久久国产日韩欧美精品| 一区二区三区在线观看视频 | 国产精品美女久久久久久久 | 亚洲精品国产视频| 精品久久久久av影院| 91久久线看在观草草青青| 国产一区二区91| 视频一区免费在线观看| 亚洲日韩欧美一区二区在线| 欧美激情自拍偷拍| 欧美成人精精品一区二区频| 欧美日韩在线不卡| 99久久婷婷国产| 成人99免费视频| 国产成人免费9x9x人网站视频| 美女被吸乳得到大胸91| 亚洲二区在线视频| 亚洲三级在线看| 国产精品高潮呻吟久久| 久久亚洲一区二区三区明星换脸| 欧美一区二区在线观看| 91精品综合久久久久久| 欧美熟乱第一页| 欧美影院午夜播放| 在线观看日韩av先锋影音电影院| 成人av网站在线观看免费| 国产福利精品导航| 国产美女娇喘av呻吟久久| 激情综合网av| 国模冰冰炮一区二区| 久久精品国产77777蜜臀| 日本欧美一区二区三区乱码| 婷婷开心激情综合| 天堂影院一区二区| 午夜精品福利在线| 日韩精品免费专区| 美女性感视频久久| 久久99精品国产麻豆婷婷洗澡| 免费成人av资源网| 极品少妇一区二区三区精品视频| 激情小说欧美图片| 国产精选一区二区三区| 国模一区二区三区白浆| 国产宾馆实践打屁股91| 99久久久精品| 欧美日韩一区二区在线观看| 欧美精品久久一区二区三区| 91精品视频网| 国产亚洲午夜高清国产拍精品| 国产欧美日本一区视频| 亚洲三级视频在线观看| 日日夜夜精品视频免费| 精品一区精品二区高清| 国产69精品久久久久毛片| 91色porny蝌蚪| 欧美久久久久免费| 久久精品视频一区二区| 亚洲视频狠狠干| 天堂va蜜桃一区二区三区漫画版 | 久久久不卡网国产精品二区| 久久久91精品国产一区二区精品 | 91精品免费观看| 久久久亚洲精品一区二区三区| 欧美激情综合网| 亚洲h在线观看| 国产一区二区免费在线| 色综合天天视频在线观看 | 日韩欧美电影一区| 欧美韩国一区二区| 亚洲一区二区中文在线| 精品一区二区三区久久| 波多野结衣在线aⅴ中文字幕不卡| 欧美色中文字幕| 精品成人佐山爱一区二区| 日韩美女视频一区| 日韩国产精品大片| 成人av动漫网站| 在线不卡的av| 国产精品久99| 久久国产夜色精品鲁鲁99| 91美女视频网站| 久久视频一区二区| 午夜久久久久久久久久一区二区| 国产成人av电影在线| 欧美美女激情18p| 国产精品区一区二区三| 男男成人高潮片免费网站| 99riav久久精品riav| 久久久亚洲精华液精华液精华液| 亚洲不卡av一区二区三区| 成人免费精品视频| 欧美v日韩v国产v| 亚洲成av人影院| 94色蜜桃网一区二区三区| 精品国产伦一区二区三区观看体验| 伊人一区二区三区| 国产精品91一区二区| 91精品啪在线观看国产60岁| 亚洲综合清纯丝袜自拍| 成人精品视频一区二区三区| 精品久久一区二区| 日韩在线播放一区二区| 91精品1区2区| 亚洲欧美视频一区| 国产成人8x视频一区二区 | 欧美日韩精品一区二区三区四区 | 国产精品久久久久精k8| 国产精品一区二区在线观看不卡| 欧美绝品在线观看成人午夜影视| 亚洲精品中文在线观看| 国产91精品一区二区麻豆亚洲| 日韩欧美国产一区在线观看| 三级成人在线视频| 欧美网站一区二区| 亚洲中国最大av网站| 一本到高清视频免费精品| 国产精品不卡视频| 国产成人av电影免费在线观看| 久久色.com| 国产麻豆成人精品| 久久先锋资源网| 成人在线综合网站| 国产精品网曝门| 9i看片成人免费高清| 亚洲欧洲日韩在线| 91丨九色丨蝌蚪富婆spa| 自拍偷拍亚洲激情| 欧洲av一区二区嗯嗯嗯啊| 一区二区三区欧美日韩| 欧美午夜不卡在线观看免费| 亚洲成人福利片| 日韩一区二区在线观看| 美女视频黄 久久| 久久精品夜色噜噜亚洲a∨| 成人爽a毛片一区二区免费| 欧美国产日韩在线观看| 一本色道亚洲精品aⅴ| 亚洲一区二区综合| 日韩一区二区三区电影在线观看| 狠狠色丁香婷综合久久| 国产日韩欧美精品电影三级在线| 成人综合激情网| 夜夜操天天操亚洲| 7777精品伊人久久久大香线蕉超级流畅| 日韩va欧美va亚洲va久久| 精品国产亚洲在线| 成人一区二区三区在线观看 | 欧美精品一区二区三区蜜桃视频| 国产真实乱子伦精品视频| 久久精品视频一区二区三区| 99re8在线精品视频免费播放| 一区二区三区鲁丝不卡| 日韩欧美一区二区在线视频| 国产精品亚洲а∨天堂免在线| 国产精品毛片无遮挡高清| 色欧美日韩亚洲|