compute shaders

This commit is contained in:
2026-06-13 01:51:28 +03:00
parent 3b128315e7
commit b8aa36ccc0
28 changed files with 498 additions and 170 deletions

View File

@@ -253,12 +253,18 @@ abstract_class IMaterial
public:
virtual ~IMaterial() = default;
virtual void VSSetShaderResource( uint32_t uRegister, IRenderingObject *pResource ) = 0;
virtual void PSSetShaderResource( uint32_t uRegister, IRenderingObject *pResource ) = 0;
virtual void VSSetConstantsBuffer( uint32_t uRegister, IBuffer *pImage ) = 0;
virtual void PSSetShaderResource( uint32_t uRegister, IRenderingObject *pResource ) = 0;
virtual void PSSetConstantsBuffer( uint32_t uRegister, IBuffer *pImage ) = 0;
virtual void PSSetTextureArray( uint32_t uSet, ITextureArray *pArray ) = 0;
virtual void PSSetTexture( uint32_t uRegister, IImage *pImage ) = 0;
virtual void PSSetSampler( uint32_t uRegister, ISampler *pImage ) = 0;
virtual void CSSetConstantsBuffer( uint32_t uRegister, uint32_t uSet, IBuffer *pBuffer ) = 0;
virtual void CSSetTexture( uint32_t uRegister, uint32_t uSet, IImage *pImage ) = 0;
virtual void CSSetSampler( uint32_t uRegister, uint32_t uSet, ISampler *pSampler ) = 0;
virtual void CSSetTextureArray( uint32_t uSet, ITextureArray *pArray ) = 0;
};
struct ImageSector_t
@@ -298,11 +304,11 @@ public:
virtual void EndRecording() = 0;
virtual void Barrier( IRenderingObject *pObject, bool bIsRead, bool bIsWrite ) = 0;
virtual void CopyImageToImage( IImage *pSrc, IImage *pDst ) = 0;
virtual void BlitImageToImage( IImage *pSrc, ImageSector_t src, IImage *pDst, ImageSector_t dst ) = 0;
virtual void ClearImage( IImage *pImage, float fR, float fG, float fB, float fA ) = 0;
virtual void ClearDepth( IImage *pImage, float fVal ) = 0;
virtual void DispatchCompute( uint32_t uX, uint32_t uY, uint32_t uZ ) = 0;
};
//-----------------------------------------------------------------------------
@@ -331,7 +337,7 @@ public:
virtual IComputeShader *CreateComputeShader( const char *szName ) = 0;
virtual void DestroyShader( IBaseShader *pMaterial ) = 0;
virtual IMaterial *CreateMaterial( IShader *pShader ) = 0;
virtual IMaterial *CreateMaterial( IBaseShader *pShader ) = 0;
virtual void DestroyMaterial( IMaterial *pMaterial ) = 0;
virtual IRenderCommandList *CreateCommandList() = 0;