147 lines
2.5 KiB
C
147 lines
2.5 KiB
C
#pragma once
|
|
|
|
#include <d3dx9.h>
|
|
#include "renderjob.h"
|
|
|
|
struct Greeble
|
|
{
|
|
struct SObjectDescription
|
|
{
|
|
int m_iSizeX;
|
|
int m_iSizeY;
|
|
|
|
int m_iBaseMeshType;
|
|
int m_iBaseBank;
|
|
|
|
int m_iOffsetFunc;
|
|
int m_iOffsetBank;
|
|
|
|
int m_iHeightFunc;
|
|
int m_iHeightBank;
|
|
|
|
int m_iMixFunc;
|
|
int m_iMixBank;
|
|
|
|
DWORD m_dwColor;
|
|
};
|
|
|
|
void AddToScene( float fTime, int iObject, int iObjDesc );
|
|
|
|
Renderjob::SVertex PreMesh[ 128 * 128 ];
|
|
float PreFloats[ 128 * 128 * 16 ];
|
|
static const int PreFloatBlock= 128 * 128;
|
|
|
|
int iObjID;
|
|
SObjectDescription* pObj;
|
|
float fTime;
|
|
|
|
float GetFloatParam( int iBank, int iOffset );
|
|
|
|
float* PreFloat( int i )
|
|
{
|
|
return PreFloats + i * PreFloatBlock;
|
|
}
|
|
Renderjob::SVertex FinalMesh[ 128 * 128 * 32 ];
|
|
|
|
void CreateFloatFieldPlasma(
|
|
int ParamBank, float* pFloat,
|
|
float fStepX, int iStepsX,
|
|
float fStepY, int iStepsY,
|
|
float fTime);
|
|
|
|
void CreateTwistedBow(
|
|
int ParamBank, float* pFloat,
|
|
float fStepX, int iStepsX,
|
|
float fStepY, int iStepsY,
|
|
float fTime );
|
|
|
|
void Create3DMeshPlane(
|
|
float* pFloat,
|
|
float fStartX, float fStepX, int iStepsX,
|
|
float fStartY, float fStepY, int iStepsY
|
|
);
|
|
|
|
void Create3DMeshCylinder(
|
|
float* pFloat,
|
|
float fBaseRadiusX, float fBaseRadiusZ, int iStepsX,
|
|
float fStartY, float fStepY, int iStepsY
|
|
);
|
|
|
|
void Create3DMeshSphere(
|
|
float* pFloat,
|
|
float fBaseRadiusX, float fBaseRadiusY, float fBaseRadiusZ,
|
|
int iStepsX, int iStepsY
|
|
);
|
|
|
|
void Create3DMeshTorus(
|
|
float* pFloat,
|
|
float fBaseRadiusX, float fBaseRadiusZ,
|
|
float fInnerRadiusXZ, float fInnerRadiusY,
|
|
int iStepsX, int iStepsY
|
|
);
|
|
|
|
void CreateNormals(
|
|
int iStepsX,
|
|
int iStepsY
|
|
);
|
|
|
|
void CreateNormalsBreakXY(
|
|
int iStepsX,
|
|
int iStepsY
|
|
);
|
|
|
|
void CreateNormalsBreakX(
|
|
int iStepsX,
|
|
int iStepsY
|
|
);
|
|
|
|
void CreateNormalsBreakY(
|
|
int iStepsX,
|
|
int iStepsY
|
|
);
|
|
|
|
void PrepAO(
|
|
int iStepsX,
|
|
int iStepsY,
|
|
float* pFloatHeight,
|
|
float* pFloatCenterMix,
|
|
float* pFloatAOVert,
|
|
float* pFloatAOVHorz,
|
|
float* pFloatAOIntermediate
|
|
);
|
|
|
|
void CreateFinal3DMesh(
|
|
int iStepsX,
|
|
int iStepsY,
|
|
float* pFloatHeight,
|
|
float* pFloatCenterMix,
|
|
float* pFloatAOVert,
|
|
float* pFloatAOVHorz,
|
|
DWORD dwBaseColor
|
|
);
|
|
|
|
void Create2DFunc(
|
|
int FuncType,
|
|
int iParamBank,
|
|
float* pFloat,
|
|
int iSizeX,
|
|
int iSizeY,
|
|
float fTime );
|
|
|
|
void PrepMesh();
|
|
|
|
/*void CreateInterpolationMatrix(
|
|
D3DXMATRIX* pMat,
|
|
int iBank,
|
|
float fTime);
|
|
|
|
void SetTransformation( SObjectDescription* pObj, float fTime );
|
|
|
|
void RenderMesh( SObjectDescription* pObj, float fTime );*/
|
|
|
|
|
|
};
|
|
|
|
extern Greeble g_Greeble;
|
|
|