Add IVModelRender interface.
Signed-off-by: aixxe <me@aixxe.net>
This commit is contained in:
parent
072ec00930
commit
ca36020474
|
@ -0,0 +1,55 @@
|
|||
#pragma once
|
||||
|
||||
typedef unsigned short ModelInstanceHandle_t;
|
||||
|
||||
class model_t;
|
||||
class studiohdr_t;
|
||||
class studiohwdata_t;
|
||||
class IClientRenderable;
|
||||
class matrix3x4_t;
|
||||
class StudioDecalHandle_t;
|
||||
class IMaterial;
|
||||
|
||||
struct DrawModelState_t {
|
||||
studiohdr_t* m_pStudioHdr;
|
||||
studiohwdata_t* m_pStudioHWData;
|
||||
IClientRenderable* m_pRenderable;
|
||||
const matrix3x4_t* m_pModelToWorld;
|
||||
StudioDecalHandle_t* m_decals;
|
||||
int m_drawFlags;
|
||||
int m_lod;
|
||||
};
|
||||
|
||||
struct ModelRenderInfo_t {
|
||||
Vector origin;
|
||||
QAngle angles;
|
||||
IClientRenderable* pRenderable;
|
||||
const model_t* pModel;
|
||||
const matrix3x4_t* pModelToWorld;
|
||||
const matrix3x4_t* pLightingOffset;
|
||||
const Vector* pLightingOrigin;
|
||||
int flags;
|
||||
int entity_index;
|
||||
int skin;
|
||||
int body;
|
||||
int hitboxset;
|
||||
ModelInstanceHandle_t instance;
|
||||
};
|
||||
|
||||
enum OverrideType_t: int {
|
||||
OVERRIDE_NORMAL = 0,
|
||||
OVERRIDE_BUILD_SHADOWS,
|
||||
OVERRIDE_DEPTH_WRITE,
|
||||
OVERRIDE_SSAO_DEPTH_WRITE,
|
||||
};
|
||||
|
||||
class IVModelRender {
|
||||
public:
|
||||
void ForcedMaterialOverride(IMaterial* material, OverrideType_t override_type = OVERRIDE_NORMAL) {
|
||||
GetVirtualFunction<void(*)(IVModelRender*, IMaterial*, OverrideType_t)>(this, 1)(this, material, override_type);
|
||||
}
|
||||
|
||||
void DrawModelExecute(DrawModelState_t const& state, ModelRenderInfo_t const& info, matrix3x4_t* bone) {
|
||||
GetVirtualFunction<void(*)(IVModelRender*, DrawModelState_t const&, ModelRenderInfo_t const&, matrix3x4_t*)>(this, 19)(this, state, info, bone);
|
||||
}
|
||||
};
|
Loading…
Reference in New Issue