Shader linking i guess

This commit is contained in:
2026-04-12 14:52:33 +03:00
parent 79ceac1005
commit 457b455042
38 changed files with 12534 additions and 114 deletions

View File

@@ -40,6 +40,8 @@ struct CastResult_t
float m_fTime;
// 0 to lenght
float m_fDistance;
Vector m_vNormal;
};
enum EPhysicsBodyType
@@ -65,6 +67,8 @@ public:
virtual void SetGravityScale( float fScale ) = 0;
};
typedef bool (*fnCheckCast)( HCollider hCollider );
abstract_class IPhysicsWorld
{
public:
@@ -75,8 +79,8 @@ public:
virtual void SetGravity( float fGravity ) = 0;
virtual CastResult_t RayCast( Vector vBegin, Vector vEnd ) = 0;
virtual CastResult_t ShapeCast( HShape hShape, Quat vOrientation, Vector vBegin, Vector vEnd ) = 0;
virtual CastResult_t RayCast( Vector vBegin, Vector vEnd, fnCheckCast check ) = 0;
virtual CastResult_t ShapeCast( HShape hShape, Quat vOrientation, Vector vBegin, Vector vEnd, fnCheckCast check ) = 0;
};

View File

@@ -200,6 +200,7 @@ public:
abstract_class IBaseShader
{
public:
virtual ~IBaseShader() = default;
virtual void Build() = 0;
};
@@ -219,17 +220,19 @@ public:
virtual void DisablePixelShader( bool bDisable) = 0;
};
abstract_class IComputeShader
abstract_class IComputeShader: public IBaseShader
{
public:
};
abstract_class IRayTracingShader
abstract_class IRayTracingShader: public IBaseShader
{
public:
virtual uint32_t GetMissShaderBinding( const char *szName );
virtual uint32_t GetClosestHitShaderBinding( const char *szName );
virtual uint32_t GetCallableShaderBinding( const char *szName );
virtual uint32_t GetMissShaderBinding( const char *szName ) = 0;
virtual uint32_t GetClosestHitShaderBinding( const char *szName ) = 0;
virtual uint32_t GetCallableShaderBinding( const char *szName ) = 0;
virtual void AddShader( const char *szName, const char *szPath ) = 0;
virtual void RemoveShader( const char *szName ) = 0;
};
//-----------------------------------------------------------------------------
@@ -299,7 +302,9 @@ public:
virtual void DestroyImage( IImage *pImage ) = 0;
virtual IShader *CreateShader( const char *szName ) = 0;
virtual void DestroyShader( IShader *pMaterial ) = 0;
virtual IRayTracingShader *CreateRayShader( const char *szName ) = 0;
virtual IComputeShader *CreateComputeShader( const char *szName ) = 0;
virtual void DestroyShader( IBaseShader *pMaterial ) = 0;
virtual IMaterial *CreateMaterial( IShader *pShader ) = 0;
virtual void DestroyMaterial( IMaterial *pMaterial ) = 0;