[GPG 1 글 5.1] 스프라이트의 드로우 관련 질문입니다...

GPG 시리즈 관련 질답, 논의 공간.

Moderator: 류광

jin00521
Posts: 3
Joined: 2012-07-18 20:25

스프라이트의 드로우 관련 질문입니다...

Post by jin00521 »

안녕하세요.. Sprite의 draw메소드를 이용해서 화면에 이미지를 디스플레이 하고자 하는데요 ..

파일로부터 텍스쳐를 읽어와서 드로우하는 방법 말고,
제가 직접 이미지 데이터를 넣어서 화면에 출력하고자 하는데 클리어화면만 나오고 이미지 데이터는 보이지 않아 이렇게 질문을 올립니다.


===========================================

//준비부분

hr = g_lpD3DDevice->CreateTexture(640, 480, 1, D3DUSAGE_RENDERTARGET,
D3DFMT_X8R8G8B8, D3DPOOL_DEFAULT, &g_lpTexture, NULL)



hr = g_lpTexture->GetSurfaceLevel(0,&g_lpTextureSur);



D3DXCreateSprite(g_lpD3DDevice,&g_lpSprite);


=============================================

//드로우 부분

HRESULT hr = g_lpD3DDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 0, 0 );

g_lpD3DDevice->BeginScene();
g_lpSprite->Begin(D3DXSPRITE_ALPHABLEND);
hr = g_lpD3DDevice->StretchRect( g_lpSurface, 0, g_lpTextureSur, 0, D3DTEXF_NONE ); //제가따로 만든 surface를 texture로 복사

RECT rc;
SetRect(&rc,0,0,640,480);
D3DXVECTOR3 vec = D3DXVECTOR3(0,0,0);


g_lpD3DDevice->SetRenderTarget(0, g_lpTextureSur);


hr = g_lpSprite->Draw(g_lpTexture,&rc,NULL,&vec,0);

g_lpSprite->End();
g_lpD3DDevice->EndScene();

g_lpD3DDevice->Present( NULL, NULL, NULL,NULL );



이렇게 해서 실행시키면 클리어된 화면만 나오네요 ......
혹시 Texture가 잘못생성되었나 해서

hr = g_lpD3DDevice->StretchRect( g_lpTextureSur, 0,g_lpBackbuffer , 0, D3DTEXF_NONE );


이렇게 백버퍼에 직접 복사해서 디스플레이 해 보았더니 정상적으로 나오더라구요.

그렇다면 텍스쳐는 정상적으로 생성 되었다는 얘기 같은데 .. 뭐가 잘못되었는지 잘 모르겠네요.......
류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Post by 류광 »

Draw의 마지막 인수가 0인 것이 의심스럽습니다. 0이면 완전 검은색+완전 투명이라는 뜻 아닌가요?
jin00521
Posts: 3
Joined: 2012-07-18 20:25

Post by jin00521 »

류광 wrote:Draw의 마지막 인수가 0인 것이 의심스럽습니다. 0이면 완전 검은색+완전 투명이라는 뜻 아닌가요?
0xffffffff를 넣었어야했는데 0을 넣어놨네요!!!!! 이런...... 감사합니다.
처음 접하는 초보라서 이것저것 헷갈리네요 ㅡㅜ 감사합니다.
Post Reply