#if !defined(_TGS_COMMON_BASE_TYPE_H_)
#define _TGS_COMMON_BASE_TYPE_H_
#pragma once
TgTYPE_PREFIX( TgUINTEGER );
TgTYPE_PREFIX( TgUINT );
TgTYPE_PREFIX( TgUINT08 );
TgTYPE_PREFIX( TgUINT16 );
TgTYPE_PREFIX( TgUINT32 );
TgTYPE_PREFIX( TgUINT64 );
TgTYPE_PREFIX( TgSINTEGER );
TgTYPE_PREFIX( TgSINT );
TgTYPE_PREFIX( TgSINT08 );
TgTYPE_PREFIX( TgSINT16 );
TgTYPE_PREFIX( TgSINT32 );
TgTYPE_PREFIX( TgSINT64 );
TgTYPE_PREFIX( TgFLOAT32 );
TgTYPE_PREFIX( TgFLOAT64 );
TgTYPE_PREFIX( TgBOOL );
TgTYPE_PREFIX( TgANSICHAR );
TgTYPE_PREFIX( TgUNICHAR );
typedef void TgVOID;
typedef TgVOID* P_TgVOID;
typedef TgVOID *const PC_TgVOID;
typedef TgVOID * __restrict PU_TgVOID;
typedef TgVOID *const __restrict PCU_TgVOID;
typedef const TgVOID * CP_TgVOID;
typedef const TgVOID *const CPC_TgVOID;
typedef const TgVOID * __restrict CPU_TgVOID;
typedef const TgVOID * const __restrict CPCU_TgVOID;
typedef TgVOID** PP_TgVOID;
#if TgS_WIDE_CHAR
TgTYPE_DECLARE( wchar_t, TgCHAR );
#else
TgTYPE_DECLARE( char, TgCHAR );
#endif
enum { ETgBYTE_PER_CHAR = sizeof(TgCHAR) / sizeof(TgUINT08) };
TgTYPE_DECLARE( TgUINT32, TgFILE );
TgTYPE_DECLARE( TgSINT32, TgRESULT );
TgTYPE_DECLARE( size_t, TgSIZE );
TgTYPE_DECLARE( intptr_t, TgSINTPTR );
TgTYPE_DECLARE( uintptr_t, TgUINTPTR );
TgTYPE_DECLARE( time_t, TgTIME );
typedef TgSINT32 (*TgPLATFORM_THREAD_FCN)( C_TgUINTPTR );
TgTYPE_PREFIX( TgPLATFORM_THREAD_FCN );
TgTYPE_DECLARE( union TgSCALAR_ALIAS_UNION, TgSCALAR_ALIAS_UNION );
union TgSCALAR_ALIAS_UNION
{
TgUINT08 m_u08;
TgUINT16 m_u16;
TgUINT32 m_u32;
TgUINT64 m_u64;
TgSINT08 m_i08;
TgSINT16 m_i16;
TgSINT32 m_i32;
TgSINT64 m_i64;
TgFLOAT32 m_f32;
TgFLOAT64 m_f64;
TgBOOL m_b;
TgANSICHAR m_ac;
TgUNICHAR m_uc;
};
TgTYPE_DECLARE( union TgSCALAR_P_ALIAS_UNION, TgSCALAR_P_ALIAS_UNION );
union TgSCALAR_P_ALIAS_UNION
{
P_TgUINT08 m_pu08;
P_TgUINT16 m_pu16;
P_TgUINT32 m_pu32;
P_TgUINT64 m_pu64;
P_TgSINT08 m_pi08;
P_TgSINT16 m_pi16;
P_TgSINT32 m_pi32;
P_TgSINT64 m_pi64;
P_TgFLOAT32 m_pf32;
P_TgFLOAT64 m_pf64;
P_TgBOOL m_pb;
P_TgANSICHAR m_pac;
P_TgUNICHAR m_puc;
};
TgINLINE TgVOID tgBF_Set_Flag_U08( PCU_TgUINT08, C_TgUINT32, C_TgBOOL );
TgINLINE TgVOID tgBF_Toggle_Flag_U08( PCU_TgUINT08, C_TgUINT32 );
TgINLINE TgBOOL tgBF_Query_Flag_U08( CPCU_TgUINT08, C_TgUINT32 );
TgINLINE TgVOID tgBF_Reset_U08( PCU_TgUINT08 );
TgINLINE TgVOID tgBF_Set_Flag_U16( PCU_TgUINT16, C_TgUINT32, C_TgBOOL );
TgINLINE TgVOID tgBF_Toggle_Flag_U16( PCU_TgUINT16, C_TgUINT32 );
TgINLINE TgBOOL tgBF_Query_Flag_U16( CPCU_TgUINT16, C_TgUINT32 );
TgINLINE TgVOID tgBF_Reset_U16( PCU_TgUINT16 );
TgINLINE TgVOID tgBF_Set_Flag_U32( PCU_TgUINT32, C_TgUINT32, C_TgBOOL );
TgINLINE TgVOID tgBF_Toggle_Flag_U32( PCU_TgUINT32, C_TgUINT32 );
TgINLINE TgBOOL tgBF_Query_Flag_U32( CPCU_TgUINT32, C_TgUINT32 );
TgINLINE TgVOID tgBF_Reset_U32( PCU_TgUINT32 );
TgINLINE TgVOID tgBF_Set_Flag_U64( PCU_TgUINT64, C_TgUINT32, C_TgBOOL );
TgINLINE TgVOID tgBF_Toggle_Flag_U64( PCU_TgUINT64, C_TgUINT32 );
TgINLINE TgBOOL tgBF_Query_Flag_U64( CPCU_TgUINT64, C_TgUINT32 );
TgINLINE TgVOID tgBF_Reset_U64( PCU_TgUINT64 );
typedef enum {
ETgFAC_GENERAL=1, ETgFAC_CONFIGSYS, ETgFAC_KERNEL, ETgFAC_GAMEENGINE,
ETgFAC_INPUT, ETgFAC_MAT, ETgFAC_PHYSICS, ETgFAC_RND,
ETgFAC_RND_DX9, ETgFAC_SCG, ETgFAC_SOUND, ETgFAC_TOOLS,
ETgFAC_COLLISION
} ETgLIBRARY;
TgTYPE_PREFIX( ETgLIBRARY );
typedef enum {
ETgSYSTEM_GLOBAL=0, ETgSYSTEM_SYSINFO, ETgSYSTEM_MEMMGR, ETgSYSTEM_ERRMGR,
ETgSYSTEM_OBJMGR, ETgSYSTEM_LEXMGR, ETgSYSTEM_KERNEL, ETgSYSTEM_COUNT
} ETgSYSTEM_TYPE;
TgTYPE_PREFIX( ETgSYSTEM_TYPE );
typedef enum {
ETgSERVER_EXESPC_CON, ETgSERVER_EXESPC_WIN, ETgSERVER_TIME, ETgSERVER_RENDER,
ETgSERVER_SOUND, ETgSERVER_PHYSICS, ETgSERVER_INPUT, ETgSERVER_GUI,
ETgSERVER_CONSOLE, ETgSERVER_SCG_LAYER, ETgSERVER_SCG_BSP, ETgSERVER_SCG_SPVS,
ETgSERVER_SCG_DPVS, ETgSERVER_COUNT
} ETgSERVER_TYPE;
TgTYPE_PREFIX( ETgSERVER_TYPE );
typedef enum {
ETgTIME_RESET=0, ETgTIME_START, ETgTIME_STOP, ETgTIME_ADVANCE,
ETgTIME_APP_TIME, ETgTIME_ELAPSED_TIME, ETgTIME_ABSOLUTE_TIME
} ETgTIMER_COMMAND;
TgTYPE_PREFIX( ETgTIMER_COMMAND );
typedef enum {
ETgWINDOWS_STANDARD, ETgWINDOWS_CONSOLE
} ETgEXESPCTYPE;
TgTYPE_PREFIX( ETgEXESPCTYPE );
typedef enum {
ETgPOSITIVE, ETgNEGATIVE, ETgNONE
} ETgSIDE;
TgTYPE_PREFIX( ETgSIDE );
typedef enum {
ETgSWEEP_START, ETgSWEEP_CURRENT, ETgSWEEP_END
} ETgSWEEP_TIME;
TgTYPE_PREFIX( ETgSWEEP_TIME );
typedef enum {
ETgSWEEP_STATIC, ETgSWEEP_LINEAR, ETgSWEEP_ROTATIONAL
} ETgSWEEP_TYPE;
TgTYPE_PREFIX( ETgSWEEP_TYPE );
typedef enum {
ETgVERTEX0 = 0, ETgVERTEX1, ETgVERTEX2, ETgEDGE0,
ETgEDGE1, ETgEDGE2
} ETgTRI_FEATURE;
TgTYPE_PREFIX( ETgTRI_FEATURE );
typedef enum {
ETgMSG_WIN_SIZE, ETgMSG_MOVE, ETgMSG_ZOOM, ETgMSG_DRAG,
ETgMSG_KEYDOWN, ETgMSG_KEYUP,
} ETgSTD_MSG;
TgTYPE_PREFIX( ETgSTD_MSG );
typedef enum {
ETgTHREAD_UNKNOWN = 0, ETgTHREAD_INIT, ETgTHREAD_READY, ETgTHREAD_CLOSE,
ETgTHREAD_DONE
} ETgTHREAD_STATUS;
TgTYPE_PREFIX( ETgTHREAD_STATUS );
typedef enum {
ETgMODULE_STATE_UNKNOWN, ETgMODULE_STATE_INITIALIZING, ETgMODULE_STATE_INITIALIZED, ETgMODULE_STATE_BOOTING,
ETgMODULE_STATE_BOOTED, ETgMODULE_STATE_STOP_REQUEST, ETgMODULE_STATE_STOP_GRANTED, ETgMODULE_STATE_STOPPING,
ETgMODULE_STATE_STOPPED, ETgMODULE_STATE_FREEING, ETgMODULE_STATE_FREED
} ETgMODULE_STATE;
TgTYPE_PREFIX( ETgMODULE_STATE );
typedef enum
{
ETgFILE_IO_STATUS__ERROR = -1, ETgFILE_IO_STATUS__INVALID = 0, ETgFILE_IO_STATUS__QUEUED, ETgFILE_IO_STATUS__DONE,
} ETgFILE_IO_STATUS;
TgTYPE_PREFIX( ETgFILE_IO_STATUS );
typedef enum {
ETgFILE_IO_ACCESS_INVALID = 0,
ETgFILE_IO_ACCESS_READ = 1,
ETgFILE_IO_ACCESS_WRITE = 2,
ETgFILE_IO_ACCESS_READ_WRITE = 3,
ETgFILE_IO_ACCESS_READ_SHARED = 5,
ETgFILE_IO_ACCESS_WRITE_SHARED = 6,
ETgFILE_IO_ACCESS_READ_WRITE_SHARED = 7
} ETgFILE_IO_ACCESS;
TgTYPE_PREFIX( ETgFILE_IO_ACCESS );
typedef enum {
ETgIO_SEEK_BEGIN, ETgIO_SEEK_END, ETgIO_SEEK_CURRENT
} ETgIO_SEEK;
TgTYPE_PREFIX( ETgIO_SEEK );
enum {
ETgMAX_NAMEID_SIZE = 256, ETgMAXLITERAL_SIZE = 64, ETgHALF_ID = 16, KTgMAX_FILENAME = 64,
ETgRESOURCE_NAME_MAX = 32
};
typedef enum {
ETgFRUSTUM_PLANE__NEAR, ETgFRUSTUM_PLANE__FAR, ETgFRUSTUM_PLANE__LEFT, ETgFRUSTUM_PLANE__RIGHT,
ETgFRUSTUM_PLANE__TOP, ETgFRUSTUM_PLANE__BOTTOM, ETgFRUSTUM_PLANE__MAX
} ETgFRUSTUM_PLANE;
TgTYPE_PREFIX( ETgFRUSTUM_PLANE );
typedef enum {
ETgTHREAD_PRIORITY__CRITICAL, ETgTHREAD_PRIORITY__HIGHEST, ETgTHREAD_PRIORITY__HIGH, ETgTHREAD_PRIORITY__NORMAL,
ETgTHREAD_PRIORITY__LOW, ETgTHREAD_PRIORITY__LOWEST
} ETgTHREAD_PRIORITY;
TgTYPE_PREFIX( ETgTHREAD_PRIORITY );
#define TgNULL 0u
#define TgFALSE 0u
#define TgTRUE ~0u
#define TgS_OK 0u
#define TgE_FAIL ~0u
#define KTgINVALID_ID ~0u
typedef TgVOID (*TgFCN_MEM_FREE)( PC_TgVOID );
TgTYPE_PREFIX( TgFCN_MEM_FREE );
#endif