윈도우 환경에서 스크린 캡쳐하는 C/C++코드가 필요합니다
조회수 3558회
게임 영상을 찍을 용도로 윈도우용 스크린 캐스팅 프로그램을 제작하고 있습니다.
속도가 중요해 GDI 말고 다른 방법을 쓰려고 찾고 있는데 관련 정보가 잘 안나오네요..
어느쪽으로 찾아보면 될까요?
1 답변
-
이 코드는 어떠신가요
void dump_buffer() { IDirect3DSurface9* pRenderTarget=NULL; IDirect3DSurface9* pDestTarget=NULL; const char file[] = "Pickture.bmp"; // 정상인지 확인. if (Device == NULL) return; // render target을 얻어옴 HRESULT hr = Device->GetRenderTarget(0, &pRenderTarget); // 현재 adapter display mode를 얻어옴 //hr = pDirect3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT,&d3ddisplaymode); // destination surface 생성 hr = Device->CreateOffscreenPlainSurface(DisplayMde.Width, DisplayMde.Height, DisplayMde.Format, D3DPOOL_SYSTEMMEM, &pDestTarget, NULL); // render target을 destination surface로 복사해옴 hr = Device->GetRenderTargetData(pRenderTarget, pDestTarget); // bitmap 파일에 저장 hr = D3DXSaveSurfaceToFile(file, D3DXIFF_BMP, pDestTarget, NULL, NULL); // 종료하기 전에 정리 pRenderTarget->Release(); pDestTarget->Release(); }
댓글 입력