#pragma once #include #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;