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

如何從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指向申請到的內(nèi)存區(qū)域*/ /* lock entire surface*/// no lock flags specified if (!FAILED(hr)) { pPixelBuffer = (DWORD*)lockedRect.pBits; result = TRUE; } _surfaceback->UnlockRect(); _surfaceback->Release(); return result; }


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

 

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

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

如何去解決這個問題?下面的參考資料中有一些解決方案,我沒有經(jīng)過認(rèn)真測試,我試了其中一個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指向申請到的內(nèi)存區(qū)域*/ /* 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


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


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

導(dǎo)航

統(tǒng)計

常用鏈接

留言簿

隨筆分類

隨筆檔案

文章檔案

牛人博客

搜索

積分與排名

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日韩在线视频一区| 国产日韩欧美在线播放不卡| 一区精品在线播放| 可以免费看不卡的av网站| 久久狠狠亚洲综合| 亚洲国产精品一区在线观看不卡| 男女精品视频| 欧美电影美腿模特1979在线看 | 亚洲最快最全在线视频| 欧美日韩第一区| 亚洲欧美日韩视频二区| 欧美在线观看网站| 亚洲国产精品久久久| 亚洲精品久久久久久久久久久久久| 男女av一区三区二区色多| 这里只有精品电影| 亚洲在线观看视频| 在线看片日韩| 制服丝袜亚洲播放| 韩国成人理伦片免费播放| 亚洲国产精品成人| 国产精品一区一区| 欧美国产日韩一区二区三区| 欧美视频在线观看免费| 久久综合色综合88| 欧美视频日韩视频在线观看| 久久国产欧美| 欧美麻豆久久久久久中文| 久久成人在线| 欧美日本韩国一区二区三区| 久久99在线观看| 欧美欧美全黄| 免费在线观看成人av| 欧美亚韩一区| 亚洲第一在线视频| 国外视频精品毛片| 一本大道久久a久久综合婷婷| 国产一区白浆| 一区二区三区高清视频在线观看| 国产深夜精品福利| 99在线精品视频在线观看| 亚洲第一精品电影| 亚洲综合首页| 亚洲夜晚福利在线观看| 欧美不卡在线| 久久综合九色综合网站| 国产精品素人视频| av成人免费观看| 日韩视频中文字幕| 免费日韩av| 裸体丰满少妇做受久久99精品| 国产精品成人午夜| 亚洲日本理论电影| 91久久在线播放| 久久综合一区二区| 欧美xxx成人| 一区二区视频免费在线观看| 香蕉乱码成人久久天堂爱免费| 亚洲性感美女99在线| 欧美日韩国产色综合一二三四 | 亚洲理论在线| 亚洲精品免费一区二区三区| 久久综合色88| 欧美大片在线观看一区| 亚洲成人原创| 久久综合九色九九| 欧美黄色小视频| 亚洲精选在线观看| 欧美日韩国产一区二区三区地区| 亚洲国产成人精品久久| 亚洲国产三级在线| 欧美精品二区| 日韩午夜在线| 香蕉av福利精品导航| 国产精品一区二区三区乱码| 亚洲综合精品| 久久在线免费观看视频| 亚洲高清激情| 欧美精品久久99久久在免费线| 亚洲精品国产精品国自产在线 | 亚洲高清视频的网址| 麻豆精品精华液| 亚洲人成在线播放网站岛国| 亚洲一区二区三区四区在线观看 | 久久亚洲私人国产精品va| 免费人成网站在线观看欧美高清 | 国产精品国产三级国产| 亚洲一二三四久久| 久久人人97超碰精品888| 黄色成人在线观看| 欧美电影资源| 国产精品99久久99久久久二8 | 一本久久综合亚洲鲁鲁五月天| 亚洲午夜在线视频| 国内精品久久久久影院优| 老**午夜毛片一区二区三区| 亚洲精品欧美日韩| 欧美在线观看www| 亚洲福利视频在线| 国产精品久久久久久久久久久久 | 最近中文字幕日韩精品| 亚洲一区久久久| 国产亚洲福利社区一区| 欧美激情1区2区| 亚洲影音一区| 亚洲国产精品嫩草影院| 欧美一级久久久| 亚洲精品国产精品国产自| 国产精品卡一卡二卡三| 麻豆国产va免费精品高清在线| 日韩视频在线你懂得| 久久一二三区| 亚洲欧美另类国产| 亚洲全黄一级网站| 国产一区二区高清| 国产精品s色| 欧美国产视频日韩| 久久精品国产精品 | 欧美aⅴ99久久黑人专区| 亚洲永久在线| 亚洲精品综合久久中文字幕| 黑人一区二区| 国产精品亚洲а∨天堂免在线| 欧美国产丝袜视频| 老司机凹凸av亚洲导航| 欧美一区二区精美| 亚洲免费影视| 亚洲午夜羞羞片| 亚洲精品中文字幕女同| 欧美国产亚洲视频| 男女精品视频| 免费看精品久久片| 久久久久久香蕉网| 久久久不卡网国产精品一区| 亚洲欧美欧美一区二区三区| 夜夜嗨av一区二区三区| 亚洲日本欧美天堂| 亚洲经典在线| 亚洲精品综合| 99精品热视频只有精品10| 亚洲国产你懂的| 亚洲人成在线观看一区二区| 亚洲激情第一页| 亚洲国产影院| 亚洲毛片在线免费观看| 99re在线精品| 国产精品99久久久久久久vr| 宅男噜噜噜66一区二区| 亚洲天堂av在线免费| 亚洲影院一区| 欧美亚洲综合网| 久久精品视频在线免费观看| 久久精品国产99| 麻豆精品一区二区av白丝在线| 久久久久国产精品午夜一区| 久久久噜噜噜久久久| 欧美 日韩 国产一区二区在线视频| 老色鬼精品视频在线观看播放| 免费高清在线视频一区·| 欧美成人有码| 亚洲裸体视频| 亚洲尤物在线视频观看| 欧美一区二区三区另类 | 欧美一区二区三区免费视| 欧美在线免费| 欧美1区免费| 国产精品jizz在线观看美国| 国产日韩欧美视频| 亚洲成色777777女色窝| 日韩视频一区二区在线观看 | 欧美在线首页| 欧美成人r级一区二区三区| 亚洲娇小video精品| 亚洲一区二区高清视频| 欧美在线短视频| 欧美xxxx在线观看| 国产精品青草久久| 永久91嫩草亚洲精品人人| 一区二区成人精品| 久久精品欧洲| 亚洲精品美女91| 亚洲欧美国产日韩天堂区| 久热国产精品视频| 国产精品日韩一区| 亚洲国产高清自拍| 午夜欧美大片免费观看 | 亚洲综合色视频| 久久免费黄色| 一区二区三区**美女毛片| 久久久久久综合网天天| 欧美揉bbbbb揉bbbbb| 樱桃成人精品视频在线播放| 亚洲一区免费在线观看| 久久综合图片| 亚洲永久精品国产| 欧美精品一区二区三区高清aⅴ| 国产亚洲福利| 亚洲一区二区欧美日韩| 欧美激情亚洲另类| 欧美在线free|