第1章 基本技術和知識
1. l 用 c/c++進行基本的 windows編程
1.1.1 hello world(版本 1):啟動測覽器
1. 1.2 hello world(版本 2):直接繪制到桌面
1. 1. 3 hello world(版本 3):創建一個全屏窗口
1. 1.4 hello world(版本4):用directdraw畫圖
1.2 匯編語言
l.3 程序開發環境
1.3.l 開發與測試系統
1. 3.2 編譯器
l.3.3 microsoft平臺軟件開發工具
1.3.4 microsoft驅動程序開發工具
l. 3. 5 microsoft開發網絡庫
1. 4 win32可執行文件格式
1. 4. 1 導入目錄
1.4.2 導出目錄
1.5 microsoft windows操作系統的體系結構
1.5.l 硬件抽象層
1.5.2 微內核
1.5.3 設備驅動程序
.1.5.4 窗口管理和圖形系統
l.5.5 執行體
1.5.6 系統服務:windows本身的api
1.5.7 系統進程
1.5.8 服務
1.5.9 環境子系統
l.6 小結
1.6.l 其他參考文獻
l.6.2 范例程序
第2章 windows圖形系統體系結構
2.1 windows圖形系統組件
2.1.1 多媒體
2.1.2 windows視頻系統
2.1.3 靜態圖像
2.1.4 opengl
2.1.5 windows媒體
2.1.6 os內核模式組件
2.1.7 內核模式驅動程序
2.2 gdi體系結構
2.2.l 從gdi32.dll導出的函數
2.2.2 gdi函數分類
2.2.3 gdi系統服務調用
2.2.4 從win32 gdi api到 gdi引擎系統服務調用
2.3 directx體系結構
2.3.1 directx組件
2.3.2 directdraw體系結構
2.4 打印體系結構
2.4.1 win32打印池客戶dll
2.4.2 打印池系統服務進程
2.4.3 打印池路由器
2.4.4 打印提供者
2.4.5 打印處理器
2.4.6 語言監視器和端口監視器
2.4.7 打印池過程一瞥
2.5 圖形引擎
2.5.l 圖形引擎系統服務
2.5.2 圖形繪制引擎
2.5.3 圖形引擎數據結構
2.5.4 圖元變換
2.5.5 字體驅動程序
2.6 顯示驅動程序
2.6.l 視頻端口驅動程序和視頻微端口驅動程序
2.6.2 顯示驅動程序函數區域
2.6.3 顯示驅動程序初始化
2.6.4 表面繪制調用、鉤子和輸出
2.6.5 其他驅動程序特性
2.6.6 對directdraw/direct3d顯示驅動程序的支持
2.7 打印機驅動程序
2.7.1 微軟打印機驅動程序框架結構
2.7.2 打印機驅動程序圖形dll
2.7.3 html打印機驅動程序
2.8 小結
2.8.l 范例程序
2.8.2 其他參考文獻
第3章 gdi/directdraw內部數據結構
3.i 句柄和面向對象的編程
3.1.l 類和對象
3.1.2 封裝和信息隱藏
3.1.3 指針與句柄
3.1.4 全等映射
3.1.5 基于表格的映射
3.1.6 只有句柄是不夠的
3.2 解碼gdi對象句柄
3.2.l 對象句柄堆是不變的
3.2.2 hgdiobj并不是指針
3.2.3 進程 gdi句柄限制約為 12 000個
3.2.4 系統 gdi句柄限制約為 16 384個
3.2.5 hgdiobj的部分內容為索引值
3.2.6 hgdiobj的部分內容是gdi對象類型
3.3 定位gdi對象句柄表
3.4 解碼 gdi對象句柄表
3.4.l pkernel指向頁面地
3.4.2 ncount是一個部分選擇計數器
3.4.3 nprocess使得gdi句柄綁定到進程
3.4.4 nupper:再次檢查句柄
3.4. 5 ntype:內部對象類型
3.4.6 puser指向用戶模式數據結構
3.5 gdi對象的用戶模式數據結構
3. 5.l 用戶模式畫刷數據:純色畫刷優化
3.5.2 用戶模式區域數據:正方形區域優化
3.5.3 用戶模式字體數據:寬度表
3.5.4 用戶模式設備上下文數據:存儲設置信息
3.6 存取內核模式地址空間
3.7 windbg和gdi調試器擴展
3. 8 gdi內核模式數據結構
3.8.1 gdi引擎中的gdi對象句柄表
3.8.2 gdi引擎中的gdi對象類型
3.8.3 gdi引擎中的設備上下文
3.8.4 gdi引擎 pdev結構
3.8.5 gdi引擎表面
3.8.6 gdi引擎中的設備相關位圖
3.8.7 gdi引擎中的dib部分
3.8.8 gdi引擎中的畫刷
3. 8. 9 gdi引擎中的畫筆
3.8.10 gdi引擎中的調色板
3. 8. 11 gdi引擎中的區域
3.8. 12 gdi引擎中的路徑
3.8. 13 gdi引擎中的字體
3.8.14 gdi引擎中的其他gdi對象
3. 9 directdraw數據結構
3.10 小結
3.10.l 其他參考文獻
3.10.2 范例程序
第4章 windows圖形系統窺視
4.1 win32 api調用窺視
4.1. 1 做一個窺視程序
4.l.2 嵌入窺視dll
4.1.3 鉤入api調用鏈
4.1.4 信息收集
4.1.5 數據轉儲
4、l、6 窺視控制程序
4.2 win32 gdi窺視
4.2.1 gdi api定義文件
4.2.2 gdi數據解碼器
4.2.3 完全 api窺視
4.3 directdraw com接口窺視
4.3.1 虛函數表
4.3. 2 directdraw api定義
4.3.3 虛函數表破解
4.4 gdi系統調用窺視
4. 5 ddi接口窺視
4.6 小結
4.6. 1 其他參考文獻
4.6. 2 范例程序
第5章 圖形設備抽象
5.1 現代視頻顯示卡
5.1.l 幀緩沖區
5. 1.2 像素格式
5. 1. 3 雙緩存、 z一緩存和紋理
5. 1.4 硬件加速
5.1. 5 顯示設備和設置枚舉
5. 2 設備上下文
5.2. 1 創建設備上下文
5.2.2 查詢設備性能
5.2.3 設備上下文的屬性
5.2.4 與窗口關聯的設備上下文
5.2.5 多窗口環境下的顯示
5. 2.6 獲取與窗口關聯的設備上下文
5.2.7 公用設備上下文
5.2.8 類設備上下文
5.2.9 專用設備上下文
5.2.10 父設備上下文
5. 2.11 其他設備上下文
5.2.12 信息上下文
5.2. 13 內存設備上下文
5. 2.14 元文件設備上下文
5.3 格式化設備上下文
5.4 樣例程序:通用框架窗口
5.4.1 工具欄類
5.4.2 狀態窗口類
5.4.3 畫布窗口類
5、4.4 框架窗回類
5. 4.5 測試程序
5. 5 范例程序:繪圖和設備上下文
5. 5.1 windows更新區域
5. 5.2 wm_paint消息
5. 5.3 可視化窗口繪圖消息
5.6 小結
5.6.l 其他參考文獻
5.6.2 范例程序
第6章 坐標空間和變換
6.l 物理設備坐標空間
6.2 設備坐標空間
6.3 頁面坐標空間和映射模式
6. 3.1 mm_text映射模式
6.3.2 mm_ loengllsh、mm_hienglish映射模式
6.3.3 mm_lometric和 mm_himetric映射模式
6. 3. 4 mm_twips映射模式
6.3.5 mm_isotropic映射模式
6. 3.6 mm_anisotropic映射模式
6.3.7 窗口和視口原點
6.3.8 其他窗口和視口函數
6.4 世界坐標空間
6.4.l affine變換
6.4.2 用于世界坐標變換的 win32 api
6.4.3 使用世界坐標變換
6.5 使用坐標空間
6.6 程序舉例:滾屏和縮放
6.7 小結
6.7. 1 其他參考文獻
6.7.2 范例程序
第7章 像素
7. 1 gdi對象、句柄和句柄表
7. 1.1 gdi對象存儲
7.1.2 gdi對象表
7. 1.3 gdi對象句柄
7.1.4 gdi對象 api
7.1.5 gdi對象泄漏檢測
7. 2 裁剪
7. 2.1 裁剪流水線
7.2.2 簡單區域
7. 2.3 區域裁剪
7.2.4 元區域
7.2.5 設備上下文中的5個區域
7.2.6 可視化設備上下文區域
7.3 顏色
7.3.1 rgb顏色空間
7.3.2 hls顏色空間
7.3.3 索引顏色和凋色板
7.3.4 高級知識
7. 4 繪制像素
7.5 程序舉例:mandelbrot集
7.6 小結
7.6.l 其他參考文獻
7.6.2 范例程序
第8章 直線和曲線
8. 1 元光柵操作
8.2 背景模式與背景顏色
8.3 畫筆
8.3. 1 邏輯畫筆對象
8.3.2 庫存畫筆
8.3.3 簡單畫筆
8.3.4 擴展畫筆
8.3.5 查詢邏輯畫筆
8. 3. 6 gdi畫筆對象的封裝類
8.4 直線
8.5 bezier曲線
8.5.1 polydraw函數
8.5.2 其他bezier曲線的定義:通過所有的控制點
8.6 弧線
8.6.l 用角度來指定弧線:anglearc
8.6. 2 使用內框架畫筆來畫弧線
8.6.3 把弧線轉換成bezier曲線
8.7 路徑
8. 7.1 構造路徑
8.7.2 查詢路徑數據
8.7.3 路徑對象變換
8.7.4 使用路徑畫圖
8.7. 5 把路徑轉換成區域
8.8 例子:用自己定義風格的線做圖
8.9 小結
8.9.l 其他參考文獻
8.9.2 范例程序
第9章 區域
9.l 畫刷
9. 1.l 邏輯畫刷對象
9.1.2 庫存畫刷
9.1.3 自定義畫刷
9.1.4 系統顏色畫刷
9.1.5 logbrush結構
9.2 矩形
9.2.l 作為數據結構的矩形
9.2.2 繪制矩形
9.2. 3 邊界線和控制點的繪制
9.3 橢圓、弦、餅狀圖以及圓角矩形
9.4 多邊形
9.5 閉合路徑
9. 6 區域
9.6.l 創建區域對象
9.6.2 區域對象上的操作
9.6.3 使用區域繪圖
9.7 漸變填充
9.7.l 矩形的漸變填充
9.7.2 用漸變填充創建3d按鈕
9.8 實際中的區域填充
9.8.1 半透明填充
9.8.2 hls顏色空間的可移植漸變填充
9.8.3 徑向漸變填充
9.8.4 紋理和位圖填充
9.8.5 圖案填充
9.9 小結
9.9.l 其他參考文獻
9.9.2 范例程序
第10章 位圖基礎
10.l 設備無關的位圖格式
10.1.1 bmp文件格式
10.1.2 壓縮設備無關位圖
10.1.3 分散的設備無關位圖
10.2 dib類
10.3 顯示dib
10.3.1 stretchdibits
10.3.2 源矩形
10.3.3 目標矩形和拉伸模式
10.3.4 顏色格式轉換
10.3.5 光柵操作
10.3.6 stretchdibits函數的例子
10.3.7 setdibitstodevice
10. 4 內存設備上下文
10. 5 設備相關位圖
10.5.1 createbitmap
10.5.2 createbitmapindirect
10.5. 3 ddb的 getobject調用
10. 5.4 creat compatible bitmap和create discardable bitmap
10.5.5 createdibitmap
10.5. 6 loadbitmap
10.5.7 在dib和ddb間拷貝位圖
10. 5.8 存取原始的ddb像素陣列
10.6 使用 ddb
10. 6.l 顯示ddb
10.6.2 在菜單中使用位圖
10.6.3 用位圖作為窗口背景
10.7 dib段
10. 7.1 createdibsection
10.7.2 dib段類
10.7.3 對 dib段調用 getobjecttype/getobject
10.7.4 getdibcolortable/setdibcolortable
10. 7.5 使用dib段:設備無關的繪制
10.7.6 使用dib段:高分辨率繪制
10.8 小結
10. 8.l 其他參考文獻
10.8.2 范例程序
第11章 高級位圖圖形學
11.l 三元光柵操作
11.1.1 光柵操作的編碼
11.1. 2 三元光柵操作圖表
11.1.3 常用的光柵操作
11.2 透明位圖
11. 2. 1 平行四邊形位塊傳送: plgblt
11.2.2 四元光柵操作: maskblt
11.2.3 顏色鍵控法: transparentblt
11.3 不用屏蔽位圖實現透明度
11.3.l 用幾何圖形作為屏蔽
11.3.2 用裁剪作為屏蔽
11. 3.3 預先生成圖像
11.4 alpha混合
11.4.l 簡單常量 alpha混合
11.4.2 位圖的淡入談出
11.4.3 層疊窗口
11.4.4 alpha通道: airbrush
11. 4.5 模擬alpha混合
11.5 小結
11.5.l 其他參考文獻
11.5.2 范例程序
第12章 用windows位圖進行圖像處理
12.l 通用像素存取
12.2 位圖affine變換
12.3 快速專用位圖變換
12.4 位圖顏色變換
12.4.l 將位圖轉換為灰度位圖
12.4.2 gamma校正
12.5 位圖像素變換
12. 5.l 通用像素變換類
12.5.2 通用通道分離類
12. 5.3 通道分高舉例
12.5.4 直方圖
12.6 位圖空間過濾器
12.6.l 平滑過濾器和銳化過濾器
12.6.2 邊緣檢測和浮雕過濾器
12.6.3 變形過濾器
12.7 小結
12.7.l 其他參考文獻
12.7.2 范例程序
第13章 調色板
13.l 系統調色板
13.1.l 顯示設置
13.1.2 查詢系統調色板
13.1.3 靜態顏色
13.2 邏輯調色板
13.2.l 缺省調色板
13.2.2 半色調調色板
13.2.3 創建自定義調色板
13.3 調色板消息
13.3.1 wm_querynewpalette消息
13.3.2 wm_paletteischanging消息
13. 3.3 wm_palettechanged消息
13. 3.4 測試程序
13.4 凋色板和位圖
13.4.l 設備相關位圖和調色板
13.4.2 設備無關的位圖和調色板
13. 4. 3 dib顏色表中的調色板索引
13.4.4 dib段和調色板
13.5 顏色的量化
13.6 減少位圖顏色深度
13. 7 小結
13. 7.l 其他參考文獻
13.7. 2 范例程序
第14章 字體
14. 1 什么是字體
14.1.l 字符集和代碼頁
14.1. 2 圖元
14. 1.3 字體
14.1.4 字體風格和字體族
14.2 位圖字體
14.3 向量字體
14. 4 truetype字體
14. 4.1 truetype字體文件格式
14. 4.2 字體頭
14.4. 3 最大需求表
14.4.4 字符到圖元索引的映射
14.4.5 位置索引
14.4.6 圖元數據
14.4.7 圖元指令
14.4.8 水平規格(hhea和htmx表)
14.4.9 字距調整
14.4. 10 os/2和 windows規格
14.4.11 其他表
14. 4. 12 truetype字體集
14.5 字體的安裝和內嵌
14.5.l 字體資源文件
14.5.2 安裝公用字體
14.5.3 安裝專用字體和 multiple masteropentype字體
14.5.4 從內存映像中安裝字體
14.5.5 字體的內嵌
14.5.6 系統字體列表
14.6 小結
14. 6.l 其他參考文獻
14.6.2 范例程序
第15章 文本
15.l 邏輯字體
15.1.1 微軟印刷學術語
15.l.2 庫存字體
15.1.3 創建邏輯字體
15.1.4 邏輯字體到物理字體映射
15.1.5 panose字面匹配
15.2 查詢邏輯字體
15.2.l 位圖字體和矢量字體的度量
15.2.2 true/opentype字體度量
15.2. 3 瀏覽logfdnt和字體度量
15.2.4 字體度量的準確度
15.3 簡單文本繪制
15.3.l 對齊文本
15. 3.2 從右到左的布局與閱讀方式
15.3.3 字符附加量和分割符附加量
15.3.4 字符寬度
15.4 高級文本繪制
15.4.l 字符到圖元的映射
15. 4.2 字距調整
15.4.3 布置字符
15.4.4 擴展的文本繪制
15.4.5 uniscribe
15.4.6 圖元存取
15.5 格式化文本
15.5.l 帶制表符的文本繪制
15.5.2 簡單段落格式化
15.5. 3 設備無關的文本格式化
15.6 文本特效
15.6.l 文本著色
15.6.2 文本風格
5.6. 3 文本幾何特性
15.6.4 文本做位圖
15. 6. 5 文本做曲線
15.6. 6 文本做區域
15. 7 小結
15.7. 1 其他參考文獻
15. 7. 2 范例程序
第16章 元文件
16.l 元文件基礎
16. 1.l 創建增強元文件
16.1.2 播放增強元文件
16.1.3 查詢增強元文件
16. 1.4 增強元文件變換
16. 2 增強元文件內部結構
16. 2. 1 emf記錄
16. 2.2 emf記錄類型分類
16. 2.3 解碼emf記錄
16.2.4 emf中的簡單gdi對象
16.2.5 emf中的位圖
16.2.6 emf中的區域
16.2.7 emf中的路徑
16.2. 8 emf中的調色板
16. 2.9 emf中的坐標空間
16. 2. 10 emf中的繪制命令
16. 2.11 emf設備無關性
16.3 枚舉 emf
16.3.l 用于emf枚舉的c++類
16. 3.2 emf回放中的慢動作
16.3.3 跟蹤emf回放過程
16.3. 4 動態改變emf
16.3.5 從emf中派生emf
16.4 emf做編程工具
16.4. 1 emf反編譯器
16. 4.2 捕獲emf打印池文件
16.5 小結
16.5.l 其他參考文獻
16. 5. 2 范例程序
第17章 打印
17.l 理解打印池程序
17.1. 1 打印進程
17. 1.2 打印機控制語言
17.1.3 直接打印到端口
17.1.4 通過打印池打印
17.1.5 emf打印處理器
17.1.6 枚舉打印機
17. 1.7 查詢打印機
17.1.8 設置打印機驅動程序
17.2 用gdi實現基本打印功能
17.2.l 打印通用對話框
17.2.2 創建打印機設備上下文
17.2.3 查詢打印機設備上下文
17.2.4 打印任務的輪廓
17.3 打印設計
17.3.1 統一邏輯坐標空間
17.3.2 紙張模擬
17.3.3 多頁、多列顯示
17.3.4 多頁打印
17. 3.5 通用打印類
17.4 在打印機設備上下文中繪制
17.4.l 坐標空間單位
17.4.2 文本
17.4.3 位圖
17.4.4 jpeg圖像打印
17.5 小結
17.5.l 其他參考文獻
17.5.2 范例程序
第 18章 directdraw和 direct3d立即模式
18.l 組件對象模型
18.1.1 com接口
18.1.2 com類
18.1.3 創建 com對象
18. 1.4 hresult
18.1.5 directx和 com
18. 2 directdraw基礎
18.2.l idirectdraw7接口
18.2.2 idirectdrawsurface7接口
18.2.3 在directdraw表面上繪制圖形
18.2.4 顏色匹配
18.2.5 idirectdrawclipper接口
18.2.6 簡單 directdraw窗口
18.3 建立direct圖形庫
18.3.l 像素繪制
18. 3.2 直線繪制
18. 3.3 區域填充
18.3.4 裁剪
18.3.5 后臺表面
18.3.6 用彩色鍵控實現透明
18. 3.7 字體與文本
18.3.8 這并不只是一個游戲
18.4 direct3d立即模式
18.4.l 創建direct3d立即模式環境
18.4.2 處理窗口大小變化
18.4.3 兩步繪制
18.4.4 將direct3d放在窗口中
18.4.5 紋理表面
18.4.6 direct3d立即模式舉例
18.5 小結
18.5.l 其他參考文獻
18.5.2 范例程序