Some checks failed
		
		
	
	continuous-integration/drone/push Build is failing
				
			Reviewed-on: #61 Co-authored-by: light7734 <light7734@tuta.io> Co-committed-by: light7734 <light7734@tuta.io>
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			850 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			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
 |