1 /// @brief Include to copy textures or a subset of either textures. These operations are performed without memory allocations. 2 /// @file gli/copy.hpp 3 4 #pragma once 5 6 #include "type.hpp" 7 8 namespace gli 9 { 10 /// Copy a specific image of a texture 11 template <typename texture_src_type, typename texture_dst_type> 12 void copy( 13 texture_src_type const& TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, 14 texture_dst_type& TextureDst, size_t LayerDst, size_t FaceDst, size_t LevelDst); 15 16 /// Copy a texture 17 template <typename texture_src_type, typename texture_dst_type> 18 void copy( 19 texture_src_type const& TextureSrc, 20 texture_dst_type& TextureDst); 21 22 // Copy an entire level of a texture 23 template <typename texture_src_type, typename texture_dst_type> 24 void copy_level( 25 texture_src_type const& TextureSrc, size_t BaseLevelSrc, 26 texture_dst_type& TextureDst, size_t BaseLevelDst); 27 28 // Copy multiple levels of a texture 29 template <typename texture_src_type, typename texture_dst_type> 30 void copy_level( 31 texture_src_type const& TextureSrc, size_t BaseLevelSrc, 32 texture_dst_type& TextureDst, size_t BaseLevelDst, 33 size_t LevelCount); 34 35 // Copy an entire face of a texture 36 template <typename texture_src_type, typename texture_dst_type> 37 void copy_face( 38 texture_src_type const& TextureSrc, size_t BaseFaceSrc, 39 texture_dst_type& TextureDst, size_t BaseFaceDst); 40 41 // Copy multiple faces of a texture 42 template <typename texture_src_type, typename texture_dst_type> 43 void copy_face( 44 texture_src_type const& TextureSrc, size_t BaseFaceSrc, 45 texture_dst_type& TextureDst, size_t BaseFaceDst, 46 size_t FaceCount); 47 48 // Copy an entire layer of a texture 49 template <typename texture_src_type, typename texture_dst_type> 50 void copy_layer( 51 texture_src_type const& TextureSrc, size_t BaseLayerSrc, 52 texture_dst_type& TextureDst, size_t BaseLayerDst); 53 54 // Copy multiple layers of a texture 55 template <typename texture_src_type, typename texture_dst_type> 56 void copy_layer( 57 texture_src_type const& TextureSrc, size_t BaseLayerSrc, 58 texture_dst_type& TextureDst, size_t BaseLayerDst, 59 size_t LayerCount); 60 }//namespace gli 61 62 #include "./core/copy.inl" 63