improved font rendering
This commit is contained in:
@@ -101,7 +101,7 @@ void CVkRenderCommandList::SetMaterial( IMaterial *pMaterial )
|
||||
pBeginCommand->nResolutionY = m_uHeight;
|
||||
for ( auto &i: pBeginCommand->images)
|
||||
{
|
||||
pBeginCommand->AddDependency(i.m_stImage.m_pSingle, DEPENDENCY_MODE_DRAWCALL_OUTPUT_IMAGE);
|
||||
pBeginCommand->AddDependency(i.m_stImage.m_pSingle, DEPENDENCY_MODE_DRAWCALL_MIXED_IMAGE);
|
||||
}
|
||||
if ( m_bDepthEnabled )
|
||||
{
|
||||
@@ -118,10 +118,6 @@ void CVkRenderCommandList::SetMaterial( IMaterial *pMaterial )
|
||||
|
||||
CVkSetShaderDataCommand *pSetShaderData = CREATE_COMMAND(m_pCommandBufferManager, SetShaderData);
|
||||
pSetShaderData->pShaderData = pMaterial;
|
||||
{
|
||||
CVkTextureArray *pArray = (CVkTextureArray*)((CVkMaterial*)pMaterial)->m_pTextureArray;
|
||||
|
||||
}
|
||||
m_pCurrentMaterialBuffer->AddCommand(pSetShaderData);
|
||||
|
||||
CVkSetScissorsCommand *pScissorsCommand = CREATE_COMMAND(m_pCommandBufferManager, SetScissors);
|
||||
@@ -146,6 +142,7 @@ void CVkRenderCommandList::SetVertexBuffer( uint32_t uBinding, IVertexBuffer *pB
|
||||
CVkSetVertexBufferCommand *pCmd = CREATE_COMMAND(m_pCommandBufferManager, SetVertexBuffer);
|
||||
pCmd->uBinding = uBinding;
|
||||
pCmd->pBuffer = pBuffer;
|
||||
pCmd->AddDependency(pBuffer, DEPENDENCY_MODE_BUFFER_SOURCE);
|
||||
m_pCurrentMaterialBuffer->AddCommand(pCmd);
|
||||
}
|
||||
|
||||
@@ -163,6 +160,34 @@ void CVkRenderCommandList::DrawPrimitives( uint32_t nVertexCount, uint32_t nFirs
|
||||
pCmd->nFirstVertex = nFirstVertex;
|
||||
pCmd->nInstanceCount = nInstanceCount;
|
||||
pCmd->nFirstInstance = nFirstInstance;
|
||||
for ( auto &b: m_barriers )
|
||||
{
|
||||
if (dynamic_cast<CVkBuffer*>(b.pObject))
|
||||
{
|
||||
if (b.m_bIsRead)
|
||||
if (b.m_bIsWrite)
|
||||
pCmd->AddDependency(b.pObject, DEPENDENCY_MODE_SHADER_BUFFER_READ_WRITE);
|
||||
else
|
||||
pCmd->AddDependency(b.pObject, DEPENDENCY_MODE_SHADER_BUFFER_READ);
|
||||
else
|
||||
if (b.m_bIsWrite)
|
||||
pCmd->AddDependency(b.pObject, DEPENDENCY_MODE_SHADER_BUFFER_WRITE);
|
||||
|
||||
}
|
||||
if (dynamic_cast<CVkImage*>(b.pObject))
|
||||
{
|
||||
if (b.m_bIsRead)
|
||||
if (b.m_bIsWrite)
|
||||
pCmd->AddDependency(b.pObject, DEPENDENCY_MODE_SHADER_IMAGE_READ_WRITE);
|
||||
else
|
||||
pCmd->AddDependency(b.pObject, DEPENDENCY_MODE_SHADER_IMAGE_READ);
|
||||
else
|
||||
if (b.m_bIsWrite)
|
||||
pCmd->AddDependency(b.pObject, DEPENDENCY_MODE_SHADER_IMAGE_WRITE);
|
||||
|
||||
}
|
||||
}
|
||||
m_barriers = {};
|
||||
m_pCurrentMaterialBuffer->AddCommand(pCmd);
|
||||
}
|
||||
|
||||
@@ -182,8 +207,8 @@ void CVkRenderCommandList::ResolveImage( IImage *pOriginal, IImage *pResolved )
|
||||
pCmd->stInputImage.m_pSingle = pOriginal;
|
||||
pCmd->stOutputImage.m_eObjectType = FRAME_OBJECT_TYPE_SINGLE;
|
||||
pCmd->stOutputImage.m_pSingle = pResolved;
|
||||
pCmd->AddDependency(pOriginal, DEPENDENCY_MODE_IMAGE_SOURCE);
|
||||
pCmd->AddDependency(pResolved, DEPENDENCY_MODE_IMAGE_DESTINATION);
|
||||
pCmd->AddDependency(pOriginal, DEPENDENCY_MODE_IMAGE_RESOLVE_SOURCE);
|
||||
pCmd->AddDependency(pResolved, DEPENDENCY_MODE_IMAGE_RESOLVE_DESTINATION);
|
||||
m_pPostRaster->AddCommand(pCmd);
|
||||
}
|
||||
|
||||
@@ -198,6 +223,11 @@ void CVkRenderCommandList::EndRecording()
|
||||
SwitchRenderingStage(RENDERING_STAGE_FINISHED);
|
||||
}
|
||||
|
||||
void CVkRenderCommandList::Barrier( IRenderingObject *pObject, bool bIsRead, bool bIsWrite )
|
||||
{
|
||||
m_barriers.AppendTail({pObject, bIsRead, bIsWrite});
|
||||
}
|
||||
|
||||
void CVkRenderCommandList::Submit()
|
||||
{
|
||||
for ( auto m: m_pCommandBuffers)
|
||||
|
||||
Reference in New Issue
Block a user