📄 typedef.h
字号:
#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 + -