63 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/// @brief Include to copy textures or a subset of either textures. These operations are performed without memory allocations.
 | 
						|
/// @file gli/copy.hpp
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include "type.hpp"
 | 
						|
 | 
						|
namespace gli
 | 
						|
{
 | 
						|
	/// Copy a specific image of a texture
 | 
						|
	template <typename texture_src_type, typename texture_dst_type>
 | 
						|
	void copy(
 | 
						|
		texture_src_type const& TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc,
 | 
						|
		texture_dst_type& TextureDst, size_t LayerDst, size_t FaceDst, size_t LevelDst);
 | 
						|
 | 
						|
	/// Copy a texture
 | 
						|
	template <typename texture_src_type, typename texture_dst_type>
 | 
						|
	void copy(
 | 
						|
		texture_src_type const& TextureSrc,
 | 
						|
		texture_dst_type& TextureDst);
 | 
						|
 | 
						|
	// Copy an entire level of a texture
 | 
						|
	template <typename texture_src_type, typename texture_dst_type>
 | 
						|
	void copy_level(
 | 
						|
		texture_src_type const& TextureSrc, size_t BaseLevelSrc,
 | 
						|
		texture_dst_type& TextureDst, size_t BaseLevelDst);
 | 
						|
 | 
						|
	// Copy multiple levels of a texture
 | 
						|
	template <typename texture_src_type, typename texture_dst_type>
 | 
						|
	void copy_level(
 | 
						|
		texture_src_type const& TextureSrc, size_t BaseLevelSrc,
 | 
						|
		texture_dst_type& TextureDst, size_t BaseLevelDst,
 | 
						|
		size_t LevelCount);
 | 
						|
 | 
						|
	// Copy an entire face of a texture
 | 
						|
	template <typename texture_src_type, typename texture_dst_type>
 | 
						|
	void copy_face(
 | 
						|
		texture_src_type const& TextureSrc, size_t BaseFaceSrc,
 | 
						|
		texture_dst_type& TextureDst, size_t BaseFaceDst);
 | 
						|
 | 
						|
	// Copy multiple faces of a texture
 | 
						|
	template <typename texture_src_type, typename texture_dst_type>
 | 
						|
	void copy_face(
 | 
						|
		texture_src_type const& TextureSrc, size_t BaseFaceSrc,
 | 
						|
		texture_dst_type& TextureDst, size_t BaseFaceDst,
 | 
						|
		size_t FaceCount);
 | 
						|
 | 
						|
	// Copy an entire layer of a texture
 | 
						|
	template <typename texture_src_type, typename texture_dst_type>
 | 
						|
	void copy_layer(
 | 
						|
		texture_src_type const& TextureSrc, size_t BaseLayerSrc,
 | 
						|
		texture_dst_type& TextureDst, size_t BaseLayerDst);
 | 
						|
 | 
						|
	// Copy multiple layers of a texture
 | 
						|
	template <typename texture_src_type, typename texture_dst_type>
 | 
						|
	void copy_layer(
 | 
						|
		texture_src_type const& TextureSrc, size_t BaseLayerSrc,
 | 
						|
		texture_dst_type& TextureDst, size_t BaseLayerDst,
 | 
						|
		size_t LayerCount);
 | 
						|
}//namespace gli
 | 
						|
 | 
						|
#include "./core/copy.inl"
 |