refactor: refactor project
- rename LIBCMO_DISABLE_COPY_MOVE -> YYCC_DEL_CLS_COPY_MOVE and LIBCMO_DEFAULT_COPY_MOVE -> YYCC_DEF_CLS_COPY_MOVE. - fix Vector declaration generator. throw exception when operator[] face invalid index, instead of do fallback. - rename VTAll.hpp -> VTInternal.hpp and VYUserAll -> VTAll.hpp for easy to understand. - fix project name error in Doxygen template. - replace all LIBCMO_OS_WIN32 to YYCC_OS == YYCC_OS_WINDOWS. - fix some compile error (involving utf8 encoding) but not the final result. - use correct way to include std-image library (use <> instead of "") - finish documentation for VTUtils.hpp and VTEncoding.hpp.
This commit is contained in:
@ -1,67 +1,32 @@
|
||||
#pragma once
|
||||
|
||||
/*
|
||||
The general including header for LibCom self developer.
|
||||
Every hpp or cpp file should include this first except
|
||||
the headers including this file.
|
||||
|
||||
This header only fulfill type requirements. If you want
|
||||
some implement based operations, such as calling
|
||||
CKStateChunk or CKContext function. You should include them manually.
|
||||
|
||||
All header or cpp file should include this file first.
|
||||
Except the file listed in there.
|
||||
The include list of all files list in there should be carefully managed,
|
||||
to make sure there are no including loop and each header can fufill its functions.
|
||||
|
||||
All 'VT' started file is not a part of Virtools SDK.
|
||||
They just assist Virtools SDK. So they will use native type, not CK type for decl and impl.
|
||||
Take VTEncoding.hpp for example, All string is std::string, not XContainer::XString.
|
||||
The file starts with 'CK', 'Vx', and 'X' is a part of Virtools SDK.
|
||||
They should use Virtools type anywhere, except with one situation,
|
||||
Virtools type can not fulfill its requirement.
|
||||
|
||||
This file is provided for user of LibCmo.
|
||||
This file should not be included in LibCmo project inside.
|
||||
Use VTInternal.hpp for project internal including.
|
||||
*/
|
||||
|
||||
/*
|
||||
Including various basic define.
|
||||
+ LIBCMO_OS_xxx macro to distinguish different OS and architecture
|
||||
+ General types such as CKDWORD and their format constant
|
||||
+ Class / struct ctor helper: LIBCMO_DISABLE_COPY_MOVE and LIBCMO_DEFAULT_COPY_MOVE
|
||||
+ Library panic function
|
||||
+ Enum helper for add, remove flags for enum.
|
||||
*/
|
||||
#include "VTUtils.hpp"
|
||||
/*
|
||||
System independent encoding system.
|
||||
Use native Win32 function in Windows.
|
||||
And use iconv under other OS.
|
||||
*/
|
||||
#include "VTEncoding.hpp"
|
||||
|
||||
// Define the basic type of CK2.
|
||||
#include "CK2/CKTypes.hpp"
|
||||
// Then we include all XContainer types.
|
||||
#include "XContainer/XTypes.hpp"
|
||||
// Then we include all Vx types.
|
||||
#include "VxMath/VxTypes.hpp"
|
||||
// Thus all basic type is OK.
|
||||
|
||||
// Include CKGlobals which including various essential functions
|
||||
#include "CK2/CKGlobals.hpp"
|
||||
// Then load VxMath functions
|
||||
#include "VxMath/VxMath.hpp"
|
||||
// OK, all essential functions loaded.
|
||||
|
||||
// Load various enums, const value
|
||||
// Load CK2 first
|
||||
#include "CK2/CKEnums.hpp"
|
||||
#include "CK2/CKIdentifiers.hpp"
|
||||
// load Vx
|
||||
#include "VxMath/VxEnums.hpp"
|
||||
|
||||
// Last, load some custom struct used in program.
|
||||
#include "CK2/CKDefines.hpp"
|
||||
#include "VTInternal.hpp"
|
||||
#include "CK2/CKContext.hpp"
|
||||
#include "CK2/CKStateChunk.hpp"
|
||||
#include "CK2/CKFile.hpp"
|
||||
|
||||
// Data handlers
|
||||
#include "CK2/DataHandlers/CKBitmapHandler.hpp"
|
||||
|
||||
// Objects
|
||||
#include "CK2/ObjImpls/CKObject.hpp"
|
||||
#include "CK2/ObjImpls/CKSceneObject.hpp"
|
||||
#include "CK2/ObjImpls/CKBeObject.hpp"
|
||||
#include "CK2/ObjImpls/CKGroup.hpp"
|
||||
#include "CK2/ObjImpls/CKRenderObject.hpp"
|
||||
#include "CK2/ObjImpls/CK3dEntity.hpp"
|
||||
#include "CK2/ObjImpls/CK3dObject.hpp"
|
||||
#include "CK2/ObjImpls/CKTexture.hpp"
|
||||
#include "CK2/ObjImpls/CKMaterial.hpp"
|
||||
#include "CK2/ObjImpls/CKMesh.hpp"
|
||||
|
||||
// Managers
|
||||
#include "CK2/MgrImpls/CKBaseManager.hpp"
|
||||
#include "CK2/MgrImpls/CKObjectManager.hpp"
|
||||
#include "CK2/MgrImpls/CKPathManager.hpp"
|
||||
|
Reference in New Issue
Block a user