DirectX7 Blt함수

Programming/DirectX|2016. 11. 9. 18:03
반응형




HRESULT Blt(

1. LPRECT DestRect,

2. LPDIRECTDRAWSURFACE7 Srcsurface,

3. LPRECT SrcRect,

4. DWORD dwFlags,

5. LPDDBLTFX lpDDBltFx );


함수 설명 : 

- 이 함수를 호출하는 서피스에 인자값2 SrcSurface(서피스)에서 인자값3 SrcRect범위만큼 복사해서 DestRect범위 비율대로 복사시키는 함수이다.

  복사당할 서피스의 범위가 작으면 축소되고 크면 확대된다.



LPDIRECTDRAWSURFACE7 DestSur;    // 복사당할 서피스

LPDIRECTDRAWSURFACE7 SrcSur;      // 복사할 서피스


1. DestSur와 SrcSur 서피스를 각각 생성한다.


DestSur -> Width : 100, Height : 50

SrcSur   -> Width : 400, Height : 200



2. 생성한 서피스에 lock과 unlock을 걸어 이미지를 서피스에 그려낸다.


     

 - DestSur(복사 당할 서피스)


     

- SrcSur(복사할 서피스)




3. SrcRect에 복사시킬 범위를 정해준다.


     

한 이 정도...

RECT DestRect = {0, 0, 100, 50};        // DestSur의 복사당할 범위

RECT SrcRect = {100, 50, 300, 150};    // SrcSur의 복사시킬 범위


SrcRect의 범위

( 네모선,

  맨 왼쪽 위 좌표 100, 50

  오른쪽 아래 좌표 : 300, 150 )




4, Blt함수를 써서 SrcSur의 SrcRect(빨간네모)의 범위를 복사시켜

   DestSur의 DestRect만큼 붙여넣기한다.

     



---------------------------------------------------------------------------------------------------------------------------------------

                                           소스예제)

       DestSur->Blt( &DestRect, SrcSur, &SrcRect, DDBLT_WAIT, NULL );

---------------------------------------------------------------------------------------------------------------------------------------


여기까지가 다이렉트 7에서의 Blt함수를 쓰는 방법이다.





반응형

댓글()