Browse Source

Adapted to Magnum changes.

Shorter lines, yay!
pull/34/head
Vladimír Vondruš 13 years ago
parent
commit
089ec23c77
  1. 19
      src/Plugins/TgaImageConverter/Test/TgaImageConverterTest.cpp
  2. 13
      src/Plugins/TgaImageConverter/TgaImageConverter.cpp
  3. 6
      src/Plugins/TgaImageConverter/TgaImageConverter.h
  4. 23
      src/Plugins/TgaImporter/Test/TgaImporterTest.cpp
  5. 15
      src/Plugins/TgaImporter/TgaImporter.cpp

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

@ -27,6 +27,7 @@
#include <TestSuite/Tester.h>
#include <Utility/Directory.h>
#include <Image.h>
#include <ImageFormat.h>
#include <Trade/ImageData.h>
#include <TgaImageConverter/TgaImageConverter.h>
#include <TgaImporter/TgaImporter.h>
@ -49,7 +50,7 @@ class TgaImageConverterTest: public Corrade::TestSuite::Tester {
};
namespace {
const Image2D original({2, 3}, Image2D::Format::BGR, Image2D::Type::UnsignedByte, new char[18] {
const Image2D original({2, 3}, ImageFormat::BGR, ImageType::UnsignedByte, new char[18] {
1, 2, 3, 2, 3, 4,
3, 4, 5, 4, 5, 6,
5, 6, 7, 6, 7, 8
@ -65,7 +66,7 @@ TgaImageConverterTest::TgaImageConverterTest() {
}
void TgaImageConverterTest::wrongFormat() {
Image2D image({}, Image2D::Format::RG, Image2D::Type::UnsignedByte, nullptr);
Image2D image({}, ImageFormat::RG, ImageType::UnsignedByte, nullptr);
std::ostringstream out;
Error::setOutput(&out);
@ -73,11 +74,11 @@ void TgaImageConverterTest::wrongFormat() {
const unsigned char* data;
std::tie(data, std::ignore) = TgaImageConverter().convertToData(&image);
CORRADE_VERIFY(!data);
CORRADE_COMPARE(out.str(), "Trade::TgaImageConverter::TgaImageConverter::convertToData(): unsupported image format AbstractImage::Format::RG\n");
CORRADE_COMPARE(out.str(), "Trade::TgaImageConverter::TgaImageConverter::convertToData(): unsupported image format ImageFormat::RG\n");
}
void TgaImageConverterTest::wrongType() {
Image2D image({}, Image2D::Format::Red, Image2D::Type::Float, nullptr);
Image2D image({}, ImageFormat::Red, ImageType::Float, nullptr);
std::ostringstream out;
Error::setOutput(&out);
@ -85,7 +86,7 @@ void TgaImageConverterTest::wrongType() {
const unsigned char* data;
std::tie(data, std::ignore) = TgaImageConverter().convertToData(&image);
CORRADE_VERIFY(!data);
CORRADE_COMPARE(out.str(), "Trade::TgaImageConverter::TgaImageConverter::convertToData(): unsupported image type AbstractImage::Type::Float\n");
CORRADE_COMPARE(out.str(), "Trade::TgaImageConverter::TgaImageConverter::convertToData(): unsupported image type ImageType::Float\n");
}
void TgaImageConverterTest::data() {
@ -99,8 +100,8 @@ void TgaImageConverterTest::data() {
CORRADE_VERIFY(converted);
CORRADE_COMPARE(converted->size(), Vector2i(2, 3));
CORRADE_COMPARE(converted->format(), Trade::ImageData2D::Format::BGR);
CORRADE_COMPARE(converted->type(), Trade::ImageData2D::Type::UnsignedByte);
CORRADE_COMPARE(converted->format(), ImageFormat::BGR);
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));
}
@ -116,8 +117,8 @@ void TgaImageConverterTest::file() {
CORRADE_VERIFY(converted);
CORRADE_COMPARE(converted->size(), Vector2i(2, 3));
CORRADE_COMPARE(converted->format(), Trade::ImageData2D::Format::BGR);
CORRADE_COMPARE(converted->type(), Trade::ImageData2D::Type::UnsignedByte);
CORRADE_COMPARE(converted->format(), ImageFormat::BGR);
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));

13
src/Plugins/TgaImageConverter/TgaImageConverter.cpp

@ -27,6 +27,7 @@
#include <fstream>
#include <tuple>
#include <Image.h>
#include <ImageFormat.h>
#include "TgaImporter/TgaHeader.h"
@ -41,26 +42,26 @@ TgaImageConverter::Features TgaImageConverter::features() const {
}
std::pair<const unsigned char*, std::size_t> TgaImageConverter::convertToData(const Image2D* const image) const {
if(image->format() != AbstractImage::Format::BGR &&
image->format() != AbstractImage::Format::BGRA &&
image->format() != AbstractImage::Format::Red) {
if(image->format() != ImageFormat::BGR &&
image->format() != ImageFormat::BGRA &&
image->format() != ImageFormat::Red) {
Error() << "Trade::TgaImageConverter::TgaImageConverter::convertToData(): unsupported image format" << image->format();
return {nullptr, 0};
}
if(image->type() != AbstractImage::Type::UnsignedByte) {
if(image->type() != ImageType::UnsignedByte) {
Error() << "Trade::TgaImageConverter::TgaImageConverter::convertToData(): unsupported image type" << image->type();
return {nullptr, 0};
}
/* Initialize data buffer */
const UnsignedByte pixelSize = Image2D::pixelSize(image->format(), image->type());
const UnsignedByte pixelSize = image->pixelSize();
const std::size_t size = sizeof(TgaImporter::TgaHeader) + pixelSize*image->size().product();
unsigned char* data = new unsigned char[size]();
/* Fill header */
auto header = reinterpret_cast<TgaImporter::TgaHeader*>(data);
header->imageType = image->format() == AbstractImage::Format::Red ? 3 : 2;
header->imageType = image->format() == ImageFormat::Red ? 3 : 2;
header->bpp = pixelSize*8;
header->width = image->size().x();
header->height = image->size().y();

6
src/Plugins/TgaImageConverter/TgaImageConverter.h

@ -35,9 +35,9 @@ namespace Magnum { namespace Trade { namespace TgaImageConverter {
/**
@brief TGA image converter
Supports images with format @ref AbstractImage::Format "AbstractImage::Format::BGR",
@ref AbstractImage::Format "AbstractImage::Format::BGRA" or @ref AbstractImage::Format "AbstractImage::Format::Red"
and type @ref AbstractImage::Type "AbstractImage::Type::UnsignedByte".
Supports images with format @ref ImageFormat "ImageFormat::BGR",
@ref ImageFormat "ImageFormat::BGRA" or @ref ImageFormat "ImageFormat::Red" and
type @ref ImageType "ImageType::UnsignedByte".
*/
class TgaImageConverter: public AbstractImageConverter {
public:

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

@ -25,6 +25,7 @@
#include <sstream>
#include <TestSuite/Tester.h>
#include <Utility/Directory.h>
#include <ImageFormat.h>
#include <Trade/ImageData.h>
#include "TgaImporter/TgaImporter.h"
@ -145,12 +146,12 @@ void TgaImporterTest::colorBits24() {
Trade::ImageData2D* image = importer.image2D(0);
CORRADE_VERIFY(image);
#ifndef MAGNUM_TARGET_GLES
CORRADE_COMPARE(image->format(), Trade::ImageData2D::Format::BGR);
CORRADE_COMPARE(image->format(), ImageFormat::BGR);
#else
CORRADE_COMPARE(image->format(), Trade::ImageData2D::Format::RGB);
CORRADE_COMPARE(image->format(), ImageFormat::RGB);
#endif
CORRADE_COMPARE(image->size(), Vector2i(2, 3));
CORRADE_COMPARE(image->type(), Trade::ImageData2D::Type::UnsignedByte);
CORRADE_COMPARE(image->type(), ImageType::UnsignedByte);
CORRADE_COMPARE(std::string(reinterpret_cast<const char*>(image->data()), 2*3*3), std::string(pixels, 2*3*3));
delete image;
@ -178,12 +179,12 @@ void TgaImporterTest::colorBits32() {
Trade::ImageData2D* image = importer.image2D(0);
CORRADE_VERIFY(image);
#ifndef MAGNUM_TARGET_GLES
CORRADE_COMPARE(image->format(), Trade::ImageData2D::Format::BGRA);
CORRADE_COMPARE(image->format(), ImageFormat::BGRA);
#else
CORRADE_COMPARE(image->format(), Trade::ImageData2D::Format::RGBA);
CORRADE_COMPARE(image->format(), ImageFormat::RGBA);
#endif
CORRADE_COMPARE(image->size(), Math::Vector2<GLsizei>(2, 3));
CORRADE_COMPARE(image->type(), Trade::ImageData2D::Type::UnsignedByte);
CORRADE_COMPARE(image->size(), Vector2i(2, 3));
CORRADE_COMPARE(image->type(), ImageType::UnsignedByte);
CORRADE_COMPARE(std::string(reinterpret_cast<const char*>(image->data()), 2*3*3), std::string(pixels, 2*3*3));
delete image;
@ -201,9 +202,9 @@ void TgaImporterTest::grayscaleBits8() {
Trade::ImageData2D* image = importer.image2D(0);
CORRADE_VERIFY(image);
CORRADE_COMPARE(image->format(), Trade::ImageData2D::Format::Red);
CORRADE_COMPARE(image->format(), ImageFormat::Red);
CORRADE_COMPARE(image->size(), Vector2i(2, 3));
CORRADE_COMPARE(image->type(), Trade::ImageData2D::Type::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));
}
@ -230,9 +231,9 @@ void TgaImporterTest::file() {
Trade::ImageData2D* image = importer.image2D(0);
CORRADE_VERIFY(image);
CORRADE_COMPARE(image->format(), Trade::ImageData2D::Format::Red);
CORRADE_COMPARE(image->format(), ImageFormat::Red);
CORRADE_COMPARE(image->size(), Vector2i(2, 3));
CORRADE_COMPARE(image->type(), Trade::ImageData2D::Type::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));
}

15
src/Plugins/TgaImporter/TgaImporter.cpp

@ -29,6 +29,7 @@
#include <algorithm>
#include <Utility/Endianness.h>
#include <Math/Vector2.h>
#include <ImageFormat.h>
#include <Swizzle.h>
#include <Trade/ImageData.h>
@ -96,7 +97,7 @@ ImageData2D* TgaImporter::image2D(UnsignedInt id) {
header.height = Endianness::littleEndian(header.height);
/* Image format */
ImageData2D::Format format;
ImageFormat format;
if(header.colorMapType != 0) {
Error() << "Trade::TgaImporter::TgaImporter::image2D(): paletted files are not supported";
return nullptr;
@ -107,16 +108,16 @@ ImageData2D* TgaImporter::image2D(UnsignedInt id) {
switch(header.bpp) {
case 24:
#ifndef MAGNUM_TARGET_GLES
format = ImageData2D::Format::BGR;
format = ImageFormat::BGR;
#else
format = ImageData2D::Format::RGB;
format = ImageFormat::RGB;
#endif
break;
case 32:
#ifndef MAGNUM_TARGET_GLES
format = ImageData2D::Format::BGRA;
format = ImageFormat::BGRA;
#else
format = ImageData2D::Format::RGBA;
format = ImageFormat::RGBA;
#endif
break;
default:
@ -126,7 +127,7 @@ ImageData2D* TgaImporter::image2D(UnsignedInt id) {
/* Grayscale */
} else if(header.imageType == 3) {
format = ImageData2D::Format::Red;
format = ImageFormat::Red;
if(header.bpp != 8) {
Error() << "Trade::TgaImporter::TgaImporter::image2D(): unsupported grayscale bits-per-pixel:" << header.bpp;
return nullptr;
@ -156,7 +157,7 @@ ImageData2D* TgaImporter::image2D(UnsignedInt id) {
}
#endif
return new ImageData2D(dimensions, format, ImageData2D::Type::UnsignedByte, buffer);
return new ImageData2D(dimensions, format, ImageType::UnsignedByte, buffer);
}
}}}

Loading…
Cancel
Save