libcmo21/CodeGen/EnumsMigration/src/VxEnums.txt
2023-09-15 13:21:49 +08:00

357 lines
21 KiB
Plaintext

/*****************************************************************
{filename:VX_PIXELFORMAT}
Name: VX_PIXELFORMAT
Summary: Pixel format types.
See Also: VxImageDesc2PixelFormat,VxPixelFormat2ImageDesc
******************************************************************/
typedef enum VX_PIXELFORMAT {
UNKNOWN_PF = 0, // Unknown pixel format
_32_ARGB8888 = 1, // 32-bit ARGB pixel format with alpha
_32_RGB888 = 2, // 32-bit RGB pixel format without alpha
_24_RGB888 = 3, // 24-bit RGB pixel format
_16_RGB565 = 4, // 16-bit RGB pixel format
_16_RGB555 = 5, // 16-bit RGB pixel format (5 bits per color)
_16_ARGB1555 = 6, // 16-bit ARGB pixel format (5 bits per color + 1 bit for alpha)
_16_ARGB4444 = 7, // 16-bit ARGB pixel format (4 bits per color)
_8_RGB332 = 8, // 8-bit RGB pixel format
_8_ARGB2222 = 9, // 8-bit ARGB pixel format
_32_ABGR8888 = 10, // 32-bit ABGR pixel format
_32_RGBA8888 = 11, // 32-bit RGBA pixel format
_32_BGRA8888 = 12, // 32-bit BGRA pixel format
_32_BGR888 = 13, // 32-bit BGR pixel format
_24_BGR888 = 14, // 24-bit BGR pixel format
_16_BGR565 = 15, // 16-bit BGR pixel format
_16_BGR555 = 16, // 16-bit BGR pixel format (5 bits per color)
_16_ABGR1555 = 17, // 16-bit ABGR pixel format (5 bits per color + 1 bit for alpha)
_16_ABGR4444 = 18, // 16-bit ABGR pixel format (4 bits per color)
_DXT1 = 19, // S3/DirectX Texture Compression 1
_DXT2 = 20, // S3/DirectX Texture Compression 2
_DXT3 = 21, // S3/DirectX Texture Compression 3
_DXT4 = 22, // S3/DirectX Texture Compression 4
_DXT5 = 23, // S3/DirectX Texture Compression 5
_16_V8U8 = 24, // 16-bit Bump Map format format (8 bits per color)
_32_V16U16 = 25, // 32-bit Bump Map format format (16 bits per color)
_16_L6V5U5 = 26, // 16-bit Bump Map format format with luminance
_32_X8L8V8U8 = 27, // 32-bit Bump Map format format with luminance
_8_ABGR8888_CLUT = 28, // 8 bits indexed CLUT (ABGR)
_8_ARGB8888_CLUT = 29, // 8 bits indexed CLUT (ARGB)
_4_ABGR8888_CLUT = 30, // 4 bits indexed CLUT (ABGR)
_4_ARGB8888_CLUT = 31 // 4 bits indexed CLUT (ARGB)
} VX_PIXELFORMAT;
/*****************************************************************
{filename:VXTEXTURE_BLENDMODE}
Summary: Blend Mode Flags
Remarks:
+ The VXTEXTURE_BLENDMODE is used by CKMaterial::SetTextureBlendMode() to specify how
texture is applied on primitives.
+ Also used as value for CKRST_TSS_TEXTUREMAPBLEND texture stage state.
See Also: Using Materials,CKMaterial,CKTexture,CKMaterial::SetTextureBlendMode,CKRST_TSS_TEXTUREMAPBLEND.
******************************************************************/
typedef enum VXTEXTURE_BLENDMODE
{
VXTEXTUREBLEND_DECAL = 1UL, // Texture replace any material information
VXTEXTUREBLEND_MODULATE = 2UL, // Texture and material are combine. Alpha information of the texture replace material alpha component.
VXTEXTUREBLEND_DECALALPHA = 3UL, // Alpha information in the texture specify how material and texture are combined. Alpha information of the texture replace material alpha component.
VXTEXTUREBLEND_MODULATEALPHA = 4UL, // Alpha information in the texture specify how material and texture are combined
VXTEXTUREBLEND_DECALMASK = 5UL,
VXTEXTUREBLEND_MODULATEMASK = 6UL,
VXTEXTUREBLEND_COPY = 7UL, // Equivalent to DECAL
VXTEXTUREBLEND_ADD = 8UL,
VXTEXTUREBLEND_DOTPRODUCT3 = 9UL, // Perform a Dot Product 3 between texture (normal map)
// and a referential vector given in VXRENDERSTATE_TEXTUREFACTOR.
VXTEXTUREBLEND_MAX = 10UL,
VXTEXTUREBLEND_MASK = 0xFUL
} VXTEXTURE_BLENDMODE;
/******************************************************************
{filename:VXTEXTURE_FILTERMODE}
Summary: Filter Mode Options
Remarks:
+ The VXTEXTURE_FILTERMODE is used by CKMaterial::SetTextureMagMode and CKMaterial::SetTextureMinMode to specify how
texture is filtered when magnified.
+ Also used as value for CKRST_TSS_MAGFILTER and CKRST_TSS_MINFILTER texture stage state.
See Also: Using Materials,CKMaterial,CKTexture,CKMaterial::SetTextureMagMode,CKMaterial::SetTextureMinMode,,CKRenderContext::SetTextureStageState
******************************************************************/
typedef enum VXTEXTURE_FILTERMODE
{
VXTEXTUREFILTER_NEAREST = 1UL, // No Filter
VXTEXTUREFILTER_LINEAR = 2UL, // Bilinear Interpolation
VXTEXTUREFILTER_MIPNEAREST = 3UL, // Mip mapping
VXTEXTUREFILTER_MIPLINEAR = 4UL, // Mip Mapping with Bilinear interpolation
VXTEXTUREFILTER_LINEARMIPNEAREST = 5UL, // Mip Mapping with Bilinear interpolation between mipmap levels.
VXTEXTUREFILTER_LINEARMIPLINEAR = 6UL, // Trilinear Filtering
VXTEXTUREFILTER_ANISOTROPIC = 7UL, // Anisotropic filtering
VXTEXTUREFILTER_MASK = 0xFUL
} VXTEXTURE_FILTERMODE;
/******************************************************************
{filename:VXBLEND_MODE}
Summary: Blending Mode options
Remarks:
+ The VXBLEND_MODE is used by CKMaterial::SetSourceBlend() and SetDestBlend() to specify the blend
factors that are used when blending is enabled. (Rs,Gs,Bs,As) are color components of the source pixel (being drawn) and
(Rd,Gd,Bd,Ad) are color components of the destination pixel (current pixel on screen).
When blending is enabled the final pixel will be equal to :
SrcBlendFactor * SrcPixel + DstBlendFactor * CurrentPixelOnScreen
+ Also used as value for VXRENDERSTATE_SRCBLEND and VXRENDERSTATE_DESTBLEND render state.
See Also: CKMaterial,CKTexture,CKMaterial::SetSourceBlend,CKMaterial::SetDestBlend,CKRenderContext::SetState,CKSprite::SetBlending,VXRENDERSTATE_SRCBLEND,VXRENDERSTATE_DESTBLEND
******************************************************************/
typedef enum VXBLEND_MODE
{
VXBLEND_ZERO = 1UL, //Blend factor is (0, 0, 0, 0).
VXBLEND_ONE = 2UL, //Blend factor is (1, 1, 1, 1).
VXBLEND_SRCCOLOR = 3UL, //Blend factor is (Rs, Gs, Bs, As).
VXBLEND_INVSRCCOLOR = 4UL, //Blend factor is (1-Rs, 1-Gs, 1-Bs, 1-As).
VXBLEND_SRCALPHA = 5UL, //Blend factor is (As, As, As, As).
VXBLEND_INVSRCALPHA = 6UL, //Blend factor is (1-As, 1-As, 1-As, 1-As).
VXBLEND_DESTALPHA = 7UL, //Blend factor is (Ad, Ad, Ad, Ad).
VXBLEND_INVDESTALPHA = 8UL, //Blend factor is (1-Ad, 1-Ad, 1-Ad, 1-Ad).
VXBLEND_DESTCOLOR = 9UL, //Blend factor is (Rd, Gd, Bd, Ad).
VXBLEND_INVDESTCOLOR = 10UL, //Blend factor is (1-Rd, 1-Gd, 1-Bd, 1-Ad).
VXBLEND_SRCALPHASAT = 11UL, //Blend factor is (f, f, f, 1); f = min(As, 1-Ad).
VXBLEND_BOTHSRCALPHA = 12UL, //Source blend factor is (As, As, As, As) and destination blend factor is (1-As, 1-As, 1-As, 1-As)
VXBLEND_BOTHINVSRCALPHA = 13UL, //Source blend factor is (1-As, 1-As, 1-As, 1-As) and destination blend factor is (As, As, As, As)
VXBLEND_MASK = 0xFUL //Source blend factor is (1-As, 1-As, 1-As, 1-As) and destination blend factor is (As, As, As, As)
} VXBLEND_MODE;
/******************************************************************
{filename:VXTEXTURE_ADDRESSMODE}
Summary: Texture addressing modes.
Remarks:
+ The VXTEXTURE_ADDRESSMODE is used by CKMaterial::SetTextureAddresMode to specify texture coordinate are
taken into account when they are outside the range [0.0 , 1.0].
+ Also used as value for CKRST_TSS_ADDRESS texture stage state.
See Also: CKMaterial,CKTexture,CKRST_TSS_ADDRESS,CKRenderContext::SetTextureStageState
******************************************************************/
typedef enum VXTEXTURE_ADDRESSMODE
{
VXTEXTURE_ADDRESSWRAP = 1UL, // Default mesh wrap mode is used (see CKMesh::SetWrapMode)
VXTEXTURE_ADDRESSMIRROR = 2UL, // Texture coordinates outside the range [0..1] are flipped evenly.
VXTEXTURE_ADDRESSCLAMP = 3UL, // Texture coordinates greater than 1.0 are set to 1.0, and values less than 0.0 are set to 0.0.
VXTEXTURE_ADDRESSBORDER = 4UL, // When texture coordinates are greater than 1.0 or less than 0.0 texture is set to a color defined in CKMaterial::SetTextureBorderColor.
VXTEXTURE_ADDRESSMIRRORONCE = 5UL, //
VXTEXTURE_ADDRESSMASK = 0x7UL // mask for all values
} VXTEXTURE_ADDRESSMODE;
/******************************************************************
{filename:VXFILL_MODE}
Summary: Fill Mode Options
Remarks:
+ The VXFILL_MODE is used by CKMaterial::SetFillMode to specify how faces are drawn.
+ Also used as value for VXRENDERSTATE_FILLMODE render state.
See Also: CKMaterial::SetFillMode,VXRENDERSTATE_FILLMODE
******************************************************************/
typedef enum VXFILL_MODE
{
VXFILL_POINT = 1UL, // Vertices rendering
VXFILL_WIREFRAME = 2UL, // Edges rendering
VXFILL_SOLID = 3UL, // Face rendering
VXFILL_MASK = 3UL
}VXFILL_MODE;
/******************************************************************
{filename:VXSHADE_MODE}
Summary: Shade Mode Options
Remarks:
+ The VXSHADE_MODE is used by CKMaterial::SetShadeMode to specify how color
interpolation is perform on faces when they are drawn.
+ Also used as value for VXRENDERSTATE_SHADEMODE render state.
See Also: CKMaterial::SetShadeMode,VXRENDERSTATE_SHADEMODE
******************************************************************/
typedef enum VXSHADE_MODE
{
VXSHADE_FLAT = 1UL, // Flat Shading
VXSHADE_GOURAUD = 2UL, // Gouraud Shading
VXSHADE_PHONG = 3UL, // Phong Shading (Not yet supported by most implementation)
VXSHADE_MASK = 3UL
} VXSHADE_MODE;
/******************************************************************
{filename:VXCMPFUNC}
Summary: Comparison Function
Remarks:
+ Used by CKRenderContext::SetState with VXRENDERSTATE_ZFUNC, VXRENDERSTATE_ALPHAFUNC or VXRENDERSTATE_STENCILFUNC
to specify the type of Z or Alpha comparison function.
+ The comparison function is used to compare the stencil,alpha or z reference value to a stencil,z or alpha entry.
See also: CKRenderContext::SetState,VXRENDERSTATETYPE,VXRENDERSTATE_ZFUNC,VXRENDERSTATE_ALPHAFUNC,
******************************************************************/
typedef enum VXCMPFUNC
{
VXCMP_NEVER = 1UL, // Always fail the test.
VXCMP_LESS = 2UL, // Accept if value if less than current value.
VXCMP_EQUAL = 3UL, // Accept if value if equal than current value.
VXCMP_LESSEQUAL = 4UL, // Accept if value if less or equal than current value.
VXCMP_GREATER = 5UL, // Accept if value if greater than current value.
VXCMP_NOTEQUAL = 6UL, // Accept if value if different than current value.
VXCMP_GREATEREQUAL = 7UL, // Accept if value if greater or equal current value.
VXCMP_ALWAYS = 8UL, // Always accept the test.
VXCMP_MASK = 0xFUL // Mask for all possible values.
} VXCMPFUNC;
/******************************************************************
{filename:VX_EFFECT}
Summary: Material special effects
Remarks:
o Effects provide additionnal functionnalities to take advantage of graphic features such as bump mapping,cube maps etc...
o When an effect is enabled on a material (CKMaterial::SetEffect) it may override the default settings of mesh channels or material blend options
o New effects can be created by providing a callback function (see CKRenderManager::AddEffect)
o This enumeration provides the list of hardcoded existing effects.
o Most of this effect are heavily hardware and device (DX8,DX7,etc..) dependant
See also: CKMaterial::SetEffect,CKMaterial::GetEffect,CKRenderManager::AddEffect
******************************************************************/
typedef enum VX_EFFECT
{
VXEFFECT_NONE = 0UL, // No Effect
VXEFFECT_TEXGEN = 1UL, // Texture coordinate generation using current viewpoint as referential
VXEFFECT_TEXGENREF = 2UL, // texture generation generation with an optionnal referential
VXEFFECT_BUMPENV = 3UL, // Environment Bump Mapping
VXEFFECT_DP3 = 4UL, // Dot Product 3 bump mapping
VXEFFECT_2TEXTURES = 5UL, // Blend 2 Textures
VXEFFECT_3TEXTURES = 6UL, // Blend 3 Textures
VXEFFECT_MASK = 0xFUL // Mask for all possible values.
} VX_EFFECT;
/*****************************************************************
{filename:VX_MOVEABLE_FLAGS}
Summary: 3dEntity additionnal flags Options
Remarks:
+ The VX_MOVEABLE_FLAGS is used by CK3dEntity::SetMoveableFlags to specify different hints to the render engine about the entity.
+ The (Engine) flags are set by the render engine and should not be modified by user. They can be checked with the CK3dEntity::GetMoveableFlags method.
+ The (User) flags are to be set by the user or can be set by a specific method of CK3dEntity.
See Also: CK3dEntity::SetMoveableFlags
******************************************************************/
typedef enum VX_MOVEABLE_FLAGS {
VX_MOVEABLE_PICKABLE =0x00000001, // (User)If not set this entity cannot be returned by CKRenderContext::Pick() or CKRenderContext::RectPict() functions.
VX_MOVEABLE_VISIBLE =0x00000002, // (Engine) See CKObject::Show,CK3dEntity::IsVisible
VX_MOVEABLE_UPTODATE =0x00000004, // (Engine) Used to Notify change in the data of the entity.
VX_MOVEABLE_RENDERCHANNELS =0x00000008, // (User) If not set, additional material channels on the mesh used by this entity won't be rendered (CK3dEntity::SetRenderChannels)
VX_MOVEABLE_USERBOX =0x00000010, // (Engine) When CK3dEntity::SetBoundingBox is called with a user box, this flag is set.
VX_MOVEABLE_EXTENTSUPTODATE =0x00000020, // (Engine) Indicate that object 2D extents are up to date
VX_MOVEABLE_BOXVALID =0x00004000, // (Engine) If not set the moveable has no mesh associated so its bounding box is irrelevant (a point).
VX_MOVEABLE_RENDERLAST =0x00010000, // (User) If set the moveable will be rendered with the transparent objects (i.e in last) (CK3dEntity::SetRenderAsTransparent)
VX_MOVEABLE_HASMOVED =0x00020000, // (Engine) Set when its position or orientation has changed. (Reset every frame when rendering starts)
VX_MOVEABLE_WORLDALIGNED =0x00040000, // (User) Hint for render engine : this object is aligned with world position and orientation.
VX_MOVEABLE_NOZBUFFERWRITE =0x00080000, // (User) Set by the user to warn Render Engine that this object must not write information to Z buffer
VX_MOVEABLE_RENDERFIRST =0x00100000, // (User) If set the moveable will be rendered within the firsts objects
VX_MOVEABLE_NOZBUFFERTEST =0x00200000, // (User) Set by the user to warn Render Engine that this object must not test against Z buffer (This override settings of all materials used by this Entity)
VX_MOVEABLE_INVERSEWORLDMATVALID =0x00400000, // (Engine) Inverse world matrix is not up to date and should be recomputed
VX_MOVEABLE_DONTUPDATEFROMPARENT =0x00800000, // (User) This object will not be updated by parent (neither World nor Local matrix wil be updated) . This flags can be used by physic engine for example in which hierarchy is not relevant for physicalised objects
VX_MOVEABLE_INDIRECTMATRIX =0x01000000, // (User/Engine) Set by the engine at load time : The object matrix is in left hand referential, culling needs to be inverted
VX_MOVEABLE_ZBUFONLY =0x02000000, // (User) The object will only be rendered in depth buffer
VX_MOVEABLE_STENCILONLY =0x04000000, // (User) The object will only be rendered in stencil buffer
VX_MOVEABLE_HIERARCHICALHIDE =0x10000000, // (Engine) If Object has this flags and is hidden its children won't be rendered
VX_MOVEABLE_CHARACTERRENDERED =0x20000000, // (Engine) Set if a character was rendered last frame...
VX_MOVEABLE_RESERVED2 =0x40000000, // (Engine)
} VX_MOVEABLE_FLAGS;
/*****************************************************************
{filename:VXMESH_FLAGS}
Summary:Mesh Flags Options
Remarks:
+ The VXMESH_FLAGS is used by CKMesh::SetFlags to specify different hints to the render engine about the mesh.
+ Most of this flags can be set or asked using the appropriate method of CKMesh (given between () in the members documentation).
See Also: CKMesh,CKMesh::SetFlags
******************************************************************/
typedef enum VXMESH_FLAGS
{
VXMESH_BOUNDINGUPTODATE = 0x00000001, // If set the bounding box is up to date (internal).
VXMESH_VISIBLE = 0x00000002, // If not set the mesh will not be rendered (CKMesh::Show)
VXMESH_OPTIMIZED = 0x00000004, // Set by the render engine if the mesh is optimized for rendering. Unset it to force to recreate optimized structures (when changing materials or face organization ) (CKMesh::VertexMove)
VXMESH_RENDERCHANNELS = 0x00000008, // If not set Additional material channels won't be rendered.
VXMESH_HASTRANSPARENCY = 0x00000010, // If set indicates that one or more of the faces of this mesh use a transparent material (internal)
VXMESH_PRELITMODE = 0x00000080, // If set, no lightning should occur for this mesh, vertex color should be used instead (CKMesh::SetLitMode)
VXMESH_WRAPU = 0x00000100, // Texture coordinates wrapping among u texture coordinates. (CKMesh::SetWrapMode)
VXMESH_WRAPV = 0x00000200, // Texture coordinates wrapping among v texture coordinates. (CKMesh::SetWrapMode)
VXMESH_FORCETRANSPARENCY = 0x00001000, // Forces this mesh to be considered as transparent even if no material is tranparent. (CKMesh::SetTransparent)
VXMESH_TRANSPARENCYUPTODATE = 0x00002000, // If set, the flags VXMESH_HASTRANSPARENCY is up to date. (internal)
VXMESH_UV_CHANGED = 0x00004000, // Must be set if texture coordinates changed to enable the render engine to reconstruct potential display lists or vertex buffers. (CKMesh::UVChanged)
VXMESH_NORMAL_CHANGED = 0x00008000, // Must be set if normal coordinates changed to enable the render engine to reconstruct potential display lists or vertex buffers. (CKMesh::NormalChanged)
VXMESH_COLOR_CHANGED = 0x00010000, // Must be set if colors changed to enable the render engine to reconstruct potential display lists or vertex buffers. (CKMesh::ColorChanged)
VXMESH_POS_CHANGED = 0x00020000, // Must be set if vertex position changed to enable the render engine to reconstruct potential display lists or vertex buffers. (CKMesh::VertexMove)
VXMESH_HINTDYNAMIC = 0x00040000, // Hint for render engine : Mesh geometry is updated frequently
VXMESH_GENNORMALS = 0x00080000, // Hint : Normals were generated by BuildNormals : Do not save (internal)
VXMESH_PROCEDURALUV = 0x00100000, // Hint : UVs are generated : Do not save (internal)
VXMESH_PROCEDURALPOS = 0x00200000, // Hint : Vertices postions are generated : Do not save (internal)
VXMESH_STRIPIFY = 0x00400000, // If set the mesh will be stripified.
VXMESH_MONOMATERIAL = 0x00800000, // Set by the render engine if the mesh use only one material.
VXMESH_PM_BUILDNORM = 0x01000000, // Build normals when performing progressive meshing : Do not save (internal)
VXMESH_BWEIGHTS_CHANGED = 0x02000000, // Must be set if vertex blend weights have changed to enable the render engine to reconstruct potential display lists or vertex buffers. (CKMesh::VertexMove)
VXMESH_ALLFLAGS = 0x007FF39F
} VXMESH_FLAGS;
/******************************************************************
{filename:VXMESH_LITMODE}
Summary: Mesh lighting options
Remarks:
+ The VXMESH_LITMODE is used by CKMesh::SetLitMode to specify how lighting is done.
See Also: CKMaterial,CKMesh
******************************************************************/
typedef enum VXMESH_LITMODE
{
VX_PRELITMESH = 0, // Lighting use color information store with vertices
VX_LITMESH = 1, // Lighting is done by renderer using normals and face material information.
} VXMESH_LITMODE;
/*****************************************************************
{filename:VXCHANNEL_FLAGS}
Summary:Mesh additionnal material channel options
Remarks:
+ The VXCHANNEL_FLAGS is used by CKMesh::SetChannelFlags to give the behavior of
an additional material channel.
See Also: CKMesh,CKMesh::AddChannel,CKMesh::IsChannelLit,CKMesh::IsChannelActive
******************************************************************/
typedef enum VXCHANNEL_FLAGS {
VXCHANNEL_ACTIVE = 0x00000001, // This channel is active
VXCHANNEL_SAMEUV = 0x00800000, // This channel should use the texture coordinates of the base mesh.
VXCHANNEL_NOTLIT = 0x01000000, // Additionnal Material Channel should not be lit (some channels may not be rendered in one pass with this option)
VXCHANNEL_MONO = 0x02000000, // Set at runtime by render engine to indicate whether this channel was rendered using multiple pass or not.(Dot Not Modify)
VXCHANNEL_RESERVED1 = 0x04000000, // Reserved for internal use
VXCHANNEL_LAST = 0x08000000, // Set at runtime by render engine to indicate this channel isthe last to be rendered. Dot Not Modify
} VXCHANNEL_FLAGS;
/****************************************************************
{filename:VXTEXTURE_WRAPMODE}
Summary: Wrapping Flags
Remarks:
+ The VXTEXTURE_WRAPMODE is used by CKMesh::SetWrapMode() to specify how
texture coordinates are interpolated.
See Also: Using Materials,CKMaterial,CKMesh::SetWrapMode.
****************************************************************/
typedef enum VXTEXTURE_WRAPMODE
{
VXTEXTUREWRAP_NONE = 0x00000000, // Flat texture addressing
VXTEXTUREWRAP_U = 0x00000001, // Vertical cylinder mapping
VXTEXTUREWRAP_V = 0x00000002, // Horizontal cylinder mapping
VXTEXTUREWRAP_UV = 0x00000003, // Spherical mapping
} VXTEXTURE_WRAPMODE;