diff options
Diffstat (limited to '3rdparty/glm/test/external/gli/core/image.inl')
| -rw-r--r-- | 3rdparty/glm/test/external/gli/core/image.inl | 251 |
1 files changed, 0 insertions, 251 deletions
diff --git a/3rdparty/glm/test/external/gli/core/image.inl b/3rdparty/glm/test/external/gli/core/image.inl deleted file mode 100644 index 595a6d9bfa9..00000000000 --- a/3rdparty/glm/test/external/gli/core/image.inl +++ /dev/null @@ -1,251 +0,0 @@ -namespace gli{ -namespace detail -{ - inline size_t texel_linear_aAdressing - ( - extent1d const& Extent, - extent1d const& TexelCoord - ) - { - GLI_ASSERT(glm::all(glm::lessThan(TexelCoord, Extent))); - - return static_cast<size_t>(TexelCoord.x); - } - - inline size_t texel_linear_adressing - ( - extent2d const& Extent, - extent2d const& TexelCoord - ) - { - GLI_ASSERT(TexelCoord.x < Extent.x); - GLI_ASSERT(TexelCoord.y < Extent.y); - - return static_cast<size_t>(TexelCoord.x + Extent.x * TexelCoord.y); - } - - inline size_t texel_linear_adressing - ( - extent3d const& Extent, - extent3d const& TexelCoord - ) - { - GLI_ASSERT(TexelCoord.x < Extent.x); - GLI_ASSERT(TexelCoord.y < Extent.y); - GLI_ASSERT(TexelCoord.z < Extent.z); - - return static_cast<size_t>(TexelCoord.x + Extent.x * (TexelCoord.y + Extent.y * TexelCoord.z)); - } - - inline size_t texel_morton_adressing - ( - extent1d const& Extent, - extent1d const& TexelCoord - ) - { - GLI_ASSERT(TexelCoord.x < Extent.x); - - return TexelCoord.x; - } - - inline size_t texel_morton_adressing - ( - extent2d const& Extent, - extent2d const& TexelCoord - ) - { - GLI_ASSERT(TexelCoord.x < Extent.x && TexelCoord.x >= 0 && TexelCoord.x < std::numeric_limits<extent2d::value_type>::max()); - GLI_ASSERT(TexelCoord.y < Extent.y && TexelCoord.y >= 0 && TexelCoord.y < std::numeric_limits<extent2d::value_type>::max()); - - glm::u32vec2 const Input(TexelCoord); - - return static_cast<size_t>(glm::bitfieldInterleave(Input.x, Input.y)); - } - - inline size_t texel_morton_adressing - ( - extent3d const& Extent, - extent3d const& TexelCoord - ) - { - GLI_ASSERT(TexelCoord.x < Extent.x); - GLI_ASSERT(TexelCoord.y < Extent.y); - GLI_ASSERT(TexelCoord.z < Extent.z); - - glm::u32vec3 const Input(TexelCoord); - - return static_cast<size_t>(glm::bitfieldInterleave(Input.x, Input.y, Input.z)); - } -}//namespace detail - - inline image::image() - : Format(static_cast<gli::format>(FORMAT_INVALID)) - , BaseLevel(0) - , Data(nullptr) - , Size(0) - {} - - inline image::image - ( - format_type Format, - extent_type const& Extent - ) - : Storage(std::make_shared<storage_linear>(Format, Extent, 1, 1, 1)) - , Format(Format) - , BaseLevel(0) - , Data(Storage->data()) - , Size(compute_size(0)) - {} - - inline image::image - ( - std::shared_ptr<storage_linear> Storage, - format_type Format, - size_type BaseLayer, - size_type BaseFace, - size_type BaseLevel - ) - : Storage(Storage) - , Format(Format) - , BaseLevel(BaseLevel) - , Data(compute_data(BaseLayer, BaseFace, BaseLevel)) - , Size(compute_size(BaseLevel)) - {} - - inline image::image - ( - image const & Image, - format_type Format - ) - : Storage(Image.Storage) - , Format(Format) - , BaseLevel(Image.BaseLevel) - , Data(Image.Data) - , Size(Image.Size) - { - GLI_ASSERT(block_size(Format) == block_size(Image.format())); - } - - inline bool image::empty() const - { - if(this->Storage.get() == nullptr) - return true; - - return this->Storage->empty(); - } - - inline image::size_type image::size() const - { - GLI_ASSERT(!this->empty()); - - return this->Size; - } - - template <typename genType> - inline image::size_type image::size() const - { - GLI_ASSERT(sizeof(genType) <= this->Storage->block_size()); - - return this->size() / sizeof(genType); - } - - inline image::format_type image::format() const - { - return this->Format; - } - - inline image::extent_type image::extent() const - { - GLI_ASSERT(!this->empty()); - - storage_linear::extent_type const& SrcExtent = this->Storage->extent(this->BaseLevel); - storage_linear::extent_type const& DstExtent = SrcExtent * block_extent(this->format()) / this->Storage->block_extent(); - - return glm::max(DstExtent, storage_linear::extent_type(1)); - } - - inline void* image::data() - { - GLI_ASSERT(!this->empty()); - - return this->Data; - } - - inline void const* image::data() const - { - GLI_ASSERT(!this->empty()); - - return this->Data; - } - - template <typename genType> - inline genType* image::data() - { - GLI_ASSERT(!this->empty()); - GLI_ASSERT(this->Storage->block_size() >= sizeof(genType)); - - return reinterpret_cast<genType *>(this->data()); - } - - template <typename genType> - inline genType const* image::data() const - { - GLI_ASSERT(!this->empty()); - GLI_ASSERT(this->Storage->block_size() >= sizeof(genType)); - - return reinterpret_cast<genType const *>(this->data()); - } - - inline void image::clear() - { - GLI_ASSERT(!this->empty()); - - memset(this->data<glm::byte>(), 0, this->size<glm::byte>()); - } - - template <typename genType> - inline void image::clear(genType const& Texel) - { - GLI_ASSERT(!this->empty()); - GLI_ASSERT(this->Storage->block_size() == sizeof(genType)); - - for(size_type TexelIndex = 0; TexelIndex < this->size<genType>(); ++TexelIndex) - *(this->data<genType>() + TexelIndex) = Texel; - } - - inline image::data_type* image::compute_data(size_type BaseLayer, size_type BaseFace, size_type BaseLevel) - { - size_type const BaseOffset = this->Storage->base_offset(BaseLayer, BaseFace, BaseLevel); - - return this->Storage->data() + BaseOffset; - } - - inline image::size_type image::compute_size(size_type Level) const - { - GLI_ASSERT(!this->empty()); - - return this->Storage->level_size(Level); - } - - template <typename genType> - genType image::load(extent_type const& TexelCoord) - { - GLI_ASSERT(!this->empty()); - GLI_ASSERT(!is_compressed(this->format())); - GLI_ASSERT(this->Storage->block_size() == sizeof(genType)); - GLI_ASSERT(glm::all(glm::lessThan(TexelCoord, this->extent()))); - - return *(this->data<genType>() + detail::texel_linear_adressing(this->extent(), TexelCoord)); - } - - template <typename genType> - void image::store(extent_type const& TexelCoord, genType const& Data) - { - GLI_ASSERT(!this->empty()); - GLI_ASSERT(!is_compressed(this->format())); - GLI_ASSERT(this->Storage->block_size() == sizeof(genType)); - GLI_ASSERT(glm::all(glm::lessThan(TexelCoord, this->extent()))); - - *(this->data<genType>() + detail::texel_linear_adressing(this->extent(), TexelCoord)) = Data; - } -}//namespace gli |
