Reformat code with clang format

This commit is contained in:
Clang Format
2023-11-19 15:28:38 +01:00
committed by Jan
parent 22e17272fd
commit 6b4f5d94a8
1099 changed files with 16763 additions and 18076 deletions

View File

@ -1,7 +1,8 @@
#pragma once
#include <vector>
#include "GameLanguage.h"
#include <vector>
class Zone;
class IGame
@ -20,4 +21,4 @@ public:
virtual void RemoveZone(Zone* zone) = 0;
virtual std::vector<Zone*> GetZones() = 0;
virtual std::vector<GameLanguagePrefix> GetLanguagePrefixes() = 0;
};
};

View File

@ -10,7 +10,7 @@ namespace IW3
static constexpr uint32_t R_HashString(const char* string, const uint32_t hash)
{
const char* v2 = string; // edx@1
char v3 = *string; // cl@1
char v3 = *string; // cl@1
uint32_t result = hash;
for (; *v2; v3 = *v2)
@ -28,4 +28,4 @@ namespace IW3
static void Vec3UnpackUnitVec(const PackedUnitVec& in, vec3_t* out);
static void Vec4UnpackGfxColor(const GfxColor& in, vec4_t* out);
};
}
} // namespace IW3

View File

@ -1,9 +1,9 @@
#include "GameIW3.h"
#include <algorithm>
#include "IW3.h"
#include <algorithm>
using namespace IW3;
GameIW3 g_GameIW3;

View File

@ -14,4 +14,4 @@ public:
std::vector<GameLanguagePrefix> GetLanguagePrefixes() override;
};
extern GameIW3 g_GameIW3;
extern GameIW3 g_GameIW3;

View File

@ -1,10 +1,14 @@
#pragma once
//#include <d3d11.h>
// clang-format off: Order of includes matters here
// #include <d3d9.h>
#include "Image/Texture.h"
#include "IW3_Assets.h"
// clang-format on
namespace IW3
{
struct ScriptStringList
@ -79,4 +83,4 @@ namespace IW3
WFT_NUM_FIELD_TYPES
};
}
} // namespace IW3

View File

@ -45,7 +45,7 @@ namespace IW3
ASSET_TYPE_RAWFILE = 0x1F,
ASSET_TYPE_STRINGTABLE = 0x20,
ASSET_TYPE_COUNT,
ASSET_TYPE_STRING = ASSET_TYPE_COUNT,
ASSET_TYPE_ASSETLIST,
@ -100,35 +100,35 @@ namespace IW3
union XAssetHeader
{
// XModelPieces *xmodelPieces; // NOT AN ASSET
PhysPreset *physPreset;
XAnimParts *parts;
XModel *model;
Material *material;
MaterialPixelShader *pixelShader;
MaterialVertexShader *vertexShader;
MaterialTechniqueSet *techniqueSet;
GfxImage *image;
snd_alias_list_t *sound;
SndCurve *sndCurve;
LoadedSound *loadSnd;
clipMap_t *clipMap;
ComWorld *comWorld;
GameWorldSp *gameWorldSp;
GameWorldMp *gameWorldMp;
MapEnts *mapEnts;
GfxWorld *gfxWorld;
GfxLightDef *lightDef;
Font_s *font;
MenuList *menuList;
menuDef_t *menu;
LocalizeEntry *localize;
WeaponDef *weapon;
SndDriverGlobals *sndDriverGlobals;
FxEffectDef *fx;
FxImpactTable *impactFx;
RawFile *rawfile;
StringTable *stringTable;
void *data;
PhysPreset* physPreset;
XAnimParts* parts;
XModel* model;
Material* material;
MaterialPixelShader* pixelShader;
MaterialVertexShader* vertexShader;
MaterialTechniqueSet* techniqueSet;
GfxImage* image;
snd_alias_list_t* sound;
SndCurve* sndCurve;
LoadedSound* loadSnd;
clipMap_t* clipMap;
ComWorld* comWorld;
GameWorldSp* gameWorldSp;
GameWorldMp* gameWorldMp;
MapEnts* mapEnts;
GfxWorld* gfxWorld;
GfxLightDef* lightDef;
Font_s* font;
MenuList* menuList;
menuDef_t* menu;
LocalizeEntry* localize;
WeaponDef* weapon;
SndDriverGlobals* sndDriverGlobals;
FxEffectDef* fx;
FxImpactTable* impactFx;
RawFile* rawfile;
StringTable* stringTable;
void* data;
};
typedef char cbrushedge_t;
@ -142,7 +142,7 @@ namespace IW3
XModel* model;
float offset[3];
};
struct XModelPieces
{
const char* name;
@ -152,14 +152,14 @@ namespace IW3
struct PhysPreset
{
const char *name;
const char* name;
int type;
float mass;
float bounce;
float friction;
float bulletForceScale;
float explosiveForceScale;
const char *sndAliasPrefix;
const char* sndAliasPrefix;
float piecesSpreadFraction;
float piecesUpwardVelocity;
bool tempDefaultToCylinder;
@ -224,7 +224,7 @@ namespace IW3
struct XAnimDeltaPartQuatDataFrames
{
XQuat *frames;
XQuat* frames;
XAnimDynamicIndicesQuat indices;
};
@ -371,7 +371,7 @@ namespace IW3
char zoneHandle;
uint16_t baseTriIndex;
uint16_t baseVertIndex;
r_index16_t(*triIndices)[3];
r_index16_t (*triIndices)[3];
XSurfaceVertexInfo vertInfo;
GfxPackedVertex* verts0;
unsigned int vertListCount;
@ -485,8 +485,8 @@ namespace IW3
char lodRampType;
uint16_t* boneNames;
char* parentList;
int16_t(*quats)[4];
float(*trans)[4];
int16_t (*quats)[4];
float (*trans)[4];
char* partClassification;
DObjAnimMat* baseMat;
XSurface* surfs;
@ -705,7 +705,7 @@ namespace IW3
char nameStart;
char nameEnd;
unsigned char samplerState; // SamplerStateBits_e
unsigned char semantic; // TextureSemantic
unsigned char semantic; // TextureSemantic
MaterialTextureDefInfo u;
};
@ -820,7 +820,7 @@ namespace IW3
union MaterialArgumentDef
{
const float(*literalConst)[4];
const float (*literalConst)[4];
MaterialArgumentCodeConst codeConst;
unsigned int codeSampler;
unsigned int nameHash;
@ -1156,7 +1156,7 @@ namespace IW3
struct MaterialVertexStreamRouting
{
MaterialStreamRouting data[16];
void/*IDirect3DVertexDeclaration9*/* decl[16];
void /*IDirect3DVertexDeclaration9*/* decl[16];
};
struct MaterialVertexDeclaration
@ -1176,7 +1176,7 @@ namespace IW3
struct MaterialVertexShaderProgram
{
void/*IDirect3DVertexShader9*/* vs;
void /*IDirect3DVertexShader9*/* vs;
GfxVertexShaderLoadDef loadDef;
};
@ -1195,7 +1195,7 @@ namespace IW3
struct MaterialPixelShaderProgram
{
void/*IDirect3DPixelShader9*/* ps;
void /*IDirect3DPixelShader9*/* ps;
GfxPixelShaderLoadDef loadDef;
};
@ -1304,10 +1304,10 @@ namespace IW3
union GfxTexture
{
//void/*IDirect3DBaseTexture9*/* basemap;
//void/*IDirect3DTexture9*/* map;
//void/*IDirect3DVolumeTexture9*/* volmap;
//void/*IDirect3DCubeTexture9*/* cubemap;
// void/*IDirect3DBaseTexture9*/* basemap;
// void/*IDirect3DTexture9*/* map;
// void/*IDirect3DVolumeTexture9*/* volmap;
// void/*IDirect3DCubeTexture9*/* cubemap;
Texture* texture;
GfxImageLoadDef* loadDef;
};
@ -1681,7 +1681,7 @@ namespace IW3
unsigned int numLeafSurfaces;
unsigned int* leafsurfaces;
unsigned int vertCount;
vec3_t *verts;
vec3_t* verts;
int triCount;
uint16_t* triIndices;
char* triEdgeIsWalkable;
@ -1898,13 +1898,13 @@ namespace IW3
struct GfxWorldVertexData
{
GfxWorldVertex* vertices;
void/*IDirect3DVertexBuffer9*/* worldVb;
void /*IDirect3DVertexBuffer9*/* worldVb;
};
struct GfxWorldVertexLayerData
{
char* data;
void/*IDirect3DVertexBuffer9*/* layerVb;
void /*IDirect3DVertexBuffer9*/* layerVb;
};
struct SunLightParseParams
@ -1979,7 +1979,7 @@ namespace IW3
bool isAncestor;
char recursionDepth;
char hullPointCount;
float(*hullPoints)[2];
float (*hullPoints)[2];
GfxPortal* queuedParent;
};
@ -3076,13 +3076,13 @@ namespace IW3
// TODO: Order is accuracyGraphName[0] -> originalAccuracyGraphKnots[0] -> accuracyGraphName[1] -> ...
// Which is currently not possible to do in code generation. Afaik this is the only place where this is the case.
// So might be something to fix but on the other hand it might be too much work for this little inconvenience.
//const char* accuracyGraphName[2];
// const char* accuracyGraphName[2];
const char* accuracyGraphName0;
const char* accuracyGraphName1;
//float(*accuracyGraphKnots[2])[2];
// float(*accuracyGraphKnots[2])[2];
vec2_t* accuracyGraphKnots0;
vec2_t* accuracyGraphKnots1;
//float(*originalAccuracyGraphKnots[2])[2];
// float(*originalAccuracyGraphKnots[2])[2];
vec2_t* originalAccuracyGraphKnots0;
vec2_t* originalAccuracyGraphKnots1;
int accuracyGraphKnotCount[2];

View File

@ -10,7 +10,7 @@ namespace IW4
static constexpr uint32_t R_HashString(const char* string, const uint32_t hash)
{
const char* v2 = string; // edx@1
char v3 = *string; // cl@1
char v3 = *string; // cl@1
uint32_t result = hash;
for (; *v2; v3 = *v2)
@ -35,4 +35,4 @@ namespace IW4
static void Vec3UnpackUnitVec(const PackedUnitVec& in, vec3_t* out);
static void Vec4UnpackGfxColor(const GfxColor& in, vec4_t* out);
};
}
} // namespace IW4

View File

@ -1,9 +1,9 @@
#include "GameIW4.h"
#include <algorithm>
#include "IW4.h"
#include <algorithm>
using namespace IW4;
GameIW4 g_GameIW4;

View File

@ -14,4 +14,4 @@ public:
std::vector<GameLanguagePrefix> GetLanguagePrefixes() override;
};
extern GameIW4 g_GameIW4;
extern GameIW4 g_GameIW4;

View File

@ -1,10 +1,14 @@
#pragma once
//#include <d3d11.h>
// clang-format off: Order of includes matters here
// #include <d3d9.h>
#include "Image/Texture.h"
#include "IW4_Assets.h"
// clang-format on
namespace IW4
{
struct DB_AuthHash
@ -26,11 +30,11 @@ namespace IW4
struct DB_AuthHeader
{
char magic[8]; // + 0
unsigned int reserved; // + 8
DB_AuthHash subheaderHash; // + 12
DB_AuthSignature signedSubheaderHash; // + 44
DB_AuthSubHeader subheader; // + 300
char magic[8]; // + 0
unsigned int reserved; // + 8
DB_AuthHash subheaderHash; // + 12
DB_AuthSignature signedSubheaderHash; // + 44
DB_AuthSubHeader subheader; // + 300
};
struct ScriptStringList
@ -122,4 +126,4 @@ namespace IW4
VFT_NUM,
};
}
} // namespace IW4

View File

@ -571,8 +571,8 @@ namespace IW4
unsigned int noScalePartBits[6];
uint16_t* boneNames;
unsigned char* parentList;
int16_t(*quats)[4];
float(*trans)[3];
int16_t (*quats)[4];
float (*trans)[3];
unsigned char* partClassification;
DObjAnimMat* baseMat;
Material** materialHandles;
@ -669,7 +669,7 @@ namespace IW4
char nameStart;
char nameEnd;
unsigned char samplerState; // SamplerStateBits_e
unsigned char semantic; // TextureSemantic
unsigned char semantic; // TextureSemantic
MaterialTextureDefInfo u;
};
@ -878,13 +878,13 @@ namespace IW4
SORTKEY_TRANS_START = 6,
SORTKEY_DECAL_BOTTOM_1 = 6, // prob decal - bottom 1
SORTKEY_DECAL_BOTTOM_2 = 7, // prob decal - bottom 2
SORTKEY_DECAL_BOTTOM_3 = 8, // prob decal - bottom 3
SORTKEY_DECAL_STATIC_DECAL = 9, // prob decal - static decal
SORTKEY_DECAL_MIDDLE_1 = 10, // prob decal - middle 1
SORTKEY_DECAL_MIDDLE_2 = 11, // prob decal - middle 2
SORTKEY_DECAL_MIDDLE_3 = 12, // prob decal - middle 3
SORTKEY_DECAL_BOTTOM_1 = 6, // prob decal - bottom 1
SORTKEY_DECAL_BOTTOM_2 = 7, // prob decal - bottom 2
SORTKEY_DECAL_BOTTOM_3 = 8, // prob decal - bottom 3
SORTKEY_DECAL_STATIC_DECAL = 9, // prob decal - static decal
SORTKEY_DECAL_MIDDLE_1 = 10, // prob decal - middle 1
SORTKEY_DECAL_MIDDLE_2 = 11, // prob decal - middle 2
SORTKEY_DECAL_MIDDLE_3 = 12, // prob decal - middle 3
SORTKEY_DECAL_WEAPON_IMPACT = 13, // prob decal - weapon impact
// ? = 14, // prob decal - top 1
// some decal = 15, // prob decal - top 2 or decal - top 3
@ -896,7 +896,7 @@ namespace IW4
// ? = 21,
// - = 22,
// - = 23,
SORTKEY_WINDOW_INSIDE = 24, // prob window inside
SORTKEY_WINDOW_INSIDE = 24, // prob window inside
SORTKEY_WINDOW_OUTSIDE = 25, // prob window outside
// ? = 26, // includes motiontracker3d, impact fx, atmos
// ? = 27,
@ -919,11 +919,11 @@ namespace IW4
// ? = 44,
// ? = 45,
// - = 46,
SORTKEY_BLEND_ADDITIVE = 47, // most likely blend / additive
SORTKEY_BLEND_ADDITIVE = 47, // most likely blend / additive
SORTKEY_EFFECT_AUTO_SORT = 48, // most likely effect - auto sort
SORTKEY_AFTER_EFFECTS_BOTTOM = 49,
SORTKEY_AFTER_EFFECTS_MIDDLE = 50, // prob after effects - middle
SORTKEY_AFTER_EFFECTS_TOP = 51, // prob after effects - top
SORTKEY_AFTER_EFFECTS_TOP = 51, // prob after effects - top
// - = 52,
SORTKEY_VIEWMODEL_EFFECT = 53, // maybe viewmodel effect
@ -1087,7 +1087,7 @@ namespace IW4
STREAM_SRC_COUNT
};
enum MaterialStreamDestination_e
{
STREAM_DST_POSITION = 0x0,
@ -1116,7 +1116,7 @@ namespace IW4
struct MaterialVertexStreamRouting
{
MaterialStreamRouting data[13];
void/*IDirect3DVertexDeclaration9*/* decl[16];
void /*IDirect3DVertexDeclaration9*/* decl[16];
};
struct MaterialVertexDeclaration
@ -1129,7 +1129,7 @@ namespace IW4
struct MaterialVertexShaderProgram
{
void/*IDirect3DVertexShader9*/* vs;
void /*IDirect3DVertexShader9*/* vs;
GfxVertexShaderLoadDef loadDef;
};
@ -1141,7 +1141,7 @@ namespace IW4
struct MaterialPixelShaderProgram
{
void/*IDirect3DPixelShader9*/* ps;
void /*IDirect3DPixelShader9*/* ps;
GfxPixelShaderLoadDef loadDef;
};
@ -1205,11 +1205,11 @@ namespace IW4
enum MaterialType
{
MTL_TYPE_DEFAULT = 0x0,
MTL_TYPE_MODEL = 0x1, // m_
MTL_TYPE_MODEL_VERTCOL = 0x2, // mc_
MTL_TYPE_MODEL = 0x1, // m_
MTL_TYPE_MODEL_VERTCOL = 0x2, // mc_
MTL_TYPE_MODEL_VERTCOL_GREY = 0x3, // mg_
MTL_TYPE_WORLD = 0x4, // w_
MTL_TYPE_WORLD_VERTCOL = 0x5, // wc_
MTL_TYPE_WORLD = 0x4, // w_
MTL_TYPE_WORLD_VERTCOL = 0x5, // wc_
MTL_TYPE_COUNT,
};
@ -1409,20 +1409,20 @@ namespace IW4
enum MaterialShaderArgumentType
{
MTL_ARG_MATERIAL_VERTEX_CONST = 0x0, // stable
MTL_ARG_LITERAL_VERTEX_CONST = 0x1, // stable
MTL_ARG_MATERIAL_VERTEX_CONST = 0x0, // stable
MTL_ARG_LITERAL_VERTEX_CONST = 0x1, // stable
MTL_ARG_MATERIAL_PIXEL_SAMPLER = 0x2, // stable
MTL_ARG_CODE_PRIM_BEGIN = 0x3,
MTL_ARG_CODE_VERTEX_CONST = 0x3, // stable object prim
MTL_ARG_CODE_VERTEX_CONST = 0x3, // stable object prim
MTL_ARG_CODE_PIXEL_SAMPLER = 0x4, // stable object
MTL_ARG_CODE_PIXEL_CONST = 0x5, // stable
MTL_ARG_CODE_PIXEL_CONST = 0x5, // stable
MTL_ARG_CODE_PRIM_END = 0x6,
MTL_ARG_MATERIAL_PIXEL_CONST = 0x6, // stable
MTL_ARG_LITERAL_PIXEL_CONST = 0x7, // stable
MTL_ARG_LITERAL_PIXEL_CONST = 0x7, // stable
MTL_ARG_COUNT
};
@ -1457,14 +1457,15 @@ namespace IW4
enum TechniqueFlags
{
// Guesses purely based on data analysis:
TECHNIQUE_FLAG_1 = 0x1, // uses resolvedPostSun code sampler // MTL_TECHFLAG_NEEDS_RESOLVED_POST_SUN
TECHNIQUE_FLAG_2 = 0x2, // uses resolvedScene code sampler MTL_TECHFLAG_NEEDS_RESOLVED_SCENE
TECHNIQUE_FLAG_4 = 0x4, // zprepass only
TECHNIQUE_FLAG_8 = 0x8, // build_floatz only
TECHNIQUE_FLAG_1 = 0x1, // uses resolvedPostSun code sampler // MTL_TECHFLAG_NEEDS_RESOLVED_POST_SUN
TECHNIQUE_FLAG_2 = 0x2, // uses resolvedScene code sampler MTL_TECHFLAG_NEEDS_RESOLVED_SCENE
TECHNIQUE_FLAG_4 = 0x4, // zprepass only
TECHNIQUE_FLAG_8 = 0x8, // build_floatz only
TECHNIQUE_FLAG_10 = 0x10, // build_shadowmap_depth + build_shadowmap_model only
TECHNIQUE_FLAG_20 = 0x20, // techniques with _i_ in its name (all use texcoord[1] in decl -> other optional stream sources are not used at all so might be any optional)
TECHNIQUE_FLAG_40 = 0x40, // uses code constant light.spotDir or light.spotFactors
TECHNIQUE_FLAG_80 = 0x80, // uses floatZ sampler and does not have 0x100 flag
TECHNIQUE_FLAG_20 =
0x20, // techniques with _i_ in its name (all use texcoord[1] in decl -> other optional stream sources are not used at all so might be any optional)
TECHNIQUE_FLAG_40 = 0x40, // uses code constant light.spotDir or light.spotFactors
TECHNIQUE_FLAG_80 = 0x80, // uses floatZ sampler and does not have 0x100 flag
TECHNIQUE_FLAG_100 = 0x100, // distortion_scale_zfeather_dtex + distortion_scale_ua_zfeather + distortion_scale_zfeather
TECHNIQUE_FLAG_200 = 0x200, // ?
};
@ -1758,7 +1759,7 @@ namespace IW4
DvarValue latched;
DvarValue reset;
DvarLimits domain;
//bool (__cdecl* domainFunc)(dvar_t*, DvarValue);
// bool (__cdecl* domainFunc)(dvar_t*, DvarValue);
void* domainFunc;
dvar_t* hashNext;
};
@ -3065,11 +3066,13 @@ namespace IW4
float fAngle;
float forward[2];
float fRadius;
union
{
float minUseDistSq;
PathNodeErrorCode error;
};
int16_t wOverlapNode[2];
uint16_t totalLinkCount;
pathlink_s* Links;
@ -3097,6 +3100,7 @@ namespace IW4
pathnode_t* pParent;
float fCost;
float fHeuristic;
union
{
float nodeCost;
@ -3259,6 +3263,7 @@ namespace IW4
FxSpatialFrame frame;
float radius;
};
unsigned int nextFree;
};
@ -3417,7 +3422,7 @@ namespace IW4
bool isAncestor;
char recursionDepth;
char hullPointCount;
float(*hullPoints)[2];
float (*hullPoints)[2];
GfxPortal* queuedParent;
};
@ -3470,13 +3475,13 @@ namespace IW4
struct GfxWorldVertexData
{
GfxWorldVertex* vertices;
void/*IDirect3DVertexBuffer9*/* worldVb;
void /*IDirect3DVertexBuffer9*/* worldVb;
};
struct GfxWorldVertexLayerData
{
char* data;
void/*IDirect3DVertexBuffer9*/* layerVb;
void /*IDirect3DVertexBuffer9*/* layerVb;
};
struct GfxWorldDraw
@ -3757,7 +3762,7 @@ namespace IW4
unsigned int sortKeyEffectAuto;
unsigned int sortKeyDistortion;
GfxWorldDpvsPlanes dpvsPlanes;
int/*GfxCellTreeCount*/* aabbTreeCounts;
int /*GfxCellTreeCount*/* aabbTreeCounts;
GfxCellTree128* aabbTrees;
GfxCell* cells;
GfxWorldDraw draw;
@ -4639,7 +4644,6 @@ namespace IW4
VEH_TYPE_COUNT = 0x7,
};
struct VehicleDef
{
const char* name;

View File

@ -22,17 +22,17 @@ int Common::StringTable_HashString(const char* str)
PackedTexCoords Common::Vec2PackTexCoords(const vec2_t* in)
{
return PackedTexCoords{ Pack32::Vec2PackTexCoords(reinterpret_cast<const float*>(in)) };
return PackedTexCoords{Pack32::Vec2PackTexCoords(reinterpret_cast<const float*>(in))};
}
PackedUnitVec Common::Vec3PackUnitVec(const vec3_t* in)
{
return PackedUnitVec{ Pack32::Vec3PackUnitVec(reinterpret_cast<const float*>(in)) };
return PackedUnitVec{Pack32::Vec3PackUnitVec(reinterpret_cast<const float*>(in))};
}
GfxColor Common::Vec4PackGfxColor(const vec4_t* in)
{
return GfxColor{ Pack32::Vec4PackGfxColor(reinterpret_cast<const float*>(in)) };
return GfxColor{Pack32::Vec4PackGfxColor(reinterpret_cast<const float*>(in))};
}
void Common::Vec2UnpackTexCoords(const PackedTexCoords& in, vec2_t* out)

View File

@ -16,4 +16,4 @@ namespace IW5
static void Vec3UnpackUnitVec(const PackedUnitVec& in, vec3_t* out);
static void Vec4UnpackGfxColor(const GfxColor& in, vec4_t* out);
};
}
} // namespace IW5

View File

@ -1,9 +1,9 @@
#include "GameIW5.h"
#include <algorithm>
#include "IW5.h"
#include <algorithm>
using namespace IW5;
GameIW5 g_GameIW5;

View File

@ -14,4 +14,4 @@ public:
std::vector<GameLanguagePrefix> GetLanguagePrefixes() override;
};
extern GameIW5 g_GameIW5;
extern GameIW5 g_GameIW5;

View File

@ -1,10 +1,14 @@
#pragma once
//#include <d3d11.h>
// clang-format off: Order of includes matters here
// #include <d3d9.h>
#include "Image/Texture.h"
#include "IW5_Assets.h"
// clang-format on
namespace IW5
{
struct DB_AuthHash
@ -26,11 +30,11 @@ namespace IW5
struct DB_AuthHeader
{
char magic[8]; // + 0
unsigned int reserved; // + 8
DB_AuthHash subheaderHash; // + 12
DB_AuthSignature signedSubheaderHash; // + 44
DB_AuthSubHeader subheader; // + 300
char magic[8]; // + 0
unsigned int reserved; // + 8
DB_AuthHash subheaderHash; // + 12
DB_AuthSignature signedSubheaderHash; // + 44
DB_AuthSubHeader subheader; // + 300
};
struct ScriptStringList
@ -79,4 +83,4 @@ namespace IW5
CSPFT_NUM_BASE_FIELD_TYPES,
};
}
} // namespace IW5

View File

@ -536,7 +536,7 @@ namespace IW5
uint16_t baseTriIndex;
uint16_t baseVertIndex;
float quantizeScale;
r_index16_t(*triIndices)[3];
r_index16_t (*triIndices)[3];
XSurfaceVertexInfo vertInfo;
GfxVertexUnion0 verts0;
unsigned int vertListCount;
@ -606,8 +606,8 @@ namespace IW5
unsigned int noScalePartBits[6];
ScriptString* boneNames;
unsigned char* parentList;
short(*quats)[4];
float(*trans)[3];
short (*quats)[4];
float (*trans)[3];
unsigned char* partClassification;
DObjAnimMat* baseMat;
Material** materialHandles;
@ -802,13 +802,13 @@ namespace IW5
char source;
char dest;
};
struct MaterialVertexStreamRouting
{
MaterialStreamRouting data[13];
void* decl[16];
};
struct MaterialVertexDeclaration
{
const char* name;
@ -843,7 +843,7 @@ namespace IW5
union MaterialArgumentDef
{
const float(*literalConst)[4];
const float (*literalConst)[4];
MaterialArgumentCodeConst codeConst;
unsigned int codeSampler;
unsigned int nameHash;
@ -1507,6 +1507,7 @@ namespace IW5
pathnode_t* pParent;
float fCost;
float fHeuristic;
union
{
float nodeCost;
@ -1659,6 +1660,7 @@ namespace IW5
FxSpatialFrame frame;
float radius;
};
unsigned int nextFree;
};
@ -1817,7 +1819,7 @@ namespace IW5
bool isAncestor;
unsigned char recursionDepth;
unsigned char hullPointCount;
float(*hullPoints)[2];
float (*hullPoints)[2];
GfxPortal* queuedParent;
};
@ -2173,7 +2175,7 @@ namespace IW5
unsigned int sortKeyEffectAuto;
unsigned int sortKeyDistortion;
GfxWorldDpvsPlanes dpvsPlanes;
int/*GfxCellTreeCount*/* aabbTreeCounts;
int /*GfxCellTreeCount*/* aabbTreeCounts;
GfxCellTree128* aabbTrees;
GfxCell* cells;
GfxWorldDraw draw;
@ -2569,8 +2571,8 @@ namespace IW5
WINDOW_FLAG_POPUP = 0x1000000,
WINDOW_FLAG_LEGACY_SPLIT_SCREEN_SCALE = 0x4000000,
WINDOW_FLAG_HIDDEN_DURING_FLASH_BANG = 0x10000000, // confirmed
WINDOW_FLAG_HIDDEN_DURING_SCOPE = 0x20000000, // confirmed
WINDOW_FLAG_HIDDEN_DURING_UI = 0x40000000, // confirmed
WINDOW_FLAG_HIDDEN_DURING_SCOPE = 0x20000000, // confirmed
WINDOW_FLAG_HIDDEN_DURING_UI = 0x40000000, // confirmed
WINDOW_FLAG_TEXT_ONLY_FOCUS = 0x80000000,
};

View File

@ -1,9 +1,9 @@
#include "CommonT5.h"
#include <cctype>
#include "Utils/Pack.h"
#include <cctype>
using namespace T5;
int Common::Com_HashKey(const char* str, const int maxLen)

View File

@ -18,4 +18,4 @@ namespace T5
static void Vec3UnpackUnitVec(const PackedUnitVec& in, vec3_t* out);
static void Vec4UnpackGfxColor(const GfxColor& in, vec4_t* out);
};
}
} // namespace T5

View File

@ -1,9 +1,9 @@
#include "GameT5.h"
#include <algorithm>
#include "T5.h"
#include <algorithm>
using namespace T5;
GameT5 g_GameT5;

View File

@ -14,4 +14,4 @@ public:
std::vector<GameLanguagePrefix> GetLanguagePrefixes() override;
};
extern GameT5 g_GameT5;
extern GameT5 g_GameT5;

View File

@ -1,10 +1,14 @@
#pragma once
//#include <d3d9.h>
// clang-format off: Order of includes matters here
// #include <d3d9.h>
#include "Image/Texture.h"
#include "T5_Assets.h"
// clang-format on
namespace T5
{
struct ScriptStringList
@ -110,4 +114,4 @@ namespace T5
CFT_NUM_FIELD_TYPES
};
}
} // namespace T5

View File

@ -114,43 +114,43 @@ namespace T5
union XAssetHeader
{
//XModelPieces *xmodelPieces; // Not an asset
PhysPreset *physPreset;
PhysConstraints *physConstraints;
DestructibleDef *destructibleDef;
XAnimParts *parts;
XModel *model;
Material *material;
//MaterialPixelShader *pixelShader; // Not an asset
//MaterialVertexShader *vertexShader; // Not an asset
MaterialTechniqueSet *techniqueSet;
GfxImage *image;
SndBank *sound;
SndPatch *soundPatch;
clipMap_t *clipMap;
ComWorld *comWorld;
GameWorldSp *gameWorldSp;
GameWorldMp *gameWorldMp;
MapEnts *mapEnts;
GfxWorld *gfxWorld;
GfxLightDef *lightDef;
Font_s *font;
MenuList *menuList;
menuDef_t *menu;
LocalizeEntry *localize;
WeaponVariantDef *weapon;
SndDriverGlobals *sndDriverGlobals;
FxEffectDef *fx;
FxImpactTable *impactFx;
RawFile *rawfile;
StringTable *stringTable;
PackIndex *packIndex;
XGlobals *xGlobals;
ddlRoot_t *ddlRoot;
Glasses *glasses;
//TextureList *textureList; // Not an asset
EmblemSet *emblemSet;
void *data;
// XModelPieces *xmodelPieces; // Not an asset
PhysPreset* physPreset;
PhysConstraints* physConstraints;
DestructibleDef* destructibleDef;
XAnimParts* parts;
XModel* model;
Material* material;
// MaterialPixelShader *pixelShader; // Not an asset
// MaterialVertexShader *vertexShader; // Not an asset
MaterialTechniqueSet* techniqueSet;
GfxImage* image;
SndBank* sound;
SndPatch* soundPatch;
clipMap_t* clipMap;
ComWorld* comWorld;
GameWorldSp* gameWorldSp;
GameWorldMp* gameWorldMp;
MapEnts* mapEnts;
GfxWorld* gfxWorld;
GfxLightDef* lightDef;
Font_s* font;
MenuList* menuList;
menuDef_t* menu;
LocalizeEntry* localize;
WeaponVariantDef* weapon;
SndDriverGlobals* sndDriverGlobals;
FxEffectDef* fx;
FxImpactTable* impactFx;
RawFile* rawfile;
StringTable* stringTable;
PackIndex* packIndex;
XGlobals* xGlobals;
ddlRoot_t* ddlRoot;
Glasses* glasses;
// TextureList *textureList; // Not an asset
EmblemSet* emblemSet;
void* data;
};
typedef tdef_align(16) char char16;
@ -508,12 +508,12 @@ namespace T5
uint16_t triCount;
uint16_t baseTriIndex;
uint16_t baseVertIndex;
r_index16_t(*triIndices)[3];
r_index16_t (*triIndices)[3];
XSurfaceVertexInfo vertInfo;
GfxPackedVertex* verts0;
void/*IDirect3DVertexBuffer9*/* vb0;
void /*IDirect3DVertexBuffer9*/* vb0;
XRigidVertList* vertList;
void/*IDirect3DIndexBuffer9*/* indexBuffer;
void /*IDirect3DIndexBuffer9*/* indexBuffer;
int partBits[5];
};
@ -628,8 +628,8 @@ namespace T5
char lodRampType;
uint16_t* boneNames;
char* parentList;
int16_t(*quats)[4];
float(*trans)[4];
int16_t (*quats)[4];
float (*trans)[4];
char* partClassification;
DObjAnimMat* baseMat;
XSurface* surfs;
@ -837,7 +837,7 @@ namespace T5
struct MaterialVertexStreamRouting
{
MaterialStreamRouting data[16];
void/*IDirect3DVertexDeclaration9*/* decl[18];
void /*IDirect3DVertexDeclaration9*/* decl[18];
};
struct MaterialVertexDeclaration
@ -856,7 +856,7 @@ namespace T5
struct MaterialVertexShaderProgram
{
void/*IDirect3DVertexShader9*/* vs;
void /*IDirect3DVertexShader9*/* vs;
GfxVertexShaderLoadDef loadDef;
};
@ -874,7 +874,7 @@ namespace T5
struct MaterialPixelShaderProgram
{
void/*IDirect3DPixelShader9*/* ps;
void /*IDirect3DPixelShader9*/* ps;
GfxPixelShaderLoadDef loadDef;
};
@ -893,7 +893,7 @@ namespace T5
union MaterialArgumentDef
{
const float(*literalConst)[4];
const float (*literalConst)[4];
MaterialArgumentCodeConst codeConst;
unsigned int codeSampler;
unsigned int nameHash;
@ -1963,7 +1963,7 @@ namespace T5
bool isAncestor;
char recursionDepth;
char hullPointCount;
float(*hullPoints)[2];
float (*hullPoints)[2];
GfxPortal* queuedParent;
};
@ -2040,17 +2040,17 @@ namespace T5
PackedUnitVec normal;
PackedUnitVec tangent;
};
struct GfxWorldVertexData
{
GfxWorldVertex* vertices;
void/*IDirect3DVertexBuffer9*/* worldVb;
void /*IDirect3DVertexBuffer9*/* worldVb;
};
struct GfxWorldVertexLayerData
{
char* data;
void/*IDirect3DVertexBuffer9*/* layerVb;
void /*IDirect3DVertexBuffer9*/* layerVb;
};
struct GfxWorldDraw
@ -3861,15 +3861,16 @@ namespace T5
float fHipViewScatterMax;
float fightDist;
float maxDist;
//const char *accuracyGraphName[2]; // TODO: Order is accuracyGraphName[0] -> accuracyGraphKnots[0] -> originalAccuracyGraphKnots[0] -> accuracyGraphName[1] -> ...
// Which is currently not possible to do in code generation. Afaik this is the only place where this is the case.
// So might be something to fix but on the other hand it might be too much work for this little inconvenience.
// const char *accuracyGraphName[2]; // TODO: Order is accuracyGraphName[0] -> accuracyGraphKnots[0] -> originalAccuracyGraphKnots[0] ->
// accuracyGraphName[1] -> ...
// Which is currently not possible to do in code generation. Afaik this is the only place where this is the case.
// So might be something to fix but on the other hand it might be too much work for this little inconvenience.
const char* accuracyGraphName0;
const char* accuracyGraphName1;
//vec2_t *accuracyGraphKnots[2];
// vec2_t *accuracyGraphKnots[2];
vec2_t* accuracyGraphKnots0;
vec2_t* accuracyGraphKnots1;
//vec2_t *originalAccuracyGraphKnots[2];
// vec2_t *originalAccuracyGraphKnots[2];
vec2_t* originalAccuracyGraphKnots0;
vec2_t* originalAccuracyGraphKnots1;
int accuracyGraphKnotCount[2];

View File

@ -1,9 +1,9 @@
#include "CommonT6.h"
#include <cctype>
#include "Utils/Pack.h"
#include <cctype>
using namespace T6;
int Common::Com_HashKey(const char* str, const int maxLen)
@ -30,7 +30,7 @@ int Common::Com_HashString(const char* str)
auto result = 0x1505;
auto offset = 0;
while(str[offset])
while (str[offset])
{
const auto c = tolower(str[offset++]);
result = c + 33 * result;
@ -46,7 +46,7 @@ int Common::Com_HashString(const char* str, const int len)
int result = 0x1505;
int offset = 0;
while(str[offset])
while (str[offset])
{
if (len > 0 && offset >= len)
break;
@ -70,17 +70,17 @@ uint32_t Common::R_HashString(const char* str, uint32_t hash)
PackedTexCoords Common::Vec2PackTexCoords(const vec2_t* in)
{
return PackedTexCoords{ Pack32::Vec2PackTexCoords(in->v) };
return PackedTexCoords{Pack32::Vec2PackTexCoords(in->v)};
}
PackedUnitVec Common::Vec3PackUnitVec(const vec3_t* in)
{
return PackedUnitVec{ Pack32::Vec3PackUnitVec(in->v) };
return PackedUnitVec{Pack32::Vec3PackUnitVec(in->v)};
}
GfxColor Common::Vec4PackGfxColor(const vec4_t* in)
{
return GfxColor{ Pack32::Vec4PackGfxColor(in->v) };
return GfxColor{Pack32::Vec4PackGfxColor(in->v)};
}
void Common::Vec2UnpackTexCoords(const PackedTexCoords& in, vec2_t* out)
@ -96,4 +96,4 @@ void Common::Vec3UnpackUnitVec(const PackedUnitVec& in, vec3_t* out)
void Common::Vec4UnpackGfxColor(const GfxColor& in, vec4_t* out)
{
Pack32::Vec4UnpackGfxColor(in.packed, out->v);
}
}

View File

@ -19,4 +19,4 @@ namespace T6
static void Vec3UnpackUnitVec(const PackedUnitVec& in, vec3_t* out);
static void Vec4UnpackGfxColor(const GfxColor& in, vec4_t* out);
};
}
} // namespace T6

View File

@ -1,9 +1,9 @@
#include "GameT6.h"
#include <algorithm>
#include "T6.h"
#include <algorithm>
using namespace T6;
GameT6 g_GameT6;

View File

@ -14,4 +14,4 @@ public:
std::vector<GameLanguagePrefix> GetLanguagePrefixes() override;
};
extern GameT6 g_GameT6;
extern GameT6 g_GameT6;

View File

@ -1,10 +1,14 @@
#pragma once
//#include <d3d11.h>
// clang-format off: Order of includes matters here
// #include <d3d11.h>
#include "Image/Texture.h"
#include "T6_Assets.h"
// clang-format on
namespace T6
{
struct ScriptStringList
@ -149,4 +153,4 @@ namespace T6
AUFT_NUM_FIELD_TYPES,
};
}
} // namespace T6

File diff suppressed because it is too large Load Diff

View File

@ -99,12 +99,10 @@ enum D3DFORMAT
// 2.8 biased fixed point
D3DFMT_A2B10G10R10_XR_BIAS = 119,
// Binary format indicating that the data has no inherent type
D3DFMT_BINARYBUFFER = 199,
/* -- D3D9Ex only */
D3DFMT_FORCE_DWORD = 0x7fffffff
};
};

View File

@ -4,10 +4,7 @@
constexpr uint32_t MakeFourCc(const char ch0, const char ch1, const char ch2, const char ch3)
{
return static_cast<uint32_t>(ch0)
| static_cast<uint32_t>(ch1) << 8
| static_cast<uint32_t>(ch2) << 16
| static_cast<uint32_t>(ch3) << 24;
return static_cast<uint32_t>(ch0) | static_cast<uint32_t>(ch1) << 8 | static_cast<uint32_t>(ch2) << 16 | static_cast<uint32_t>(ch3) << 24;
}
enum DDP_FLAGS

View File

@ -22,126 +22,126 @@ const unsigned int DXGI_FORMAT_DEFINED = 1;
enum DXGI_FORMAT
{
DXGI_FORMAT_UNKNOWN = 0x00,
DXGI_FORMAT_R32G32B32A32_TYPELESS = 0x01,
DXGI_FORMAT_R32G32B32A32_FLOAT = 0x02,
DXGI_FORMAT_R32G32B32A32_UINT = 0x03,
DXGI_FORMAT_R32G32B32A32_SINT = 0x04,
DXGI_FORMAT_R32G32B32_TYPELESS = 0x05,
DXGI_FORMAT_R32G32B32_FLOAT = 0x06,
DXGI_FORMAT_R32G32B32_UINT = 0x07,
DXGI_FORMAT_R32G32B32_SINT = 0x08,
DXGI_FORMAT_R16G16B16A16_TYPELESS = 0x09,
DXGI_FORMAT_R16G16B16A16_FLOAT = 0x0a,
DXGI_FORMAT_R16G16B16A16_UNORM = 0x0b,
DXGI_FORMAT_R16G16B16A16_UINT = 0x0c,
DXGI_FORMAT_R16G16B16A16_SNORM = 0x0d,
DXGI_FORMAT_R16G16B16A16_SINT = 0x0e,
DXGI_FORMAT_R32G32_TYPELESS = 0x0f,
DXGI_FORMAT_R32G32_FLOAT = 0x10,
DXGI_FORMAT_R32G32_UINT = 0x11,
DXGI_FORMAT_R32G32_SINT = 0x12,
DXGI_FORMAT_R32G8X24_TYPELESS = 0x13,
DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 0x14,
DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 0x15,
DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 0x16,
DXGI_FORMAT_R10G10B10A2_TYPELESS = 0x17,
DXGI_FORMAT_R10G10B10A2_UNORM = 0x18,
DXGI_FORMAT_R10G10B10A2_UINT = 0x19,
DXGI_FORMAT_R11G11B10_FLOAT = 0x1a,
DXGI_FORMAT_R8G8B8A8_TYPELESS = 0x1b,
DXGI_FORMAT_R8G8B8A8_UNORM = 0x1c,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 0x1d,
DXGI_FORMAT_R8G8B8A8_UINT = 0x1e,
DXGI_FORMAT_R8G8B8A8_SNORM = 0x1f,
DXGI_FORMAT_R8G8B8A8_SINT = 0x20,
DXGI_FORMAT_R16G16_TYPELESS = 0x21,
DXGI_FORMAT_R16G16_FLOAT = 0x22,
DXGI_FORMAT_R16G16_UNORM = 0x23,
DXGI_FORMAT_R16G16_UINT = 0x24,
DXGI_FORMAT_R16G16_SNORM = 0x25,
DXGI_FORMAT_R16G16_SINT = 0x26,
DXGI_FORMAT_R32_TYPELESS = 0x27,
DXGI_FORMAT_D32_FLOAT = 0x28,
DXGI_FORMAT_R32_FLOAT = 0x29,
DXGI_FORMAT_R32_UINT = 0x2a,
DXGI_FORMAT_R32_SINT = 0x2b,
DXGI_FORMAT_R24G8_TYPELESS = 0x2c,
DXGI_FORMAT_D24_UNORM_S8_UINT = 0x2d,
DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 0x2e,
DXGI_FORMAT_X24_TYPELESS_G8_UINT = 0x2f,
DXGI_FORMAT_R8G8_TYPELESS = 0x30,
DXGI_FORMAT_R8G8_UNORM = 0x31,
DXGI_FORMAT_R8G8_UINT = 0x32,
DXGI_FORMAT_R8G8_SNORM = 0x33,
DXGI_FORMAT_R8G8_SINT = 0x34,
DXGI_FORMAT_R16_TYPELESS = 0x35,
DXGI_FORMAT_R16_FLOAT = 0x36,
DXGI_FORMAT_D16_UNORM = 0x37,
DXGI_FORMAT_R16_UNORM = 0x38,
DXGI_FORMAT_R16_UINT = 0x39,
DXGI_FORMAT_R16_SNORM = 0x3a,
DXGI_FORMAT_R16_SINT = 0x3b,
DXGI_FORMAT_R8_TYPELESS = 0x3c,
DXGI_FORMAT_R8_UNORM = 0x3d,
DXGI_FORMAT_R8_UINT = 0x3e,
DXGI_FORMAT_R8_SNORM = 0x3f,
DXGI_FORMAT_R8_SINT = 0x40,
DXGI_FORMAT_A8_UNORM = 0x41,
DXGI_FORMAT_R1_UNORM = 0x42,
DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 0x43,
DXGI_FORMAT_R8G8_B8G8_UNORM = 0x44,
DXGI_FORMAT_G8R8_G8B8_UNORM = 0x45,
DXGI_FORMAT_BC1_TYPELESS = 0x46,
DXGI_FORMAT_BC1_UNORM = 0x47,
DXGI_FORMAT_BC1_UNORM_SRGB = 0x48,
DXGI_FORMAT_BC2_TYPELESS = 0x49,
DXGI_FORMAT_BC2_UNORM = 0x4a,
DXGI_FORMAT_BC2_UNORM_SRGB = 0x4b,
DXGI_FORMAT_BC3_TYPELESS = 0x4c,
DXGI_FORMAT_BC3_UNORM = 0x4d,
DXGI_FORMAT_BC3_UNORM_SRGB = 0x4e,
DXGI_FORMAT_BC4_TYPELESS = 0x4f,
DXGI_FORMAT_BC4_UNORM = 0x50,
DXGI_FORMAT_BC4_SNORM = 0x51,
DXGI_FORMAT_BC5_TYPELESS = 0x52,
DXGI_FORMAT_BC5_UNORM = 0x53,
DXGI_FORMAT_BC5_SNORM = 0x54,
DXGI_FORMAT_B5G6R5_UNORM = 0x55,
DXGI_FORMAT_B5G5R5A1_UNORM = 0x56,
DXGI_FORMAT_B8G8R8A8_UNORM = 0x57,
DXGI_FORMAT_B8G8R8X8_UNORM = 0x58,
DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 0x59,
DXGI_FORMAT_B8G8R8A8_TYPELESS = 0x5a,
DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 0x5b,
DXGI_FORMAT_B8G8R8X8_TYPELESS = 0x5c,
DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 0x5d,
DXGI_FORMAT_BC6H_TYPELESS = 0x5e,
DXGI_FORMAT_BC6H_UF16 = 0x5f,
DXGI_FORMAT_BC6H_SF16 = 0x60,
DXGI_FORMAT_BC7_TYPELESS = 0x61,
DXGI_FORMAT_BC7_UNORM = 0x62,
DXGI_FORMAT_BC7_UNORM_SRGB = 0x63,
DXGI_FORMAT_AYUV = 0x64,
DXGI_FORMAT_Y410 = 0x65,
DXGI_FORMAT_Y416 = 0x66,
DXGI_FORMAT_NV12 = 0x67,
DXGI_FORMAT_P010 = 0x68,
DXGI_FORMAT_P016 = 0x69,
DXGI_FORMAT_420_OPAQUE = 0x6a,
DXGI_FORMAT_YUY2 = 0x6b,
DXGI_FORMAT_Y210 = 0x6c,
DXGI_FORMAT_Y216 = 0x6d,
DXGI_FORMAT_NV11 = 0x6e,
DXGI_FORMAT_AI44 = 0x6f,
DXGI_FORMAT_IA44 = 0x70,
DXGI_FORMAT_P8 = 0x71,
DXGI_FORMAT_A8P8 = 0x72,
DXGI_FORMAT_B4G4R4A4_UNORM = 0x73,
DXGI_FORMAT_UNKNOWN = 0x00,
DXGI_FORMAT_R32G32B32A32_TYPELESS = 0x01,
DXGI_FORMAT_R32G32B32A32_FLOAT = 0x02,
DXGI_FORMAT_R32G32B32A32_UINT = 0x03,
DXGI_FORMAT_R32G32B32A32_SINT = 0x04,
DXGI_FORMAT_R32G32B32_TYPELESS = 0x05,
DXGI_FORMAT_R32G32B32_FLOAT = 0x06,
DXGI_FORMAT_R32G32B32_UINT = 0x07,
DXGI_FORMAT_R32G32B32_SINT = 0x08,
DXGI_FORMAT_R16G16B16A16_TYPELESS = 0x09,
DXGI_FORMAT_R16G16B16A16_FLOAT = 0x0a,
DXGI_FORMAT_R16G16B16A16_UNORM = 0x0b,
DXGI_FORMAT_R16G16B16A16_UINT = 0x0c,
DXGI_FORMAT_R16G16B16A16_SNORM = 0x0d,
DXGI_FORMAT_R16G16B16A16_SINT = 0x0e,
DXGI_FORMAT_R32G32_TYPELESS = 0x0f,
DXGI_FORMAT_R32G32_FLOAT = 0x10,
DXGI_FORMAT_R32G32_UINT = 0x11,
DXGI_FORMAT_R32G32_SINT = 0x12,
DXGI_FORMAT_R32G8X24_TYPELESS = 0x13,
DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 0x14,
DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 0x15,
DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 0x16,
DXGI_FORMAT_R10G10B10A2_TYPELESS = 0x17,
DXGI_FORMAT_R10G10B10A2_UNORM = 0x18,
DXGI_FORMAT_R10G10B10A2_UINT = 0x19,
DXGI_FORMAT_R11G11B10_FLOAT = 0x1a,
DXGI_FORMAT_R8G8B8A8_TYPELESS = 0x1b,
DXGI_FORMAT_R8G8B8A8_UNORM = 0x1c,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 0x1d,
DXGI_FORMAT_R8G8B8A8_UINT = 0x1e,
DXGI_FORMAT_R8G8B8A8_SNORM = 0x1f,
DXGI_FORMAT_R8G8B8A8_SINT = 0x20,
DXGI_FORMAT_R16G16_TYPELESS = 0x21,
DXGI_FORMAT_R16G16_FLOAT = 0x22,
DXGI_FORMAT_R16G16_UNORM = 0x23,
DXGI_FORMAT_R16G16_UINT = 0x24,
DXGI_FORMAT_R16G16_SNORM = 0x25,
DXGI_FORMAT_R16G16_SINT = 0x26,
DXGI_FORMAT_R32_TYPELESS = 0x27,
DXGI_FORMAT_D32_FLOAT = 0x28,
DXGI_FORMAT_R32_FLOAT = 0x29,
DXGI_FORMAT_R32_UINT = 0x2a,
DXGI_FORMAT_R32_SINT = 0x2b,
DXGI_FORMAT_R24G8_TYPELESS = 0x2c,
DXGI_FORMAT_D24_UNORM_S8_UINT = 0x2d,
DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 0x2e,
DXGI_FORMAT_X24_TYPELESS_G8_UINT = 0x2f,
DXGI_FORMAT_R8G8_TYPELESS = 0x30,
DXGI_FORMAT_R8G8_UNORM = 0x31,
DXGI_FORMAT_R8G8_UINT = 0x32,
DXGI_FORMAT_R8G8_SNORM = 0x33,
DXGI_FORMAT_R8G8_SINT = 0x34,
DXGI_FORMAT_R16_TYPELESS = 0x35,
DXGI_FORMAT_R16_FLOAT = 0x36,
DXGI_FORMAT_D16_UNORM = 0x37,
DXGI_FORMAT_R16_UNORM = 0x38,
DXGI_FORMAT_R16_UINT = 0x39,
DXGI_FORMAT_R16_SNORM = 0x3a,
DXGI_FORMAT_R16_SINT = 0x3b,
DXGI_FORMAT_R8_TYPELESS = 0x3c,
DXGI_FORMAT_R8_UNORM = 0x3d,
DXGI_FORMAT_R8_UINT = 0x3e,
DXGI_FORMAT_R8_SNORM = 0x3f,
DXGI_FORMAT_R8_SINT = 0x40,
DXGI_FORMAT_A8_UNORM = 0x41,
DXGI_FORMAT_R1_UNORM = 0x42,
DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 0x43,
DXGI_FORMAT_R8G8_B8G8_UNORM = 0x44,
DXGI_FORMAT_G8R8_G8B8_UNORM = 0x45,
DXGI_FORMAT_BC1_TYPELESS = 0x46,
DXGI_FORMAT_BC1_UNORM = 0x47,
DXGI_FORMAT_BC1_UNORM_SRGB = 0x48,
DXGI_FORMAT_BC2_TYPELESS = 0x49,
DXGI_FORMAT_BC2_UNORM = 0x4a,
DXGI_FORMAT_BC2_UNORM_SRGB = 0x4b,
DXGI_FORMAT_BC3_TYPELESS = 0x4c,
DXGI_FORMAT_BC3_UNORM = 0x4d,
DXGI_FORMAT_BC3_UNORM_SRGB = 0x4e,
DXGI_FORMAT_BC4_TYPELESS = 0x4f,
DXGI_FORMAT_BC4_UNORM = 0x50,
DXGI_FORMAT_BC4_SNORM = 0x51,
DXGI_FORMAT_BC5_TYPELESS = 0x52,
DXGI_FORMAT_BC5_UNORM = 0x53,
DXGI_FORMAT_BC5_SNORM = 0x54,
DXGI_FORMAT_B5G6R5_UNORM = 0x55,
DXGI_FORMAT_B5G5R5A1_UNORM = 0x56,
DXGI_FORMAT_B8G8R8A8_UNORM = 0x57,
DXGI_FORMAT_B8G8R8X8_UNORM = 0x58,
DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 0x59,
DXGI_FORMAT_B8G8R8A8_TYPELESS = 0x5a,
DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 0x5b,
DXGI_FORMAT_B8G8R8X8_TYPELESS = 0x5c,
DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 0x5d,
DXGI_FORMAT_BC6H_TYPELESS = 0x5e,
DXGI_FORMAT_BC6H_UF16 = 0x5f,
DXGI_FORMAT_BC6H_SF16 = 0x60,
DXGI_FORMAT_BC7_TYPELESS = 0x61,
DXGI_FORMAT_BC7_UNORM = 0x62,
DXGI_FORMAT_BC7_UNORM_SRGB = 0x63,
DXGI_FORMAT_AYUV = 0x64,
DXGI_FORMAT_Y410 = 0x65,
DXGI_FORMAT_Y416 = 0x66,
DXGI_FORMAT_NV12 = 0x67,
DXGI_FORMAT_P010 = 0x68,
DXGI_FORMAT_P016 = 0x69,
DXGI_FORMAT_420_OPAQUE = 0x6a,
DXGI_FORMAT_YUY2 = 0x6b,
DXGI_FORMAT_Y210 = 0x6c,
DXGI_FORMAT_Y216 = 0x6d,
DXGI_FORMAT_NV11 = 0x6e,
DXGI_FORMAT_AI44 = 0x6f,
DXGI_FORMAT_IA44 = 0x70,
DXGI_FORMAT_P8 = 0x71,
DXGI_FORMAT_A8P8 = 0x72,
DXGI_FORMAT_B4G4R4A4_UNORM = 0x73,
DXGI_FORMAT_P208 = 0x82,
DXGI_FORMAT_V208 = 0x83,
DXGI_FORMAT_V408 = 0x84,
DXGI_FORMAT_P208 = 0x82,
DXGI_FORMAT_V208 = 0x83,
DXGI_FORMAT_V408 = 0x84,
DXGI_FORMAT_FORCE_UINT = 0xffffffff,
};
DXGI_FORMAT_FORCE_UINT = 0xffffffff,
};

View File

@ -22,10 +22,18 @@ DXGI_FORMAT ImageFormat::GetDxgiFormat() const
return m_dxgi_format;
}
ImageFormatUnsigned::ImageFormatUnsigned(const ImageFormatId id, const D3DFORMAT d3dFormat, const DXGI_FORMAT dxgiFormat,
const unsigned bitsPerPixel, const unsigned rOffset, const unsigned rSize,
const unsigned gOffset, const unsigned gSize, const unsigned bOffset,
const unsigned bSize, const unsigned aOffset, const unsigned aSize)
ImageFormatUnsigned::ImageFormatUnsigned(const ImageFormatId id,
const D3DFORMAT d3dFormat,
const DXGI_FORMAT dxgiFormat,
const unsigned bitsPerPixel,
const unsigned rOffset,
const unsigned rSize,
const unsigned gOffset,
const unsigned gSize,
const unsigned bOffset,
const unsigned bSize,
const unsigned aOffset,
const unsigned aSize)
: ImageFormat(id, d3dFormat, dxgiFormat),
m_bits_per_pixel(bitsPerPixel),
m_r_offset(rOffset),
@ -53,8 +61,7 @@ size_t ImageFormatUnsigned::GetPitch(const unsigned mipLevel, const unsigned wid
return mipWidth * m_bits_per_pixel / 8;
}
size_t ImageFormatUnsigned::GetSizeOfMipLevel(const unsigned mipLevel, const unsigned width, const unsigned height,
const unsigned depth) const
size_t ImageFormatUnsigned::GetSizeOfMipLevel(const unsigned mipLevel, const unsigned width, const unsigned height, const unsigned depth) const
{
unsigned mipWidth = width >> mipLevel;
unsigned mipHeight = height >> mipLevel;
@ -70,8 +77,8 @@ size_t ImageFormatUnsigned::GetSizeOfMipLevel(const unsigned mipLevel, const uns
return mipWidth * mipHeight * mipDepth * m_bits_per_pixel / 8;
}
ImageFormatBlockCompressed::ImageFormatBlockCompressed(const ImageFormatId id, const D3DFORMAT d3dFormat, const DXGI_FORMAT dxgiFormat,
const unsigned blockSize, const unsigned bitsPerBlock)
ImageFormatBlockCompressed::ImageFormatBlockCompressed(
const ImageFormatId id, const D3DFORMAT d3dFormat, const DXGI_FORMAT dxgiFormat, const unsigned blockSize, const unsigned bitsPerBlock)
: ImageFormat(id, d3dFormat, dxgiFormat),
m_block_size(blockSize),
m_bits_per_block(bitsPerBlock)
@ -95,8 +102,7 @@ size_t ImageFormatBlockCompressed::GetPitch(const unsigned mipLevel, const unsig
return blockCount * m_bits_per_block / 8;
}
size_t ImageFormatBlockCompressed::GetSizeOfMipLevel(const unsigned mipLevel, const unsigned width,
const unsigned height, const unsigned depth) const
size_t ImageFormatBlockCompressed::GetSizeOfMipLevel(const unsigned mipLevel, const unsigned width, const unsigned height, const unsigned depth) const
{
unsigned mipWidth = width >> mipLevel;
unsigned mipHeight = height >> mipLevel;
@ -109,9 +115,7 @@ size_t ImageFormatBlockCompressed::GetSizeOfMipLevel(const unsigned mipLevel, co
if (mipDepth == 0)
mipDepth = 1;
const unsigned blockCount = ((mipWidth + m_block_size - 1) / m_block_size)
* ((mipHeight + m_block_size - 1) / m_block_size)
* mipDepth;
const unsigned blockCount = ((mipWidth + m_block_size - 1) / m_block_size) * ((mipHeight + m_block_size - 1) / m_block_size) * mipDepth;
return blockCount * m_bits_per_block / 8;
}
@ -138,10 +142,13 @@ bool ImageFormatUnsigned::HasA() const
const ImageFormatUnsigned ImageFormat::FORMAT_R8_G8_B8(ImageFormatId::R8_G8_B8, D3DFMT_R8G8B8, DXGI_FORMAT_UNKNOWN, 24, 0, 8, 8, 8, 16, 8, 0, 0);
const ImageFormatUnsigned ImageFormat::FORMAT_B8_G8_R8_X8(ImageFormatId::B8_G8_R8_X8, D3DFMT_X8R8G8B8, DXGI_FORMAT_B8G8R8X8_UNORM, 32, 16, 8, 8, 8, 0, 8, 0, 0);
const ImageFormatUnsigned ImageFormat::FORMAT_R8_G8_B8_A8(ImageFormatId::R8_G8_B8_A8, D3DFMT_A8B8G8R8, DXGI_FORMAT_R8G8B8A8_UNORM, 32, 0, 8, 8, 8, 16, 8, 24, 8);
const ImageFormatUnsigned ImageFormat::FORMAT_B8_G8_R8_A8(ImageFormatId::B8_G8_R8_A8, D3DFMT_A8R8G8B8, DXGI_FORMAT_B8G8R8A8_UNORM, 32, 16, 8, 8, 8, 0, 8, 24, 8);
const ImageFormatUnsigned
ImageFormat::FORMAT_R8_G8_B8_A8(ImageFormatId::R8_G8_B8_A8, D3DFMT_A8B8G8R8, DXGI_FORMAT_R8G8B8A8_UNORM, 32, 0, 8, 8, 8, 16, 8, 24, 8);
const ImageFormatUnsigned
ImageFormat::FORMAT_B8_G8_R8_A8(ImageFormatId::B8_G8_R8_A8, D3DFMT_A8R8G8B8, DXGI_FORMAT_B8G8R8A8_UNORM, 32, 16, 8, 8, 8, 0, 8, 24, 8);
const ImageFormatUnsigned ImageFormat::FORMAT_A8(ImageFormatId::A8, D3DFMT_A8, DXGI_FORMAT_A8_UNORM, 8, 0, 0, 0, 0, 0, 0, 0, 8);
const ImageFormatUnsigned ImageFormat::FORMAT_R16_G16_B16_A16_FLOAT(ImageFormatId::R16_G16_B16_A16_FLOAT, D3DFMT_A16B16G16R16F, DXGI_FORMAT_R16G16B16A16_FLOAT, 128, 0, 0, 0, 0, 0, 0, 0, 8);
const ImageFormatUnsigned ImageFormat::FORMAT_R16_G16_B16_A16_FLOAT(
ImageFormatId::R16_G16_B16_A16_FLOAT, D3DFMT_A16B16G16R16F, DXGI_FORMAT_R16G16B16A16_FLOAT, 128, 0, 0, 0, 0, 0, 0, 0, 8);
const ImageFormatUnsigned ImageFormat::FORMAT_R8(ImageFormatId::R8, D3DFMT_L8, DXGI_FORMAT_R8_UNORM, 8, 0, 8, 0, 0, 0, 0, 0, 0);
const ImageFormatUnsigned ImageFormat::FORMAT_R8_A8(ImageFormatId::R8_A8, D3DFMT_A8L8, DXGI_FORMAT_UNKNOWN, 16, 0, 8, 0, 0, 0, 0, 8, 8);
const ImageFormatBlockCompressed ImageFormat::FORMAT_BC1(ImageFormatId::BC1, D3DFMT_DXT1, DXGI_FORMAT_BC1_UNORM, 4, 64);
@ -150,8 +157,7 @@ const ImageFormatBlockCompressed ImageFormat::FORMAT_BC3(ImageFormatId::BC3, D3D
const ImageFormatBlockCompressed ImageFormat::FORMAT_BC4(ImageFormatId::BC4, D3DFMT_UNKNOWN, DXGI_FORMAT_BC4_UNORM, 4, 64);
const ImageFormatBlockCompressed ImageFormat::FORMAT_BC5(ImageFormatId::BC5, D3DFMT_UNKNOWN, DXGI_FORMAT_BC5_UNORM, 4, 128);
const ImageFormat* const ImageFormat::ALL_FORMATS[static_cast<unsigned>(ImageFormatId::MAX)]
{
const ImageFormat* const ImageFormat::ALL_FORMATS[static_cast<unsigned>(ImageFormatId::MAX)]{
&FORMAT_R8_G8_B8,
&FORMAT_B8_G8_R8_X8,
&FORMAT_R8_G8_B8_A8,

View File

@ -1,10 +1,11 @@
#pragma once
#include <cstdint>
#include <cstddef>
#include "D3DFormat.h"
#include "DxgiFormat.h"
#include <cstddef>
#include <cstdint>
enum class ImageFormatId
{
UNKNOWN = -1,
@ -60,7 +61,7 @@ public:
static const ImageFormatUnsigned FORMAT_R8_G8_B8_A8;
static const ImageFormatUnsigned FORMAT_B8_G8_R8_A8;
static const ImageFormatUnsigned FORMAT_A8;
static const ImageFormatUnsigned FORMAT_R16_G16_B16_A16_FLOAT; //TODO: Float not unsigned
static const ImageFormatUnsigned FORMAT_R16_G16_B16_A16_FLOAT; // TODO: Float not unsigned
static const ImageFormatUnsigned FORMAT_R8;
static const ImageFormatUnsigned FORMAT_R8_A8;
static const ImageFormatBlockCompressed FORMAT_BC1;
@ -84,9 +85,18 @@ public:
unsigned m_a_offset;
unsigned m_a_size;
ImageFormatUnsigned(ImageFormatId id, D3DFORMAT d3dFormat, DXGI_FORMAT dxgiFormat, unsigned bitsPerPixel, unsigned rOffset,
unsigned rSize, unsigned gOffset, unsigned gSize, unsigned bOffset, unsigned bSize,
unsigned aOffset, unsigned aSize);
ImageFormatUnsigned(ImageFormatId id,
D3DFORMAT d3dFormat,
DXGI_FORMAT dxgiFormat,
unsigned bitsPerPixel,
unsigned rOffset,
unsigned rSize,
unsigned gOffset,
unsigned gSize,
unsigned bOffset,
unsigned bSize,
unsigned aOffset,
unsigned aSize);
ImageFormatType GetType() const override;
size_t GetPitch(unsigned mipLevel, unsigned width) const override;

View File

@ -54,7 +54,7 @@ namespace iwi6
IMG_FLAG_RENDER_TARGET = 1 << 17,
IMG_FLAG_SYSTEMMEM = 1 << 18
};
}
} // namespace iwi6
// IW4
namespace iwi8
@ -122,7 +122,7 @@ namespace iwi8
IMG_FLAG_RENDER_TARGET = 1 << 25,
IMG_FLAG_SYSTEMMEM = 1 << 26
};
}
} // namespace iwi8
// T5
namespace iwi13
@ -177,7 +177,7 @@ namespace iwi13
IMG_FLAG_SYSTEMMEM = 1 << 18,
};
}
} // namespace iwi13
// T6
namespace iwi27
@ -232,4 +232,4 @@ namespace iwi27
IMG_FLAG_MULTISAMPLE = 1 << 18,
};
}
} // namespace iwi27

View File

@ -260,8 +260,7 @@ Texture3D::Texture3D(const ImageFormat* format, const unsigned width, const unsi
{
}
Texture3D::Texture3D(const ImageFormat* format, const unsigned width, const unsigned height, const unsigned depth,
const bool mipMaps)
Texture3D::Texture3D(const ImageFormat* format, const unsigned width, const unsigned height, const unsigned depth, const bool mipMaps)
: Texture(format, mipMaps)
{
m_width = width;

View File

@ -1,5 +1,6 @@
#pragma once
#include "ImageFormat.h"
#include <cstdint>
enum class TextureType
@ -123,4 +124,4 @@ public:
uint8_t* GetBufferForMipLevel(int mipLevel, int face) override;
int GetMipMapCount() const override;
};
};

View File

@ -44,8 +44,7 @@ void TextureConverter::SetPixelFunctions(const unsigned inBitCount, const unsign
for (auto pixelOffset = 0u; pixelOffset < bitCount; pixelOffset += 8)
{
result |= (static_cast<uint64_t>(*(static_cast<const uint8_t*>(offset) + (pixelOffset / 8))) <<
pixelOffset);
result |= (static_cast<uint64_t>(*(static_cast<const uint8_t*>(offset) + (pixelOffset / 8))) << pixelOffset);
}
return result;
@ -99,9 +98,7 @@ void TextureConverter::SetPixelFunctions(const unsigned inBitCount, const unsign
else
{
assert(false);
m_write_pixel_func = [](void* offset, uint64_t pixel, unsigned bitCount)
{
};
m_write_pixel_func = [](void* offset, uint64_t pixel, unsigned bitCount) {};
}
break;
}
@ -120,18 +117,16 @@ void TextureConverter::CreateOutputTexture()
switch (m_input_texture->GetTextureType())
{
case TextureType::T_2D:
m_output_texture = new Texture2D(m_output_format, m_input_texture->GetWidth(), m_input_texture->GetHeight(),
m_input_texture->HasMipMaps());
m_output_texture = new Texture2D(m_output_format, m_input_texture->GetWidth(), m_input_texture->GetHeight(), m_input_texture->HasMipMaps());
break;
case TextureType::T_CUBE:
m_output_texture = new TextureCube(m_output_format, m_input_texture->GetWidth(), m_input_texture->GetHeight(),
m_input_texture->HasMipMaps());
m_output_texture = new TextureCube(m_output_format, m_input_texture->GetWidth(), m_input_texture->GetHeight(), m_input_texture->HasMipMaps());
break;
case TextureType::T_3D:
m_output_texture = new Texture3D(m_output_format, m_input_texture->GetWidth(), m_input_texture->GetHeight(),
m_input_texture->GetDepth(), m_input_texture->HasMipMaps());
m_output_texture = new Texture3D(
m_output_format, m_input_texture->GetWidth(), m_input_texture->GetHeight(), m_input_texture->GetDepth(), m_input_texture->HasMipMaps());
break;
default:
assert(false);
@ -166,8 +161,7 @@ void TextureConverter::ReorderUnsignedToUnsigned() const
const auto outputBytePerPixel = outputFormat->m_bits_per_pixel / 8;
auto outputOffset = 0u;
for (auto inputOffset = 0u; inputOffset < mipLevelSize; inputOffset += inputBytePerPixel, outputOffset +=
outputBytePerPixel)
for (auto inputOffset = 0u; inputOffset < mipLevelSize; inputOffset += inputBytePerPixel, outputOffset += outputBytePerPixel)
{
uint64_t outPixel = 0;
const auto inPixel = m_read_pixel_func(&inputBuffer[inputOffset], inputFormat->m_bits_per_pixel);
@ -196,9 +190,7 @@ void TextureConverter::ConvertUnsignedToUnsigned()
SetPixelFunctions(inputFormat->m_bits_per_pixel, outputFormat->m_bits_per_pixel);
if (inputFormat->m_r_size == outputFormat->m_r_size
&& inputFormat->m_g_size == outputFormat->m_g_size
&& inputFormat->m_b_size == outputFormat->m_b_size
if (inputFormat->m_r_size == outputFormat->m_r_size && inputFormat->m_g_size == outputFormat->m_g_size && inputFormat->m_b_size == outputFormat->m_b_size
&& inputFormat->m_a_size == outputFormat->m_a_size)
{
ReorderUnsignedToUnsigned();
@ -214,8 +206,7 @@ Texture* TextureConverter::Convert()
{
CreateOutputTexture();
if (m_input_format->GetType() == ImageFormatType::UNSIGNED
&& m_output_format->GetType() == ImageFormatType::UNSIGNED)
if (m_input_format->GetType() == ImageFormatType::UNSIGNED && m_output_format->GetType() == ImageFormatType::UNSIGNED)
{
ConvertUnsignedToUnsigned();
}

View File

@ -1,9 +1,9 @@
#pragma once
#include <functional>
#include "Texture.h"
#include <functional>
class TextureConverter
{
Texture* m_input_texture;
@ -23,8 +23,7 @@ class TextureConverter
void ConvertUnsignedToUnsigned();
public:
TextureConverter(Texture* inputTexture, const ImageFormat* targetFormat);
Texture* Convert();
};
};

View File

@ -37,10 +37,12 @@ namespace state_map
for (auto& resultVar : entry.m_result_vars)
{
const auto correspondingVar = std::find_if(layout.m_var_layout.m_vars.begin(), layout.m_var_layout.m_vars.end(), [&resultVar](const StateMapLayoutVar& var)
{
return var.m_name == resultVar;
});
const auto correspondingVar = std::find_if(layout.m_var_layout.m_vars.begin(),
layout.m_var_layout.m_vars.end(),
[&resultVar](const StateMapLayoutVar& var)
{
return var.m_name == resultVar;
});
// Has to have a corresponding var
assert(correspondingVar != layout.m_var_layout.m_vars.end());
@ -48,7 +50,7 @@ namespace state_map
}
}
#endif
}
} // namespace state_map
StateMapLayoutEntry::StateMapLayoutEntry(std::string name, const size_t stateBitsIndex, const size_t stateBitsMask, std::vector<std::string> resultVars)
: m_name(std::move(name)),

View File

@ -60,4 +60,4 @@ namespace state_map
const StateMapLayoutEntries& m_entry_layout;
const StateMapLayoutVars& m_var_layout;
};
}
} // namespace state_map

View File

@ -10,8 +10,7 @@ float HalfFloat::ToFloat(const half_float_t half)
float f;
} result{};
result.u = ((half << 16) & 0x80000000) | (((((half << 14) & 0xFFFC000)
- (~(half << 14) & 0x10000000)) ^ 0x80000000) >> 1);
result.u = ((half << 16) & 0x80000000) | (((((half << 14) & 0xFFFC000) - (~(half << 14) & 0x10000000)) ^ 0x80000000) >> 1);
return result.f;
}

View File

@ -11,4 +11,4 @@ class HalfFloat
public:
static float ToFloat(half_float_t half);
static half_float_t ToHalf(float f);
};
};

View File

@ -1,10 +1,10 @@
#include "Pack.h"
#include "HalfFloat.h"
#include <algorithm>
#include <cassert>
#include "HalfFloat.h"
union PackUtil32
{
uint32_t u;
@ -16,8 +16,7 @@ union PackUtil32
uint32_t Pack32::Vec2PackTexCoords(const float* in)
{
return static_cast<uint32_t>(HalfFloat::ToHalf(in[0])) << 16
| HalfFloat::ToHalf(in[1]);
return static_cast<uint32_t>(HalfFloat::ToHalf(in[0])) << 16 | HalfFloat::ToHalf(in[1]);
}
uint32_t Pack32::Vec3PackUnitVec(const float* in)
@ -28,10 +27,8 @@ uint32_t Pack32::Vec3PackUnitVec(const float* in)
uint32_t Pack32::Vec4PackGfxColor(const float* in)
{
return static_cast<uint8_t>(std::clamp(in[0], 0.0f, 1.0f) * 255.0f)
| static_cast<uint8_t>(std::clamp(in[1], 0.0f, 1.0f) * 255.0f) << 8
| static_cast<uint8_t>(std::clamp(in[2], 0.0f, 1.0f) * 255.0f) << 16
| static_cast<uint8_t>(std::clamp(in[3], 0.0f, 1.0f) * 255.0f) << 24;
return static_cast<uint8_t>(std::clamp(in[0], 0.0f, 1.0f) * 255.0f) | static_cast<uint8_t>(std::clamp(in[1], 0.0f, 1.0f) * 255.0f) << 8
| static_cast<uint8_t>(std::clamp(in[2], 0.0f, 1.0f) * 255.0f) << 16 | static_cast<uint8_t>(std::clamp(in[3], 0.0f, 1.0f) * 255.0f) << 24;
}
void Pack32::Vec2UnpackTexCoordsUV(const uint32_t in, float* out)
@ -65,9 +62,9 @@ void Pack32::Vec3UnpackUnitVecScaleBased(const uint32_t in, float* out)
void Pack32::Vec3UnpackUnitVecThirdBased(const uint32_t in, float* out)
{
PackUtil32 v0{ (in >> 0) & 0x3FF };
PackUtil32 v1{ (in >> 10) & 0x3FF };
PackUtil32 v2{ (in >> 20) & 0x3FF };
PackUtil32 v0{(in >> 0) & 0x3FF};
PackUtil32 v1{(in >> 10) & 0x3FF};
PackUtil32 v2{(in >> 20) & 0x3FF};
v0.u = v0.u - 2 * (v0.u & 0x200) + 0x40400000;
v1.u = v1.u - 2 * (v1.u & 0x200) + 0x40400000;

View File

@ -15,4 +15,4 @@ public:
static void Vec3UnpackUnitVecScaleBased(uint32_t in, float* out);
static void Vec3UnpackUnitVecThirdBased(uint32_t in, float* out);
static void Vec4UnpackGfxColor(uint32_t in, float* out);
};
};

View File

@ -11,4 +11,4 @@ class QuatInt16
public:
static quat_int_16 ToInt16(float quat);
static float ToFloat(quat_int_16 quat);
};
};

View File

@ -38,4 +38,4 @@
#define gcc_align(x) __attribute__((__aligned__(x)))
#endif
#endif
#endif
#endif

View File

@ -25,4 +25,4 @@ constexpr uint16_t SCR_STRING_MAX = UINT16_MAX;
typedef int block_t;
typedef int asset_type_t;
typedef unsigned int zone_priority_t;
typedef unsigned int zone_priority_t;