📄 md2file.h
字号:
#ifndef MD2_HEADER_FILE_H
#define MD2_HEADER_FILE_H
#if _MCR_VCR > 1000
#pragma once
#endif
#include "resource.h"
/* Md2文件 */
/*
===================
== Header ==
===================
|
=================== ==============
== Frames == ===>== Vertices ==
=================== ==============
|
===================
== Triangles ==
===================
|
===================
= Skin Filenames =
===================
| |
===================
== Texture ==
== Coordinates ==
=================== */
#pragma pack(push, 1)
typedef struct tagMd2Header
{
int m_iMagicNum; // 魔法数字(0x32504449)
int m_iVersion; // 版本号(0x08)
int m_iSkinWidthPx; // 纹理宽度 (Pixel)
int m_iSkinHeightPx; // 纹理高度 (Pixel)
int m_iFrameSize; // 帧大小
int m_iNumSkins; // 表皮数量
int m_iNumVertices; // 顶点数
int m_iNumCoordinates; // 纹理坐标数
int m_iNumTriangles; // 三角形数量
int m_iNumGLCommands; // GL命令
int m_iNumFrames; // 帧数量
int m_iOffsetSkins; // 纹理信息偏移
int m_iOffsetTexCoors; // 纹理坐标信息偏移
int m_iOffsetTriangles; // 三角形信息偏移
int m_iOffsetFrames; // 帧信息偏移
int m_iOffsetGLCommands; // GL命令信息偏移
int m_iFileSize; // 文件大小
}Md2Header_t;
typedef struct tagMd2Vertex // 顶点坐标格式
{
float m_fVert[3];
}Md2Vertex_t;
typedef struct tagMd2Frame
{
float m_fScale[3]; // 帧内顶点解压Scale信息
float m_fTrans[3]; // 帧内顶点解压Trans信息
char m_caName[16]; // 帧名
std::vector<Md2Vertex_t> m_pVertices; // 顶点解压方法(Vert[k]=Data[k]*Scale[k]+Trans[k] )
}Md2Frame_t;
typedef struct tagMd2TexCoord // 纹理坐标格式
{
float m_fTex[2];
}Md2TexCoord_t;
typedef struct tagMd2Triangle
{
unsigned short m_sVertIndices[3]; // 顶点坐标索引
unsigned short m_sTexIndices[3]; // 纹理坐标索引
}Md2Triangle_t;
typedef struct tagMd2SkinName
{
TCHAR Skinname[256]; // 纹理信息
}Md2SkinName_t;
#pragma pack(pop, 1)
typedef std::vector<Md2SkinName_t> Md2SkinNameVector_t;
typedef std::vector<Md2Triangle_t> Md2TriangleVector_t;
typedef std::vector<Md2TexCoord_t> Md2TexCoordVector_t;
typedef std::vector<Md2Frame_t> Md2FrameVector_t;
////////////////////////////////////////////////////////
// 消息函数定义.
BOOL WINAPI DlgProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
BOOL Dlg_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam);
BOOL Dlg_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
////////////////////////////////////////////////////////
// 功能函数定义.
HRESULT Md2_Configure();
HRESULT Md2_Init3DEntironment(HWND hwnd);
HRESULT Md2_DrawFrame(DWORD NowTime,float Speed);
HRESULT Md2_SetState( UINT State);
HRESULT Md2_Parse(TCHAR * strFileName);
HRESULT Md2_Render();
HRESULT Md2_Shutdown();
////////////////////////////////////////////////////////
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -