윈도우 환경에서 스크린 캡쳐하는 C/C++코드가 필요합니다

게임 영상을 찍을 용도로 윈도우용 스크린 캐스팅 프로그램을 제작하고 있습니다.

속도가 중요해 GDI 말고 다른 방법을 쓰려고 찾고 있는데 관련 정보가 잘 안나오네요..

어느쪽으로 찾아보면 될까요?

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    이 코드는 어떠신가요

    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();
    }
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.