summaryrefslogtreecommitdiff
path: root/gmod/IMaterialSystem.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'gmod/IMaterialSystem.hpp')
-rw-r--r--gmod/IMaterialSystem.hpp163
1 files changed, 0 insertions, 163 deletions
diff --git a/gmod/IMaterialSystem.hpp b/gmod/IMaterialSystem.hpp
deleted file mode 100644
index c9b9490..0000000
--- a/gmod/IMaterialSystem.hpp
+++ /dev/null
@@ -1,163 +0,0 @@
-#pragma once
-#include "util.hpp"
-#include "ISurface.hpp"
-
-using MaterialHandle_t = unsigned short;
-
-enum MaterialVarFlags_t {
- MATERIAL_VAR_DEBUG = 1 << 0,
- MATERIAL_VAR_NO_DEBUG_OVERRIDE = 1 << 1,
- MATERIAL_VAR_NO_DRAW = 1 << 2,
- MATERIAL_VAR_USE_IN_FILLRATE_MODE = 1 << 3,
-
- MATERIAL_VAR_VERTEXCOLOR = 1 << 4,
- MATERIAL_VAR_VERTEXALPHA = 1 << 5,
- MATERIAL_VAR_SELFILLUM = 1 << 6,
- MATERIAL_VAR_ADDITIVE = 1 << 7,
- MATERIAL_VAR_ALPHATEST = 1 << 8,
- MATERIAL_VAR_MULTIPASS = 1 << 9,
- MATERIAL_VAR_ZNEARER = 1 << 10,
- MATERIAL_VAR_MODEL = 1 << 11,
- MATERIAL_VAR_FLAT = 1 << 12,
- MATERIAL_VAR_NOCULL = 1 << 13,
- MATERIAL_VAR_NOFOG = 1 << 14,
- MATERIAL_VAR_IGNOREZ = 1 << 15,
- MATERIAL_VAR_DECAL = 1 << 16,
- MATERIAL_VAR_ENVMAPSPHERE = 1 << 17,
- MATERIAL_VAR_NOALPHAMOD = 1 << 18,
- MATERIAL_VAR_ENVMAPCAMERASPACE = 1 << 19,
- MATERIAL_VAR_BASEALPHAENVMAPMASK = 1 << 20,
- MATERIAL_VAR_TRANSLUCENT = 1 << 21,
- MATERIAL_VAR_NORMALMAPALPHAENVMAPMASK = 1 << 22,
- MATERIAL_VAR_NEEDS_SOFTWARE_SKINNING = 1 << 23,
- MATERIAL_VAR_OPAQUETEXTURE = 1 << 24,
- MATERIAL_VAR_ENVMAPMODE = 1 << 25,
- MATERIAL_VAR_SUPPRESS_DECALS = 1 << 26,
- MATERIAL_VAR_HALFLAMBERT = 1 << 27,
- MATERIAL_VAR_WIREFRAME = 1 << 28,
-};
-
-class ITexture {
-public:
- int GetActualWidth( ) {
- return util::get_vfunc< 3, int >( this );
- }
-
- int GetActualHeight( ) {
- return util::get_vfunc< 4, int >( this );
- }
-};
-
-class IMaterial {
-public:
- auto GetName( ) {
- return util::get_vfunc< 0, const char* >( this );
- }
-
- auto GetTextureGroupName( ) {
- return util::get_vfunc< 1, const char* >( this );
- }
-
- void IncrementReferenceCount( ) {
- return util::get_vfunc< 14, void >( this );
- }
-
- void AlphaModulate( float alpha ) {
- return util::get_vfunc< 27, void >( this, alpha );
- }
-
- void ColorModulate( float r, float g, float b ) {
- return util::get_vfunc< 28, void >( this, r, g, b );
- }
-
- void SetMaterialVarFlag( MaterialVarFlags_t flag, bool on ) {
- return util::get_vfunc< 29, void >( this, flag, on );
- }
-
- bool GetMaterialVarFlag( MaterialVarFlags_t flag ) {
- return util::get_vfunc< 30, bool >( this, flag );
- }
-
- auto GetAlphaModulation( ) {
- return util::get_vfunc< 44, float >( this );
- }
-
- void GetColorModulate( float* r, float* g, float* b ) {
- return util::get_vfunc< 45, void >( this, r, g, b );
- }
-
- void Refresh( ) {
- return util::get_vfunc< 37, void >( this );
- }
-};
-
-class IMaterialSystem
-{
-public:
- enum RenderTargetSizeMode_t {
- RT_SIZE_NO_CHANGE = 0, // Only allowed for render targets that don't want a depth buffer
- // (because if they have a depth buffer, the render target must be less than or equal to the size of the framebuffer).
- RT_SIZE_DEFAULT = 1, // Don't play with the specified width and height other than making sure it fits in the framebuffer.
- RT_SIZE_PICMIP = 2, // Apply picmip to the render target's width and height.
- RT_SIZE_HDR = 3, // frame_buffer_width / 4
- RT_SIZE_FULL_FRAME_BUFFER = 4, // Same size as frame buffer, or next lower power of 2 if we can't do that.
- RT_SIZE_OFFSCREEN = 5, // Target of specified size, don't mess with dimensions
- RT_SIZE_FULL_FRAME_BUFFER_ROUNDED_UP = 6 // Same size as the frame buffer, rounded up if necessary for systems that can't do non-power of two textures.
- };
-
- enum MaterialRenderTargetDepth_t {
- MATERIAL_RT_DEPTH_SHARED = 0x0,
- MATERIAL_RT_DEPTH_SEPARATE = 0x1,
- MATERIAL_RT_DEPTH_NONE = 0x2,
- MATERIAL_RT_DEPTH_ONLY = 0x3,
- };
-
- ImageFormat GetBackBufferFormat( ) {
- return util::get_vfunc< 36, ImageFormat >( this );
- }
-
- IMaterial* CreateMaterial( const char* pMaterialName, void* pVMTKeyValues ) {
- return util::get_vfunc< 83, IMaterial* >( this, pMaterialName, pVMTKeyValues );
- }
-
- IMaterial* FindMaterial( const char* pMaterialName, const char* pTextureGroupName = "Model textures", bool complain = true, const char* pComplainPrefix = nullptr ) {
- return util::get_vfunc< 84, IMaterial* >( this, pMaterialName, pTextureGroupName, complain, pComplainPrefix );
- }
-
- MaterialHandle_t FirstMaterial( ) {
- return util::get_vfunc< 86, MaterialHandle_t >( this );
- }
-
- MaterialHandle_t NextMaterial( MaterialHandle_t h ) {
- return util::get_vfunc< 87, MaterialHandle_t >( this, h );
- }
-
- MaterialHandle_t InvalidMaterial( ) {
- return util::get_vfunc< 88, MaterialHandle_t >( this );
- }
-
- IMaterial* GetMaterial( MaterialHandle_t h ) {
- return util::get_vfunc< 89, IMaterial* >( this, h );
- }
-
- void BeginRenderTargetAllocation( ) {
- return util::get_vfunc< 94, void >( this );
- }
-
- void EndRenderTargetAllocation( ) {
- return util::get_vfunc< 95, void >( this );
- }
-
- ITexture* CreateNamedRenderTargetTextureEx( const char* name, int w, int h, RenderTargetSizeMode_t sizeMode,
- ImageFormat format, MaterialRenderTargetDepth_t depth )
- {
- const int textureFlags = 0x4 | 0x8; //TEXTUREFLAGS_CLAMPS, TEXTUREFLAGS_CLAMPT
- const int renderTargetFlags = 0x1; //CREATERENDERTARGETFLAGS_HDR
- return util::get_vfunc< 97, ITexture* >( this, name, w, h, sizeMode, format, depth, textureFlags, renderTargetFlags );
- }
-
- /*void* GetRenderContext( ) {
- typedef IMatRenderContext*( __thiscall* GetRenderContextFn )( void* );
- return CallVFunction<GetRenderContextFn>( this, 115 )( this );
- }*/
-}; \ No newline at end of file