You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Code/CryEngine/RenderDll/Common/RendElements/CREMeshImpl.h

73 lines
2.3 KiB
C++

/*
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates, or
* a third party where indicated.
*
* For complete copyright and license terms please see the LICENSE at the root of this
* distribution (the "License"). All use of this software is governed by the License,
* or, if provided, by the license below or the license accompanying this file. Do not
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
*/
// Original file Copyright Crytek GMBH or its affiliates, used under license.
#pragma once
class CREMeshImpl
: public CREMesh
{
#if !defined(NULL_RENDERER)
public:
// Constant buffer used for tessellation. It has just one constant which tells the hull shader how it needs to offset iPrimitiveID that comes from HW.
WrappedDX11Buffer m_tessCB;
#endif
public:
virtual struct CRenderChunk* mfGetMatInfo();
virtual TRenderChunkArray* mfGetMatInfoList();
virtual int mfGetMatId();
virtual bool mfPreDraw(SShaderPass* sl);
virtual bool mfIsHWSkinned()
{
return (m_Flags & FCEF_SKINNED) != 0;
}
virtual void mfGetPlane(Plane& pl);
virtual void mfPrepare(bool bCheckOverflow);
virtual void mfReset();
virtual void mfCenter(Vec3& Pos, CRenderObject* pObj);
virtual bool mfDraw(CShader* ef, SShaderPass* sfm);
virtual void* mfGetPointer(ESrcPointer ePT, int* Stride, EParamType Type, ESrcPointer Dst, int Flags);
virtual bool mfUpdate(int Flags, bool bTessellation = false);
virtual void mfGetBBox(Vec3& vMins, Vec3& vMaxs);
virtual void mfPrecache(const SShaderItem& SH);
virtual int Size()
{
int nSize = sizeof(*this);
return nSize;
}
virtual void GetMemoryUsage(ICrySizer* pSizer) const
{
pSizer->AddObject(this, sizeof(*this));
}
bool BindRemappedSkinningData(uint32 guid);
CREMeshImpl()
{
}
virtual ~CREMeshImpl()
{
}
#if !defined(_RELEASE)
inline bool ValidateDraw(EShaderType shaderType);
#endif
virtual bool GetGeometryInfo(SGeometryInfo &geomInfo) override;
virtual AZ::Vertex::Format GetVertexFormat() const override;
//protected:
// CREMeshImpl(CREMeshImpl&);
// CREMeshImpl& operator=(CREMeshImpl&);
};