如何使用DirectX10或DirectX11进行全屏捕获? [英] How Can I do FullScreen Capture using DirectX10 or DirectX11?

查看:177
本文介绍了如何使用DirectX10或DirectX11进行全屏捕获?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hello

我使用Directx10开发了C ++应用程序。

I developed C++ Application with Directx10.

我想使用DirectX10捕获全屏捕获(2010年6月)版本)。

I'm want to capture full screen capture use DirectX10 (June 2010 Version).

使用DirectX9版本,无法捕获前面的图像,如下面的源代码。

/////////////// ////////////////////////////////////////////////// ///////////////

With DirectX9 version, cant capture front Image like below source code.
////////////////////////////////////////////////////////////////////////////////

  parameters.Windowed     = TRUE;

  ; parameters.BackBufferCount   = 1;

  parameters.BackBufferHeight   = mode.Height;

  parameters.BackBufferWidth   = mode。宽度;

  parameters.SwapEffect    = D3DSWAPEFFECT_DISCARD;

  parameters.hDeviceWindow   = NULL;

 parameters.Windowed    = TRUE;
 parameters.BackBufferCount  = 1;
 parameters.BackBufferHeight  = mode.Height;
 parameters.BackBufferWidth  = mode.Width;
 parameters.SwapEffect   = D3DSWAPEFFECT_DISCARD;
 parameters.hDeviceWindow  = NULL;

  //创建设备&捕获表面

  // HRCHECK(d3d-> CreateDevice(适配器,D3DDEVTYPE_HAL,NULL,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&参数和&设备));

  HRCHECK(d3d-> CreateDevice(适配器,D3DDEVTYPE_HAL,NULL,D3DCREATE_HARDWARE_VERTEXPROCESSING,&参数和&设备));

 // create device & capture surface
 //HRCHECK(d3d->CreateDevice(adapter, D3DDEVTYPE_HAL, NULL, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &parameters, &device));
 HRCHECK(d3d->CreateDevice(adapter, D3DDEVTYPE_HAL, NULL, D3DCREATE_HARDWARE_VERTEXPROCESSING, &parameters, &device));

  HRCHECK(device-> CreateOffscreenPlainSurface(mode.Width) ,mode.Height,D3DFMT_A8R8G8B8,D3DPOOL_SYSTEMMEM,& surface,NULL));

 HRCHECK(device->CreateOffscreenPlainSurface(mode.Width, mode.Height, D3DFMT_A8R8G8B8, D3DPOOL_SYSTEMMEM, &surface, NULL));

  HRCHECK(device-> GetFrontBufferData(0,surface));

//////////////////////////////////////////////// ////////////////////////////////

 HRCHECK(device->GetFrontBufferData(0, surface));
////////////////////////////////////////////////////////////////////////////////



但我找不到任何方法来使用Direct10或Direct11捕获frontBuffer图像数据。

是否有关于此的任何示例代码或导频代码?

请告诉我。


But I Can't find any way to capture frontBuffer Image data using Direct10 or Direct11.
Is ther any sample code or pilot code about this?
Please let me know.

推荐答案

嗨judy10,



这是Visual C#论坛。由于您的问题与C ++有关,我将您的线程转移到Visual C ++论坛以获得快速响应。



您的理解与合作将不胜感激。
Hi judy10,

This is Visual C# forum. As your issue is related to C++ I am moving your thread to Visual C++ forum for getting quick response.

Your understanding and cooperation will be grateful.


这篇关于如何使用DirectX10或DirectX11进行全屏捕获?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆