networking i guess

This commit is contained in:
2026-02-28 21:07:44 +02:00
parent e83f7cd448
commit 03c560c2b7
68 changed files with 1348 additions and 121 deletions

View File

@@ -109,6 +109,13 @@ enum EStoreMode
STORE_MODE_DONT_CARE,
};
enum ECullingMode
{
CULL_MODE_NONE,
CULL_MODE_FRONT,
CULL_MODE_BACK,
};
enum ETopologyMode
{
TOPOLOGY_MODE_POINT_LIST,
@@ -168,15 +175,41 @@ public:
virtual void UnloadTexture( uint32_t uTextureID ) = 0;
};
abstract_class ITriangleAccelerationStructure: public IRenderingObject
{
public:
virtual void SetVertices( IVertexBuffer *pBuffer, EVertexFormat eFormat, int iStride ) = 0;
virtual void SetIndicies( IVertexBuffer *pBuffer, EIndexFormat eFormat ) = 0;
virtual void SetTopology( ETopologyMode eTopology ) = 0;
virtual void Build() = 0;
virtual void Update( IVertexBuffer *pBuffer ) = 0;
};
abstract_class IAABBAccelerationStructure: public IRenderingObject
{
public:
virtual void Build() = 0;
};
abstract_class IWorldAccelerationStructure: public IRenderingObject
{
public:
virtual void Build() = 0;
};
abstract_class IBaseShader
{
public:
virtual void Build() = 0;
};
//-----------------------------------------------------------------------------
// Shader object
//-----------------------------------------------------------------------------
abstract_class IShader
abstract_class IShader: public IBaseShader
{
public:
virtual ~IShader() = default;
virtual uint32_t PSGetResourceByName( const char *szName ) = 0;
virtual uint32_t VSGetResourceByName( const char *szName ) = 0;
virtual uint32_t GetResourceByName( const char *szName ) = 0;
virtual void AddLayout( int iIndex, int iStride ) = 0;
virtual void AddAttribute( int iBufferIndex, int iLocation, EVertexFormat eFormat, int iOffset ) = 0;
virtual void SetTopology( ETopologyMode eTopology ) = 0;
@@ -184,7 +217,19 @@ public:
virtual void SetDepthImage( EImageFormat eFormat ) = 0;
virtual void SetMultisampling( EMultisampleType eFormat ) = 0;
virtual void DisablePixelShader( bool bDisable) = 0;
virtual void Build() = 0;
};
abstract_class IComputeShader
{
public:
};
abstract_class IRayTracingShader
{
public:
virtual uint32_t GetMissShaderBinding( const char *szName );
virtual uint32_t GetClosestHitShaderBinding( const char *szName );
virtual uint32_t GetCallableShaderBinding( const char *szName );
};
//-----------------------------------------------------------------------------

View File

@@ -37,6 +37,12 @@ enum EShaderStage: uint32_t
SHADER_STAGE_MISS,
SHADER_STAGE_CALLABLE,
SHADER_STAGE_RAYGEN_SOFTWARE,
SHADER_STAGE_ANY_HIT_SOFTWARE,
SHADER_STAGE_CLOSEST_HIT_SOFTWARE,
SHADER_STAGE_MISS_SOFTWARE,
SHADER_STAGE_CALLABLE_SOFTWARE,
SHADER_STAGE_TASK,
SHADER_STAGE_MESH,