adding shaders compilation in makefile

This commit is contained in:
Kbz-8
2024-09-22 21:39:20 +02:00
parent c718915927
commit cf773b586e
27 changed files with 415 additions and 241 deletions

View File

@@ -16,7 +16,7 @@ namespace mlx
Sprite& Scene::CreateSprite(NonOwningPtr<Texture> texture) noexcept
{
MLX_PROFILE_FUNCTION();
std::shared_ptr<Sprite> sprite = std::make_shared<Sprite>(texture);
std::shared_ptr<Sprite> sprite = std::make_shared<Sprite>(*m_descriptor.renderer, texture);
m_sprites.push_back(sprite);
return *sprite;
}
@@ -24,9 +24,9 @@ namespace mlx
NonOwningPtr<Sprite> Scene::GetSpriteFromTextureAndPosition(NonOwningPtr<Texture> texture, const Vec2f& position) const
{
MLX_PROFILE_FUNCTION();
auto it = std::find_if(m_sprites.begin(), m_sprites.end(), [texture, position](std::shared_ptr<Sprite> sprite)
auto it = std::find_if(m_sprites.begin(), m_sprites.end(), [&texture, &position](std::shared_ptr<Sprite> sprite)
{
return sprite->GetPosition().x == position.x && sprite->GetPosition().y == position.y && sprite->GetTexture() == texture;
return sprite->GetTexture() == texture && sprite->GetPosition().x == position.x && sprite->GetPosition().y == position.y;
});
return (it != m_sprites.end() ? it->get() : nullptr);
}
@@ -37,7 +37,7 @@ namespace mlx
auto it = m_sprites.begin();
do
{
it = std::find_if(m_sprites.begin(), m_sprites.end(), [texture](std::shared_ptr<Sprite> sprite)
it = std::find_if(m_sprites.begin(), m_sprites.end(), [&texture](std::shared_ptr<Sprite> sprite)
{
return sprite->GetTexture() == texture;
});

View File

@@ -2,6 +2,7 @@
#include <Graphics/Sprite.h>
#include <Renderer/Image.h>
#include <Renderer/Vertex.h>
#include <Renderer/Renderer.h>
namespace mlx
{
@@ -36,17 +37,17 @@ namespace mlx
return mesh;
}
Sprite::Sprite(NonOwningPtr<Texture> texture)
Sprite::Sprite(Renderer& renderer, NonOwningPtr<Texture> texture)
{
MLX_PROFILE_FUNCTION();
Verify((bool)texture, "Sprite: invalid texture");
p_mesh = CreateQuad(0, 0, texture->GetWidth(), texture->GetHeight());
p_texture = texture;
func::function<void(const EventBase&)> functor = [this](const EventBase& event)
func::function<void(const EventBase&)> functor = [this, &renderer](const EventBase& event)
{
if(event.What() == Event::DescriptorPoolResetEventCode)
m_set.Reallocate();
m_set.Reallocate(renderer.GetCurrentFrameIndex());
};
EventBus::RegisterListener({ functor, "__Sprite" + std::to_string(reinterpret_cast<std::uintptr_t>(this)) });
}