30 lines
		
	
	
	
		
			442 B
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			30 lines
		
	
	
	
		
			442 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
								 | 
							
								#pragma once
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace lt::renderer {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Backend
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
									enum class API : uint8_t
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										vulkan,
							 | 
						||
| 
								 | 
							
										directx,
							 | 
						||
| 
								 | 
							
									};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									Backend() = default;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									Backend(Backend &&) = default;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									auto operator=(Backend &&) -> Backend & = default;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									Backend(const Backend &) = delete;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									auto operator=(const Backend &) -> Backend & = delete;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									virtual ~Backend() = default;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									[[nodiscard]] virtual auto get_api() const -> API = 0;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								} // namespace lt::renderer
							 |