106 lines
2.8 KiB
C
106 lines
2.8 KiB
C
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
// File: logo_renderer.h
|
||
|
//
|
||
|
// Copyright 2001 Pipeworks Software
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
#ifndef __LOGO_RENDERER_H__
|
||
|
#define __LOGO_RENDERER_H__
|
||
|
|
||
|
class LogoRenderer
|
||
|
{
|
||
|
private:
|
||
|
|
||
|
LPDIRECT3DVERTEXBUFFER8 pLipVB;
|
||
|
WORD *pLipIndices;
|
||
|
DWORD nLipVerts;
|
||
|
DWORD nLipIndices;
|
||
|
LPDIRECT3DTEXTURE8 pLipTex;
|
||
|
|
||
|
LPDIRECT3DVERTEXBUFFER8 pSurfaceVB;
|
||
|
WORD *pSurfaceIndices;
|
||
|
DWORD nSurfaceVerts;
|
||
|
DWORD nSurfaceIndices;
|
||
|
LPDIRECT3DTEXTURE8 pSurfaceTex;
|
||
|
|
||
|
|
||
|
LPDIRECT3DVERTEXBUFFER8 pSurfaceTopVB;
|
||
|
WORD *pSurfaceTopIndices;
|
||
|
DWORD nSurfaceTopVerts;
|
||
|
DWORD nSurfaceTopIndices;
|
||
|
LPDIRECT3DTEXTURE8 pSurfaceTopTex;
|
||
|
|
||
|
LPDIRECT3DVERTEXBUFFER8 pInteriorVB;
|
||
|
WORD *pInteriorIndices;
|
||
|
DWORD nInteriorVerts;
|
||
|
DWORD nInteriorIndices;
|
||
|
|
||
|
bool bRenderText;
|
||
|
|
||
|
LPDIRECT3DVERTEXBUFFER8 pText_VB;
|
||
|
WORD *pText_Indices;
|
||
|
DWORD nText_Verts;
|
||
|
DWORD nText_Indices;
|
||
|
D3DMATRIX matText_Anim;
|
||
|
|
||
|
LPDIRECT3DVERTEXBUFFER8 pSlashTM_VB;
|
||
|
WORD *pSlashTM_Indices;
|
||
|
DWORD nSlashTM_Verts;
|
||
|
DWORD nSlashTM_Indices;
|
||
|
|
||
|
LPDIRECT3DVERTEXBUFFER8 pTextTM_VB;
|
||
|
WORD *pTextTM_Indices;
|
||
|
DWORD nTextTM_Verts;
|
||
|
DWORD nTextTM_Indices;
|
||
|
|
||
|
LPDIRECT3DTEXTURE8 pTMTex;
|
||
|
float fTMAlpha;
|
||
|
|
||
|
DWORD dwInteriorPShader;
|
||
|
DWORD dwInteriorVShader;
|
||
|
|
||
|
void createSlash();
|
||
|
void createText();
|
||
|
void createTMs();
|
||
|
|
||
|
|
||
|
LPDIRECT3DTEXTURE8 pSlashTexture;
|
||
|
bool bHasWordmark;
|
||
|
void createSlashSurface(); // don't call until camera is in final position
|
||
|
|
||
|
|
||
|
// Decompressed slash data.
|
||
|
WORD * indices_xboxlogolip_0;
|
||
|
float * verts_xboxlogolip_0;
|
||
|
WORD * indices_xboxlogosurface_0;
|
||
|
float * verts_xboxlogosurface_0;
|
||
|
WORD * indices_xboxlogosurfacetop_0;
|
||
|
float * verts_xboxlogosurfacetop_0;
|
||
|
WORD * indices_xboxlogointerior_0;
|
||
|
float * verts_xboxlogointerior_0;
|
||
|
WORD * indices_tm_wordmark_0;
|
||
|
float * verts_tm_wordmark_0;
|
||
|
WORD * indices_tm_slash_0;
|
||
|
float * verts_tm_slash_0;
|
||
|
|
||
|
// Decompressed wordmark data.
|
||
|
WORD * indices_text_0;
|
||
|
float * verts_text_0;
|
||
|
|
||
|
void decompressData();
|
||
|
|
||
|
float * decompressPosData(short *pdata,int ncount,float f_oo_pos_scale,float f_pos_delta );
|
||
|
float * decompressPosTexData(short *pdata,int ncount,float f_oo_pos_scale,float f_pos_delta,
|
||
|
float f_oo_tex_scale,float f_tex_delta );
|
||
|
WORD * decompressIndexData(char *pdata,int ncount);
|
||
|
|
||
|
public:
|
||
|
|
||
|
void create();
|
||
|
void destroy();
|
||
|
|
||
|
void advanceTime(float fElapsedTime, float fDt);
|
||
|
void render(const D3DMATRIX &mat_otw, bool b_force_3d_render = false);
|
||
|
};
|
||
|
|
||
|
#endif // __LOGO_RENDERER_H__
|