電腦遊戲製作開發設計論壇 首頁 電腦遊戲製作開發設計論壇
任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

Google
請教關於Directx11的Render Target View

 
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式高級班:DirectX、OpenGL及各種圖型函式庫
上一篇主題 :: 下一篇主題  
發表人 內容
=星之卡比=
稍嫌羞澀的路人


註冊時間: 2012-03-04
文章: 2

35.44 果凍幣

發表發表於: 2012-3-4, PM 4:12 星期日    文章主題: 請教關於Directx11的Render Target View 引言回覆

ID3D11RenderTargetView *backbuffer; // global declaration

// this function initializes and prepares Direct3D for use
void InitD3D(HWND hWnd)
{
// Direct3D initialization
// ...

// get the address of the back buffer
ID3D11Texture2D *pBackBuffer;
swapchain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pBackBuffer);

// use the back buffer address to create the render target
dev->CreateRenderTargetView(pBackBuffer, NULL, &backbuffer);
pBackBuffer->Release();

// set the render target as the back buffer
devcon->OMSetRenderTargets(1, &backbuffer, NULL);
}

但小弟這邊並不是看得很懂,小弟大致可理解Render Target View是要把渲染的Buffer綁到pipeline,但不是很能理解的是為何要把pBackBuffer釋放掉?因為已經把backbuffer指派給pipeline之後就沒有用了嗎?另外為何pBackbuffer是Texture2D?buffer和Texture的關係是?

抱歉問了一堆看起來挺蠢的問題,在網路上爬文都很少講到release這塊,感覺不是很了解@@
回頂端
檢視會員個人資料 發送私人訊息
crueleva1
稍嫌羞澀的路人


註冊時間: 2012-07-28
文章: 1

6.84 果凍幣

發表發表於: 2012-7-28, PM 11:51 星期六    文章主題: 引言回覆

去了解一下COM(Component Object Module)應該可以理解吧~
我在猜或許只是跟系統要一塊2D Texture的backBuffer配置給TargetView之後再把該Module Release掉吧~
回頂端
檢視會員個人資料 發送私人訊息
=星之卡比=
稍嫌羞澀的路人


註冊時間: 2012-03-04
文章: 2

35.44 果凍幣

發表發表於: 2014-1-28, PM 5:22 星期二    文章主題: 引言回覆

好久沒來,自己回答一下:
誠如網路上所說,這邊的Release相當於釋放的意思,因為指針在跨物件共享的時候,會有資源歸屬的問題,如果用的又是裸指針,根本就不知道誰是應該要負責刪除物件的。所以COM設計就是,當自己發現自己被引用成0的時候,就要自己幹掉自己......

而這邊,當把資源丟給管線的時候,管線會自己AddRef一次,換句話說,引用計數就是2,到時候管線關閉的時候,就會只剩下1,我們這邊拿到的資源就洩漏了,所以在我們要跟這資源說再見以前,要先釋放掉。(剛丟出來的那個GetBuffer已經幫忙AddRef了。)

而backbuffer也是一種Texture2D,因為他也可以儲存pixel,至於其他資訊,那就是stencil buffer和depth buffer的事情了ˊ_>ˋ
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式高級班:DirectX、OpenGL及各種圖型函式庫 所有的時間均為 台灣時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
可以 在這個版面附加檔案
可以 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作