首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

C++ Builder DirectX 程式設計入門 (3):DirectDraw 圖面管理與圖形檔案載入顯示

     編輯:VC 教學

DirectDraw 圖面類型

DirectDraw 透過圖面 管理繪圖空間,分四類:

  1. 主圖面:螢幕可見畫面,對應 GDI 桌面,每個 DD 物件僅一個,尺寸格式由顯示模式決定。
  2. 後台圖面:離屏緩衝區,存放精靈、背景等,可多個、尺寸可調,但通常不超過主圖面(除非顯示卡支援)。
  3. 複合圖面/翻轉鏈:用於平滑動畫(雙/三緩衝翻轉),後續介紹。
  4. 疊加圖面:硬體支援,DD 無法模擬,稍後說明。

圖面可建於顯示記憶體(含 AGP)或系統記憶體,DD 自動按優先序分配。

圖形檔案載入流程

利用 GDI 協助將位圖載入圖面:

  1. LoadImage 載入 BMP 檔
  2. GetDC 取得圖面相容 DC
  3. BitBlt 將圖形資料拷貝至圖面

圖面遺失與恢復

應用程式最小化、切換顯示模式、Alt+Tab 會導致圖面遺失(內容消失)。需呼叫 Restore 恢復圖面結構,再重繪內容。

範例程式 dx2 執行流程

  1. 建立 DD 物件,設定 800x600 全螢幕
  2. 建立主圖面、100x100 後台圖面
  3. 載入 view.bmp 到後台圖面(100x100)
  4. 載入 view.bmp 到主圖面(縮放 200x100,位置 0,0)
  5. 將後台圖面拷貝至主圖面 (200,0),並排顯示不同縮放
  6. 切換至 640x480 觸發圖面遺失,畫面消失
  7. 恢復 800x600 並 Restore 圖面,內容仍空白
  8. 重繪 view.bmp,畫面恢復

此流程完整演示圖面生命週期管理與圖形載入繪製技術。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved