struct SRenderObjData { union { SLockFreeSingleLinkedListEntry m_LinkedListEntry; void * m_pInstance; }; CRendElementBase * m_pRE; SSkinningData * m_pSkinningData; TArraym_Constants; float m_fTempVars[10]; const DynArray<SShaderParam> * m_pShaderParams; uint16 m_nLightID[RT_COMMAND_BUF_COUNT]; uint32 m_nVisionParams; uint32 m_nHUDSilhouetteParams; uint32 m_pLayerEffectParams; uint64 m_nSubObjHideMask; uint64 m_ShadowCasters; union { SBending* m_pBending; const struct ParticleParams* m_pParticleParams; }; uint16 m_FogVolumeContribIdx[2]; uint16 m_scissorX; uint16 m_scissorY; uint16 m_scissorWidth; uint16 m_scissorHeight; uint16 m_LightVolumeId[2]; uint8 m_screenBounds[4]; uint16 m_nCustomFlags; uint8 m_nCustomData; uint8 m_nObjID; uint8 m_nVisionScale; };
IShader.h
TArraym_Constants;
uint16 m_FogVolumeContribIdx[2];
float m_fTempVars[10];
Different useful vars (ObjVal component in shaders)
uint16 m_LightVolumeId[2];
uint8 m_nCustomData;
uint16 m_nCustomFlags;
uint32 m_nHUDSilhouetteParams;
uint16 m_nLightID[RT_COMMAND_BUF_COUNT];
uint8 m_nObjID;
uint64 m_nSubObjHideMask;
uint32 m_nVisionParams;
uint8 m_nVisionScale;
uint32 m_pLayerEffectParams;
only used for layer effects
CRendElementBase * m_pRE;
const DynArray<SShaderParam> * m_pShaderParams;
using a pointer, the client code has to ensure that the data stays valid
SSkinningData * m_pSkinningData;
uint16 m_scissorHeight;
uint16 m_scissorWidth;
uint16 m_scissorX;
uint16 m_scissorY;
uint8 m_screenBounds[4];
uint64 m_ShadowCasters;
Mask of shadow casters.
void GetMemoryUsage(ICrySizer * pSizer) const;
void Init();
void SetShaderParams(const DynArray<SShaderParam> * pShaderParams);
SRenderObjData();