work on basic VR
This commit is contained in:
@@ -198,6 +198,57 @@ void CVkRenderCommandList::DrawPrimitivesIndexed( uint32_t nIndexCount, uint32_t
|
||||
}
|
||||
|
||||
|
||||
void CVkRenderCommandList::CopyImageToImage( IImage *pSrc, IImage *pDst )
|
||||
{
|
||||
SwitchRenderingStage(RENDERING_STAGE_POST_RASTER);
|
||||
|
||||
}
|
||||
void CVkRenderCommandList::BlitImageToImage( IImage *pSrc, ImageSector_t src, IImage *pDst, ImageSector_t dst )
|
||||
{
|
||||
SwitchRenderingStage(RENDERING_STAGE_POST_RASTER);
|
||||
CVkBlitCommand *pCmd = CREATE_COMMAND(m_pCommandBufferManager, Blit);
|
||||
pCmd->stInputImage.m_eObjectType = FRAME_OBJECT_TYPE_SINGLE;
|
||||
pCmd->stInputImage.m_pSingle = pSrc;
|
||||
pCmd->stOutputImage.m_eObjectType = FRAME_OBJECT_TYPE_SINGLE;
|
||||
pCmd->stOutputImage.m_pSingle = pDst;
|
||||
pCmd->AddDependency(pSrc, DEPENDENCY_MODE_BLIT_IMAGE_SOURCE);
|
||||
pCmd->AddDependency(pDst, DEPENDENCY_MODE_BLIT_IMAGE_DESTINATION);
|
||||
pCmd->iSrcMin[0] = src.m_iX;
|
||||
pCmd->iSrcMin[1] = src.m_iY;
|
||||
pCmd->iSrcMin[2] = 0;
|
||||
pCmd->iDstMin[0] = dst.m_iX;
|
||||
pCmd->iDstMin[1] = dst.m_iY;
|
||||
pCmd->iDstMin[2] = 0;
|
||||
pCmd->iSrcMax[0] = src.m_iWidth;
|
||||
pCmd->iSrcMax[1] = src.m_iHeight;
|
||||
pCmd->iSrcMax[2] = 1;
|
||||
pCmd->iDstMax[0] = dst.m_iWidth;
|
||||
pCmd->iDstMax[1] = dst.m_iHeight;
|
||||
pCmd->iDstMax[2] = 1;
|
||||
m_pPostRaster->AddCommand(pCmd);
|
||||
|
||||
}
|
||||
|
||||
void CVkRenderCommandList::ClearImage( IImage *pImage, float fR, float fG, float fB, float fA )
|
||||
{
|
||||
SwitchRenderingStage(RENDERING_STAGE_POST_RASTER);
|
||||
CVkClearColorCommand *pCmd = CREATE_COMMAND(m_pCommandBufferManager, ClearColor);
|
||||
pCmd->AddDependency(pImage, DEPENDENCY_MODE_COLOR_CLEAR_DESTINATION);
|
||||
pCmd->r = fR;
|
||||
pCmd->g = fG;
|
||||
pCmd->b = fB;
|
||||
pCmd->a = fA;
|
||||
pCmd->stImage.m_eObjectType = FRAME_OBJECT_TYPE_SINGLE;
|
||||
pCmd->stImage.m_pSingle = pImage;
|
||||
m_pPostRaster->AddCommand(pCmd);
|
||||
|
||||
}
|
||||
|
||||
void CVkRenderCommandList::ClearDepth( IImage *pImage, float fVal )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CVkRenderCommandList::ResolveImage( IImage *pOriginal, IImage *pResolved )
|
||||
{
|
||||
SwitchRenderingStage(RENDERING_STAGE_POST_RASTER);
|
||||
@@ -251,8 +302,11 @@ void CVkRenderCommandList::SwitchRenderingStage( EVulkanRenderingStage eStage )
|
||||
};
|
||||
if (eStage == RENDERING_STAGE_POST_RASTER)
|
||||
{
|
||||
m_pPostRaster = m_pCommandBufferManager->CreateCommandBuffer();
|
||||
m_pPostRaster->Reset();
|
||||
if (m_eCurrentStage != RENDERING_STAGE_POST_RASTER)
|
||||
{
|
||||
m_pPostRaster = m_pCommandBufferManager->CreateCommandBuffer();
|
||||
m_pPostRaster->Reset();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -262,6 +316,7 @@ void CVkRenderCommandList::SwitchRenderingStage( EVulkanRenderingStage eStage )
|
||||
m_pCommandBuffers.AppendTail(m_pPostRaster);
|
||||
}
|
||||
}
|
||||
m_eCurrentStage = eStage;
|
||||
}
|
||||
|
||||
VulkanRenderOutput_t *CVkRenderCommandList::FindOrCreateRenderOutput( uint32_t uIndex )
|
||||
|
||||
Reference in New Issue
Block a user