To have BufferImage::buffer().data() consistent with Image::data()
(default is unsigned char data type, but it is possible to reinterpret
the data). Saves some ugly code:
Image2D image(ColorFormat::RGB, ColorType::UnsignedByte, ...);
Color3ub a = reinterpret_cast<Color3ub*>(image.data())[0]; // before
Color3ub b = image.data<Color3ub>()[0]; // after
Because we can't forward-declare class members we would need to include
whole Mesh (along with all OpenGL headers and other stuff) just to use
Primitive enum. The old Mesh::Primitive is now alias to new one, is
marked as deprecated and will be removed in future release.
The conversion is done implicitly, thus this seemingly innocent code
would be allowed:
ImageReference2D reference = Image2D(...);
foo(reference.data()); // crash on access, data already deleted
Use CORRADE_PLUGINMANAGER_LIBRARIES instead of
CORRADE_PLUGINMANAGER_LIBRARY when linking core Magnum library.
This reverts commit 80263eb318 and
6dbe31f0f0.
Now named MaterialType. It's easier to type this:
auto t = Trade::MaterialType::Phong;
Than this overlong name, which is moreover ambiguous due to subclassing:
auto t = Trade::AbstractMaterialData::Type::Phong;
// or should I use rather Trade::PhongMaterialData::Type::Phong?
This requires inclusion of heavyweight <memory> header (~25k LOC), but
data import isn't something the user would want to do in every file, so
it hopefully won't hurt compilation times too much.
Saves unnecessary heap allocation and saves user from the burden of
explicit deletion, otherwise the usage is the same. Polymorphic types
can't be done using `std::optional`, will fix that later.
In 1.8.5 it is now possible to reference directly to enum member.
Hooray! Also added explicit @ref here and there, fixing some referencing
bugs along the way.
The access methods assert that the user is querying only available data.
Also updated Primitives implementation to create MeshData when
everything is done, not creating empty MeshData and then shooting the
data through interface intended for end users.
Also not through pointer, but throught const&, allows implicit
conversion from Image2D and Trade::ImageData2D, which is good.
Bumped plugin interface version a bit, as this is not so drastic change
in behavior.