Browse Source

Adapted to Magnum changes.

Removed redundant checks, hidden implementation to class privates.
pull/34/head
Vladimír Vondruš 13 years ago
parent
commit
4d69b63fb6
  1. 40
      src/Plugins/TgaImageConverter/Test/TgaImageConverterTest.cpp
  2. 44
      src/Plugins/TgaImageConverter/TgaImageConverter.cpp
  3. 6
      src/Plugins/TgaImageConverter/TgaImageConverter.h
  4. 2
      src/Plugins/TgaImageConverter/pluginRegistrationTgaImageConverter.cpp
  5. 29
      src/Plugins/TgaImporter/Test/TgaImporterTest.cpp
  6. 30
      src/Plugins/TgaImporter/TgaImporter.cpp
  7. 16
      src/Plugins/TgaImporter/TgaImporter.h
  8. 2
      src/Plugins/TgaImporter/pluginRegistrationTgaImporter.cpp

40
src/Plugins/TgaImageConverter/Test/TgaImageConverterTest.cpp

@ -24,6 +24,7 @@
#include <sstream> #include <sstream>
#include <tuple> #include <tuple>
#include <Containers/Array.h>
#include <TestSuite/Tester.h> #include <TestSuite/Tester.h>
#include <Utility/Directory.h> #include <Utility/Directory.h>
#include <Image.h> #include <Image.h>
@ -44,7 +45,6 @@ class TgaImageConverterTest: public TestSuite::Tester {
void wrongType(); void wrongType();
void data(); void data();
void file();
}; };
namespace { namespace {
@ -64,8 +64,7 @@ TgaImageConverterTest::TgaImageConverterTest() {
addTests({&TgaImageConverterTest::wrongFormat, addTests({&TgaImageConverterTest::wrongFormat,
&TgaImageConverterTest::wrongType, &TgaImageConverterTest::wrongType,
&TgaImageConverterTest::data, &TgaImageConverterTest::data});
&TgaImageConverterTest::file});
} }
void TgaImageConverterTest::wrongFormat() { void TgaImageConverterTest::wrongFormat() {
@ -74,8 +73,7 @@ void TgaImageConverterTest::wrongFormat() {
std::ostringstream out; std::ostringstream out;
Error::setOutput(&out); Error::setOutput(&out);
const unsigned char* data; const auto data = TgaImageConverter().exportToData(&image);
std::tie(data, std::ignore) = TgaImageConverter().convertToData(&image);
CORRADE_VERIFY(!data); CORRADE_VERIFY(!data);
CORRADE_COMPARE(out.str(), "Trade::TgaImageConverter::TgaImageConverter::convertToData(): unsupported image format ImageFormat::RG\n"); CORRADE_COMPARE(out.str(), "Trade::TgaImageConverter::TgaImageConverter::convertToData(): unsupported image format ImageFormat::RG\n");
} }
@ -86,19 +84,16 @@ void TgaImageConverterTest::wrongType() {
std::ostringstream out; std::ostringstream out;
Error::setOutput(&out); Error::setOutput(&out);
const unsigned char* data; const auto data = TgaImageConverter().exportToData(&image);
std::tie(data, std::ignore) = TgaImageConverter().convertToData(&image);
CORRADE_VERIFY(!data); CORRADE_VERIFY(!data);
CORRADE_COMPARE(out.str(), "Trade::TgaImageConverter::TgaImageConverter::convertToData(): unsupported image type ImageType::Float\n"); CORRADE_COMPARE(out.str(), "Trade::TgaImageConverter::TgaImageConverter::convertToData(): unsupported image type ImageType::Float\n");
} }
void TgaImageConverterTest::data() { void TgaImageConverterTest::data() {
const unsigned char* data; const auto data = TgaImageConverter().exportToData(&original);
std::size_t size;
std::tie(data, size) = TgaImageConverter().convertToData(&original);
TgaImporter::TgaImporter importer; TgaImporter::TgaImporter importer;
CORRADE_VERIFY(importer.openData(data, size)); CORRADE_VERIFY(importer.openData(data));
Trade::ImageData2D* converted = importer.image2D(0); Trade::ImageData2D* converted = importer.image2D(0);
CORRADE_VERIFY(converted); CORRADE_VERIFY(converted);
@ -113,29 +108,6 @@ void TgaImageConverterTest::data() {
std::string(reinterpret_cast<const char*>(original.data()), 2*3*3)); std::string(reinterpret_cast<const char*>(original.data()), 2*3*3));
} }
void TgaImageConverterTest::file() {
const std::string filename = Utility::Directory::join(TGAIMAGECONVERTER_TEST_DIR, "file.tga");
Utility::Directory::rm(filename);
CORRADE_VERIFY(TgaImageConverter().convertToFile(&original, filename));
TgaImporter::TgaImporter importer;
CORRADE_VERIFY(importer.openFile(filename));
Trade::ImageData2D* converted = importer.image2D(0);
CORRADE_VERIFY(converted);
CORRADE_COMPARE(converted->size(), Vector2i(2, 3));
#ifndef MAGNUM_TARGET_GLES
CORRADE_COMPARE(converted->format(), ImageFormat::BGR);
#else
CORRADE_COMPARE(converted->format(), ImageFormat::RGB);
#endif
CORRADE_COMPARE(converted->type(), ImageType::UnsignedByte);
CORRADE_COMPARE(std::string(reinterpret_cast<const char*>(converted->data()), 2*3*3),
std::string(reinterpret_cast<const char*>(original.data()), 2*3*3));
Utility::Directory::rm(filename);
}
}}}} }}}}
CORRADE_TEST_MAIN(Magnum::Trade::TgaImageConverter::Test::TgaImageConverterTest) CORRADE_TEST_MAIN(Magnum::Trade::TgaImageConverter::Test::TgaImageConverterTest)

44
src/Plugins/TgaImageConverter/TgaImageConverter.cpp

@ -26,6 +26,7 @@
#include <fstream> #include <fstream>
#include <tuple> #include <tuple>
#include <Containers/Array.h>
#include <Utility/Endianness.h> #include <Utility/Endianness.h>
#include <Image.h> #include <Image.h>
#include <ImageFormat.h> #include <ImageFormat.h>
@ -43,11 +44,9 @@ TgaImageConverter::TgaImageConverter() = default;
TgaImageConverter::TgaImageConverter(PluginManager::AbstractManager* manager, std::string plugin): AbstractImageConverter(manager, std::move(plugin)) {} TgaImageConverter::TgaImageConverter(PluginManager::AbstractManager* manager, std::string plugin): AbstractImageConverter(manager, std::move(plugin)) {}
TgaImageConverter::Features TgaImageConverter::features() const { auto TgaImageConverter::doFeatures() const -> Features { return Feature::ConvertData; }
return Feature::ConvertToData|Feature::ConvertToFile;
}
std::pair<const unsigned char*, std::size_t> TgaImageConverter::convertToData(const Image2D* const image) const { Containers::Array<unsigned char> TgaImageConverter::doExportToData(const Image2D* const image) const {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
if(image->format() != ImageFormat::BGR && if(image->format() != ImageFormat::BGR &&
image->format() != ImageFormat::BGRA && image->format() != ImageFormat::BGRA &&
@ -59,62 +58,41 @@ std::pair<const unsigned char*, std::size_t> TgaImageConverter::convertToData(co
#endif #endif
{ {
Error() << "Trade::TgaImageConverter::TgaImageConverter::convertToData(): unsupported image format" << image->format(); Error() << "Trade::TgaImageConverter::TgaImageConverter::convertToData(): unsupported image format" << image->format();
return {nullptr, 0}; return nullptr;
} }
if(image->type() != ImageType::UnsignedByte) { if(image->type() != ImageType::UnsignedByte) {
Error() << "Trade::TgaImageConverter::TgaImageConverter::convertToData(): unsupported image type" << image->type(); Error() << "Trade::TgaImageConverter::TgaImageConverter::convertToData(): unsupported image type" << image->type();
return {nullptr, 0}; return nullptr;
} }
/* Initialize data buffer */ /* Initialize data buffer */
const UnsignedByte pixelSize = image->pixelSize(); const UnsignedByte pixelSize = image->pixelSize();
const std::size_t size = sizeof(TgaImporter::TgaHeader) + pixelSize*image->size().product(); auto data = Containers::Array<unsigned char>::zeroInitialized(sizeof(TgaImporter::TgaHeader) + pixelSize*image->size().product());
unsigned char* data = new unsigned char[size]();
/* Fill header */ /* Fill header */
auto header = reinterpret_cast<TgaImporter::TgaHeader*>(data); auto header = reinterpret_cast<TgaImporter::TgaHeader*>(data.begin());
header->imageType = image->format() == ImageFormat::Red ? 3 : 2; header->imageType = image->format() == ImageFormat::Red ? 3 : 2;
header->bpp = pixelSize*8; header->bpp = pixelSize*8;
header->width = Utility::Endianness::littleEndian(image->size().x()); header->width = Utility::Endianness::littleEndian(image->size().x());
header->height = Utility::Endianness::littleEndian(image->size().y()); header->height = Utility::Endianness::littleEndian(image->size().y());
/* Fill data */ /* Fill data */
std::copy(image->data(), image->data()+pixelSize*image->size().product(), data+sizeof(TgaImporter::TgaHeader)); std::copy(image->data(), image->data()+pixelSize*image->size().product(), data.begin()+sizeof(TgaImporter::TgaHeader));
#ifdef MAGNUM_TARGET_GLES #ifdef MAGNUM_TARGET_GLES
if(image->format() == ImageFormat::RGB) { if(image->format() == ImageFormat::RGB) {
auto pixels = reinterpret_cast<Math::Vector3<UnsignedByte>*>(data+sizeof(TgaImporter::TgaHeader)); auto pixels = reinterpret_cast<Math::Vector3<UnsignedByte>*>(data.begin()+sizeof(TgaImporter::TgaHeader));
std::transform(pixels, pixels + image->size().product(), pixels, std::transform(pixels, pixels + image->size().product(), pixels,
[](Math::Vector3<UnsignedByte> pixel) { return swizzle<'b', 'g', 'r'>(pixel); }); [](Math::Vector3<UnsignedByte> pixel) { return swizzle<'b', 'g', 'r'>(pixel); });
} else if(image->format() == ImageFormat::RGBA) { } else if(image->format() == ImageFormat::RGBA) {
auto pixels = reinterpret_cast<Math::Vector4<UnsignedByte>*>(data+sizeof(TgaImporter::TgaHeader)); auto pixels = reinterpret_cast<Math::Vector4<UnsignedByte>*>(data.begin()+sizeof(TgaImporter::TgaHeader));
std::transform(pixels, pixels + image->size().product(), pixels, std::transform(pixels, pixels + image->size().product(), pixels,
[](Math::Vector4<UnsignedByte> pixel) { return swizzle<'b', 'g', 'r', 'a'>(pixel); }); [](Math::Vector4<UnsignedByte> pixel) { return swizzle<'b', 'g', 'r', 'a'>(pixel); });
} }
#endif #endif
return {data, size}; return std::move(data);
}
bool TgaImageConverter::convertToFile(const Image2D* const image, const std::string& filename) const {
/* Convert the image */
const unsigned char* data;
std::size_t size;
std::tie(data, size) = convertToData(image);
if(!data) return false;
/* Open file */
std::ofstream out(filename.c_str());
if(!out.good()) {
delete[] data;
return false;
}
/* Write contents */
out.write(reinterpret_cast<const char*>(data), size);
delete[] data;
return true;
} }
}}} }}}

6
src/Plugins/TgaImageConverter/TgaImageConverter.h

@ -47,9 +47,9 @@ class TgaImageConverter: public AbstractImageConverter {
/** @brief Plugin manager constructor */ /** @brief Plugin manager constructor */
explicit TgaImageConverter(PluginManager::AbstractManager* manager, std::string plugin); explicit TgaImageConverter(PluginManager::AbstractManager* manager, std::string plugin);
Features features() const override; private:
std::pair<const unsigned char*, std::size_t> convertToData(const Image2D* const image) const override; Features doFeatures() const override;
bool convertToFile(const Image2D* const image, const std::string& filename) const override; Containers::Array<unsigned char> doExportToData(const Image2D* const image) const override;
}; };
}}} }}}

2
src/Plugins/TgaImageConverter/pluginRegistrationTgaImageConverter.cpp

@ -25,4 +25,4 @@
#include "TgaImageConverter.h" #include "TgaImageConverter.h"
CORRADE_PLUGIN_REGISTER(TgaImageConverter, Magnum::Trade::TgaImageConverter::TgaImageConverter, CORRADE_PLUGIN_REGISTER(TgaImageConverter, Magnum::Trade::TgaImageConverter::TgaImageConverter,
"cz.mosra.magnum.Trade.AbstractImageConverter/0.1") "cz.mosra.magnum.Trade.AbstractImageConverter/0.2")

29
src/Plugins/TgaImporter/Test/TgaImporterTest.cpp

@ -23,6 +23,7 @@
*/ */
#include <sstream> #include <sstream>
#include <Containers/Array.h>
#include <TestSuite/Tester.h> #include <TestSuite/Tester.h>
#include <Utility/Directory.h> #include <Utility/Directory.h>
#include <ImageFormat.h> #include <ImageFormat.h>
@ -80,7 +81,7 @@ void TgaImporterTest::openInexistent() {
void TgaImporterTest::openShort() { void TgaImporterTest::openShort() {
TgaImporter importer; TgaImporter importer;
const char data[] = { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; const unsigned char data[] = { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
CORRADE_VERIFY(importer.openData(data)); CORRADE_VERIFY(importer.openData(data));
std::ostringstream debug; std::ostringstream debug;
@ -91,7 +92,7 @@ void TgaImporterTest::openShort() {
void TgaImporterTest::paletted() { void TgaImporterTest::paletted() {
TgaImporter importer; TgaImporter importer;
const char data[] = { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; const unsigned char data[] = { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
CORRADE_VERIFY(importer.openData(data)); CORRADE_VERIFY(importer.openData(data));
std::ostringstream debug; std::ostringstream debug;
@ -102,7 +103,7 @@ void TgaImporterTest::paletted() {
void TgaImporterTest::compressed() { void TgaImporterTest::compressed() {
TgaImporter importer; TgaImporter importer;
const char data[] = { 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; const unsigned char data[] = { 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
CORRADE_VERIFY(importer.openData(data)); CORRADE_VERIFY(importer.openData(data));
std::ostringstream debug; std::ostringstream debug;
@ -113,7 +114,7 @@ void TgaImporterTest::compressed() {
void TgaImporterTest::colorBits16() { void TgaImporterTest::colorBits16() {
TgaImporter importer; TgaImporter importer;
const char data[] = { 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0 }; const unsigned char data[] = { 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0 };
CORRADE_VERIFY(importer.openData(data)); CORRADE_VERIFY(importer.openData(data));
std::ostringstream debug; std::ostringstream debug;
@ -124,14 +125,14 @@ void TgaImporterTest::colorBits16() {
void TgaImporterTest::colorBits24() { void TgaImporterTest::colorBits24() {
TgaImporter importer; TgaImporter importer;
const char data[] = { const unsigned char data[] = {
0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 24, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 24, 0,
1, 2, 3, 2, 3, 4, 1, 2, 3, 2, 3, 4,
3, 4, 5, 4, 5, 6, 3, 4, 5, 4, 5, 6,
5, 6, 7, 6, 7, 8 5, 6, 7, 6, 7, 8
}; };
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
const char* pixels = data + 18; const char* pixels = reinterpret_cast<const char*>(data) + 18;
#else #else
const char pixels[] = { const char pixels[] = {
3, 2, 1, 4, 3, 2, 3, 2, 1, 4, 3, 2,
@ -157,14 +158,14 @@ void TgaImporterTest::colorBits24() {
void TgaImporterTest::colorBits32() { void TgaImporterTest::colorBits32() {
TgaImporter importer; TgaImporter importer;
const char data[] = { const unsigned char data[] = {
0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 32, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 32, 0,
1, 2, 3, 1, 2, 3, 4, 1, 1, 2, 3, 1, 2, 3, 4, 1,
3, 4, 5, 1, 4, 5, 6, 1, 3, 4, 5, 1, 4, 5, 6, 1,
5, 6, 7, 1, 6, 7, 8, 1 5, 6, 7, 1, 6, 7, 8, 1
}; };
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
const char* pixels = data + 18; const char* pixels = reinterpret_cast<const char*>(data) + 18;
#else #else
const char pixels[] = { const char pixels[] = {
3, 2, 1, 1, 4, 3, 2, 1, 3, 2, 1, 1, 4, 3, 2, 1,
@ -190,7 +191,7 @@ void TgaImporterTest::colorBits32() {
void TgaImporterTest::grayscaleBits8() { void TgaImporterTest::grayscaleBits8() {
TgaImporter importer; TgaImporter importer;
const char data[] = { const unsigned char data[] = {
0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 8, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 8, 0,
1, 2, 1, 2,
3, 4, 3, 4,
@ -203,12 +204,13 @@ void TgaImporterTest::grayscaleBits8() {
CORRADE_COMPARE(image->format(), ImageFormat::Red); CORRADE_COMPARE(image->format(), ImageFormat::Red);
CORRADE_COMPARE(image->size(), Vector2i(2, 3)); CORRADE_COMPARE(image->size(), Vector2i(2, 3));
CORRADE_COMPARE(image->type(), ImageType::UnsignedByte); CORRADE_COMPARE(image->type(), ImageType::UnsignedByte);
CORRADE_COMPARE(std::string(reinterpret_cast<const char*>(image->data()), 2*3), std::string(data + 18, 2*3)); CORRADE_COMPARE(std::string(reinterpret_cast<const char*>(image->data()), 2*3),
std::string(reinterpret_cast<const char*>(data) + 18, 2*3));
} }
void TgaImporterTest::grayscaleBits16() { void TgaImporterTest::grayscaleBits16() {
TgaImporter importer; TgaImporter importer;
const char data[] = { 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0 }; const unsigned char data[] = { 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0 };
CORRADE_VERIFY(importer.openData(data)); CORRADE_VERIFY(importer.openData(data));
std::ostringstream debug; std::ostringstream debug;
@ -219,7 +221,7 @@ void TgaImporterTest::grayscaleBits16() {
void TgaImporterTest::file() { void TgaImporterTest::file() {
TgaImporter importer; TgaImporter importer;
const char data[] = { const unsigned char data[] = {
0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 8, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 8, 0,
1, 2, 1, 2,
3, 4, 3, 4,
@ -232,7 +234,8 @@ void TgaImporterTest::file() {
CORRADE_COMPARE(image->format(), ImageFormat::Red); CORRADE_COMPARE(image->format(), ImageFormat::Red);
CORRADE_COMPARE(image->size(), Vector2i(2, 3)); CORRADE_COMPARE(image->size(), Vector2i(2, 3));
CORRADE_COMPARE(image->type(), ImageType::UnsignedByte); CORRADE_COMPARE(image->type(), ImageType::UnsignedByte);
CORRADE_COMPARE(std::string(reinterpret_cast<const char*>(image->data()), 2*3), std::string(data + 18, 2*3)); CORRADE_COMPARE(std::string(reinterpret_cast<const char*>(image->data()), 2*3),
std::string(reinterpret_cast<const char*>(data) + 18, 2*3));
} }
}}}} }}}}

30
src/Plugins/TgaImporter/TgaImporter.cpp

@ -27,6 +27,7 @@
#include <fstream> #include <fstream>
#include <sstream> #include <sstream>
#include <Utility/Endianness.h> #include <Utility/Endianness.h>
#include <Containers/Array.h>
#include <ImageFormat.h> #include <ImageFormat.h>
#include <Trade/ImageData.h> #include <Trade/ImageData.h>
@ -45,41 +46,30 @@ TgaImporter::TgaImporter(PluginManager::AbstractManager* manager, std::string pl
TgaImporter::~TgaImporter() { close(); } TgaImporter::~TgaImporter() { close(); }
TgaImporter::Features TgaImporter::features() const { auto TgaImporter::doFeatures() const -> Features { return Feature::OpenData; }
return Feature::OpenData|Feature::OpenFile;
}
bool TgaImporter::TgaImporter::openData(const void* const data, const std::size_t size) { bool TgaImporter::doIsOpened() const { return in; }
close();
in = new std::istringstream(std::string(reinterpret_cast<const char*>(data), size)); void TgaImporter::doOpenData(const Containers::ArrayReference<const unsigned char> data) {
return true; in = new std::istringstream(std::string(reinterpret_cast<const char*>(data.begin()), data.size()));
} }
bool TgaImporter::TgaImporter::openFile(const std::string& filename) { void TgaImporter::doOpenFile(const std::string& filename) {
close();
in = new std::ifstream(filename.c_str()); in = new std::ifstream(filename.c_str());
if(in->good()) return true; if(in->good()) return;
Error() << "Trade::TgaImporter::TgaImporter::openFile(): cannot open file" << filename; Error() << "Trade::TgaImporter::TgaImporter::openFile(): cannot open file" << filename;
close(); close();
return false;
} }
void TgaImporter::close() { void TgaImporter::doClose() {
delete in; delete in;
in = nullptr; in = nullptr;
} }
UnsignedInt TgaImporter::TgaImporter::image2DCount() const { UnsignedInt TgaImporter::doImage2DCount() const { return 1; }
return in ? 1 : 0;
}
ImageData2D* TgaImporter::image2D(UnsignedInt id) {
CORRADE_ASSERT(in, "Trade::TgaImporter::TgaImporter::image2D(): no file opened", nullptr);
CORRADE_ASSERT(id == 0, "Trade::TgaImporter::TgaImporter::image2D(): wrong image ID", nullptr);
ImageData2D* TgaImporter::doImage2D(UnsignedInt) {
/* Check if the file is long enough */ /* Check if the file is long enough */
in->seekg(0, std::istream::end); in->seekg(0, std::istream::end);
std::streampos filesize = in->tellg(); std::streampos filesize = in->tellg();

16
src/Plugins/TgaImporter/TgaImporter.h

@ -61,16 +61,14 @@ class MAGNUM_TGAIMPORTER_EXPORT TgaImporter: public AbstractImporter {
virtual ~TgaImporter(); virtual ~TgaImporter();
Features features() const override;
bool openData(const void* const data, const std::size_t size) override;
using AbstractImporter::openData;
bool openFile(const std::string& filename) override;
void close() override;
UnsignedInt image2DCount() const override;
ImageData2D* image2D(UnsignedInt id) override;
private: private:
bool MAGNUM_TGAIMPORTER_LOCAL open(std::istream& in); Features MAGNUM_TGAIMPORTER_LOCAL doFeatures() const override;
bool MAGNUM_TGAIMPORTER_LOCAL doIsOpened() const override;
void MAGNUM_TGAIMPORTER_LOCAL doOpenData(Containers::ArrayReference<const unsigned char> data) override;
void MAGNUM_TGAIMPORTER_LOCAL doOpenFile(const std::string& filename) override;
void MAGNUM_TGAIMPORTER_LOCAL doClose() override;
UnsignedInt MAGNUM_TGAIMPORTER_LOCAL doImage2DCount() const override;
ImageData2D MAGNUM_TGAIMPORTER_LOCAL * doImage2D(UnsignedInt id) override;
std::istream* in; std::istream* in;
}; };

2
src/Plugins/TgaImporter/pluginRegistrationTgaImporter.cpp

@ -25,4 +25,4 @@
#include "TgaImporter.h" #include "TgaImporter.h"
CORRADE_PLUGIN_REGISTER(TgaImporter, Magnum::Trade::TgaImporter::TgaImporter, CORRADE_PLUGIN_REGISTER(TgaImporter, Magnum::Trade::TgaImporter::TgaImporter,
"cz.mosra.magnum.Trade.AbstractImporter/0.2.1") "cz.mosra.magnum.Trade.AbstractImporter/0.3")

Loading…
Cancel
Save