Sei sulla pagina 1di 19

////////////////////////////////////////////////////////////////////////////

// //
// GENERATED FILE!! DO NOT MODIFY!! //
// //
// (changes should be made to effectStructsCustomTypes.txt instead) //
// //
////////////////////////////////////////////////////////////////////////////

// Alignment structures.
// Use these in front of variables within a structure that needs to be aligned.
Align4,4
{
}
Align8,8
{
}
Align16,16
{
}
Align32,32
{
}
Align64,64
{
}
Align128,128
{
}

DoubleLinkedListPtrNode
{
i32 mPrior; /* These are really pointers, but should NEVER be output in
pipeline */
i32 mNext; /* These are really pointers, but should NEVER be output in
pipeline */
}
ManagedPointer
{
DoubleLinkedListPtrNode mInheritedData; /* This is really inherited and not a
member */
ptr mData;
i16 mOffsetToAuxData;
i16 mCallbackStructIndex;
}
ExternalVariable
{
String mType;
String mName;
AssetName mAssetName;
i32 mData; /* THIS IS A HORRIBLE CHEAT!, These pointers should be into
data that is added */
i32 mVariable; /* THIS IS A HORRIBLE CHEAT!, These pointers should be into
data that is added */
}
ExternalVariableArray
{
i32 mLength;
ExternalVariable mData[mLength];
}
DataObject
{
String mType;
ptr mUserData;
i32 mNumExternalVariables;
i32 mGetExternalVariableHandler;
}
// Create the struct definitions for the geometries and indices
// Add the struct definitions
ByteArray
{
i32 mLength;
i8 mData[mLength];
}
IntArray
{
i32 mLength;
i32 mData[mLength];
}
PointerArray
{
i32 mLength;
ptr mData[mLength];
}
Vector3
{
f32 x;
f32 y;
f32 z;
}
Vector3Array
{
i32 mLength;
Vector3 mData[mLength];
}
Vector2
{
f32 x;
f32 y;
}
Vector2Array
{
i32 mLength;
Vector2 mData[mLength];
}
StringArray
{
i32 mLength;
String mData[mLength];
}
PacketStreamHeader
{
i32 mLength;
void *mpData;
i16 *mpBackMapping;
void *mpVertexHeader;
}
StreamHeader
{
String mName;
StreamHeader *mpNext;
i32 mSourceStride; // Stride, in bytes, for
the raw uncompiled data.
i32 mCompiledStride; // Stride, in bytes, for the
compiled data.
i32 mCompiledSize; // Size of a compiled
element in the stream in bytes. Normally the same as mCompiledStride unless the
destination stream is interleaved.
i32 mCompressFunction;
i32 mDecompressFunction;
i32 mSourceLength; // Number of elements in
the source stream.
i32 mNumPackets;
PacketStreamHeader mPacketData[mNumPackets];
}
StreamHeaderArray
{
i32 mNumStreamHeaders;
StreamHeader mData[mNumStreamHeaders];
}
MorphTargetInfo
{
f32 mScale;
f32 mOffset;
i32 mMorphTargetNum;
}
MorphData
{
i32 mNum4Byte;
i32 mNum2Byte;
i32 mNum1Byte;
i32 m4Bytes[mNum4Byte]; // could be floats or ints --
this is just for endian-conversion
i16 m2Bytes[mNum2Byte];
i8 m1Bytes[mNum1Byte];
}
MorphStreamHeader
{
AssetName mName;
i8 mStreamDescription[7];
i8 mFixedPointType;
i32 mLength;
void *mpData;
i8 *mpRunLengthData;
i32 mNumMorphTargets;
MorphTargetInfo mMorphTargetList[mNumMorphTargets];
}
MorphTargetNameArray
{
i32 mNumMorphTargets;
AssetName mTargetNames[mNumMorphTargets];
}
Morph
{
AssetName mName;
i32 mMorphTypeFlag;

i8 mMonth; // This data is a union


with mpToEboFileAllocation.
i8 mDay; // Since
mpToEboFileAllocation is never written out
i8 mHour; // by the pipeline, and
this data IS written out by
i8 mMinutes; // the pipeline, this works
better for endian conversion.

MorphTargetNameArray *mMorphTargets;
i32 mNumStreams;
MorphStreamHeader *mpMorphStreamHeaders[mNumStreams];
}
WeightBoneQuad
{
f32 weight0;
f32 weight1;
f32 weight2;
f32 weight3;
i32 boneIndex0;
i32 boneIndex1;
i32 boneIndex2;
i32 boneIndex3;
}
WeightBoneQuadArray
{
i32 mLength;
WeightBoneQuad mData[mLength];
}
GeoPrim
{
i32 mNumVerts;
i32 mIndicesMask;
ptr mpMatrix;
ptr mpCamera;
ptr mpPoseMatrices;
ptr mpTexture;
ptr mCoordinateStream;
ptr mUVStream;
ptr mColourStream;
ptr mWeightStream;
ptr mCoordinateIndices;
ptr mUVIndices;
ptr mColourIndices;
ptr mWeightIndices;
}
GeoPrimArray
{
i32 mLength;
GeoPrim mData[mLength];
}
OldGeometry
{
DataObject mDataObject; // Inherited data object
AssetName mName;
ptr mpExternalVariableArray;
i32 mNumStreams;
ptr mStreamHeaderArray;
i32 mNumGeoPrims;
ptr mGeoPrimArray;
i32 mGeometryTypeFlags;
ManagedPointer mManagedPointerToBaseGeometry;
i32 mpToEboFileAllocation; /* Only non null in runtime compiled version from
GetResult */
}

Material
{
ptr mRenderMethod;
ptr mExternalVariables;
ptr mVars;
ptr mPerMaterialVars;
Vector3 mCompressScale; /* TODO: remove*/
Vector3 mCompressOffset; /* TODO: remove*/
i32 mNumStreams;
StreamHeader *mStreamHeaderArray;
}

BoundingInfo
{
Vector3 min;
Vector3 max;
Vector3 center;
f32 radius;
}

GeometryFlags
{
i8 mType; // see GeometryTypeFlags
i8 mIsDirty; // 1 if SetStream or ApplyMorph was called
i8 mPad1; // pad to 32bit
i8 mPad2; // pad to 32bit
}

Geometry
{
DataObject mDataObject;
AssetName mName;
i32 mNumMaterials;
Material *mMaterials;
i32 mNumExternalVariables;
ExternalVariable *mExternalVariables;
ManagedPointer mManagedPointerToBaseGeometry;
GeometryFlags mFlags;

i8 mMonth; // This data is a union with


mpToEboFileAllocation.
i8 mDay; // Since mpToEboFileAllocation is
never written out
i8 mHour; // by the pipeline, and this
data IS written out by
i8 mMinutes; // the pipeline, this works better
for endian conversion.

BoundingInfo *mBoundingInfo;
i32 mModelMatrixExtVarIndex;
StringArray *mExportedStreamList;
}
FlipBookGeometry
{
Geometry **mGeometryArray;
i32 mNumGeometries;
ExternalVariable mIndex;
i32 mIsPipelineConstructed;
}

MultiBufferGeometry
{
Geometry **mGeometryArray;
i32 *mFrameNumberArray;
i32 mNumGeometries;
i32 mDrawIndex;
i32 mEditIndex;
i32 mIsPipelineConstructed;
}

//////////////////////////////////
// User defined type definitions

// PRIVATE TYPES
// CMN Private Type
CmnTypeImage
{
String mName;
i32 mByteSize;
String mCType;
String mEa3Type;
String mEboStruct;
}

// GC Private Type
GcTypeImage
{
i32 mComponentType;
i32 mComponentCount;
i8 mFixedPointLocation;
}
// PC Private Type
PcTypeImage
{
i32 mRegLines;
i32 mVertexDesc;
i32 mFVFDesc;
i32 mShaderVarConstType;
}
// PS2 Private Type
Ps2TypeImage
{
i32 mVuLines;
i32 mVcUnpack;
i32 mNumVifCodes;
i32 *mVifCodeSnippet;
}
// XBOX Private Type
XboxTypeImage
{
i32 mRegLines;
i32 mVertexDesc;
}

// PUBLIC TYPES

// CMN
BaseRMSType
{
CmnTypeImage mCmnTypeImage;
}
// PS2
PS2RMSType
{
BaseRMSType mCmnTypeImage;
Ps2TypeImage mPs2TypeImage;
}
// XBOX
XBOXRMSType
{
BaseRMSType mCmnTypeImage;
XboxTypeImage mXboxTypeImage;
}
// PC
PCRMSType
{
BaseRMSType mCmnTypeImage;
PcTypeImage mPcTypeImage;
}
//GC
GCRMSType
{
BaseRMSType mCmnTypeImage;
GcTypeImage mGcTypeImage;
}

// End user defined type defintions


//////////////////////////////////

//////////////////////////////////
// RenderMethod Struct definitions
ArraySpec
{
i32 mCount;
String mVarName;
}
DefaultInput
{
// TODO: Fill the runtime structure with something;
i32 foo;
}
VarName
{
i32 mType;
String mName;
AssetName mAssetName;
}

Assignment
{
i32 mIsConstantList;
i32 mNumExpressions;
Expression *mExpressions;
}

RenderMethodInputVariable
{
i32 mFlag;
BaseRMSType *mType;
String mTypeName;
VarName mName;
ArraySpec mCount;
String mBoundStream;
}
PlatformVariableModifierParameters
{
i32 mNumIdentifiers;
String *mIdentifiers;
}

BaseRenderMethodPlatformVariable
{
i32 mPlatformVariableType;
PlatformVariableModifierParameters mModifierParameters;
BaseRMSType *mType;
String mTypeName;
String mName;
i32 mArraySize;
String mActualArraySizeVariableName;
i32 mPacketArraySize;
i32 mPlatformVariableFlag;
i32 mIsFilledByVertexFormat;
i32 mAddress;
i32 mNumRegLines;
}

Function
{
String mName;
i32 mNumParameters;
Expression *mParameters;
String mTempVariableName;
}

Expression
{
i32 mType;
i32 mBool;
String mString;
Expression *mpLeft;
Expression *mpRight;
VarName mVarName;
Function mFunction;
i32 mInt;
f32 mFloat;
}

Statement
{
String mRefDerefMarkers;
VarName mLhsAssignment;
Expression mExpression;
i32 mNumPrereqExternVariables;
i32 *mPrereqExternVariableIndices;
i32 mNumPrereqPerMaterialVariables;
i32 *mPrereqPerMaterialVariableIndices;
i32 mNumPrereqConstants;
i32 mStateIsAnOutput;
}

GcBindSpec
{
i32 mBindType;
i32 mVertexComponent;
VarName mStreamVar;
VarName mIndexVar;
VarName mDataVar;
VarName mPrimVar;
}

GcTexCoordMatrix
{
i32 mIsVarName;
VarName mVarName;
}

GcTexGen
{
i32 mTexCoordOutputNum;

VarName mInputStream;

i32 mToNormalize;

i32 mHasTexCoordMatrix;
GcTexCoordMatrix mTexCoordMatrix;
i32 mTexCoordMatrixDimension;

i32 mHasPostTransformMatrix;
VarName mPostTransformMatrix;
}

VertexShader
{
i32 mNumParameters;
Expression *mParameters;

i32 mNumComputations;
Function *mComputations;

i32 mNumGcBindSpecs;
GcBindSpec *mGcBindSpecs;

i32 mNumGcTexGens;
GcTexGen *mGcTexGens;

i32 mIsGcSpecific;
}

GcTevEquation
{
String mOutRegEnumStr;
i32 mIsClamped;
i32 mTevOp;
f32 mBias;
f32 mScale;

// Colour/Alpha inputs
String mA;
String mB;
String mC;
String mD;
}

GcTevTexMapCoordColourStreamConstColour
{
i32 mHasInputTextureMapId;
i32 mInputTextureMapId;

i32 mHasTexCoordInputNum;
i32 mTexCoordInputNum;

i32 mHasColourStreamVar;
VarName mColourStreamVar;

i32 mHasConstColourVar;
VarName mConstColourVar;
}

GcTevStage
{
i32 mStageNumber;
GcTevTexMapCoordColourStreamConstColour
mGcTevTexMapCoordColourStreamConstColour;
GcTevEquation mColourEquation;
GcTevEquation mAlphaEquation;
}

GcTevRegColour
{
i32 mRegNumber;
VarName mRegVar;
}

PixelShader
{
i32 mNumComputations;
Function *mComputations;

i32 mNumGcTevStages;
GcTevStage *mGcTevStages;

i32 mNumGcTevRegColours;
GcTevRegColour *mGcTevRegColours;

i32 mIsGcSpecific;
}

Shader
{
Expression mRootNode;
i32 mNumShaderBodies;
ShaderBody *mShaderBodies;
}

ShaderBody
{
i32 mHasVertexShader;
VertexShader mVertexShader;

i32 mHasPixelShader;
PixelShader mPixelShader;

Function mComputation;
}

CompilerFlag
{
String mFlagName;
i32 mNumParameters;
Expression *mParameters;
}

RenderMethodPlatformData
{
i32 mPlatformId;
i32 mNumIncludes;
String *mIncludes;
i32 mNumCompilerFlags;
CompilerFlag *mCompilerFlags;
i32 mNumPlatformVariables;
BaseRenderMethodPlatformVariable *mPlatformVariables;
String mVertexFormatName;
i32 mNumStatements;
Statement *mStatements;
i32 mNumShaders;
Shader *mShaders;
}

GcVertexBind
{
i32 mVertexComponent;

i32 mStreamVarIndex;
i32 mIndicesVarIndex;
}

GcShaderSection
{
i32 mPrimTypeVarIndex;

i32 mNumVertexBinds;
GcVertexBind *mVertexBinds;
}
PlatformShaders
{
i32 mNumShaderSections;
i32 mOutputPlatform;
ptr mPlatformShaderSection;
}

RenderMethod
{
i32 mPlatform;
String mName;
i32 mNumInputVariables;
RenderMethodInputVariable *mInputVariables;
String mVertexFormatName;
i32 mNumOutputVariables;
BaseRenderMethodPlatformVariable *mOutputVariables;
PlatformShaders *mPlatformExtensionModule;
}

PrivateRenderMethod
{
String mName;
i32 mNumInputVariables;
RenderMethodInputVariable *mInputVariables;
i32 mNumPlatformDataSections;
RenderMethodPlatformData *mPlatformData;
}
//END RenderMethod Struct definitions
//////////////////////////////////

//////////////////////////////////
// XBOX VertexBuffer definitions

XBOXD3DVertexBufferMemImage
{
i32 mCommon;
i32 *mData;
i32 mLock;
}

XBOXVertexBuffer
{
XBOXD3DVertexBufferMemImage mBaseTypeInfo;
i32 mByteSize;
i32 mStride;
i32 mRegistered;
i32 *mData;
}

// End XBOXVertexBuffer definitions


//////////////////////////////////

/////////////////////////////////////
// PC VertexBuffer definition

PCVertexBuffer
{
i32 mSizeInBytes;
i32 mStride;
i32 *mpData;
i32 *mpVertexBuffer;
i32 mFVF;
i32 mUsage;
i32 mDirty;
}

PCIndexBuffer
{
i32 mSizeInBytes;
i32 mStride;
i32 *mpData;
i32 *mpIndexBuffer;
i32 mUsage;
i32 mVertexShaderID;
}

PCDataBuffers
{
PCIndexBuffer *mpIndexBufferMemImage;
i32 mBufferOffset;
i32 mNumElem;
i32 mNumVertexBuffers;
void *mpBatch;
PCVertexBuffer *mpVertexBufferMemImages[mNumVertexBuffers];
}

// PC VertexBuffer definitions
//////////////////////////////////

/////////////////////////////////////
// GC vertex stream definition

GCVertexStream
{
i32 mSizeInBytes;
i32 mStride;
i32 *mpData;
}

GcIndexData
{
i32 mAttrType;
}

// The display list in here needs to be 32-byte aligned. There must be a better
way
GcDisplayList,32
{
i32 mDisplayListLength;
i8 pad[28];
i8 mDisplaylist[mDisplayListLength];
}

GcCommandBuffer
{
GcDisplayList **mDisplayLists;
}

//
//////////////////////////////////

/////////////////////////////////////
// Types used by rms type definitions
// If you need more types for rms types then they have to be added here

PrimitiveType
{
i32 prim;
}

Float2
{
f32 x;
f32 y;
}

Float3
{
f32 x;
f32 y;
f32 z;
}

Float33
{
f32 x0;
f32 y0;
f32 z0;
f32 x1;
f32 y1;
f32 z1;
f32 x2;
f32 y2;
f32 z2;
}

Float32
{
f32 x0;
f32 y0;
f32 z0;
f32 x1;
f32 y1;
f32 z1;
}

Float4, 16
{
f32 x;
f32 y;
f32 z;
f32 w;
}
Float4d16, 16
{
i16 x;
i16 y;
i16 z;
i16 w;
}

Short33, 2
{
i16 x0;
i16 y0;
i16 z0;
i16 x1;
i16 y1;
i16 z1;
i16 x2;
i16 y2;
i16 z2;
}

Short32, 2
{
i16 x0;
i16 y0;
i16 z0;
i16 x1;
i16 y1;
i16 z1;
}

Short3, 2
{
i16 x;
i16 y;
i16 z;
}

Short2, 2
{
i16 x;
i16 y;
}

Char3, 1
{
i8 x;
i8 y;
i8 z;
}

Char33, 1
{
i8 x0;
i8 y0;
i8 z0;
i8 x1;
i8 y1;
i8 z1;
i8 x2;
i8 y2;
i8 z2;
}

Char32, 1
{
i8 x0;
i8 y0;
i8 z0;
i8 x1;
i8 y1;
i8 z1;
}

Char2, 1
{
i8 x;
i8 y;
}

R6G6B6A6, 1
{
i8 colourByte1;
i8 colourByte2;
i8 colourByte3;
}

R4G4B4A4, 2
{
i16 colour;
}

R5G6B5, 2
{
i16 colour;
}

Matrix4, 16
{
Float4 _1;
Float4 _2;
Float4 _3;
Float4 _4;
}

Int4, 16
{
i32 x;
i32 y;
i32 z;
i32 w;
}

Colour
{
i32 colour;
}
PS2DrawBufferBlock
{
ptr vifBuffer;
i32 vifCnt;
}

LightBlock, 16
{
Float4 mDiffuseDir0;
Float4 mDiffuseDir1;
Float4 mDiffuseDir2;
Float4 mDiffuseColour0;
Float4 mDiffuseColour1;
Float4 mDiffuseColour2;
Float4 mAmbientColour;
}

IrradLightBlock, 16
{
Float4 Coeff[10];
}

PrimTag, 16
{
i32 someData[8];
}

//--------------------------------
// Following Are PS2 VIF Types For
// Use By The GeometryCompiler
Float_VIF
{
f32 mf32;
}

Float2_VIF
{
f32 x;
f32 y;
}

Float2d16_VIF
{
i16 x;
i16 y;
}

Float3_VIF
{
f32 x;
f32 y;
f32 z;
}

Float4_VIF
{
f32 x;
f32 y;
f32 z;
f32 w;
}

Float4d16_VIF
{
i16 x;
i16 y;
i16 z;
i16 w;
}

Matrix4_VIF
{
Float4_VIF _1;
Float4_VIF _2;
Float4_VIF _3;
Float4_VIF _4;
}

I16_VIF
{
i16 mi16;
}

I32_VIF
{
i32 mi32;
}

Int4_VIF
{
i32 _1;
i32 _2;
i32 _3;
i32 _4;
}

Colour_VIF
{
i32 colour;
}

PrimTag_VIF
{
i32 someData[8];
}

PS2DMATag, 16
{
i16 tag;
i16 qwc;
ptr addr;
i32 tte1;
i32 tte2;
}

// End RMS user type definitions


/////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Define custom types.
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
CrowdStructure, 16
{
Matrix4 modelMatrix;
Float4 colour;
Float4 uvOffset;
}

NHLCrowdStructure, 16
{
Float4 translateAndIndex;
Float4 uvOffsetColourFactor;
}

Float3d16_VIF, 2
{
i16 x;
i16 y;
i16 z;
}

Potrebbero piacerti anche