diff --git a/src/Magnum/Trade/ImageData.cpp b/src/Magnum/Trade/ImageData.cpp index 02dc406fc..87a62fce1 100644 --- a/src/Magnum/Trade/ImageData.cpp +++ b/src/Magnum/Trade/ImageData.cpp @@ -52,11 +52,7 @@ template ImageData::ImageData(const PixelSto template ImageData::ImageData(const PixelFormat format, const VectorTypeFor& size, Containers::Array&& data, const ImageFlags flags, const void* const importerState) noexcept: ImageData{{}, format, size, Utility::move(data), flags, importerState} {} -template ImageData::ImageData(const PixelFormat format, const VectorTypeFor& size, const DataFlags dataFlags, const Containers::ArrayView data, const ImageFlags flags, const void* const importerState) noexcept: ImageData{format, size, Containers::Array{const_cast(static_cast(data.data())), data.size(), Implementation::nonOwnedArrayDeleter}, flags, importerState} { - CORRADE_ASSERT(!(dataFlags & DataFlag::Owned), - "Trade::ImageData: can't construct a non-owned instance with" << dataFlags, ); - _dataFlags = dataFlags; -} +template ImageData::ImageData(const PixelFormat format, const VectorTypeFor& size, const DataFlags dataFlags, const Containers::ArrayView data, const ImageFlags flags, const void* const importerState) noexcept: ImageData{{}, format, size, dataFlags, data, flags, importerState} {} template ImageData::ImageData(const PixelStorage storage, const UnsignedInt format, const UnsignedInt formatExtra, const UnsignedInt pixelSize, const VectorTypeFor& size, Containers::Array&& data, const ImageFlags flags, const void* const importerState) noexcept: ImageData{storage, pixelFormatWrap(format), formatExtra, pixelSize, size, Utility::move(data), flags, importerState} {} @@ -90,19 +86,11 @@ template ImageData::ImageData(const Compress template ImageData::ImageData(const CompressedPixelFormat format, const VectorTypeFor& size, Containers::Array&& data, const ImageFlags flags, const void* const importerState) noexcept: ImageData{{}, format, size, Utility::move(data), flags, importerState} {} -template ImageData::ImageData(const CompressedPixelFormat format, const VectorTypeFor& size, const DataFlags dataFlags, const Containers::ArrayView data, const ImageFlags flags, const void* const importerState) noexcept: ImageData{format, size, Containers::Array{const_cast(static_cast(data.data())), data.size(), Implementation::nonOwnedArrayDeleter}, flags, importerState} { - CORRADE_ASSERT(!(dataFlags & DataFlag::Owned), - "Trade::ImageData: can't construct a non-owned instance with" << dataFlags, ); - _dataFlags = dataFlags; -} +template ImageData::ImageData(const CompressedPixelFormat format, const VectorTypeFor& size, const DataFlags dataFlags, const Containers::ArrayView data, const ImageFlags flags, const void* const importerState) noexcept: ImageData{{}, format, size, dataFlags, data, flags, importerState} {} template ImageData::ImageData(const CompressedPixelStorage storage, const UnsignedInt format, const VectorTypeFor& size, Containers::Array&& data, const ImageFlags flags, const void* const importerState) noexcept: ImageData{storage, compressedPixelFormatWrap(format), size, Utility::move(data), flags, importerState} {} -template ImageData::ImageData(const CompressedPixelStorage storage, const UnsignedInt format, const VectorTypeFor& size, const DataFlags dataFlags, const Containers::ArrayView data, const ImageFlags flags, const void* const importerState) noexcept: ImageData{storage, format, size, Containers::Array{const_cast(static_cast(data.data())), data.size(), Implementation::nonOwnedArrayDeleter}, flags, importerState} { - CORRADE_ASSERT(!(dataFlags & DataFlag::Owned), - "Trade::ImageData: can't construct a non-owned instance with" << dataFlags, ); - _dataFlags = dataFlags; -} +template ImageData::ImageData(const CompressedPixelStorage storage, const UnsignedInt format, const VectorTypeFor& size, const DataFlags dataFlags, const Containers::ArrayView data, const ImageFlags flags, const void* const importerState) noexcept: ImageData{storage, compressedPixelFormatWrap(format), size, dataFlags, data, flags, importerState} {} template ImageData::ImageData(ImageData&& other) noexcept: _dataFlags{other._dataFlags}, _compressed{Utility::move(other._compressed)}, _flags{Utility::move(other._flags)}, _size{Utility::move(other._size)}, _data{Utility::move(other._data)}, _importerState{Utility::move(other._importerState)} { if(_compressed) { diff --git a/src/Magnum/Trade/ImageData.h b/src/Magnum/Trade/ImageData.h index b74e1512f..e1e7d5123 100644 --- a/src/Magnum/Trade/ImageData.h +++ b/src/Magnum/Trade/ImageData.h @@ -246,11 +246,8 @@ template class ImageData { * @param importerState Importer-specific state * @m_since_latest * - * Compared to @ref ImageData(PixelFormat, const VectorTypeFor&, Containers::Array&&, ImageFlags, const void*) - * creates an instance that doesn't own the passed data. The - * @p dataFlags parameter can contain @ref DataFlag::Mutable to - * indicate the external data can be modified, and is expected to *not* - * have @ref DataFlag::Owned set. + * Equivalent to calling @ref ImageData(PixelStorage, PixelFormat, const VectorTypeFor&, DataFlags, Containers::ArrayView, ImageFlags, const void*) + * with default-constructed @ref PixelStorage. */ explicit ImageData(PixelFormat format, const VectorTypeFor& size, DataFlags dataFlags, Containers::ArrayView data, ImageFlags flags = {}, const void* importerState = nullptr) noexcept; @@ -552,11 +549,8 @@ template class ImageData { * @param importerState Importer-specific state * @m_since_latest * - * Compared to @ref ImageData(CompressedPixelFormat, const VectorTypeFor&, Containers::Array&&, ImageFlags, const void*) - * creates an instance that doesn't own the passed data. The - * @p dataFlags parameter can contain @ref DataFlag::Mutable to - * indicate the external data can be modified, and is expected to *not* - * have @ref DataFlag::Owned set. + * Equivalent to calling @ref ImageData(CompressedPixelStorage, CompressedPixelFormat, const VectorTypeFor&, DataFlags, Containers::ArrayView, ImageFlags, const void*) + * with default-constructed @ref CompressedPixelStorage. */ explicit ImageData(CompressedPixelFormat format, const VectorTypeFor& size, DataFlags dataFlags, Containers::ArrayView data, ImageFlags flags = {}, const void* importerState = nullptr) noexcept;