青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

如何從DirectX中獲取圖像


BOOL CD3DCameraViewWnd::GetImageInfo(DWORD* pPixelBuffer, int& width,int& height) { BOOL result = FALSE; IDirect3DSurface9 *_surfaceback = NULL; if (FAILED(m_pDevice->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &_surfaceback))) { result = FALSE; } D3DSURFACE_DESC surfaceDesc; if (!FAILED(_surfaceback->GetDesc(&surfaceDesc))) { width = surfaceDesc.Width; height = surfaceDesc.Height; } D3DLOCKED_RECT lockedRect; HRESULT hr = _surfaceback->LockRect( &lockedRect,0, 0); /* pointer to receive locked data指向申請到的內存區域*/ /* lock entire surface*/// no lock flags specified if (!FAILED(hr)) { pPixelBuffer = (DWORD*)lockedRect.pBits; result = TRUE; } _surfaceback->UnlockRect(); _surfaceback->Release(); return result; }


但是這樣存在著性能的問題,經測試獲取一幀需要200ms左右,為什么會存在這樣的問題?因為這邊有資源鎖定操作。

 

現在關鍵的問題就在于,資源鎖定的操作速度總是非常之慢.當然,你會跟我提, OpenGL似乎能夠快捷地完成這項任務.但是,在Direct3D中,資源鎖定操作確實是很慢的.這里面一個主要的原因是,API,驅動,以及硬件要處理一些不可回避的后臺操作.那就是GPU與CPU是并行運行的,若不加任何措施,將引起類似多線程程序同步時的競態條件的問題.

如果你試圖去修改的資源正同時被一個位于GPU處理序列中的指令使用,那么整個渲染流程就會因為你的資源鎖定而停頓或強制刷新(stalls and flushes).停頓(stall)會一直持續到你完成了對資源的修改并調用Unlock().而強制刷新(flush)則會要求GPU在你得到這個資源的訪問權之前完成目前所有的任務.

如何去解決這個問題?下面的參考資料中有一些解決方案,我沒有經過認真測試,我試了其中一個GetRenderTargetData 這樣的一種方法 ,感覺不太好用,why請看Reference3


下面給出我的解決方案

BOOL CD3DCameraViewWnd::GetImageInfo(DWORD* pPixelBuffer, int& width,int& height)
{
	BOOL result = FALSE;

	IDirect3DSurface9 *_surfaceback = NULL; 
	if (FAILED(m_pDevice->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &_surfaceback)))
	{
		result = FALSE;
	}
	  

	D3DSURFACE_DESC surfaceDesc; 
	if (!FAILED(_surfaceback->GetDesc(&surfaceDesc)))
	{
		width = surfaceDesc.Width;
		height = surfaceDesc.Height;
	}

	LPDIREC3DSURFACE9 surf;
	if(FAILED(m_pDevice->CreateOffscreenPlainSurface(width, height,D3DFMT_A8R8G8B8,D3DPOOL_SYSTEMMEM, &surf,NULL)))
	{
		result = FALSE;
	}
	D3DXLoadSurfaceFromSurface(surf, NULL,NULL,_surfaceback,NULL,NULL,D3DX_FILTER_NONE,0);

	D3DLOCKED_RECT lockedRect; 
	HRESULT hr = surf->LockRect( &lockedRect,0, 0); /* pointer to receive locked data指向申請到的內存區域*/ /* lock entire surface*/// no lock flags specified 

	if (!FAILED(hr))
	{
		pPixelBuffer = (DWORD*)lockedRect.pBits;
		result = TRUE;
	}

	surf->UnlockRect();
	surf->Release();
_surfaceback->Release(); return result; }


 


 

參考資料:Reference1.http://www.cnblogs.com/mixiyou/archive/2010/02/25/1673060.html

   Reference 2.http://www.cnblogs.com/mixiyou/archive/2010/02/25/1673425.html

   Reference 3.http://blog.csdn.net/Nightmare/article/details/1707362

   Reference 4.http://www.cnblogs.com/lancidie/archive/2011/3/14.html

posted on 2011-12-23 17:45 Daywei 閱讀(2761) 評論(0)  編輯 收藏 引用 所屬分類: CODEDirectX

<2013年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

導航

統計

常用鏈接

留言簿

隨筆分類

隨筆檔案

文章檔案

牛人博客

搜索

積分與排名

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩免费观看中文| 欧美视频在线观看视频极品| 国产在线拍揄自揄视频不卡99| 亚洲免费在线观看| 这里是久久伊人| 欧美午夜视频在线观看| 亚洲欧美日韩在线观看a三区| 一区二区三区精品在线| 国产精品日韩一区| 久久久亚洲国产天美传媒修理工 | 在线视频欧美精品| 亚洲人成绝费网站色www| 欧美福利在线| 国产精品99久久久久久久久久久久| 99re国产精品| 国产视频欧美视频| 欧美激情在线播放| 欧美丝袜一区二区三区| 久久成人人人人精品欧| 久久亚洲精品欧美| 亚洲在线成人精品| 欧美一区免费| 一区二区国产在线观看| 亚洲欧美一区二区三区在线| 1000精品久久久久久久久| 亚洲国产精品一区二区久| 国产精品国产三级国产aⅴ入口| 久久精品国产v日韩v亚洲| 久久亚洲综合网| 亚洲欧美日韩在线播放| 美女福利精品视频| 午夜精品久久| 免费一区二区三区| 欧美一区二区性| 欧美久久综合| 免费日韩av电影| 国产精品日韩精品欧美精品| 亚洲福利视频专区| 国产亚洲精品久久久| 日韩亚洲精品视频| 亚洲国产裸拍裸体视频在线观看乱了| 一区二区三区av| 亚洲理论在线观看| 久久久久久久久久看片| 亚洲综合日韩| 欧美激情麻豆| 亚洲成人在线视频网站| 国产一区二区三区在线观看视频| 亚洲免费观看高清完整版在线观看熊| 一区二区三区自拍| 亚洲欧美大片| 亚洲午夜黄色| 欧美日韩成人一区二区三区| 你懂的国产精品| 韩日精品在线| 欧美一级片久久久久久久| 亚洲欧美影院| 国产精品久久久久久久一区探花| 亚洲国产一区二区三区青草影视| 伊人蜜桃色噜噜激情综合| 亚洲欧美日韩一区| 欧美一区免费| 国产日韩欧美视频| 午夜在线一区二区| 久久精品国产一区二区三区免费看| 欧美三级电影大全| av成人国产| 亚洲色图自拍| 国产精品成人国产乱一区| 99精品国产福利在线观看免费| 亚洲精品久久久久久久久久久久 | 男人天堂欧美日韩| 欧美国产精品中文字幕| 亚洲国产精品一区二区www| 蜜臀91精品一区二区三区| 欧美黑人在线观看| 99视频精品在线| 欧美婷婷久久| 午夜一区在线| 欧美成人首页| 亚洲精品在线观| 欧美色综合天天久久综合精品| 99国内精品久久| 久久国产主播精品| 在线观看欧美激情| 欧美精品一区三区在线观看| 日韩视频在线一区二区三区| 香蕉久久国产| 精品91久久久久| 欧美精品偷拍| 午夜精品亚洲| 亚洲第一久久影院| 亚洲免费在线观看| 在线成人亚洲| 欧美日韩在线一区| 久久国产精品亚洲va麻豆| 亚洲电影免费观看高清| 亚洲免费中文| 美国十次成人| 亚洲乱码国产乱码精品精98午夜| 欧美理论电影在线播放| 亚洲一区久久久| 欧美国产精品人人做人人爱| 亚洲性线免费观看视频成熟| 国内精品久久久久久| 欧美理论视频| 久久精品国亚洲| 一区二区三区导航| 欧美/亚洲一区| 亚洲女人天堂av| 亚洲在线不卡| 欧美高清视频一区二区三区在线观看 | 亚洲日韩成人| 国产欧美一区二区色老头| 另类春色校园亚洲| 亚洲永久免费| 亚洲精品专区| 免费成人黄色片| 亚洲日本在线观看| 国产日韩欧美精品综合| 久久永久免费| 亚洲日韩第九十九页| 久久亚洲国产成人| 日韩视频二区| 曰韩精品一区二区| 国产人成一区二区三区影院| 欧美精品1区2区| 久久婷婷丁香| 久久精品水蜜桃av综合天堂| 亚洲欧美日韩爽爽影院| 亚洲午夜精品久久久久久浪潮| 欧美成年人视频| 久久久一区二区| 久久大香伊蕉在人线观看热2| 亚洲免费在线看| 一区二区三区日韩在线观看| 亚洲激情午夜| 亚洲国产精品t66y| 亚洲第一福利视频| 1769国产精品| 亚洲三级电影全部在线观看高清| 在线日韩中文字幕| 亚洲国产视频直播| 亚洲娇小video精品| 亚洲全黄一级网站| 亚洲精品久久视频| 国产精品99久久久久久宅男| 亚洲私人影院在线观看| 亚洲欧美另类在线观看| 亚洲欧美日韩天堂| 久久精品99国产精品日本| 欧美在线亚洲一区| 久久亚洲春色中文字幕| 蜜臀久久99精品久久久久久9| 欧美大片在线观看一区二区| 欧美激情在线| 一区二区三区免费观看| 亚洲欧美日韩精品久久亚洲区| 欧美亚洲色图校园春色| 久久这里有精品15一区二区三区| 免费视频最近日韩| 欧美午夜片欧美片在线观看| 国产免费成人av| 加勒比av一区二区| 一本大道久久a久久综合婷婷| 亚洲永久免费视频| 久久精品视频免费播放| 欧美韩日一区二区| 正在播放欧美视频| 久久精视频免费在线久久完整在线看| 欧美a级片网站| 国产精品亚洲а∨天堂免在线| 国产综合视频在线观看| 亚洲日本欧美日韩高观看| 亚洲一区二区三区中文字幕在线 | 久久综合久久综合九色| 亚洲高清视频在线| 亚洲一区3d动漫同人无遮挡| 久久久精品免费视频| 欧美激情二区三区| 国产日韩精品综合网站| 亚洲日本中文字幕区 | 一区二区三区无毛| 中文在线资源观看网站视频免费不卡 | 国产精品一卡二卡| 亚洲国产日韩欧美在线动漫| 亚洲欧美日韩精品久久久久| 欧美xxx成人| 性久久久久久| 欧美三级韩国三级日本三斤| 在线高清一区| 久久精品av麻豆的观看方式| 亚洲精品在线观看视频| 久久久综合精品| 国产欧美精品| 亚洲一级特黄| 亚洲黄色在线观看| 久久视频国产精品免费视频在线| 国产精品免费一区豆花| 一本一道久久综合狠狠老精东影业|