This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
nekohook/modules/csgo/sdk/IVModelRender.h
2020-08-04 13:13:01 -04:00

73 lines
2.3 KiB
C++

#pragma once
typedef unsigned short ModelInstanceHandle_t;
struct model_t {
char name[255];
};
struct ModelRenderInfo_t {
Vector origin;
QAngle angles;
void* 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;
ModelRenderInfo_t() {
pModelToWorld = NULL;
pLightingOffset = NULL;
pLightingOrigin = NULL;
}
};
enum DrawModelFlags_t {
STUDIO_NONE = 0x00000000,
STUDIO_RENDER = 0x00000001,
STUDIO_VIEWXFORMATTACHMENTS = 0x00000002,
STUDIO_DRAWTRANSLUCENTSUBMODELS = 0x00000004,
STUDIO_TWOPASS = 0x00000008,
STUDIO_STATIC_LIGHTING = 0x00000010,
STUDIO_WIREFRAME = 0x00000020,
STUDIO_ITEM_BLINK = 0x00000040,
STUDIO_NOSHADOWS = 0x00000080,
STUDIO_WIREFRAME_VCOLLIDE = 0x00000100,
STUDIO_NOLIGHTING_OR_CUBEMAP = 0x00000200,
STUDIO_SKIP_FLEXES = 0x00000400,
STUDIO_DONOTMODIFYSTENCILSTATE = 0x00000800,
// Not a studio flag, but used to flag model as a non-sorting brush model
STUDIO_TRANSPARENCY = 0x80000000,
// Not a studio flag, but used to flag model as using shadow depth material
// override
STUDIO_SHADOWDEPTHTEXTURE = 0x40000000,
// Not a studio flag, but used to flag model as doing custom rendering into
// shadow texture
STUDIO_SHADOWTEXTURE = 0x20000000,
STUDIO_SKIP_DECALS = 0x10000000,
};
class IVModelRender {
public:
void ForcedMaterialOverride(IMaterial* mat) {
typedef void (*oForcedMaterialOverride)(void*, IMaterial*, int, int);
return getvfunc<oForcedMaterialOverride>(this, 1)(this, mat, 0, 0);
}
void DrawModelExecute(void* ctx, void* state,
const ModelRenderInfo_t& pInfo,
matrix3x4_t* pCustomBoneToWorld = NULL) {
typedef void (*oDrawModelExecute)(void*, void* ctx, void* state,
const ModelRenderInfo_t& pInfo,
matrix3x4_t* pCustomBoneToWorld);
return getvfunc<oDrawModelExecute>(this, 21)(this, ctx, state, pInfo,
pCustomBoneToWorld);
}
};