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