Files
bluflame/evoke-64k/trunk/ev10/Greeble.h
2026-04-18 22:31:51 +02:00

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;