使用DirectX截屏
来源:互联网 发布:丝丝缠绵 白白知 小说 编辑:程序博客网 时间:2024/05/18 02:11
原文链接:http://blog.163.com/charlie-lei@126/blog/static/113743924201051310238139/
Directx截图黑屏的原因分析可以参考:http://www.cnblogs.com/graphics/archive/2012/04/03/2117798.html
// 以下代码没有错误处理,请在实际使用中增加适当的错误处理。
//
#include "stdafx.h"#include <d3d9.h>#include <d3dx9.h>#pragma comment( lib, "d3d9.lib" )#pragma comment( lib, "d3dx9.lib" )int Capture(){LPDIRECT3D9 g_pD3D = NULL;D3DDISPLAYMODE ddm; D3DPRESENT_PARAMETERS d3dpp;IDirect3DDevice9 * g_pd3dDevice;IDirect3DSurface9 * pSurface;ZeroMemory(&d3dpp,sizeof(D3DPRESENT_PARAMETERS)); ZeroMemory( &d3dpp, sizeof(d3dpp) );g_pD3D=Direct3DCreate9(D3D_SDK_VERSION);g_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT,&ddm);d3dpp.Windowed=TRUE; d3dpp.Flags=D3DPRESENTFLAG_LOCKABLE_BACKBUFFER; d3dpp.BackBufferFormat=ddm.Format; d3dpp.BackBufferHeight=ddm.Height; d3dpp.BackBufferWidth=ddm.Width; d3dpp.MultiSampleType=D3DMULTISAMPLE_NONE; d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD; d3dpp.hDeviceWindow=GetDesktopWindow(); d3dpp.PresentationInterval=D3DPRESENT_INTERVAL_DEFAULT; d3dpp.FullScreen_RefreshRateInHz=D3DPRESENT_RATE_DEFAULT;HRESULT hr = g_pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,GetDesktopWindow(),D3DCREATE_SOFTWARE_VERTEXPROCESSING ,&d3dpp,&g_pd3dDevice);hr = g_pd3dDevice->CreateOffscreenPlainSurface(ddm.Width, ddm.Height, D3DFMT_A8R8G8B8, D3DPOOL_SCRATCH, &pSurface, NULL);hr = g_pd3dDevice->GetFrontBufferData(0, pSurface);//---以下指令可以把‘表面’保存成内存数据LPD3DXBUFFER bufferedImage = NULL;hr = D3DXSaveSurfaceToFileInMemory( &bufferedImage, D3DXIFF_PNG,pSurface,NULL,NULL);bufferedImage->Release();//---以下指令可以把‘表面’保存成指定格式的文件(如果需要其它格式,请参考 MSDN)hr = D3DXSaveSurfaceToFile("d:/1.png", D3DXIFF_PNG,pSurface,NULL,NULL);//s保存为png格式pSurface->Release(); g_pd3dDevice->Release ();g_pD3D->Release ();return 0;}int _tmain(int argc, _TCHAR* argv[]){CoInitialize( NULL );Capture();CoUninitialize();return 0;}
- 使用DirectX截屏
- 使用DirectX截屏
- 使用DirectX截屏
- 使用DirectX截屏
- 使用directx绘制三角形
- 学习使用DirectX
- C# DirectX 使用例子
- directx 使用环境配置
- C#中使用DirectX编程
- C#中使用DirectX编程
- C#中使用DirectX编程
- C#中使用DirectX编程
- DirectX 中灯光的使用
- DirectX 中的COM 使用技术
- 在Delphi中使用DirectX
- 使用DirectX 优化声音特性
- 在BCB中使用DirectX
- 使用DirectX来渲染位图
- Detect whether two rectangles have common area or not -- Amazon
- Python标准库简介
- cocos2d-x基础知识(二)瞬时动作/延时动作
- hyper-v 虚拟机联网设置
- Android面试常用面试题
- 使用DirectX截屏
- 近年来印象最深的几本书 .
- Mysql 导入导出数据结构及数据
- Find pairs equal zero -- Paypal
- 菜鸟玩云计算之十一:Hadoop 手动安装指南
- Linux 网络应用开发(二)之socket编程
- 比特币的唯一出路-可交易的大规模并行运算包
- 查看某一个shell脚本在什么位置 显示当前操作系统的名称
- newlisp 注释生成文档