⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 typedef.h

📁 可以解壓pak檔, 修改墨香檔案一流, 必用 墨香私服必
💻 H
📖 第 1 页 / 共 3 页
字号:
#pragma once

#include "stdafx.h"
#include "math.inl"
#include "mesh_flag.h"


#define VECTOR3_SIZE	12
#define VECTOR4_SIZE	16

#define MIN_UNIT						10.0f
#define	ONE_CM							1.0f
#define MAX_NAME_LEN					128

#define DEFAULT_LIGHT_RADIUS			100.0f
#define DEFAULT_RENDER_ZORDER_UNIT		-1000.0f

#define WORLDMAP_DEFAULT_TOP			400.0f
#define WORLDMAP_DEFAULT_BOTTOM			0.0f

#define FOG_DISTANCE_START				2000.0f
#define FOG_DISTANCE_END				8000.0f

// EXECUTIVE CONST VALUE
#define	DEFAULT_DECAL_TRI_NUM			64

#define	MAX_MODEL_NUM_PER_GXOBJECT		8
#define MAX_RENDER_OBJECT_NUM			8192
#define MAX_ATTATCH_OBJECTS_NUM			8
#define	MAX_PICK_OBJECT_NUM				256
#define ZORDER_LATEST_RENDER			1100


// GEOMETRY CONST VALUE
#define PID_MODEL_LOD					"_LOD"
#define PID_MODEL_lod					"_lod"
#define PID_LEN							4


#define DEFAULT_MODEL_LOD_UNIT			500.0
#define MAX_LOD_MODEL_NUM				3
#define MAX_HFINDEX_BUFER_NUM			128
#define MAX_OBJECTS_NUM_PER_MODEL		8192
#define	MAX_STATIC_RTLIGHT_NUM_PER_SCENE	8
#define MAX_DYNAMIC_RTLIGHT_NUM_PER_SCENE	8

//#define MAX_SPOT_LIGHT_NUM_PER_SCENE		16
#define MAX_SHADOW_LIGHT_NUM_PER_SCENE		64
#define MAX_PRJIMAGE_LIGHT_NUM_PER_SCENE	64
#define MAX_SPOT_LIGHT_NUM_PER_SCENE	(MAX_SHADOW_LIGHT_NUM_PER_SCENE + MAX_PRJIMAGE_LIGHT_NUM_PER_SCENE)
#define MAX_REALTIME_LIGHT_NUM			(MAX_STATIC_RTLIGHT_NUM_PER_SCENE + MAX_DYNAMIC_RTLIGHT_NUM_PER_SCENE)


#define STATIC_RTLIGHT_START_INDEX		MAX_DYNAMIC_RTLIGHT_NUM_PER_SCENE
#define MAX_DIRECTIONAL_LIGHT_NUM		4
#define MAX_CAMERA_NUM_PER_SCENE		128
#define MAX_MOTION_NUM					1024
#define	DEFAULT_AMBIENT_COLOR			0xff202020
#define MAX_RENDER_MODEL_NUM			1024
#define MAX_RENDER_STATICMODEL_OBJ_NUM	4096
#define MAX_RENDER_HFIELD_OBJ_NUM		1024
#define	DEFAULT_NEAR					100.0f
#define DEFAULT_FAR						80000.0f
#define MAX_FILEITEM_NUM				8192
#define MAX_FILEBUCKET_NUM				256
#define MAX_VIEWPORT_NUM				256
#define MAX_MATRIX_NUM_IN_POOL			4096
#define MAX_LIGHT_INDEX_NUM_IN_POOL		4096
#define MAX_MODEL_REF_INDEX_NUM			8192
#define DEFAULT_RESOURCE_SCHDULE_DISTANCE	16.0f
#define	DEFAULT_OVERLAP_TILES_NUM		4

// RENDERER CONST VALUE
#define	DEFAULT_ALPHA_REF_VALUE			200
#define DEFAULT_RENDER_TEXTURE_NUM		4
#define MAX_RENDER_TEXTURE_NUM			8
#define DEFAULT_RENDER_TEXTURE_SIZE		256
#define MAX_RENDER_TEXTURE_SIZE			1024
#define MAX_SPRITE_ZORDER_NUM			256
#define MAX_HFIELD_DETAIL_NUM			8
#define MAX_TILE_TEXTURE_NUM			65536				
#define MAX_SPRITE_FRAME_NUM			1024
#define	MAX_TEX_PROJECTION_DYNAMIC_LIGHT_NUM			256
#define	MAX_TEXTURE_NUM					25600
#define MAX_TEXBUCKET_NUM				256
#define MAX_RENDER_MESHOBJ_NUM			4096
#define MAX_RENDER_TEXTBUFFER_SIZE		16384
#define MAX_RENDER_TRIBUFFER_SIZE		8192
#define MAX_RENDER_SPRITE_NUM			1024
#define DEFULAT_CIRCLE_PIECES_NUM		32
#define MAX_CIRCLE_PIECES_NUM			64
#define MAX_MIPMAP_LEVEL_NUM			12
#define MAX_MIPMAP_SIZE					1
#define MAX_MATERIAL_NUM				8192
#define MAX_MATERIAL_SET_NUM			2048
#define	MAX_D3DRESOURCE_NUM				65536
#define	DEFAULT_D3DRESOURCE_NUM			128
#define DEFAULT_VBCACHE_NUM						1024
#define DEFAULT_PHYSIQUE_OBJECT_NUM_PER_SCENE	32
#define DEFAULT_MOST_PHYSIQUE_VERTEX_NUM		800
#define MAX_PHYSIQUE_VERTEX_NUM					32768
#define MAX_PRJMESH_INDICES_NUM					16384
#define MAXSHINESTR_TO_SS3D_VAL					20.0f
#define DEFAULT_FREE_VBCACHE_RATE				0.084f	
#define MAX_EFFECT_SHADER_NUM					1024	
#define DEFAULT_LIMITED_VERTEXTBUFFER_INDICES	65536
#define MAX_RESOURCE_POOL_NUM					32

enum FONT_TYPE
{
	SS3D_FONT	=	0,
	D3DX_FONT	=	1
};

enum RENDER_MODE
{
	RENDER_MODE_SOLID		=	0,
	RENDER_MODE_POINT		=	1,
	RENDER_MODE_WIREFRAME	=	2
};

enum APPLY_PHYSIQUE_TYPE
{
	APPLY_PHYSIQUE_RECALC_NORMAL				= 0x00000001,
	APPLY_PHYSIQUE_WRITE_UV						= 0x00000002
};

enum DEBUG_DRAW_FLAG
{
	DEBUG_DRAW_MODEL_COL_MESH		 = 0x00000001,
	DEBUG_DRAW_STATIC_MODEL_COL_MESH = 0x00000002,
	DEBUG_DRAW_BONE_COL_MESH		 = 0x00000004
};

enum LIGHT_FLAG
{
	DISABLE_LIGHT = 0,
	ENABLE_LIGHT = 1
};

enum SHADOW_FLAG
{
	DISABLE_SHADOW	= 0,
	ENABLE_SHADOW	= 1
};


enum BEGIN_RENDER_FLAG
{
	BEGIN_RENDER_FLAG_CLEAR_ZBUFFER				=	0x00000000,
	BEGIN_RENDER_FLAG_CLEAR_FRAMEBUFFER			=	0x00000000,
	BEGIN_RENDER_FLAG_DONOT_CLEAR_ZBUFFER		=	0x00000001,
	BEGIN_RENDER_FLAG_DONOT_CLEAR_FRAMEBUFFER	=	0x00000002,
	BEGIN_RENDER_FLAG_USE_RENDER_TEXTURE		=	0x00000004

};
enum MODEL_INITIALIZE_FLAG
{
	MODEL_INITIALIZE_FLAG_NOT_OPTIMIZE				= 0x00000001

};


// 甘阑 肺爹且锭 荤侩且 荐 乐绰 敲贰弊甸.or肺 炼钦秦辑 荤侩茄促.
enum MAP_LOAD_FLAG
{
	STATIC_MODEL_LOAD_OPTIMIZE				= 0x00000001,
	STATIC_MODEL_LOAD_DEFFER_COMMIT_DEVICE	= 0x00000002,
	STATIC_MODEL_LOAD_ENABLE_SHADE			= 0x00000004,
	HFIELD_MODEL_LOAD_ENABLE_SHADE			= 0x00000004,
	
	HFIELD_MODEL_LOAD_OPTIMIZE				= 0x00000008,
	HFIELD_MODEL_LOAD_NOT_RENDER			= 0x00000010,
	HFIELD_MODEL_LOAD_ENABLE_DRAW_ALPHAMAP	= 0x00000020
};
enum LOAD_MAP_FLAG
{
	LOAD_MAP_FLAG_DEFAULT_PROC_AUTOANIMATION	= 0x00000100
};

/////////////////////////////////////////////////////////////////

enum EXECUTIVE_RENDER_MODE
{
	RENDER_MODE_DEFAULT		=	0,
	RENDER_MODE_TOOL		=	1
};

enum SYMBOL_TYPE
{
	SYMBOL_TYPE_LIGHT		=	0,
	SYMBOL_TYPE_TRIGGER		=	1
};
#define SYMBOL_TYPE_NUM	2

enum SCHEDULE_FLAG
{
	SCHEDULE_FLAG_NOT_SCHEDULE		=	0x00000001,
	SCHEDULE_FLAG_DISABLE_UNLOAD	=	0x00000002,
	SCHEDULE_FLAG_NOT_RENDER		=	0x10000000
};
/*
#define SCHEDULE_FLAG_RENDER_MASK			0xf0000000
#define SCHEDULE_FLAG_RENDER_MASK_INVERSE	0x0fffffff


#define SCHEDULE_FLAG_SCHEDULE_MASK			0x0000000f
#define SCHEDULE_FLAG_SCHEDULE_MASK_INVERSE	0xfffffff0
*/
enum UNLOAD_PRELOADED_RESOURCE_TYPE
{
	UNLOAD_PRELOADED_RESOURCE_TYPE_ONLY_UNLOAD_ENABLED	= 0x00000000,
	UNLOAD_PRELOADED_RESOURCE_TYPE_ALL_PRELOADED		= 0x00000001
};

enum CHAR_CODE_TYPE
{
	CHAR_CODE_TYPE_ASCII = 1,
	CHAR_CODE_TYPE_UNICODE = 2
};

enum STATIC_MODEL_SHADE_TYPE
{
	STATIC_MODEL_SHADE_TYPE_ENABLE_SHADOW	=	0x00000001
};

enum LIGHTMAP_FLAG
{
	LIGHTMAP_FLAG_DISABLE_LIGHTMAP		= 0x00000000,
	LIGHTMAP_FLAG_ENABLE				= 0x00000001,
	LIGHTMAP_FLAG_DISABLE_TEXTURE		= 0x00000002,
	LIGHTMAP_FLAG_DISABLE_MAGFILTER		= 0x00000004
};

enum OBJECT_TYPE
{
	OBJECT_TYPE_UNKNOWN = 0xf000000,
	OBJECT_TYPE_LIGHT = 0xf1000000,
	OBJECT_TYPE_CAMERA = 0xf2000000,
	OBJECT_TYPE_CAMERA_TARGET = 0xf3000000,
	OBJECT_TYPE_MESH = 0xf4000000,
	OBJECT_TYPE_BONE = 0xf5000000,
	OBJECT_TYPE_ILLUSION_MESH = 0xf6000000,
	OBJECT_TYPE_COLLISION_MESH = 0xf7000000,
	OBJECT_TYPE_MATERIAL = 0x00f00000,
	OBJECT_TYPE_MOTION = 0x0000f000
};

enum MODEL_READ_TYPE
{
	MODEL_READ_TYPE_AS_LOD_SUBMODEL	= 0x00000001
};
enum GX_MAP_OBJECT_TYPE
{
	GX_MAP_OBJECT_TYPE_OBJECT	=	0,
	GX_MAP_OBJECT_TYPE_STRUCT	=	1,
	GX_MAP_OBJECT_TYPE_HFIELD	=	2,
	GX_MAP_OBJECT_TYPE_DECAL	=	3,
	GX_MAP_OBJECT_TYPE_TRIGGER	=	4,
	GX_MAP_OBJECT_TYPE_LIGHT	=	5,
	
	GX_MAP_OBJECT_TYPE_INVALID	=	0xffffffff
};
#define GX_MAP_OBJECT_RENDER_START_INDEX	0
#define GX_MAP_OBJECT_RENDER_END_INDEX		3
#define GX_MAP_OBJECT_RENDER_START_INDEX_TOOL	4
#define GX_MAP_OBJECT_RENDER_END_INDEX_TOOL		5

#define GX_MAP_OBJECT_TYPE_NUM		6

enum GXLIGHT_ATTACH_TYPE
{
	ATTACH_TYPE_ATTACH = 0x00000000,
	ATTACH_TYPE_LINK = 0x00000001
};
#define GXLIGHT_ATTACH_TYPE_MASK_			0x0000000f
#define GXLIGHT_ATTACH_TYPE_MASK_INVERSE	0xfffffff0

enum MESH_CONTROL_TYPE
{
	RESULT_MATRIX_ALIGN_VIEW	= 0x00000001,
	UPDATE_VERTEX_NORMAL		= 0x00000002
};

enum MATERIAL_ILLUNUM_TYPE
{
	SELF_ILLUNUM			= 0x10000000
};

#define MATERIAL_ILLUNUM_TYPE_MASK	0x10000000
#define	MATERIAL_ILLUNUM_TYPE_MASK_INVERSE	0x8fffffff
enum MATERIAL_TRANSP_TYPE
{
	TRANSP_TYPE_FILTER		=	0x00000001,
	TRANSP_TYPE_SUBTRACTIVE	=	0x00000002,
	TRANSP_TYPE_ADDITIVE	=	0x00000004
	
};
#define MATERIAL_TRANSP_TYPE_MASK			0x00000003
#define MATERIAL_TRANSP_TYPE_MASK_INVERSE	0xfffffffc

enum HFIELD_ADJUST_TYPE
{
	HFIELD_ADJUST_TYPE_SET	= 0x00000001,
	HFIELD_ADJUST_TYPE_ADD	= 0x00000002,
	HFIELD_ADJUST_TYPE_SUB	= 0x00000004
};
enum VERTEX_TYPE
{
	VERTEX_TYPE_TEXTURE = 0x00000001,
	VERTEX_TYPE_PHYSIQUE = 0x01000000,
	VERTEX_TYPE_NORMAL = 0x00010000
};
enum TEXTURE_TYPE
{
	TEXTURE_TYPE_DEFAULT			= 0x00000000,
	TEXTURE_TYPE_DETAIL				= 0x00000001
};

enum RENDER_TEXTURE_TYPE
{
	RENDER_TEXTURE_TYPE_SHADOW		= 0,
	RENDER_TEXTURE_TYPE_REFLECT		= 1
};


enum CREATE_MATERIAL_TYPE
{
	// 弥惑困 8厚飘绰 焊歹拿矾 
	CREATE_MATERIAL_TYPE_TEXBORDER	= 0x00000001

};
enum TEXTURE_MAP_TYPE
{
	TEXTURE_MAP_TYPE_AMBIENT		= 0,
	TEXTURE_MAP_TYPE_DIFFUSE		= 1,
	TEXTURE_MAP_TYPE_SPECULAR		= 2,
	TEXTURE_MAP_TYPE_SHINE			= 3,
	TEXTURE_MAP_TYPE_SHINESTRENGTH	= 4,
	TEXTURE_MAP_TYPE_SELFILLUM		= 5,
	TEXTURE_MAP_TYPE_OPACITY		= 6,
	TEXTURE_MAP_TYPE_FILTERCOLOR	= 7,
	TEXTURE_MAP_TYPE_BUMP			= 8,
	TEXTURE_MAP_TYPE_REFLECT		= 9
};
#define TEXTURE_MAP_TYPE_MAX_INDEX	9
#define	TEXTURE_MAP_TYPE_NUM	10

enum REDNER_TYPE
{
	RENDER_TYPE_ENABLE_LIGHT_ANIMATION		=	0x00000001,
	RENDER_TYPE_ENABLE_CAMERA_ANIMATION		=	0x00000002,
	RENDER_TYPE_ENABLE_MODEL_LIGHT			=	0x00000004,
	RENDER_TYPE_ENABLE_CLIP_PER_OBJECT		=	0x00000008,
	RENDER_TYPE_AS_LOD_SUBMODEL				=	0x00000010,
	RENDER_TYPE_UPDATE_SHADING				=	0x00000020,
	RENDER_TYPE_NOT_DRAW					=	0x00000040,
	RENDER_TYPE_SELF_ILLUMIN				=	0x00000080,
	RENDER_TYPE_IGNORE_VIEWVOLUME_CLIP		=	0x00000100,
	RENDER_TYPE_SEND_SHADOW					=	0x00000200,
	RENDER_TYPE_RECV_SHADOW					=	0x00000400,
	RENDER_TYPE_DISABLE_ZCLIP				=	0x00000800,
	RENDER_TYPE_DISABLE_TEX_FILTERING		=	0x00001000,
	RENDER_TYPE_USE_PROJECTIONLIGHT			=	0x00002000,
	RENDER_TYPE_ENABLE_ILLUSION				=	0x00004000,
	RENDER_TYPE_SPRITE_ADD					=	0x00008000,
	RENDER_TYPE_SPRITE_MUL					=	0x00010000,
	RENDER_TYPE_SPRITE_OPASITY				=	0x00020000,
	RENDER_TYPE_USE_EFFECT					=	0x00040000,

	// setframe俊辑 荤侩且 敲贰弊.弥惑困 4厚飘父 荤侩茄促
	RENDER_TYPE_UPDATE_COLLISION_BONEMESH_DESC		= 0x10000000,
	RENDER_TYPE_UPDATE_ILLUSION_FRAME				= 0x20000000,
	RENDER_TYPE_UPDATE_ALWAYS						= 0X40000000

};
#define RENDER_TYPE_UPDATE_MASK	0xf0000000

//#define RENDER_TYPE_UPDATE_SHADING_MASK_INVERSE	0xfffffeff
//#define RENDER_TYPE_SEND_SHADOW_MASK_INVERSE	0xffffbfff
//#define RENDER_TYPE_SELF_ILLUMIN_MASK_INVERSE	0xfffff7ff

enum SHADOW_TYPE
{
	ENABLE_PROJECTION_SHADOW		=	0x00000001,
	ENABLE_PROJECTION_TEXMAP		=	0x00000002
};
enum PICK_TYPE
{
	PICK_TYPE_DEFAULT				= 0x00000000,
	PICK_TYPE_PER_COLLISION_MESH	= 0x00000001,
	PICK_TYPE_PER_FACE				= 0x00000002,
	PICK_TYPE_PER_BONE_OBJECT		= 0x00000004,

	PICK_TYPE_SORT					= 0x00000010
};

#define PICK_TYPE_PURE_MASK			= 0x0000000f

enum LIGHT_TEXTURE_CREATE_TYPE
{
	LIGHT_TEXTURE_CREATE_BORDER				= 0x00000001,
	LIGHT_TEXTURE_CREATE_PACK_FILE			= 0x00000010
};

// GXMapObject 加己 敲贰弊 ///////////////////////////////////////////////////////////
// 弥惑困 8厚飘绰 GXMAP_OBJECT_COMMON_FLAG 康开捞骨肺 荤侩窍瘤 臼绰促.
enum GXMAP_OBJECT_COMMON_FLAG
{
	GXMAP_OBJECT_COMMON_TYPE_NOT_PICKABLE		= 0x01000000,
	GXMAP_OBJECT_COMMON_TYPE_NOT_USE_CLIPPER	= 0x02000000,
	GXMAP_OBJECT_COMMON_TYPE_DISABLE_UNLOAD		= 0x04000000


};
#define GXMAP_OBJECT_COMMON_TYPE_NOT_PICKABLE_INVERSE		0xfeffffff
#define GXMAP_OBJECT_COMMON_TYPE_NOT_USE_CLIPPER_INVERSE	0xfdffffff

enum GXOBJECT_CREATE_TYPE
{
	// 弥惑困 8厚飘绰 GXMAP_OBJECT_COMMON_FLAG 康开捞骨肺 荤侩窍瘤 臼绰促.
	GXOBJECT_CREATE_TYPE_OPTIMIZE		= 0x00000001,
	GXOBJECT_CREATE_TYPE_NOT_OPTIMIZE	= 0x00000000,
	GXOBJECT_CREATE_TYPE_EFFECT			= 0x00000002,
	GXOBJECT_CREATE_TYPE_APPLY_HFIELD	= 0x00000004,
	GXOBJECT_CREATE_TYPE_DEFAULT_PROC	= 0x00000008,
	GXOBJECT_CREATE_TYPE_NOT_USE_MODEL	= 0x00000010
};
#define GXOBJECT_CREATE_TYPE_APPLY_HFIELD_INVERSE	0xfffffffb 
#define GXOBJECT_CREATE_TYPE_EFFECT_INVERSE			0xfffffffd
enum GXLIGHT_TYPE
{
	// 弥惑困 8厚飘绰 GXMAP_OBJECT_COMMON_FLAG 康开捞骨肺 荤侩窍瘤 臼绰促.
	GXLIGHT_TYPE_TEX_PROJECTION						= 0x00000000,	// 捞 版快 弥窍困 8厚飘啊 扼捞飘 牢郸胶 
	GXLIGHT_TYPE_ENABLE_SHADOW						= 0x00000200,
	GXLIGHT_TYPE_ENABLE_SPOT						= 0x00000400,
	GXLIGHT_TYPE_DISABLE_LIGHT_COLOR				= 0x00000800,
	GXLIGHT_TYPE_STATIC								= 0x00001000,
	GXLIGHT_TYPE_STATIC_SHADOW_DISABLE				= 0x00002000,
	GXLIGHT_TYPE_ENABLE_DYNAMIC_LIGHT				= 0x00004000,
	GXLIGHT_TYPE_ENABLE_IMAGE_PROJECTION			= 0x00008000,
	GXLIGHT_TYPE_DISABLE_NOT_RENDER_MODEL_IN_TOOL	= 0x00010000,
	GXLIGHT_TYPE_ONLY_USE_TOOL						= 0x00020000
};
#define GXLIGHT_TYPE_STATIC_SHADOW_DISABLE_INVERSE	0xffffdfff
#define GXLIGHT_TYPE_ENABLE_DYNAMIC_LIGHT_INVERSE	0xffffbfff

enum GXTRIGGER_TYPE
{
	// 弥惑困 8厚飘绰 GXMAP_OBJECT_COMMON_FLAG 康开捞骨肺 荤侩窍瘤 臼绰促.
	GXTRIGGER_TYPE_MOVABLE				= 0x00000001

};
#define GX_LIGHT_TYPE_TEX_INDEX_0		= 0x00000000
//////////////////////////////////////////////////////////////////////////////////////////////

enum SPRITE_CREATE_FLAG
{
	SPRITE_CREATE_DEFAULT = 0x00000000,
	SPRITE_CREATE_IMAGE = 0x00000001
};
enum TEXTURE_CREATE_FLAG
{
	TEXTURE_CREATE_RENDER_DEFAULT	= 0x00000000,
	TEXTURE_CREATE_RENDER_TARGET	= 0x00000001,
	TEXTURE_CREATE_SYSTEM_MAMANGED	= 0x00000000,
	TEXTURE_CREATE_SYSTEM_MEMEORY	= 0x00000100,
	TEXTURE_CREATE_SYSTEM_VIDEO		= 0x00000200,
};


enum MATERIAL_TYPE
{
	MATERIAL_TYPE_2SIDE		= 0x00000100

};
enum HEIGHT_FIELD_UPDATE_TYPE
{
	HEIGHT_FIELD_UPDATE_TYPE_TEXTURE = 0x00000000,
	HEIGHT_FIELD_UPDATE_TYPE_VERTEX_POS = 0x00000001
};

enum EDIT_ALPHA_TEXEL_TYPE
{
	EDIT_ALPHA_TEXEL_OP_ADD		=	0x01000000,
	EDIT_ALPHA_TEXEL_OP_SUB		=	0x02000000,
	EDIT_ALPHA_TEXEL_BRIGHT_0	=	0x00000000,
	EDIT_ALPHA_TEXEL_BRIGHT_1	=	0x00000001,
	EDIT_ALPHA_TEXEL_BRIGHT_2	=	0x00000002,
	EDIT_ALPHA_TEXEL_BRIGHT_3	=	0x00000004
};
#define EDIT_ALPHA_TEXEL_OP_MASK		0xff000000
#define EDIT_ALPHA_TEXEL_BRIGHT_MASK	0x00000003

enum POSITION_STATE
{
	UP		= 0,
	LEFT	= 1,
	DOWN	= 2,
	RIGHT	= 3
};
#define	MATERIAL_TYPE_2SIDE_MASK	0x0000000f

#ifndef _MAX_EXP
	#define PI			3.14159265358979323846f // Pi
	#define PI_MUL_2	6.28318530717958623200f // 2 * Pi
	#define PI_DIV_2	1.57079632679489655800f // Pi / 2
	#define PI_DIV_4	0.78539816339744827900f // Pi / 4
	#define INV_PI		0.31830988618379069122f // 1 / Pi
	#define EPSILON		1.0e-5f;                 // Tolerance for FLOATs
	#define	DEFAULT_FOV					PI/4.0f
#endif

#define R_565_MASK	0x0000F800
#define G_565_MASK	0x000007E0
#define B_565_MASK	0x0000001F

struct DWORD_RECT
{
	DWORD		left;
	DWORD		top;
	DWORD		right;
	DWORD		bottom;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -