work on basic VR

This commit is contained in:
2026-05-30 20:43:02 +03:00
parent 4811ad0820
commit 3b128315e7
18 changed files with 716 additions and 29 deletions

View File

@@ -30,6 +30,7 @@ enum EImageFormat
IMAGE_FORMAT_RGBA8_UINT,
IMAGE_FORMAT_RGBA8_SINT,
IMAGE_FORMAT_RGBA8_SRGB,
IMAGE_FORMAT_RGBA16_UINT,
IMAGE_FORMAT_RGBA16_SINT,
@@ -260,6 +261,14 @@ public:
virtual void PSSetSampler( uint32_t uRegister, ISampler *pImage ) = 0;
};
struct ImageSector_t
{
int32_t m_iX;
int32_t m_iY;
int32_t m_iWidth;
int32_t m_iHeight;
};
abstract_class IRenderCommandList
{
public:
@@ -289,6 +298,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;
};
//-----------------------------------------------------------------------------
@@ -296,7 +310,7 @@ public:
//
// Responsible for the object handling
//-----------------------------------------------------------------------------
abstract_class IRenderContext: public IAppSystem
abstract_class IRenderContext: public IAppSystem2
{
public:
virtual void Frame( float fTime ) = 0;
@@ -324,8 +338,6 @@ public:
virtual void DestroyCommandList( IRenderCommandList *pCommandList ) = 0;
virtual void SubmitCommandList(IRenderCommandList *pList) = 0;
virtual void SetMainWindowManager( IGameWindowManager *pWindowManager ) = 0;
virtual void RenderGameWindow( IGameWindow *pWindow ) = 0;
virtual void RegisterGameWindow( IGameWindow *pWindow ) = 0;
virtual void UnregisterGameWindow( IGameWindow *pWindow ) = 0;
@@ -334,6 +346,11 @@ public:
virtual void DestroyTextureArray() = 0;
virtual ISampler *GetDefaultSampler() = 0;
virtual void *GetVulkanInstance() = 0;
virtual void *GetVulkanPhysicalDevice() = 0;
virtual void *GetVulkanDevice() = 0;
virtual IImage *CreateImageFromVkImage( void *pVkImage, uint32_t x, uint32_t y, uint64_t optimalLayout, EImageFormat eFormat, EMultisampleType eMultisampleType ) = 0;
};
#define RENDER_CONTEXT_INTERFACE_VERSION "RenderContext001"