windows directx9截屏儲存bmp檔案

來源:互聯網
上載者:User

標籤:ima   ges   create   plain   screen   .com   swa   pool   儲存   

/* * windows directx9截屏儲存bmp檔案 */#include <d3d9.h>  #include <D3dx9tex.h>  #pragma comment(lib, "D3D9.lib")  #pragma comment(lib, "D3dx9.lib")#ifndef SAFE_RELEASE#define SAFE_RELEASE(p) if(p){p->Release();p = NULL;}#endifint main(int argc,char *argv[]){LPDIRECT3DDEVICE9 g_pd3dDevice = NULL;LPDIRECT3DSURFACE9 g_pD3DSurface = NULL;HWND dtHwnd = GetDesktopWindow();LPDIRECT3D9 g_pD3D = Direct3DCreate9(D3D_SDK_VERSION);  if(g_pD3D == NULL) return -1;D3DPRESENT_PARAMETERS d3dpp;  ZeroMemory(&d3dpp,sizeof(d3dpp));  d3dpp.Windowed = true;  d3dpp.Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;  d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;  d3dpp.hDeviceWindow = dtHwnd;HRESULT hr = g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, dtHwnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &g_pd3dDevice);if(hr != D3D_OK || g_pd3dDevice == NULL)  {return -1;}D3DDISPLAYMODE ddm = {0};  hr = g_pd3dDevice->GetDisplayMode(0, &ddm);  if(hr != D3D_OK)  {SAFE_RELEASE(g_pD3D);return -1;}hr = g_pd3dDevice->CreateOffscreenPlainSurface(ddm.Width, ddm.Height, D3DFMT_A8R8G8B8, D3DPOOL_SYSTEMMEM, &g_pD3DSurface, NULL);  if(hr != D3D_OK)  {SAFE_RELEASE(g_pd3dDevice);SAFE_RELEASE(g_pD3D);return -1;}if(g_pd3dDevice && g_pD3DSurface)  {hr = g_pd3dDevice->GetFrontBufferData(0, g_pD3DSurface);if(hr == D3D_OK){hr = D3DXSaveSurfaceToFile("directx9.bmp", D3DXIFF_BMP, g_pD3DSurface, NULL, NULL);  }}SAFE_RELEASE(g_pD3DSurface);SAFE_RELEASE(g_pd3dDevice);SAFE_RELEASE(g_pD3D); return 1;}

directx9_bmp.cpp

windows directx9截屏儲存bmp檔案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.