引用:
Originally posted by giligula
Windows API 根本就不適合寫遊戲
遊戲需要榨乾硬體的極限
而 Windows 的 programming interface 是以安全穩定為考量
而不是效能
所以處理圖形上就遜掉了
而且是很遜
這是當初微軟推廣 Windows 出現的盲點
所以才推出了 DirectX
DirectX 的出現就是為了提供程式設計師一個介面
不經由 Windows API
而直接 access 硬體的層面
|
老兄,
是GDI(Graphics Display Interface)效能不佳吧!
別Windows API混為一談。
Win32 API是一個抽象的programming interface(以C function call export),
Win9X、WinNT、Win2000、WinXP都有之。理論上program只要針對Win32 API開發,就可以同時在各個support Win32 API的Windows上執行。
雖然表面上看起來programming interface都一樣,
底層可是大異其趣。
舉個例子,
若以CreateFile()這個API來說,
在Windows2000、XP下最後會經由CSRSS.exe傳達至OS內部的system call,
然後再轉成IRP packet傳達至底層負責disk I/O的kernel driver。
在Win9x下的話,最後則是送給底層的VXD driver,透過interrupt的方式提供I/O的服務。
所以你說的"Windows 的 programming interface 是以安全穩定為考量"這句話是有問題的,因為Windows API只是一個interface,真正implement這些function的是OS本身。
DirectX則是以COM的programming model,提供遊戲一個直接存取硬體的interface。