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.
		
		
		
		
		
			
		
			
				
					
					
						
							122 lines
						
					
					
						
							2.6 KiB
						
					
					
				
			
		
		
	
	
							122 lines
						
					
					
						
							2.6 KiB
						
					
					
				| /////////////////////////////////////////////////////////////////////////////////////////////////// | |
| // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) | |
| /////////////////////////////////////////////////////////////////////////////////////////////////// | |
| // Created : 2010-01-09 | |
| // Updated : 2010-01-09 | |
| // Licence : This source is under MIT License | |
| // File    : gli/core/texture2d.hpp | |
| /////////////////////////////////////////////////////////////////////////////////////////////////// | |
|  | |
| #ifndef GLI_CORE_TEXTURE2D_INCLUDED | |
| #define GLI_CORE_TEXTURE2D_INCLUDED | |
|  | |
| #include "image2d.hpp" | |
|  | |
| namespace gli | |
| { | |
| 	enum comp | |
| 	{ | |
| 		X = 0, | |
| 		R = 0, | |
| 		S = 0, | |
| 		Y = 1, | |
| 		G = 1, | |
| 		T = 1, | |
| 		Z = 2, | |
| 		B = 2, | |
| 		P = 2, | |
| 		W = 3, | |
| 		A = 3, | |
| 		Q = 3 | |
| 	}; | |
| 
 | |
| 	//template <template <typename> class mem> | |
| 	class texture2D | |
| 	{ | |
| 	public: | |
| 		typedef image2D::dimensions_type dimensions_type; | |
| 		typedef image2D::texcoord_type texcoord_type; | |
| 		typedef image2D::size_type size_type; | |
| 		typedef image2D::value_type value_type; | |
| 		typedef image2D::format_type format_type; | |
| 		typedef image2D::data_type data_type; | |
| 		typedef std::size_t level_type; | |
| 
 | |
| 	public: | |
| 		texture2D(); | |
| 
 | |
| 		explicit texture2D(level_type const & Levels); | |
| 		//texture2D(image const & Mipmap, bool GenerateMipmaps = false); | |
|  | |
| 		~texture2D(); | |
| 
 | |
| 		image2D & operator[] ( | |
| 			level_type const & Level); | |
| 		image2D const & operator[] ( | |
| 			level_type const & Level) const; | |
| 
 | |
| 		bool empty() const; | |
| 		format_type format() const; | |
| 		level_type levels() const; | |
| 		void resize(level_type const & Levels); | |
| 
 | |
| 		template <typename genType> | |
| 		void swizzle(gli::comp X, gli::comp Y, gli::comp Z, gli::comp W); | |
| 
 | |
| 	private: | |
| 		std::vector<image2D> Images; | |
| 	}; | |
| 
 | |
| //namespace wip | |
| //{ | |
| //	// plain | |
| //	template <typename genType> | |
| //	class plain | |
| //	{ | |
| //	public: | |
| //		 | |
| //	private: | |
| //		boost::shared_array<genType> Data; | |
| //	}; | |
| // | |
| //	// texture2D | |
| //	template | |
| //	< | |
| //		typename genType,  | |
| //		template <typename> class surface = plain | |
| //	> | |
| //	class texture2D | |
| //	{ | |
| //	public: | |
| //		typedef genType value_type; | |
| // | |
| //	private: | |
| //		class image_impl | |
| //		{ | |
| //		public: | |
| //			template <typename coordType> | |
| //			value_type const & operator() (coordType const & Coord) const; | |
| // | |
| //		private: | |
| //			surface<value_type> Surface; | |
| //		}; | |
| // | |
| //	public: | |
| //		typedef image_impl image; | |
| //		typedef std::vector<image> mipmaps; | |
| //		typedef typename mipmaps::size_type level_type; | |
| // | |
| //		level_type levels() const; | |
| //		image & operator[] (level_type Level); | |
| //		image const & operator[] (level_type Level) const; | |
| // | |
| //	private: | |
| //		mipmaps Mipmaps; | |
| //	}; | |
| // | |
| //}//namespace wip | |
| }//namespace gli | |
|  | |
| #include "texture2d.inl" | |
|  | |
| #endif//GLI_CORE_TEXTURE2D_INCLUDED
 | |
| 
 |