working textures

This commit is contained in:
kbz_8
2023-04-01 15:48:28 +02:00
parent e9c3fb8046
commit 3a93881392
17 changed files with 387 additions and 138 deletions

View File

@@ -6,7 +6,7 @@
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/10/04 17:36:44 by maldavid #+# #+# */
/* Updated: 2023/04/01 11:55:19 by maldavid ### ########.fr */
/* Updated: 2023/04/01 15:40:30 by maldavid ### ########.fr */
/* */
/* ************************************************************************** */
@@ -45,6 +45,18 @@ namespace mlx
_renderer->getPixelPutPipeline().setPixel(x, y, color);
}
void MLX_Window::texture_put(std::shared_ptr<Texture> texture, int x, int y)
{
if(texture->getSet() == VK_NULL_HANDLE)
texture->setDescriptor(_renderer->getFragDescriptorSet().duplicate());
texture->updateSet(0);
std::vector<VkDescriptorSet> sets;
sets.push_back(_renderer->getVertDescriptorSet().get());
sets.push_back(texture->getSet());
vkCmdBindDescriptorSets(_renderer->getActiveCmdBuffer().get(), VK_PIPELINE_BIND_POINT_GRAPHICS, _renderer->getPipeline().getPipelineLayout(), 0, sets.size(), sets.data(), 0, nullptr);
texture->render(*_renderer, x, y);
}
void MLX_Window::endFrame()
{
auto cmd_buff = _renderer->getActiveCmdBuffer().get();
@@ -54,9 +66,7 @@ namespace mlx
std::vector<VkDescriptorSet> sets;
sets.push_back(_renderer->getVertDescriptorSet().get());
sets.push_back(_renderer->getPixelPutPipeline().getDescriptorSet());
vkCmdBindDescriptorSets(cmd_buff, VK_PIPELINE_BIND_POINT_GRAPHICS, _renderer->getPipeline().getPipelineLayout(), 0, sets.size(), sets.data(), 0, nullptr);
_renderer->getPixelPutPipeline().render(*_renderer);
_renderer->endFrame();