added font rendering
This commit is contained in:
@@ -76,6 +76,17 @@ void CVkMaterial::PSSetTextureArray( uint32_t uSet, ITextureArray *pArray )
|
||||
SetShaderResource(0, uSet, pArray);
|
||||
}
|
||||
|
||||
void CVkMaterial::PSSetTexture( uint32_t uRegister, IImage *pImage )
|
||||
{
|
||||
SetShaderResource(uRegister, 0, pImage);
|
||||
}
|
||||
|
||||
void CVkMaterial::PSSetSampler( uint32_t uRegister, ISampler *pImage )
|
||||
{
|
||||
SetShaderResource(uRegister, 0, pImage);
|
||||
}
|
||||
|
||||
|
||||
void CVkMaterial::SetShaderResource( uint32_t uRegister, uint32_t uSet, IRenderingObject *pObject)
|
||||
{
|
||||
if ( m_pVkShader->m_setLayouts.GetSize() == 0 )
|
||||
@@ -84,6 +95,8 @@ void CVkMaterial::SetShaderResource( uint32_t uRegister, uint32_t uSet, IRenderi
|
||||
IRenderingObject *pVkObject;
|
||||
CVkBuffer *pBuffer;
|
||||
CVkTextureArray *pArray;
|
||||
CVkImage *pImage;
|
||||
CVkSampler *pSampler;
|
||||
};
|
||||
pVkObject = pObject;
|
||||
if (dynamic_cast<IBuffer*>(pObject))
|
||||
@@ -101,6 +114,36 @@ void CVkMaterial::SetShaderResource( uint32_t uRegister, uint32_t uSet, IRenderi
|
||||
stInfo.range = pBuffer->m_nSize;
|
||||
vkUpdateDescriptorSets(m_pVkShader->m_hDevice, 1, &write, 0, 0);
|
||||
}
|
||||
if (dynamic_cast<IImage*>(pObject))
|
||||
{
|
||||
VkWriteDescriptorSet write = {};
|
||||
VkDescriptorImageInfo stInfo = {};
|
||||
write.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
|
||||
write.dstSet = m_hSets[uSet];
|
||||
write.dstBinding = uRegister;
|
||||
write.dstArrayElement = 0;
|
||||
write.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
|
||||
write.descriptorCount = 1;
|
||||
write.pImageInfo = &stInfo;
|
||||
stInfo.imageView = pImage->m_imageView;
|
||||
stInfo.imageLayout = VK_IMAGE_LAYOUT_GENERAL;
|
||||
vkUpdateDescriptorSets(m_pVkShader->m_hDevice, 1, &write, 0, 0);
|
||||
|
||||
}
|
||||
if (dynamic_cast<CVkSampler*>(pObject))
|
||||
{
|
||||
VkWriteDescriptorSet write = {};
|
||||
VkDescriptorImageInfo stInfo = {};
|
||||
write.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
|
||||
write.dstSet = m_hSets[uSet];
|
||||
write.dstBinding = uRegister;
|
||||
write.dstArrayElement = 0;
|
||||
write.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLER;
|
||||
write.descriptorCount = 1;
|
||||
write.pImageInfo = &stInfo;
|
||||
stInfo.sampler = pSampler->m_sampler;
|
||||
vkUpdateDescriptorSets(m_pVkShader->m_hDevice, 1, &write, 0, 0);
|
||||
}
|
||||
if (dynamic_cast<ITextureArray*>(pObject))
|
||||
{
|
||||
VkWriteDescriptorSet writes[2] = {};
|
||||
|
||||
Reference in New Issue
Block a user