You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
		
		
		
		
		
			
		
			
				
					
					
						
							55 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							55 lines
						
					
					
						
							1.1 KiB
						
					
					
				| #include "../load_dds.hpp" | |
| #include "../load_kmg.hpp" | |
| #include "../load_ktx.hpp" | |
| #include "file.hpp" | |
|  | |
| namespace gli | |
| { | |
| 	/// Load a texture (DDS, KTX or KMG) from memory | |
| 	inline texture load(char const * Data, std::size_t Size) | |
| 	{ | |
| 		{ | |
| 			texture Texture = load_dds(Data, Size); | |
| 			if(!Texture.empty()) | |
| 				return Texture; | |
| 		} | |
| 		{ | |
| 			texture Texture = load_kmg(Data, Size); | |
| 			if(!Texture.empty()) | |
| 				return Texture; | |
| 		} | |
| 		{ | |
| 			texture Texture = load_ktx(Data, Size); | |
| 			if(!Texture.empty()) | |
| 				return Texture; | |
| 		} | |
| 
 | |
| 		return texture(); | |
| 	} | |
| 
 | |
| 	/// Load a texture (DDS, KTX or KMG) from file | |
| 	inline texture load(char const * Filename) | |
| 	{ | |
| 		FILE* File = detail::open_file(Filename, "rb"); | |
| 		if(!File) | |
| 			return texture(); | |
| 
 | |
| 		long Beg = std::ftell(File); | |
| 		std::fseek(File, 0, SEEK_END); | |
| 		long End = std::ftell(File); | |
| 		std::fseek(File, 0, SEEK_SET); | |
| 
 | |
| 		std::vector<char> Data(static_cast<std::size_t>(End - Beg)); | |
| 
 | |
| 		std::fread(&Data[0], 1, Data.size(), File); | |
| 		std::fclose(File); | |
| 
 | |
| 		return load(&Data[0], Data.size()); | |
| 	} | |
| 
 | |
| 	/// Load a texture (DDS, KTX or KMG) from file | |
| 	inline texture load(std::string const & Filename) | |
| 	{ | |
| 		return load(Filename.c_str()); | |
| 	} | |
| }//namespace gli
 | |
| 
 |