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.
		
		
		
		
		
			
		
			
				
					
					
						
							72 lines
						
					
					
						
							2.4 KiB
						
					
					
				
			
		
		
	
	
							72 lines
						
					
					
						
							2.4 KiB
						
					
					
				/// @brief Include to use cube map array textures. | 
						|
/// @file gli/texture_cube_array.hpp | 
						|
 | 
						|
#pragma once | 
						|
 | 
						|
#include "texture_cube.hpp" | 
						|
 | 
						|
namespace gli | 
						|
{ | 
						|
	/// Cube map array texture | 
						|
	class texture_cube_array : public texture | 
						|
	{ | 
						|
	public: | 
						|
		typedef extent2d extent_type; | 
						|
 | 
						|
	public: | 
						|
		/// Create an empty texture cube array | 
						|
		texture_cube_array(); | 
						|
 | 
						|
		/// Create a texture_cube_array and allocate a new storage_linear | 
						|
		texture_cube_array( | 
						|
			format_type Format, | 
						|
			extent_type const& Extent, | 
						|
			size_type Layers, | 
						|
			size_type Levels, | 
						|
			swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA)); | 
						|
 | 
						|
		/// Create a texture_cube_array and allocate a new storage_linear with a complete mipmap chain | 
						|
		texture_cube_array( | 
						|
			format_type Format, | 
						|
			extent_type const& Extent, | 
						|
			size_type Layers, | 
						|
			swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA)); | 
						|
 | 
						|
		/// Create a texture_cube_array view with an existing storage_linear | 
						|
		explicit texture_cube_array( | 
						|
			texture const& Texture); | 
						|
 | 
						|
		/// Reference a subset of an exiting storage_linear constructor | 
						|
		texture_cube_array( | 
						|
			texture const& Texture, | 
						|
			format_type Format, | 
						|
			size_type BaseLayer, size_type MaxLayer, | 
						|
			size_type BaseFace, size_type MaxFace, | 
						|
			size_type BaseLevel, size_type MaxLevel, | 
						|
			swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA)); | 
						|
 | 
						|
		/// Create a texture view, reference a subset of an exiting texture_cube_array instance | 
						|
		texture_cube_array( | 
						|
			texture_cube_array const& Texture, | 
						|
			size_type BaseLayer, size_type MaxLayer, | 
						|
			size_type BaseFace, size_type MaxFace, | 
						|
			size_type BaseLevel, size_type MaxLevel); | 
						|
 | 
						|
		/// Create a view of the texture identified by Layer in the texture array | 
						|
		texture_cube operator[](size_type Layer) const; | 
						|
 | 
						|
		/// Return the dimensions of a texture instance: width and height where both should be equal. | 
						|
		extent_type extent(size_type Level = 0) const; | 
						|
 | 
						|
		/// Fetch a texel from a texture. The texture format must be uncompressed. | 
						|
		template <typename gen_type> | 
						|
		gen_type load(extent_type const & TexelCoord, size_type Layer, size_type Face, size_type Level) const; | 
						|
 | 
						|
		/// Write a texel to a texture. The texture format must be uncompressed. | 
						|
		template <typename gen_type> | 
						|
		void store(extent_type const& TexelCoord, size_type Layer, size_type Face, size_type Level, gen_type const& Texel); | 
						|
	}; | 
						|
}//namespace gli | 
						|
 | 
						|
#include "./core/texture_cube_array.inl" | 
						|
 | 
						|
 |