Files
MacroLibX/runtime/Includes/Graphics/PutPixelManager.h
2024-12-16 01:24:25 +01:00

28 lines
690 B
C++

#ifndef __MLX_PUT_PIXEL_MANAGER__
#define __MLX_PUT_PIXEL_MANAGER__
#include <Renderer/Image.h>
namespace mlx
{
class PutPixelManager
{
public:
PutPixelManager(NonOwningPtr<class Renderer> renderer) : p_renderer(renderer) {}
// Returns a valid pointer when a new texture has been created
NonOwningPtr<Texture> DrawPixel(int x, int y, std::uint64_t draw_layer, int color);
void ResetRenderData();
~PutPixelManager() = default;
private:
std::unordered_map<std::uint64_t, NonOwningPtr<Texture>> m_placements;
std::vector<std::unique_ptr<Texture>> m_textures;
NonOwningPtr<class Renderer> p_renderer;
std::size_t m_current_texture_index = 0;
};
}
#endif