light/modules/renderer/private/frontend/data/buffer.hpp
light7734 e71aeddbcf
Some checks failed
continuous-integration/drone/pr Build is failing
feat(renderer/vk): buffer
2025-10-25 10:29:02 +03:30

55 lines
850 B
C++

#pragma once
#include <memory/scope.hpp>
#include <renderer/api.hpp>
namespace lt::renderer {
class IBuffer
{
public:
enum Usage : uint8_t
{
vertex,
index,
};
struct CreateInfo
{
Usage usage;
size_t size;
std::string debug_name;
};
[[nodiscard]] static auto create(
Api target_api,
class IDevice *device,
class IGpu *gpu,
const CreateInfo &info
) -> memory::Scope<IBuffer>;
IBuffer() = default;
virtual ~IBuffer() = default;
IBuffer(IBuffer &&) = default;
IBuffer(const IBuffer &) = delete;
auto operator=(IBuffer &&) -> IBuffer & = default;
auto operator=(const IBuffer &) -> IBuffer & = delete;
[[nodiscard]] virtual auto map() -> std::span<std::byte> = 0;
virtual void unmap() = 0;
[[nodiscard]] virtual auto get_size() const -> size_t = 0;
private:
};
} // namespace lt::renderer