DirectX Graphics 레퍼런스 Direct3D extension (D3DX) C/C++ 레퍼런스 인터페이스 ID3DXSprite Draw [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
스크린 공간에 단순한 스프라이트를 드로잉(Drawing) 한다.
구문
HRESULT Draw(
LPDIRECT3DTEXTURE9 pSrcTexture, CONST RECT *pSrcRect, CONST D3DXVECTOR2 *pScaling, CONST D3DXVECTOR2 *pRotationCenter, FLOAT Rotation, CONST D3DVECTOR2 *pTranslation, D3DCOLOR Color );
파라미터
- pSrcTexture
- [in] 스프라이트에 사용하는 소스 이미지를 나타내는 IDirect3DTexture9 인터페이스의 포인터.
- pSrcRect
- [in] 소스 텍스처의 어느 부분을 스프라이트에 사용하는지를 나타내는 RECT 구조체의 포인터. 이 파라미터를 NULL 로 하면 소스 이미지 전체가 스프라이트에 사용된다. 다만, 소스 이미지의 부분적인 직사각형을 지정할 수도 있다. 변환의 전에, 스프라이트의 사이즈가 pSrcRect 에 의해 좌상구석을 시점 (0,0)으로서 정의된다.
- pScaling
- [in] 스케일링 벡터를 저장 하는 D3DXVECTOR2 구조체의 포인터. 이 파라미터가 NULL 의 경우는, 값 (1.0, 1.0)을 사용한다. pScaling 는 벡터이므로, 승수 1.0 을 사용하면 소스 이미지의 사이즈가 보관 유지된다.
- pRotationCenter
- [in] 회전의 중심을 식별하는 스크린 픽셀내의 포인트를 저장 하는,D3DXVECTOR2 구조체의 포인터. 이 인수가 NULL 의 경우는, 텍스처의 좌상구석의 포인트 (0,0)가 사용된다.
- Rotation
- [in] 반시계회전의 회전을 지정하는 값 (라디안 단위).
- pTranslation
- [in] 스크린 픽셀에서의 평행이동값을 저장 하는 D3DXVECTOR2 구조체의 포인터. 이 인수가 NULL 의 경우는, 포인트 (0,0)를 사용한다.
- Color
- [in] D3DCOLOR 형. 이 값에 의해 컬러 채널과 알파 채널이 곱셈된다. 0xFFFFFFFF 라고 하는 값을 사용하면 원의 소스 컬러 및 알파 데이터가 유지된다.
반환값
성공했을 경우는,D3D_OK 를 돌려준다.
실패했을 경우는,D3DERR_INVALIDCALL 를 돌려준다.
주의
변환의 순서는, 다음과 같이 지정된다.
(Msc)-1 * (Msr)-1 * Ms * Msr * Msc * (Mrc)-1 * Mr * Mrc * Mt
여기서
- Msc 는 중심의 스케일링 행렬이다.
- Msr 는 스케일링 회전 행렬이다.
- Ms 는 스케일링 행렬이다.
- Mrc 는 회전 행렬의 중심이다.
- Mr 는 회전 행렬이다.
- Mt 는 평행이동 행렬이다.
이 메서드는,IDirect3DDevice9::BeginScene 와 IDirect3DDevice9::EndScene 의 페어의 사이에 호출해야 한다.
ID3DXSprite::Begin 가 불려 가지 않은 경우, 이 메서드는 내부에서 ID3DXSprite::Begin 와 ID3DXSprite::End 를 호출한다. 이 메서드 또는 ID3DXSprite::DrawTransform , 혹은 그 양쪽 모두를 계속해 호출하는 경우는,ID3DXSprite::DrawTransform 곳의 메서드가 매회 내부에서 ID3DXSprite::Begin 와 ID3DXSprite::End 를 호출하는 것에 의해 생기는 여분의 오버헤드를 회피하기 위해(때문에),ID3DXSprite::Begin 를 반드시 호출하는 것.
이미지를 미러링 하려면 ,pScaling 파라미터에 적절한 방향 (x 또는 y, 혹은 그 양쪽 모두)의 부의 벡터를 지정해,pSrcRect 파라미터로 지정되고 있는 전송원직사각형의 폭 또는 높이, 혹은 그 양쪽 모두를,pTranslation 파라미터로 지정되고 있는 값에 추가한다. 이것에 의해 회전의 원점이 바뀌는 것에 주의 해야 한다.