0001:
0002:
0003:
0004:
0005:
0006:
0007:
0008:
0009: #define STRICT
0010:
0011: #include <windows.h>
0012: #include "main.h"
0013: #include "draw.h"
0014:
0015: #include "CSkinModel.h"
0016:
0017: CSkinModel model;
0018: D3DXVECTOR4 rot = D3DXVECTOR4(-PI/2.0f, 0.0f, 0.0f, 0.0f);
0019:
0020:
0021:
0022:
0023:
0024:
0025:
0026:
0027: HRESULT InitRender(LPDIRECT3D8 pD3D, LPDIRECT3DDEVICE8 pD3DDev)
0028: {
0029: HRESULT hr;
0030: DWORD time;
0031:
0032: timeBeginPeriod(10);
0033: time = timeGetTime();
0034:
0035:
0036: D3DCAPS8 caps;
0037: pD3D->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &caps);
0038: model.Init(time, pD3DDev, caps);
0039:
0040:
0041: if('\0' == model.GetFileName()[0]){
0042: hr = model.Load("tiny.x");
0043: }
0044:
0045:
0046: pD3DDev->SetRenderState( D3DRS_ZENABLE, TRUE);
0047: pD3DDev->SetRenderState( D3DRS_LIGHTING, FALSE );
0048: return S_OK;
0049: }
0050:
0051:
0052:
0053:
0054: void Render(LPDIRECT3DDEVICE8 pD3DDev)
0055: {
0056: DWORD time = timeGetTime();
0057:
0058: D3DXMATRIXA16 m;
0059:
0060:
0061: D3DXMatrixIdentity(&m);
0062: D3DXMatrixTranslation(&m, 0, -model.GetRadius() * 0.5f, 0);
0063: model.SetTrans(m);
0064:
0065: D3DXMatrixIdentity(&m);
0066: D3DXMatrixRotationYawPitchRoll(&m, rot.y, rot.x, rot.z);
0067: model.SetRot(m);
0068:
0069:
0070: D3DXMatrixIdentity(&m);
0071: D3DXMatrixTranslation(&m, 0, 0, -model.GetRadius() * 2.5f);
0072: model.SetView(m);
0073:
0074: model.FrameMove(time);
0075: model.Render();
0076: }
0077:
0078:
0079:
0080:
0081:
0082: void CleanRender(LPDIRECT3DDEVICE8 pD3DDev)
0083: {
0084: model.Release();
0085: }
0086: