Browse Source

Split the OpenGL layer out, pt 18: adapted Trade.

pull/233/head
Vladimír Vondruš 8 years ago
parent
commit
f8ec9c56f8
  1. 1
      src/Magnum/Trade/AbstractImageConverter.h
  2. 1
      src/Magnum/Trade/MeshData2D.h
  3. 1
      src/Magnum/Trade/MeshData3D.h
  4. 10
      src/Magnum/Trade/Test/AbstractImageConverterTest.cpp
  5. 2
      src/Magnum/Trade/Test/SceneDataTest.cpp
  6. 48
      src/Magnum/Trade/Test/TextureDataTest.cpp
  7. 16
      src/Magnum/Trade/TextureData.h
  8. 2
      src/Magnum/Trade/imageconverter.cpp

1
src/Magnum/Trade/AbstractImageConverter.h

@ -33,6 +33,7 @@
#include <Corrade/PluginManager/AbstractManagingPlugin.h>
#include "Magnum/Magnum.h"
#include "Magnum/GL/GL.h"
#include "Magnum/Trade/Trade.h"
#include "Magnum/Trade/visibility.h"

1
src/Magnum/Trade/MeshData2D.h

@ -32,6 +32,7 @@
#include <vector>
#include "Magnum/Magnum.h"
#include "Magnum/GL/GL.h"
#include "Magnum/Trade/visibility.h"
namespace Magnum { namespace Trade {

1
src/Magnum/Trade/MeshData3D.h

@ -32,6 +32,7 @@
#include <vector>
#include "Magnum/Magnum.h"
#include "Magnum/GL/GL.h"
#include "Magnum/Trade/visibility.h"
namespace Magnum { namespace Trade {

10
src/Magnum/Trade/Test/AbstractImageConverterTest.cpp

@ -74,7 +74,7 @@ void AbstractImageConverterTest::exportToFile() {
/* doExportToFile() should call doExportToData() */
DataExporter exporter;
ImageView2D image(PixelFormat::RGBA, PixelType::UnsignedByte, {0xfe, 0xed}, {nullptr, 0xfe*0xed*4});
ImageView2D image(PixelFormat::RGBA8Unorm, {0xfe, 0xed}, {nullptr, 0xfe*0xed*4});
CORRADE_VERIFY(exporter.exportToFile(image, Utility::Directory::join(TRADE_TEST_OUTPUT_DIR, "image.out")));
CORRADE_COMPARE_AS(Utility::Directory::join(TRADE_TEST_OUTPUT_DIR, "image.out"),
"\xFE\xED", TestSuite::Compare::FileToString);
@ -102,13 +102,13 @@ void AbstractImageConverterTest::exportToDataImageData() {
{
/* Should get "B" when converting uncompressed */
ImageData2D image{PixelFormat::RGBA, PixelType::UnsignedByte, {}, nullptr};
ImageData2D image{PixelFormat::RGBA8Unorm, {}, nullptr};
CORRADE_COMPARE_AS(exporter.exportToData(image),
(Containers::Array<char>{Containers::InPlaceInit, {'B'}}),
TestSuite::Compare::Container);
} {
/* Should get "C" when converting compressed */
ImageData2D image{CompressedPixelFormat::RGBAS3tcDxt1, {}, nullptr};
ImageData2D image{CompressedPixelFormat::Bc1RGBUnorm, {}, nullptr};
CORRADE_COMPARE_AS(exporter.exportToData(image),
(Containers::Array<char>{Containers::InPlaceInit, {'C'}}),
TestSuite::Compare::Container);
@ -120,13 +120,13 @@ void AbstractImageConverterTest::exportToFileImageData() {
{
/* Should get "B" when converting uncompressed */
ImageData2D image{PixelFormat::RGBA, PixelType::UnsignedByte, {}, nullptr};
ImageData2D image{PixelFormat::RGBA16F, {}, nullptr};
CORRADE_VERIFY(exporter.exportToFile(image, Utility::Directory::join(TRADE_TEST_OUTPUT_DIR, "image.out")));
CORRADE_COMPARE_AS(Utility::Directory::join(TRADE_TEST_OUTPUT_DIR, "image.out"),
"B", TestSuite::Compare::FileToString);
} {
/* Should get "C" when converting compressed */
ImageData2D image{CompressedPixelFormat::RGBAS3tcDxt1, {}, nullptr};
ImageData2D image{CompressedPixelFormat::Bc2RGBAUnorm, {}, nullptr};
CORRADE_VERIFY(exporter.exportToFile(image, Utility::Directory::join(TRADE_TEST_OUTPUT_DIR, "image.out")));
CORRADE_COMPARE_AS(Utility::Directory::join(TRADE_TEST_OUTPUT_DIR, "image.out"),
"C", TestSuite::Compare::FileToString);

2
src/Magnum/Trade/Test/SceneDataTest.cpp

@ -25,8 +25,8 @@
#include <Corrade/TestSuite/Tester.h>
#include "Magnum/Trade/SceneData.h"
#include "Magnum/Magnum.h"
#include "Magnum/Trade/SceneData.h"
namespace Magnum { namespace Trade { namespace Test {

48
src/Magnum/Trade/Test/TextureDataTest.cpp

@ -52,18 +52,18 @@ TextureDataTest::TextureDataTest() {
void TextureDataTest::construct() {
const int a{};
const TextureData data{TextureData::Type::Cube,
Sampler::Filter::Linear,
Sampler::Filter::Nearest,
Sampler::Mipmap::Nearest,
{Sampler::Wrapping::Repeat, Sampler::Wrapping::ClampToEdge, Sampler::Wrapping::MirroredRepeat},
SamplerFilter::Linear,
SamplerFilter::Nearest,
SamplerMipmap::Nearest,
{SamplerWrapping::Repeat, SamplerWrapping::ClampToEdge, SamplerWrapping::MirroredRepeat},
42,
&a};
CORRADE_COMPARE(data.type(), TextureData::Type::Cube);
CORRADE_COMPARE(data.minificationFilter(), Sampler::Filter::Linear);
CORRADE_COMPARE(data.magnificationFilter(), Sampler::Filter::Nearest);
CORRADE_COMPARE(data.mipmapFilter(), Sampler::Mipmap::Nearest);
CORRADE_COMPARE(data.wrapping(), (Array3D<Sampler::Wrapping>{Sampler::Wrapping::Repeat, Sampler::Wrapping::ClampToEdge, Sampler::Wrapping::MirroredRepeat}));
CORRADE_COMPARE(data.minificationFilter(), SamplerFilter::Linear);
CORRADE_COMPARE(data.magnificationFilter(), SamplerFilter::Nearest);
CORRADE_COMPARE(data.mipmapFilter(), SamplerMipmap::Nearest);
CORRADE_COMPARE(data.wrapping(), (Array3D<SamplerWrapping>{SamplerWrapping::Repeat, SamplerWrapping::ClampToEdge, SamplerWrapping::MirroredRepeat}));
CORRADE_COMPARE(data.image(), 42);
CORRADE_COMPARE(data.importerState(), &a);
}
@ -76,38 +76,38 @@ void TextureDataTest::constructCopy() {
void TextureDataTest::constructMove() {
const int a{};
TextureData data{TextureData::Type::Cube,
Sampler::Filter::Linear,
Sampler::Filter::Nearest,
Sampler::Mipmap::Nearest,
{Sampler::Wrapping::Repeat, Sampler::Wrapping::ClampToEdge, Sampler::Wrapping::MirroredRepeat},
SamplerFilter::Linear,
SamplerFilter::Nearest,
SamplerMipmap::Nearest,
{SamplerWrapping::Repeat, SamplerWrapping::ClampToEdge, SamplerWrapping::MirroredRepeat},
42,
&a};
TextureData b{std::move(data)};
CORRADE_COMPARE(b.type(), TextureData::Type::Cube);
CORRADE_COMPARE(b.minificationFilter(), Sampler::Filter::Linear);
CORRADE_COMPARE(b.magnificationFilter(), Sampler::Filter::Nearest);
CORRADE_COMPARE(b.mipmapFilter(), Sampler::Mipmap::Nearest);
CORRADE_COMPARE(b.wrapping(), (Array3D<Sampler::Wrapping>{Sampler::Wrapping::Repeat, Sampler::Wrapping::ClampToEdge, Sampler::Wrapping::MirroredRepeat}));
CORRADE_COMPARE(b.minificationFilter(), SamplerFilter::Linear);
CORRADE_COMPARE(b.magnificationFilter(), SamplerFilter::Nearest);
CORRADE_COMPARE(b.mipmapFilter(), SamplerMipmap::Nearest);
CORRADE_COMPARE(b.wrapping(), (Array3D<SamplerWrapping>{SamplerWrapping::Repeat, SamplerWrapping::ClampToEdge, SamplerWrapping::MirroredRepeat}));
CORRADE_COMPARE(b.image(), 42);
CORRADE_COMPARE(b.importerState(), &a);
const int c{};
TextureData d{TextureData::Type::Texture2D,
Sampler::Filter::Nearest,
Sampler::Filter::Linear,
Sampler::Mipmap::Base,
Sampler::Wrapping::ClampToEdge,
SamplerFilter::Nearest,
SamplerFilter::Linear,
SamplerMipmap::Base,
SamplerWrapping::ClampToEdge,
13,
&c};
d = std::move(b);
CORRADE_COMPARE(d.type(), TextureData::Type::Cube);
CORRADE_COMPARE(d.minificationFilter(), Sampler::Filter::Linear);
CORRADE_COMPARE(d.magnificationFilter(), Sampler::Filter::Nearest);
CORRADE_COMPARE(d.mipmapFilter(), Sampler::Mipmap::Nearest);
CORRADE_COMPARE(d.wrapping(), (Array3D<Sampler::Wrapping>{Sampler::Wrapping::Repeat, Sampler::Wrapping::ClampToEdge, Sampler::Wrapping::MirroredRepeat}));
CORRADE_COMPARE(d.minificationFilter(), SamplerFilter::Linear);
CORRADE_COMPARE(d.magnificationFilter(), SamplerFilter::Nearest);
CORRADE_COMPARE(d.mipmapFilter(), SamplerMipmap::Nearest);
CORRADE_COMPARE(d.wrapping(), (Array3D<SamplerWrapping>{SamplerWrapping::Repeat, SamplerWrapping::ClampToEdge, SamplerWrapping::MirroredRepeat}));
CORRADE_COMPARE(d.image(), 42);
CORRADE_COMPARE(d.importerState(), &a);
}

16
src/Magnum/Trade/TextureData.h

@ -62,7 +62,7 @@ class TextureData {
* @param image Texture image ID
* @param importerState Importer-specific state
*/
TextureData(Type type, Sampler::Filter minificationFilter, Sampler::Filter magnificationFilter, Sampler::Mipmap mipmapFilter, Array3D<Sampler::Wrapping> wrapping, UnsignedInt image, const void* importerState = nullptr) noexcept: _type{type}, _minificationFilter{minificationFilter}, _magnificationFilter{magnificationFilter}, _mipmapFilter{mipmapFilter}, _wrapping{wrapping}, _image{image}, _importerState{importerState} {}
TextureData(Type type, SamplerFilter minificationFilter, SamplerFilter magnificationFilter, SamplerMipmap mipmapFilter, Array3D<SamplerWrapping> wrapping, UnsignedInt image, const void* importerState = nullptr) noexcept: _type{type}, _minificationFilter{minificationFilter}, _magnificationFilter{magnificationFilter}, _mipmapFilter{mipmapFilter}, _wrapping{wrapping}, _image{image}, _importerState{importerState} {}
/** @brief Copying is not allowed */
TextureData(const TextureData&) = delete;
@ -80,16 +80,16 @@ class TextureData {
Type type() const { return _type; }
/** @brief Minification filter */
Sampler::Filter minificationFilter() const { return _minificationFilter; }
SamplerFilter minificationFilter() const { return _minificationFilter; }
/** @brief Magnification filter */
Sampler::Filter magnificationFilter() const { return _magnificationFilter; }
SamplerFilter magnificationFilter() const { return _magnificationFilter; }
/** @brief Mipmap filter */
Sampler::Mipmap mipmapFilter() const { return _mipmapFilter; }
SamplerMipmap mipmapFilter() const { return _mipmapFilter; }
/** @brief Wrapping */
Array3D<Sampler::Wrapping> wrapping() const { return _wrapping; }
Array3D<SamplerWrapping> wrapping() const { return _wrapping; }
/**
* @brief Image ID
@ -111,9 +111,9 @@ class TextureData {
private:
Type _type;
Sampler::Filter _minificationFilter, _magnificationFilter;
Sampler::Mipmap _mipmapFilter;
Array3D<Sampler::Wrapping> _wrapping;
SamplerFilter _minificationFilter, _magnificationFilter;
SamplerMipmap _mipmapFilter;
Array3D<SamplerWrapping> _wrapping;
UnsignedInt _image;
const void* _importerState;
};

2
src/Magnum/Trade/imageconverter.cpp

@ -102,7 +102,7 @@ int main(int argc, char** argv) {
return 3;
}
Debug() << "Converting image of size" << image->size() << Debug::nospace << ", format" << image->format() << "and type" << image->type() << "to" << args.value("output");
Debug() << "Converting image of size" << image->size() << "and format" << image->format() << "to" << args.value("output");
/* Save output file */
if(!converter->exportToFile(*image, args.value("output"))) {

Loading…
Cancel
Save