Skip to content

Commit

Permalink
fixup! BasisImageConverter
Browse files Browse the repository at this point in the history
Signed-off-by: Squareys <squareys@googlemail.com>
  • Loading branch information
Squareys committed Aug 30, 2019
1 parent ef1d074 commit 9247d38
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 3 deletions.
19 changes: 16 additions & 3 deletions src/MagnumPlugins/BasisImageConverter/BasisImageConverter.cpp
Expand Up @@ -101,8 +101,21 @@ Containers::Array<char> BasisImageConverter::doExportToData(const ImageView2D& i
basis image from existing data as it is based on a std::vector */
params.m_source_images.emplace_back(image.size().x(), image.size().y());
const Containers::ArrayView<const char> imageData = image.data();
auto& basisImage = params.m_source_images.back();
std::memcpy(basisImage.get_ptr(), imageData, imageData.size());
basisu::image& basisImage = params.m_source_images.back();

/* basis image is always RGBA, fill in alpha if necessary */
if (image.format() == PixelFormat::RGB8Unorm) {
int i = 0;
for (auto& c : basisImage.get_pixels()) {
c.r = imageData[i];
c.g = imageData[i+1];
c.b = imageData[i+2];
c.a = 255;
i += 3;
}
} else {
std::memcpy(basisImage.get_ptr(), imageData, imageData.size());
}

basisu::basis_compressor basis;
basis.init(params);
Expand Down Expand Up @@ -146,7 +159,7 @@ Containers::Array<char> BasisImageConverter::doExportToData(const ImageView2D& i

const basisu::uint8_vec& out = basis.get_output_basis_file();

Containers::Array<char> fileData{out.size()};
Containers::Array<char> fileData{Containers::DefaultInit, out.size()};
std::copy(out.begin(), out.end(), fileData.data());
return fileData;
}
Expand Down
Expand Up @@ -133,6 +133,7 @@ void BasisImageConverterTest::rgb() {
CORRADE_SKIP("BasisImporter plugin not found, cannot test");

Containers::Pointer<AbstractImporter> importer = _importerManager.instantiate("BasisImporter");
importer->configuration().setValue("format", "Etc2");
CORRADE_VERIFY(importer->openData(data));
Containers::Optional<Trade::ImageData2D> converted = importer->image2D(0);
CORRADE_VERIFY(converted);
Expand Down

0 comments on commit 9247d38

Please sign in to comment.