-
Notifications
You must be signed in to change notification settings - Fork 2
Render Primitive
Pavle edited this page Mar 10, 2022
·
2 revisions
struct SPrimHeader
{
enum EPrimType
{
PTOBJECTHEADER = 1,
PTMESH = 2,
PTDECAL = 3,
PTSPRITES = 4,
PTSHAPE = 5,
PTUNUSED = 6
};
unsigned char lDrawDestination;
unsigned char lPackType;
unsigned short lType;
};
struct SPrims : SPrimHeader
{
};
struct SPrimObjectHeader : SPrims
{
enum PROPERTY_FLAGS
{
HAS_BONES = 1,
HAS_FRAMES = 2,
IS_LINKED_OBJECT = 4,
IS_WEIGHTED_OBJECT = 8,
USE_BOUNDS = 256,
HAS_HIRES_POSITIONS = 512
};
unsigned int lPropertyFlags;
unsigned int lBoneRigResourceIndex;
unsigned int lNumObjects;
unsigned int lObjectTable;
float vMin[3];
float vMax[3];
};
struct SPrimObject : SPrims
{
enum SUBTYPE
{
SUBTYPE_STANDARD = 0,
SUBTYPE_LINKED = 1,
SUBTYPE_WEIGHTED = 2,
SUBTYPE_STANDARDUV2 = 3,
SUBTYPE_STANDARDUV3 = 4,
SUBTYPE_STANDARDUV4 = 5
};
enum PROPERTY_FLAGS
{
PROPERTY_XAXISLOCKED = 1,
PROPERTY_YAXISLOCKED = 2,
PROPERTY_ZAXISLOCKED = 4,
PROPERTY_HIRES_POSITIONS = 8,
PROPERTY_PS3_EDGE = 16,
PROPERTY_COLOR1 = 32,
PROPERTY_ISNOPHYSICSPROP = 64
};
unsigned char lSubType;
unsigned char lProperties;
unsigned char lLODMask;
unsigned char lVariantId;
unsigned char nZBias;
unsigned char nZOffset;
unsigned short lMaterialId;
unsigned int lWireColor;
unsigned int lColor1;
float vMin[3];
float vMax[3];
};
struct SPrimMeshWeighted : SPrimMesh
{
unsigned int lNumCopyBones;
unsigned int lCopyBones;
unsigned int lBoneIndices;
unsigned int lBoneInfo;
};
struct SPrimMesh : SPrimObject
{
unsigned int lSubMeshTable;
unsigned int lNumFrames;
unsigned short lFrameStart;
unsigned short lFrameStep;
float vPosScale[4];
float vPosBias[4];
float vTexScaleBias[4];
};
struct SPrimSubMesh : SPrimObject
{
unsigned int lNumVertices;
unsigned int lVertices;
unsigned int lNumIndices;
unsigned int lIndices;
unsigned int lCollision;
unsigned short lColorStreamSize;
unsigned char lNumUVChannels;
unsigned char lDummy1;
};