2016-07-14 63 views
-2

我很難理解何時爲directx11 STRUCTS和COM對象類包含前綴「I」?什麼時候使用前綴「我」爲STRUCTS,在directx11中的類?

例如:

1)IDXGI VS DXGI 2)ID3D11 VS D3D11

我似乎無法弄清楚什麼時候用什麼,請大家幫忙。

+0

爲什麼heck im下了票(s)?還有另一個非常相似的(不是確切的)問題在這裏:http://stackoverflow.com/questions/37509559/understanding-id3d11device-and-id3d11devicecontext和他們沒有得到一個downvotes ... – dave

+0

再次閱讀的好方法問一個問題http://stackoverflow.com/help/how-to-ask – galop1n

+0

我還是不是我在一個班級名稱是一個純粹的意見爲基礎的決定,我的意思是接口,cary謂詞它將是一個複雜的對象,提供服務而不提供內部的知識。一個帶有基本成員的簡單結構不是一個接口,就是這樣。 – galop1n

回答

1

DirectX接口利用組件對象模型(COM)。

COM的各方面都不是用於DirectX的,但它遵循使用「I」來表示接口,接口從IUnknown它處理引用計數,並通過QueryInterface接口「鑄造」衍生的約定,和接口設計直接映射到C++抽象虛擬類。

COM的DirectX風格通常被非正式地稱爲'COM lite'。主要區別在於,當設備對象被銷燬時,從設備創建的任何「子」對象的生命週期都立即失效。另外'set'對象的引用計數沒有增加,只是將它們綁定到渲染管道。

The Component Object Model

你應當認真考慮利用該ComPtr智能指針與Direct3D的接口工作。它使生活變得更容易。

順便說一句,您可能需要一些時間來通讀DirectX Tool Kit tutorials,其中涵蓋了Direct3D的許多基本知識。

相關問題