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
 | 
						|
 |