1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
##################################################
bool DXGraphics::CreateDevice(HWND hWnd)
{
HRESULT hr;
CreateD3DObject();
ZeroMemory(¶m,sizeof(param));
if(S_OK == hr)
{
param.Windowed = TRUE;
param.BackBufferCount = 1;
param.BackBufferFormat = D3DFMT_UNKNOWN;
param.SwapEffect = D3DSWAPEFFECT_DISCARD;
param.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;
hr=obj->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_HARDWARE_VERTEXPROCESSING, ¶m, &device);
if (FAILED(hr))
{
hr=obj->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING, ¶m, &device);
if (FAILED(hr))
return FAIL;
}
}
return OK;
}
##################################################
bool DXGraphics::LoadSprite(char* path,float x,float y,float z)
{
HRESULT result;
result= D3DXCreateSprite(device,&Sprite);
if(SUCCEEDED(result))
{
D3DXCreateTextureFromFile(device,path,&texture);
position.x=x;
position.y=y;
position.z=z;
}
else
return FAIL;
return OK;
}
##################################################
bool DXGraphics::DrawSprite()
{
HRESULT res;
res=device->BeginScene();
if(res == S_OK)
{
Sprite->Begin(D3DXSPRITE_ALPHABLEND);
Sprite->Draw(texture,NULL,NULL,&position,0xFFFFFFFF);
Sprite->End();
}
res=device->EndScene();
device->Present(NULL,NULL,NULL,NULL);
return OK;
}
|