Browse Source

doc: moved old changelogs to a separate page.

Nobody needs them.
pull/233/head
Vladimír Vondruš 8 years ago
parent
commit
26c5617011
  1. 5
      doc/00-page-order.dox
  2. 743
      doc/changelog-old.dox
  3. 711
      doc/changelog.dox

5
doc/00-page-order.dox

@ -37,10 +37,7 @@
@page openal OpenAL
@page changelog Changelog
@page changelog-plugins Plugins changelog
@page changelog-integration Integration changelog
@page changelog-extras Extras changelog
@page changelog-examples Examples changelog
@page changelog-old Archived changelogs
@page developers Developers guide
@page coding-style Coding style

743
doc/changelog-old.dox

@ -0,0 +1,743 @@
/*
This file is part of Magnum.
Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018
Vladimír Vondruš <mosra@centrum.cz>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
*/
namespace Magnum {
/** @page changelog-old Archived changelogs
@tableofcontents
See also:
- @subpage changelog-plugins-old "Archived plugin changelogs"
- @subpage changelog-integration-old "Archived integration changelogs"
- @subpage changelog-examples-old "Archived example changelogs"
@section changelog-2015-05 2015.05
Released 2015-05-09, tagged as
[v2015.05](https://github.com/mosra/magnum/releases/tag/v2015.05). See the
[release announcement](http://blog.magnum.graphics/announcements/may-2015-updates/)
for a high-level overview.
@subsection changelog-2015-05-new New features
- Proper extension loading for OpenGL ES 2.0, 3.0 and 3.1 using flextGL.
- Enabled already implemented functionality on OpenGL ES 3.1.
- Support for new OpenGL functionality:
- Support for @extension{ARB,direct_state_acccess} (OpenGL 4.5)
everywhere except in Mesh.
- Support for @extension{ARB,conditional_render_inverted} (OpenGL
4.5) in @ref SampleQuery.
- Support for @extension{ARB,get_texture_sub_image} (OpenGL 4.5) in
@ref Texture::subImage() "*Texture::subImage()".
- Support for @extension{EXT,transform_feedback},
@extension{ARB,transform_feedback2} (OpenGL 3.0, 4.0, OpenGL ES 3.0) in
new @ref TransformFeedback class, added
@ref Renderer::Feature::RasterizerDiscard.
- Support for @extension{ARB,robustness_isolation} in
@ref Renderer::graphicsResetStatus().
- Support for @extension{ARB,framebuffer_sRGB} (OpenGL 3.0) in
@ref Renderer::Feature::FramebufferSRGB.
- Support for @extension{OES,texture_npot} ES extension.
- Support for debug groups from @extension{KHR,debug} (OpenGL 4.5) and
@extension{EXT,debug_marker} extensions in @ref DebugGroup class.
- Added @ref CubeMapTexture::image() "CubeMapTexture::*image()" that
returns all six faces together.
- Added @ref Primitives::Cube::solidStrip().
- Added @ref AbstractShaderProgram::attachShaders() as a list-based
complement to @ref Shader::compile() and
@ref AbstractShaderProgram::link().
- Separated @cpp Renderer::setFeature() @ce into shorter
@ref Renderer::enable() and @ref Renderer::disable().
- Added @cpp tau() @ce, @cpp piHalf() @ce, @cpp e() @ce, @cpp nan() @ce and
@cpp inf() @ce to @ref Math::Constants.
- Added @ref Math::Matrix4::shearingXY() "Math::Matrix[34]::shearing*()".
- Added @ref Math::Matrix4::lookAt() (see [mosra/magnum#88](https://github.com/mosra/magnum/issues/88)).
- Added @ref Math::Vector::pad().
- Added @ref Math::div().
- Using range-based-for to traverse object children and features in
@ref SceneGraph and screens in @ref Platform::BasicScreenedApplication "Platform::ScreenedApplication".
- Convenience overload for @ref Framebuffer::read() "*Framebuffer::read()"
and @ref Texture::image() "*Texture::image()" that returns the queried
image by value instead of as parameter.
- Added @ref Buffer::uniformOffsetAlignment() and
@ref Mesh::maxElementIndex() limit queries.
- Added @ref AbstractTexture::unbind() for unbinding range of texture
units.
- Added @ref SceneGraph::AbstractObject::addFeature() and
@ref SceneGraph::Object::addChild() functions (see [mosra/magnum#86](https://github.com/mosra/magnum/issues/86)).
- VSync support in @ref Platform::Sdl2Application.
- Added `Platform::*Context` libraries for users which want to use custom
windowing toolkits instead of the ones provided.
- Improved documentation about @ref Shaders namespace, added sample image
for each.
@subsection changelog-2015-05-changes Changes
- Using [flextGL](https://github.com/ginkgo/flextgl) instead of `glLoadGen`
for OpenGL extension loading
- @ref Platform::Sdl2Application now tries to create core context on all
platforms, not just OSX (see [mosra/magnum#80](https://github.com/mosra/magnum/issues/80)).
- @ref Buffer::bind(), @ref Buffer::unbind() and @ref Buffer::Target is
now used for indexed buffer binding only.
- Moved static binary operations from @ref Math classes into free functions
for more convenient usage (see [mosra/magnum#74](https://github.com/mosra/magnum/issues/74)).
- Better algorithm for comparing floating-point values.
- Ensuring that all OpenGL objects are properly created before using them.
- Using @cpp const char @ce instead of @cpp const unsigned char @ce for raw
binary data.
- Removed annoying restriction when adding reference-counted resources to
@ref ResourceManager.
- Extension querying cleanup:
- Removed @extension{APPLE,flush_buffer_range} extension.
- Replaced @extension{APPLE,vertex_array_object} with
@extension{ARB,vertex_array_object}.
- Replaced @extension{NV,half_float} with @extension{ARB,half_float_vertex}.
- Replaced @extension{EXT,framebuffer_sRGB} with @extension{ARB,framebuffer_sRGB}.
- Documentation cleanup, fixes and improvements.
@subsection changelog-2015-05-buildsystem Build system
- CMake now always installs `FindMagnum.cmake` to library-specific
location, making it usable without providing own copy of the file in
depending projects. The `WITH_FIND_MODULE` option is no longer needed.
- CMake now handles inter-library dependencies automatically without manually
specifying each and every one (see [mosra/magnum#73](https://github.com/mosra/magnum/issues/73)).
- Ability to control static build of plugins separately using
`BUILD_PLUGINS_STATIC`.
- Displaying all header files, plugin metadata files and resource files in
project view to make use of some IDEs less painful (such as QtCreator).
- Gentoo ebuild (see [mosra/magnum#69](https://github.com/mosra/magnum/issues/69),
[mosra/magnum#83](https://github.com/mosra/magnum/issues/83)).
@subsection changelog-2015-05-bugfixes Bug fixes
- Fixed @ref TextureTools::distanceField() to work in GLSL < 4.20 (see
[mosra/magnum#62](https://github.com/mosra/magnum/issues/62)).
- Fixed @ref Shaders::MeshVisualizer to work in GLSL ES.
- Fixed @ref Shaders::Vector "Shaders::*Vector" on Intel GPUs.
- Fixed assertion on contexts without default framebuffer (see
[mosra/magnum#93](https://github.com/mosra/magnum/issues/93)).
- Fixed cases where shader would use extension that is not advertised by the
driver.
- Properly handle case where
@fn_gl_extension{VertexArrayVertexAttribDivisor,EXT,direct_state_access} is
not available in the driver (see [mosra/magnum#77](https://github.com/mosra/magnum/issues/77)).
- Removed superfluous level argument from @ref Framebuffer::attachTexture() "Framebuffer::attachTexture*()"
overloads for texture types that don't support mipmapping.
- Proper no-op fallback for @ref Framebuffer::invalidate() "*Framebuffer::invalidate()"
on platforms where the extensions is not supported (see
[mosra/magnum#63](https://github.com/mosra/magnum/issues/63)).
- Fixed garbage characters in shader compilation output (see
[mosra/magnum#87](https://github.com/mosra/magnum/issues/87)).
- Fixed memory corruption on MSVC 2013 (see [mosra/magnum#70](https://github.com/mosra/magnum/issues/70)).
- Fixed potential memory corruption errors with static build (see
[mosra/magnum#79](https://github.com/mosra/magnum/issues/79)).
- Fixed aspect-ratio-corrected projection with inverted Y in
@ref SceneGraph::Camera3D "SceneGraph::Camera*D".
- Fixed wheel direction in @ref Platform::Sdl2Application (see
[mosra/magnum#68](https://github.com/mosra/magnum/issues/68)).
- Fixed bogus version check in @ref Platform::WindowlessCglApplication (see
[mosra/magnum#92](https://github.com/mosra/magnum/issues/92))
- Fixed matrix to quaternion conversion algorithm.
- Two different headers in @ref Magnum::Primitives had the same include guard
by accident (see [mosra/magnum#72](https://github.com/mosra/magnum/issues/53))
- Various compilation fixes on various platforms (see
[mosra/magnum#71](https://github.com/mosra/magnum/pull/71))
@subsection changelog-2015-05-deprecated Deprecated APIs
- The `Magnum/Query.h` header is deprecated, use one of
@ref Magnum/PrimitiveQuery.h, @ref Magnum/SampleQuery.h or
@ref Magnum/TimeQuery.h instead.
- Using @ref Buffer::Target as constructor or @ref Buffer::setTargetHint()
parameter is deprecated, use @ref Buffer::TargetHint instead.
- The @cpp SceneGraph::TransformationType @ce enum is depracted, use separate
`<transform>()` and `<transform>Local()` variants instead.
- @cpp SceneGraph::AbstractObject::hasFeatures() @ce, @cpp firstFeature() @ce,
@cpp lastFeature() @ce, @cpp SceneGraph::Object::hasChildren() @ce,
@cpp firstChild() @ce and @cpp lastChild() @ce are deprecated, use methods on
linked list returned by @ref SceneGraph::AbstractObject::features() and
@ref SceneGraph::Object::children() instead.
- @cpp Platform::ScreenedApplication::frontScreen() @ce and
@cpp Platform::ScreenedApplication::backScreen() @ce are deprecated, use
methods on linked list returned by
@ref Platform::BasicScreenedApplication::screens() "Platform::ScreenedApplication::screens()"
instead.
- @ref Framebuffer::read() "*Framebuffer::read()" functions taking two
vectors are deprecated, use overload taking @ref Range2Di instead.
- The @cpp Mesh::maxVertexAttributes() @ce function is deprecated, use
@ref AbstractShaderProgram::maxVertexAttributes() instead.
- @cpp Math::Vector::dot() @ce, @cpp Math::Complex::dot() @ce,
@cpp Math::Quaternion::dot() @ce, @cpp Math::Vector::angle() @ce,
@cpp Math::Complex::angle() @ce, @cpp Math::Quaternion::angle() @ce,
@cpp Math::Quaternion::lerp() @ce, @cpp Math::Quaternion::slerp() @ce,
@cpp Math::Vector2::cross() @ce and @cpp Math::Vector3::cross() @ce are
deprecated, use @ref Math::dot(), @ref Math::angle(),
@ref Math::lerp(), @ref Math::slerp() and @ref Math::cross() instead (see
[mosra/magnum#74](https://github.com/mosra/magnum/issues/74))
- The @cpp *Framebuffer::bind(FramebufferTarget) @ce function is deprecated,
use parameter-less @ref Framebuffer::bind() "*Framebuffer::bind()"
instead.
- The @cpp FramebufferTarget::ReadDraw @ce enum value is deprecated, use
separate @cpp FramebufferTarget::Read @ce and @cpp FramebufferTarget::Draw @ce
values instead.
- @ref CubeMapTexture::imageSize() with explicit face parameter is
deprecated, use overload that returns one value for all faces instead.
- The `Magnum/DebugMessage.h` header is deprecated, use
@ref Magnum/DebugOutput.h instead (see [mosra/magnum#89](https://github.com/mosra/magnum/pull/89))
- The @cpp DebugMessage::Severity @ce enum is deprecated, use
@ref DebugOutput::Severity instead.
- The @cpp DebugMessage::Callback @ce typedef, @cpp DebugMessage::setCallback() @ce
and @cpp DebugMessage::setDefaultCallback() @ce function is deprecated, use
@ref DebugOutput::Callback, @ref DebugOutput::setCallback() and
@ref DebugOutput::setDefaultCallback() instead.
- The @cpp DebugMessage::maxLoggedMessages() @ce and
@cpp DebugMessage::maxMessageLength() @ce functions are deprecated, use
@ref DebugOutput::maxLoggedMessages() and
@ref DebugOutput::maxMessageLength() instead.
- The @cpp DebugMessage::setEnabled() @ce function and related values from
@cpp DebugMessage::Source @ce enum are deprecated, use
@ref DebugOutput::setEnabled() along with @ref DebugOutput::Source,
@ref DebugOutput::Type and @ref DebugOutput::Severity instead.
- Parameter-less @cpp *Query @ce constructor and parametrized
@cpp *Query::begin() @ce function are deprecated, use constructor with
parameter and parameter-less @ref Query::begin() "*Query::begin()"
instead.
@subsection changelog-2015-05-compatibility Potential compatibility breakages, removed APIs
- All functionality @ref changelog-2014-01-deprecated "deprecated in 2014.01"
has been removed, namely:
- Removed deprecated ability to use relative includes (e.g.
@cpp #include <Mesh.h> @ce), use absolute paths (@cpp #include <Magnum/Mesh.h> @ce)
instead.
- Removed deprecated @cpp Mesh::Primitive @ce enum, use @ref MeshPrimitive
instead.
- Removed deprecated @cpp Sampler::maxAnisotropy() @ce function, use
@ref Sampler::maxMaxAnisotropy() instead.
- Removed deprecated @cpp Math::Geometry::Rectangle @ce class, use
@ref Math::Range instead.
- Removed deprecated @cpp SceneGraph::Animable::group() @ce function, use
@ref SceneGraph::Animable::animables() instead.
- Removed deprecated `Shaders/magnumShadersResourceImport.hpp` file, use
`Shaders/resourceImport.hpp` instead.
- Removed deprecated @cpp Text::TextRenderer @ce alias, use
@ref Text::Renderer instead.
- Removed long-deprecated @ref BufferImage::setData() overload, use the
other one instead.
@subsection changelog-2015-05-performance Performance improvements
- Faster vector multiplication in @ref Math::Quaternion.
- Saved one swizzle in @ref Math::cross().
- Allocation-free overloads of functions that took @cpp std::string @ce just to
pass its contents to OpenGL.
@section changelog-2014-06 2014.06
Released 2014-06-30, tagged as
[v2014.06](https://github.com/mosra/magnum/releases/tag/v2014.06). See the
[release announcement](http://blog.magnum.graphics/announcements/june-2014-updates/)
for a high-level overview.
@subsection changelog-2014-06-dependencies Dependency changes
- Minimal required GCC version is now 4.7. Support for GCC 4.6 has been moved
to `compatibility` branch (see [mosra/magnum#18](https://github.com/mosra/magnum/issues/18))
@subsection changelog-2014-06-new New features
- Experimental Android support, see @ref building-cross-android "building documentation"
for more information
- Initial implementation of @ref Platform::AndroidApplication class
- @ref Platform::WindowlessWglApplication and @ref Platform::WindowlessCglApplication,
which enable @ref magnum-info "magnum-info", @ref magnum-distancefieldconverter
and @ref magnum-fontconverter utilities on OS X and Windows. See
[mosra/magnum#40](https://github.com/mosra/magnum/issues/40) and
[mosra/magnum#59](https://github.com/mosra/magnum/pull/59).
- @ref Trade::ObjImporter "ObjImporter" plugin, mesh import only (no
materials yet)
- Completed support of @extension{EXT,texture_integer},
@extension{ARB,stencil_texturing}, @extension{ARB,texture_rectangle},
@extension{ARB,texture_buffer_object}, @extension{ARB,texture_swizzle},
@extension{EXT,texture_sRGB_decode} extensions (and related ES extensions) and
other missing parameters in @ref Texture "*Texture" classes
- Basic support for @extension{ARB,texture_multisample} and
@extension{ARB,texture_storage_multisample} in new @ref MultisampleTexture
class
- Instanced rendering, base vertex and base instance specification in
@ref Mesh and @ref MeshView classes; @ref Mesh::addVertexBufferInstanced()
function for adding buffers with per-instance data (see
[mosra/magnum#47](https://github.com/mosra/magnum/issues/47))
- Mesh multi-draw using @ref MeshView::draw()
- Initial @extension{ARB,multi_bind} support with @ref AbstractTexture::bind()
- Support for @extension{ARB,vertex_type_10f_11f_11f_rev} in
@cpp AbstractShaderProgram::Attribute::DataType @ce
- New variants of @ref Shader::compile() and @ref AbstractShaderProgram::link(),
allowing the driver to perform paralell compilation in multiple threads.
- Added @ref Texture::maxSize() "*Texture::maxSize()" queries
- @ref MeshTools::compile() for automagic creation of 2D and 3D meshes from
imported data
- @ref MeshTools::interleaveInto() for interleaving data into existing
buffer
- @ref Shapes::Shape::collision() function as complement to
@ref Shapes::Shape::collides()
- @ref Platform::GlutApplication::KeyEvent finally has more complete key
support
- @ref Math::Range::data() function, useful when querying range values from
GL
- Support for specifying context flags using
@ref Platform::Sdl2Application::Configuration::setFlags() "Platform::*Application::Configuration::setFlags()",
they are now also shown in @ref magnum-info "magnum-info"
- More robust support for driver detection and driver bug workarounds. Driver
can be detected using @ref Context::detectedDriver(), problematic
extension disabled, which is then shown in @ref magnum-info "magnum-info"
and can be also queried using @ref Context::isExtensionDisabled()
- @ref Context::extensionStrings() for getting list of all extension
strings exposed by the driver
- @ref Context::resetState() for resetting internal state tracker, allowing
to use Magnum along with third-party OpenGL code (see
[mosra/magnum#48](https://github.com/mosra/magnum/issues/48))
- @ref MAGNUM_TARGET_WEBGL CMake and preprocessor variable
@subsection changelog-2014-06-changes Changes
- Libraries and plugins in debug build configuration are installed to
different locations, making it possible to have debug and release libraries
installed alongside each other (see
[mosra/magnum#20](https://github.com/mosra/magnum/issues/20),
[mosra/magnum#45](https://github.com/mosra/magnum/issues/18))
- @ref Platform::Sdl2Application is now used everywhere (documentation,
tutorials, examples) by default, replacing @ref Platform::GlutApplication.
The GLUT application is still available, though. See
[mosra/magnum#39](https://github.com/mosra/magnum/issues/39).
- The need for compiler compatibility mode is now automatically detected by
CMake to avoid strange compilation errors later
- Split out @ref Texture functionality into dedicated @ref TextureArray,
@ref MultisampleTexture and @ref RectangleTexture classes to make their
usage less error-prone
- @ref Buffer::invalidateData(), @ref Buffer::invalidateSubData() and
@ref Renderer::resetNotificationStrategy() functions are enabled on
OpenGL ES as a no-op
- Added @ref std::vector overload of @ref MeshTools::combineIndexArrays()
for greater runtime-usage flexibility
- @ref Platform::Sdl2Application now defaults to non-resizable window, you
can change the behavior using @ref Platform::Sdl2Application::Configuration::setWindowFlags()
- It's now possible to import objects without materials
- More robust OpenGL version checks when creating context
- Thorough documentation review, fixes and improvements
@subsection changelog-2014-06-buildsystem Build system
- Avoiding unnecessary linking of the OpenGL library (see
[mosra/magnum#60](https://github.com/mosra/magnum/pull/60))
@subsection changelog-2014-06-bugfixes Bug fixes
- Fixed usage with OpenGL ES 3.1 contexts (it complained about invalid
version)
- Fixed compilation of Shaders::MeshVisualizer under WebGL and with ANGLE,
see [mosra/magnum#56](https://github.com/mosra/magnum/issues/56)
- Fixed various build issues on Mac OS X, see
[mosra/magnum#51](https://github.com/mosra/magnum/issues/51) and
[mosra/magnum#54](https://github.com/mosra/magnum/issues/54)
@subsection changelog-2014-06-deprecated Deprecated APIs
- @cpp Mesh::setVertexCount() @ce and @cpp Mesh::setIndexCount() @ce had
nonintuitive behavior in some corner cases and are deprecated, use general
@ref Mesh::setCount() function instead
- @cpp MeshView::setVertexRange() @ce and four-/two-argument
@cpp MeshView::setIndexRange() @ce are deprecated for similar reason as
above, use @ref MeshView::setCount(), @ref MeshView::setBaseVertex()
and three-/one-argument @ref MeshView::setIndexRange() instead
- @cpp Texture::Target @ce enum is deprecated as the API was too error-prone,
use dedicated @ref TextureArray, @ref MultisampleTexture and
@ref RectangleTexture classes instead
- @cpp Framebuffer::attachTexture*D() @ce is deprecated, use more generic
@ref Framebuffer::attachTexture() and
@ref Framebuffer::attachTextureLayer() instead
- @cpp FramebufferBlit::*Buffer @ce enum values are deprecated, use shorter
@ref FramebufferBlit::Color and similar instead
- @ref Audio::Source::play(), @ref SceneGraph::AbstractObject::setClean(),
@ref SceneGraph::AbstractObject::transformationMatrices() and similar
taking @ref std::initializer_list of pointers are deprecated, use versions
taking list of references instead
- @ref MeshTools::compressIndices() and @ref MeshTools::interleave()
which filled @ref Mesh and @ref Buffer directly are deprecated as they
had undesired side-effects in some cases, use the data-returning versions
instead and then configure mesh and buffer manually
- @ref MeshTools::combineIndexedArrays() taking @ref std::tuple is
deprecated, use version taking @ref std::pair instead
- @ref MeshTools::removeDuplicates() taking also list of indices is
deprecated, use the function in conjunction with @ref MeshTools::duplicate().
See function documentation for more information.
- Parameter-less @ref Mesh::draw() and @ref MeshView::draw() are
deprecated, use versions with explicit shader parameter instead
- Deprecated implicit conversion of @ref Resource "Resource<T, U>" to
@cpp U& @ce, as it is not safe. Use explicit dereference operator instead.
- Texture binding using @ref Texture::bind() "*Texture::bind()" is
deprecated, use setup functions of particular shaders instead (e.g.
@ref Shaders::Phong::setDiffuseTexture())
- @cpp Context::Flag::Robustness @ce is deprecated, use
@ref Context::Flag::RobustAccess which reflects OpenGL naming better
instead
- @cpp Texture::maxLayers() @ce has misleading naming and is deprecated, use
@ref Shader::maxCombinedTextureImageUnits() instead
@subsection changelog-2014-06-compatibility Potential compatibility breakages, removed APIs
- All functionality @ref changelog-2013-10-deprecated "deprecated in 2013.10"
has been removed, namely:
- Removed deprecated raw-pointer versions of @ref Buffer::setData() and
@ref Buffer::setSubData(), use overloads taking
@cpp Containers::ArrayReference @ce instead
- Removed deprecated `Magnum/ImageFormat.h` header and
@cpp ImageFormat @ce/@cpp ImageType @ce enums, use `Magnum/ColorFormat.h`
header and @cpp ColorFormat @ce/@cpp ColorType @ce enums instead
- Removed deprecated @cpp Matrix2 @ce and @cpp Matrix2d @ce typedefs, use
:ref:`Matrix2x2` and :ref:`Matrix2x2d` instead
- Removed deprecated `Magnum/Swizzle.h` header and @cpp Magnum::swizzle() @ce
function, use @ref Magnum/Math/Swizzle.h and @ref Math::swizzle()
instead
- Removed deprecated @cpp *::maxSupported*() @ce limit queries, use the
less verbose @cpp *::max*() @ce versions instead
- Removed deprecated @cpp Platform::*Application::InputEvent::Modifier::*Button @ce
enum values, use @ref Platform::Sdl2Application::MouseMoveEvent::buttons() "Platform::*Application::*Event::buttons()"
function and @ref Platform::Sdl2Application::MouseMoveEvent::Button "Platform::*Application::*Event::Button"
enum instead
- @cpp Platform::Sdl2Application::Configuration::Flag @ce enum and related
functions were replaced with WindowFlag, as the name would now conflict
with context flags
@subsection changelog-2014-06-internal Internal changes
- Removed last remaining bits of global state, everything is now stored
per-context.
@section changelog-2014-01 2014.01
Released 2014-01-21, tagged as
[v2014.01](https://github.com/mosra/magnum/releases/tag/v2014.01). See the
[release announcement](http://blog.magnum.graphics/announcements/january-2014-updates/)
for a high-level overview.
@subsection changelog-2014-01-dependencies Dependency changes
No dependency changes in this release.
@subsection changelog-2014-01-new New features
- MSVC 2013 support in `compatibility` branch
- Dependency-less plugins from Magnum Plugins repository are now part of
Magnum to make their usage easier, in particular the @ref Text::MagnumFont "MagnumFont",
@ref Text::MagnumFontConverter "MagnumFontConverter",
@ref Trade::TgaImporter "TgaImporter", @ref Trade::TgaImageConverter "TgaImageConverter"
and @ref Audio::WavImporter "WavAudioImporter" plugins.
- Documented @ref opengl-support "state of OpenGL support",
@ref opengl-mapping "mapping between OpenGL and Magnum API",
@ref plugins "general plugin usage" and added
@ref troubleshooting "troubleshooting page" for most common building and
rendering issues
- Support for horizontal and vertical text alignment and multi-line text in
@ref Text::Renderer (line wrapping is still left up to the user)
- New @ref magnum-fontconverter utility for converting between font formats
(e.g. creating distance-field raster font from TTF font). Enable it with
`WITH_FONTCONVERTER` CMake option (currently Linux only), see
`magnum-fontconverter --help` for more information.
- Support for OpenGL object labels, debug message insertion and retrieval
(@extension{KHR,debug}, @extension{EXT,debug_label} and @extension{EXT,debug_marker}
extensions) (see [mosra/magnum#42](https://github.com/mosra/magnum/issues/42))
- @ref Platform::BasicScreenedApplication "Platform::ScreenedApplication"
class allowing the users to easily use multiple independent screens in the
application.
- New 1D, 2D and 3D @ref Math::Range class
- Added @cpp red() @ce, @cpp green() @ce, @cpp blue() @ce, @cpp cyan() @ce,
@cpp magenta() @ce and @cpp yellow() @ce convenience functions to @ref Color3
and @ref Color4 classes
- Convenience @ref Color3ub and @ref Color4ub typedefs
- New @ref version() utility functions for converting @ref Version enum
value to major/minor version number and back
- Added @cpp release() @ce function to @ref Image and @ref Trade::ImageData
for releasing ownership of the data, similar to @ref std::unique_ptr::release()
(see [mosra/magnum#29](https://github.com/mosra/magnum/issues/29))
- @cpp *Image::dataSize() @ce function for computing size of buffer required
to store image of given size
- Disallowing conversion of rvalue @ref Image and @ref Trade::ImageData
to ImageReference as it would result in access to deleted memory (GCC
4.8.1/Clang only)
- No-op fallback for @ref Texture::setMaxAnisotropy() "*Texture::setMaxAnisotropy()"
in case @extension{EXT,texture_filter_anisotropic extension} is not supported
- Added @cpp round() @ce, @cpp floor() @ce and @cpp ceil() @ce scalar/vector
functions to @ref Math namespace
- @ref Math::minmax() and @ref Math::Vector2::minmax() functions
- Modulo operations for integral @ref Math::Vector classes
- Ability to request context version in all windowed
@ref Platform::Sdl2Application "Platform::*Application" classes
- Mouse wheel support in @cpp Platform::NaClApplication::MouseEvent @ce
- No-op @ref Platform::GlutApplication::keyReleaseEvent() and
@cpp Platform::NaClApplication::Configuration::setTitle() @ce functions to
preserve source compatibility with other application classes.
- @ref SceneGraph::Drawable::drawables() function as a non-ambiguous
alternative to @cpp group() @ce
- Ability to specify background color color in @ref Shaders::Vector,
allowing it to use without blending enabled (fully transparent black was
used previously)
- New @ref Shaders::Generic class with common definitions, so you can
configure mesh for the generic shader and render it with any other
compatible shader
- Convenience @cpp hasNormals() @ce, @cpp hasTextureCoords2D() @ce functions to
@ref Trade::MeshData2D and @ref Trade::MeshData3D
- OpenGL ES 3.0 build now shares list of vendor extensions with OpenGL ES 2.0
build (i.e. only those extensions that aren't part of ES 3.0 are present in
@ref Magnum::Extensions)
- All classes in documentation are now shown with corresponding @cpp #include @ce
path
@subsection changelog-2014-01-changes Changes
- Preferring absolute includes instead of relative (see [mosra/magnum#36](https://github.com/mosra/magnum/issues/36))
- The `magnum-distancefield` utility is now named @ref magnum-distancefieldconverter
for consistency with other command-line utilities
- @cpp ImageReference @ce class now stores const data pointer instead of
mutable one, modifying the data through the class interface isn't valid use
case anyway
- Added default template parameter to @ref Buffer::data() and made
@ref Image::data() "*Image::data()" templated to have them consistent.
Note that this is source-compatible change.
- @cpp Query::result<bool>() @ce returns @cpp true @ce if value is nonzero
(was returning @cpp true @ce only for value of 1 previously)
- All functions in @ref MeshTools namespace are now returning either
@ref Corrade::Containers::Array or @ref std::unique_ptr instead of naked
pointers to avoid accidental out-of-bounds access and memory leaks
- All functions in @ref Text namespace are now returning @ref std::unique_ptr
instead of naked pointers to avoid accidental memory leaks
- Implementation of @ref Platform::Sdl2Application::viewportEvent() "Platform::*Application::viewportEvent()"
is not required anymore, because in many cases the application doesn't need
to react to window resize events at all
- Textured @ref Shaders::Flat now multiplies texture with the specified
color instead of ignoring it. See also [mosra/magnum#34](https://github.com/mosra/magnum/issues/34)
- All deprecated functions and types are now emitting compiler warnings to
encourage updating the code
- Various documentation and example updates and improvements
@subsection changelog-2014-01-bugfixes Bug fixes
- Fixed @ref CubeMapTextureArray::image() function (more precisely it
wasn't working at all). See also [mosra/magnum#31](https://github.com/mosra/magnum/issues/31).
- Fixed wrong assertion in @ref Texture::setWrapping() for rectangle
textures
- Fixed wrong assertion in @cpp AbstractImage::pixelSize() @ce when computing
size of separate depth and stencil formats
- @ref Mesh::addVertexBuffer() now properly computes offsets for matrix
attributes
- Taking index buffer offset into account in @ref MeshView class
- Fixed various issues with textured @ref Shaders::Flat shader (actually
the textured version was not working at all)
- Various OS X-related fixes in @ref Shaders library. See also
[mosra/magnum#27](https://github.com/mosra/magnum/issues/27).
- Fixed building issues when both SDL1 and SDL2 is installed on OS X. See
also [mosra/magnum#25](https://github.com/mosra/magnum/issues/25),
[mosra/magnum#38](https://github.com/mosra/magnum/pull/38).
- Fixed building issues with CMake-generated XCode project on OS X. See also
[mosra/magnum#37](https://github.com/mosra/magnum/issues/37).
- Proper and failsafe OpenGL 3 context creation on OS X (3.0 is implemented
only as core context, thus requesting 2.1 won't expose newer features). See
also [mosra/magnum#26](https://github.com/mosra/magnum/issues/26),
[mosra/magnum#35](https://github.com/mosra/magnum/issues/35) and
[mosra/magnum#43](https://github.com/mosra/magnum/pull/43).
- Fixed compilation issues with Clang and libc++
- Fixed various compilation issues under MSVC (and worked around an insane
amount of compiler bugs)
@subsection changelog-2014-01-deprecated Deprecated APIs
- @cpp Buffer::Usage @ce enum is deprecated to reduce header dependencies, use
global @ref BufferUsage enum instead
- @cpp Mesh::Primitive @ce enum is deprecated to reduce header dependencies,
use global @ref MeshPrimitive enum instead
- @cpp Sampler::maxAnisotropy() @ce is deprecated to avoid naming conflict with
@ref Texture::setMaxAnisotropy() "*Texture::setMaxAnisotropy()", use
@ref Sampler::maxMaxAnisotropy() instead
- @cpp Magnum::Geometry::Rectangle @ce class (and @cpp Rectangle* @ce typedefs)
is deprecated, use more generic and feature-rich @ref Math::Range
instead.
- @cpp Platform::Sdl2Application::Configuration::setFlags() @ce function and
related enum is deprecated to avoid naming conflict in the future, use @ref Platform::Sdl2Application::Configuration::setWindowFlags() instead
- @cpp SceneGraph::Animable::group() @ce is deprecated, use non-ambiguous
@ref SceneGraph::Animable::animables() instead
- `Magnum/Shaders/magnumShadersResourceImport.hpp` header is deprecated in
favor of less verbose `Magnum/Shaders/resourceImport.hpp`
- @cpp Text::TextRenderer @ce class (and @cpp Text::TextRenderer2D @ce,
@cpp Text::TextRenderer3D @ce typedefs) is deprecated, use less redundant
name @ref Text::Renderer instead
@subsection changelog-2014-01-compatibility Potential compatibility breakages, removed APIs
- Removed @cpp SceneGraph::*Transformation::move() @ce from 2D transformation
classes. It was originally meant for modifying draw order, but as the draw
order is managed by @ref SceneGraph::DrawableGroup class and not by
parent object, this function is essentially useless.
@subsection changelog-2014-01-documentation Documentation
- Various documentation updates and fixes (see
[mosra/magnum#28](https://github.com/mosra/magnum/issues/28))
@subsection changelog-2014-01-internal Internal changes
- Added thorough tests for all core OpenGL functionality to make refactoring
easier
- Various internal optimizations and cleanup to make maintenance easier
- Using Jenkins Continuous Integration to maintain compilable and bug-free
state of the project more easily. Currently GCC 4.8, 4.7, 4.6, 4.5, 4.4,
Clang 3.3, Clang 3.3 with libc++, Emscripten, x86-32/x86-64 Native Client
and MinGW32 compilers are tested with both shared and static libraries.
Separately testing builds with deprecated features enabled and disabled.
Also explicitly testing desktop OpenGL, OpenGL ES 2.0, desktop OpenGL ES
2.0 emulation, OpenGL ES 3.0 and desktop OpenGL ES 3.0 emulation.
- All files from `src/` directory were moved to `src/Magnum`,
`external/` directory was moved to `src/MagnumExternal` (required to
make inter-project includes absolute, as mentioned above)
@section changelog-2013-10 2013.10
Released 2013-10-30, tagged as
[v2013.10](https://github.com/mosra/magnum/releases/tag/v2013.10). See the
[release announcement](http://blog.magnum.graphics/announcements/october-2013-updates/)
for a high-level overview.
@subsection changelog-2013-10-dependencies Dependency changes
- Removed GLEW dependency in favor of built-in `glLoadGen`, resulting in
greatly reduced compilation time and less compatibility issues. The base
library thus now depends only on Corrade and OpenGL libraries. See
[mosra/magnum#11](https://github.com/mosra/magnum/issues/11),
[mosra/magnum#16](https://github.com/mosra/magnum/issues/16),
[mosra/magnum#21](https://github.com/mosra/magnum/issues/21),
[mosra/magnum#22](https://github.com/mosra/magnum/issues/22),
[mosra/magnum#23](https://github.com/mosra/magnum/pull/23).
@subsection changelog-2013-10-new New features
- Initial Emscripten (HTML5/WebGL) port. See @ref Platform::Sdl2Application
for detailed porting information. The @ref example-index "examples page"
has now links to online Emscripten demos, see also
[base-emscripten](https://github.com/mosra/magnum-bootstrap/tree/base-emscripten)
branch in Magnum Bootstrap.
- Mac OS X port (thanks to Miguel Martin)
- @ref Math::Vector::isZero() and @ref Math::Vector2::aspectRatio()
convenience functions
- Bitwise AND, OR, XOR, bit inversion and bit shift in integral
@ref Math::Vector classes
- @ref Math::Matrix4x3 "Math::MatrixMxN<T>" and
@ref Math::Matrix3x3 "Math::MatrixNxN<T>" template aliases for non-square
and non-transforming square matrices in @ref Math namespace,
@ref Matrix3x2 "MatrixNxN" and @ref Matrix2x2d "MatrixNxNd" typedefs for
@cpp float @ce and @cpp double @ce non-transforming square matrices in root
Magnum namespace. Note that template aliases are not present in GCC 4.6
builds.
- Limit queries for all OpenGL objects, the information is now printed also
by @ref magnum-info "magnum-info" utility.
- @ref Context::isExtensionSupported() is now able to query extension
availability on particular GLSL version
- Using @ref std::unique_ptr and C++1y @cpp std::optional @ce for resources
returned from @ref Trade::AbstractImporter for better usability and to
avoid accidental memory leaks
- New translation-only transformation in @ref SceneGraph supporting also
purely integral coordinates, useful e.g. for UI or 2D platformers.
- Detailed collision queries and new @ref Shapes::InvertedSphere "InvertedSphere"
shape in Shapes library
- Texture support in @ref Shaders::Flat
- Mouse button queries in @ref Platform::Sdl2Application::MouseMoveEvent "Platform::*Application::MouseMoveEvent"
@subsection changelog-2013-10-changes Changes
- @ref Buffer::setData() and @ref Buffer::setSubData() are now accepting
@ref Containers::ArrayReference for more convenient usage
- @ref Platform::Sdl2Application::viewportEvent() "Platform::*Application::viewportEvent()"
is not called at all if window size doesn't change, allowing for less
cumbersome ofscreen rendering setups
- Removed redundant operators from @ref Math::RectangularMatrix "Math::*Matrix",
use vectors for component-wise multiplication and division instead
- Documentation updates and improvements to make the library more accessible
for newcomers
- Various build system updates for better compile times and easier
installation
@subsection changelog-2013-10-bugfixes Bug fixes
- Fixed compilation with Clang and libc++ (see
[mosra/magnum#12](https://github.com/mosra/magnum/issues/12))
- Fixes compilation of the Audio library on macOS (see
[mosra/magnum#19](https://github.com/mosra/magnum/issues/19))
- Fixed compatibility of builtin shaders with GLSL 1.20 and GLSL ES 1.00,
added shader compilation tests to prevent this issue from reappearing (see
[mosra/magnum#17](https://github.com/mosra/magnum/issues/17))
- Extension support queries depend on selected GLSL version (see
[mosra/magnum-examples#3](https://github.com/mosra/magnum-examples/issues/3))
@subsection changelog-2013-10-deprecated Deprecated APIs
- @cpp Matrix2 @ce and @cpp Matrix2d @ce is deprecated, use @ref Matrix2x2
and @ref Matrix2x2d instead
- @cpp swizzle() @ce is deprecated, all of its functionality has been moved
into @ref Math::swizzle()
- @cpp Buffer::setData() @ce and @cpp Buffer::setSubData() @ce overloads
taking pair of data pointer and size are deprecated, use
@cpp Containers::ArrayReference @ce-based @ref Buffer::setData() and
@ref Buffer::setSubData()
- `ImageFormat.h` header, @cpp ImageFormat @ce and @cpp ImageType @ce enums
are deprecated, use `ColorFormat.h` header, `ColorFormat` and `ColorType`
enums which reflect OpenGL naming better instead
- @cpp Platform::*Application::InputEvent::Modifier::*Button @ce enum values
are deprecated, use
@ref Platform::Sdl2Application::MouseMoveEvent::buttons() "Platform::*Application::*Event::buttons()"
and @ref Platform::Sdl2Application::MouseMoveEvent::Button "Platform::*Application::*Event::Button"
enum instead
- @cpp AbstractShaderProgram::maxSupportedVertexAttributeCount() @ce,
@cpp AbstractTexture::maxSupportedLayerCount() @ce and
@cpp Sampler::maxSupportedAnisotropy() @ce are deprecated in favor of less
verbose @ref AbstractShaderProgram::maxVertexAttributes(),
@cpp AbstractTexture::maxLayers() @ce and @cpp Sampler::maxAnisotropy() @ce
@subsection changelog-2013-10-compatibility Potential compatibility breakages, removed APIs
No deprecated API was removed in this release.
@section changelog-2013-08 2013.08
Released 2013-08-30, tagged as
[v2013.08](https://github.com/mosra/magnum/releases/tag/v2013.08). See the
[project announcement](http://blog.magnum.graphics/announcements/introducing-magnum/)
for a high-level overview.
*/
}

711
doc/changelog.dox

@ -31,10 +31,10 @@ namespace Magnum {
See also:
- @subpage changelog-plugins
- @subpage changelog-integration
- @subpage changelog-extras
- @subpage changelog-examples
- @subpage changelog-plugins "Plugins changelog"
- @subpage changelog-integration "Integration changelog"
- @subpage changelog-extras "Extras changelog"
- @subpage changelog-examples "Examples changelog"
@section changelog-latest Changes since 2018.02
@ -941,708 +941,7 @@ a high-level overview.
[mosra/magnum#170](https://github.com/mosra/magnum/issues/170),
[mosra/magnum-plugins#17](https://github.com/mosra/magnum-plugins/issues/17))
@section changelog-2015-05 2015.05
Released 2015-05-09, tagged as
[v2015.05](https://github.com/mosra/magnum/releases/tag/v2015.05). See the
[release announcement](http://blog.magnum.graphics/announcements/may-2015-updates/)
for a high-level overview.
@subsection changelog-2015-05-new New features
- Proper extension loading for OpenGL ES 2.0, 3.0 and 3.1 using flextGL.
- Enabled already implemented functionality on OpenGL ES 3.1.
- Support for new OpenGL functionality:
- Support for @extension{ARB,direct_state_acccess} (OpenGL 4.5)
everywhere except in Mesh.
- Support for @extension{ARB,conditional_render_inverted} (OpenGL
4.5) in @ref SampleQuery.
- Support for @extension{ARB,get_texture_sub_image} (OpenGL 4.5) in
@ref Texture::subImage() "*Texture::subImage()".
- Support for @extension{EXT,transform_feedback},
@extension{ARB,transform_feedback2} (OpenGL 3.0, 4.0, OpenGL ES 3.0) in
new @ref TransformFeedback class, added
@ref Renderer::Feature::RasterizerDiscard.
- Support for @extension{ARB,robustness_isolation} in
@ref Renderer::graphicsResetStatus().
- Support for @extension{ARB,framebuffer_sRGB} (OpenGL 3.0) in
@ref Renderer::Feature::FramebufferSRGB.
- Support for @extension{OES,texture_npot} ES extension.
- Support for debug groups from @extension{KHR,debug} (OpenGL 4.5) and
@extension{EXT,debug_marker} extensions in @ref DebugGroup class.
- Added @ref CubeMapTexture::image() "CubeMapTexture::*image()" that
returns all six faces together.
- Added @ref Primitives::Cube::solidStrip().
- Added @ref AbstractShaderProgram::attachShaders() as a list-based
complement to @ref Shader::compile() and
@ref AbstractShaderProgram::link().
- Separated @cpp Renderer::setFeature() @ce into shorter
@ref Renderer::enable() and @ref Renderer::disable().
- Added @cpp tau() @ce, @cpp piHalf() @ce, @cpp e() @ce, @cpp nan() @ce and
@cpp inf() @ce to @ref Math::Constants.
- Added @ref Math::Matrix4::shearingXY() "Math::Matrix[34]::shearing*()".
- Added @ref Math::Matrix4::lookAt() (see [mosra/magnum#88](https://github.com/mosra/magnum/issues/88)).
- Added @ref Math::Vector::pad().
- Added @ref Math::div().
- Using range-based-for to traverse object children and features in
@ref SceneGraph and screens in @ref Platform::BasicScreenedApplication "Platform::ScreenedApplication".
- Convenience overload for @ref Framebuffer::read() "*Framebuffer::read()"
and @ref Texture::image() "*Texture::image()" that returns the queried
image by value instead of as parameter.
- Added @ref Buffer::uniformOffsetAlignment() and
@ref Mesh::maxElementIndex() limit queries.
- Added @ref AbstractTexture::unbind() for unbinding range of texture
units.
- Added @ref SceneGraph::AbstractObject::addFeature() and
@ref SceneGraph::Object::addChild() functions (see [mosra/magnum#86](https://github.com/mosra/magnum/issues/86)).
- VSync support in @ref Platform::Sdl2Application.
- Added `Platform::*Context` libraries for users which want to use custom
windowing toolkits instead of the ones provided.
- Improved documentation about @ref Shaders namespace, added sample image
for each.
@subsection changelog-2015-05-changes Changes
- Using [flextGL](https://github.com/ginkgo/flextgl) instead of `glLoadGen`
for OpenGL extension loading
- @ref Platform::Sdl2Application now tries to create core context on all
platforms, not just OSX (see [mosra/magnum#80](https://github.com/mosra/magnum/issues/80)).
- @ref Buffer::bind(), @ref Buffer::unbind() and @ref Buffer::Target is
now used for indexed buffer binding only.
- Moved static binary operations from @ref Math classes into free functions
for more convenient usage (see [mosra/magnum#74](https://github.com/mosra/magnum/issues/74)).
- Better algorithm for comparing floating-point values.
- Ensuring that all OpenGL objects are properly created before using them.
- Using @cpp const char @ce instead of @cpp const unsigned char @ce for raw
binary data.
- Removed annoying restriction when adding reference-counted resources to
@ref ResourceManager.
- Extension querying cleanup:
- Removed @extension{APPLE,flush_buffer_range} extension.
- Replaced @extension{APPLE,vertex_array_object} with
@extension{ARB,vertex_array_object}.
- Replaced @extension{NV,half_float} with @extension{ARB,half_float_vertex}.
- Replaced @extension{EXT,framebuffer_sRGB} with @extension{ARB,framebuffer_sRGB}.
- Documentation cleanup, fixes and improvements.
@subsection changelog-2015-05-buildsystem Build system
- CMake now always installs `FindMagnum.cmake` to library-specific
location, making it usable without providing own copy of the file in
depending projects. The `WITH_FIND_MODULE` option is no longer needed.
- CMake now handles inter-library dependencies automatically without manually
specifying each and every one (see [mosra/magnum#73](https://github.com/mosra/magnum/issues/73)).
- Ability to control static build of plugins separately using
`BUILD_PLUGINS_STATIC`.
- Displaying all header files, plugin metadata files and resource files in
project view to make use of some IDEs less painful (such as QtCreator).
- Gentoo ebuild (see [mosra/magnum#69](https://github.com/mosra/magnum/issues/69),
[mosra/magnum#83](https://github.com/mosra/magnum/issues/83)).
@subsection changelog-2015-05-bugfixes Bug fixes
- Fixed @ref TextureTools::distanceField() to work in GLSL < 4.20 (see
[mosra/magnum#62](https://github.com/mosra/magnum/issues/62)).
- Fixed @ref Shaders::MeshVisualizer to work in GLSL ES.
- Fixed @ref Shaders::Vector "Shaders::*Vector" on Intel GPUs.
- Fixed assertion on contexts without default framebuffer (see
[mosra/magnum#93](https://github.com/mosra/magnum/issues/93)).
- Fixed cases where shader would use extension that is not advertised by the
driver.
- Properly handle case where
@fn_gl_extension{VertexArrayVertexAttribDivisor,EXT,direct_state_access} is
not available in the driver (see [mosra/magnum#77](https://github.com/mosra/magnum/issues/77)).
- Removed superfluous level argument from @ref Framebuffer::attachTexture() "Framebuffer::attachTexture*()"
overloads for texture types that don't support mipmapping.
- Proper no-op fallback for @ref Framebuffer::invalidate() "*Framebuffer::invalidate()"
on platforms where the extensions is not supported (see
[mosra/magnum#63](https://github.com/mosra/magnum/issues/63)).
- Fixed garbage characters in shader compilation output (see
[mosra/magnum#87](https://github.com/mosra/magnum/issues/87)).
- Fixed memory corruption on MSVC 2013 (see [mosra/magnum#70](https://github.com/mosra/magnum/issues/70)).
- Fixed potential memory corruption errors with static build (see
[mosra/magnum#79](https://github.com/mosra/magnum/issues/79)).
- Fixed aspect-ratio-corrected projection with inverted Y in
@ref SceneGraph::Camera3D "SceneGraph::Camera*D".
- Fixed wheel direction in @ref Platform::Sdl2Application (see
[mosra/magnum#68](https://github.com/mosra/magnum/issues/68)).
- Fixed bogus version check in @ref Platform::WindowlessCglApplication (see
[mosra/magnum#92](https://github.com/mosra/magnum/issues/92))
- Fixed matrix to quaternion conversion algorithm.
- Two different headers in @ref Magnum::Primitives had the same include guard
by accident (see [mosra/magnum#72](https://github.com/mosra/magnum/issues/53))
- Various compilation fixes on various platforms (see
[mosra/magnum#71](https://github.com/mosra/magnum/pull/71))
@subsection changelog-2015-05-deprecated Deprecated APIs
- The `Magnum/Query.h` header is deprecated, use one of
@ref Magnum/PrimitiveQuery.h, @ref Magnum/SampleQuery.h or
@ref Magnum/TimeQuery.h instead.
- Using @ref Buffer::Target as constructor or @ref Buffer::setTargetHint()
parameter is deprecated, use @ref Buffer::TargetHint instead.
- The @cpp SceneGraph::TransformationType @ce enum is depracted, use separate
`<transform>()` and `<transform>Local()` variants instead.
- @cpp SceneGraph::AbstractObject::hasFeatures() @ce, @cpp firstFeature() @ce,
@cpp lastFeature() @ce, @cpp SceneGraph::Object::hasChildren() @ce,
@cpp firstChild() @ce and @cpp lastChild() @ce are deprecated, use methods on
linked list returned by @ref SceneGraph::AbstractObject::features() and
@ref SceneGraph::Object::children() instead.
- @cpp Platform::ScreenedApplication::frontScreen() @ce and
@cpp Platform::ScreenedApplication::backScreen() @ce are deprecated, use
methods on linked list returned by
@ref Platform::BasicScreenedApplication::screens() "Platform::ScreenedApplication::screens()"
instead.
- @ref Framebuffer::read() "*Framebuffer::read()" functions taking two
vectors are deprecated, use overload taking @ref Range2Di instead.
- The @cpp Mesh::maxVertexAttributes() @ce function is deprecated, use
@ref AbstractShaderProgram::maxVertexAttributes() instead.
- @cpp Math::Vector::dot() @ce, @cpp Math::Complex::dot() @ce,
@cpp Math::Quaternion::dot() @ce, @cpp Math::Vector::angle() @ce,
@cpp Math::Complex::angle() @ce, @cpp Math::Quaternion::angle() @ce,
@cpp Math::Quaternion::lerp() @ce, @cpp Math::Quaternion::slerp() @ce,
@cpp Math::Vector2::cross() @ce and @cpp Math::Vector3::cross() @ce are
deprecated, use @ref Math::dot(), @ref Math::angle(),
@ref Math::lerp(), @ref Math::slerp() and @ref Math::cross() instead (see
[mosra/magnum#74](https://github.com/mosra/magnum/issues/74))
- The @cpp *Framebuffer::bind(FramebufferTarget) @ce function is deprecated,
use parameter-less @ref Framebuffer::bind() "*Framebuffer::bind()"
instead.
- The @cpp FramebufferTarget::ReadDraw @ce enum value is deprecated, use
separate @cpp FramebufferTarget::Read @ce and @cpp FramebufferTarget::Draw @ce
values instead.
- @ref CubeMapTexture::imageSize() with explicit face parameter is
deprecated, use overload that returns one value for all faces instead.
- The `Magnum/DebugMessage.h` header is deprecated, use
@ref Magnum/DebugOutput.h instead (see [mosra/magnum#89](https://github.com/mosra/magnum/pull/89))
- The @cpp DebugMessage::Severity @ce enum is deprecated, use
@ref DebugOutput::Severity instead.
- The @cpp DebugMessage::Callback @ce typedef, @cpp DebugMessage::setCallback() @ce
and @cpp DebugMessage::setDefaultCallback() @ce function is deprecated, use
@ref DebugOutput::Callback, @ref DebugOutput::setCallback() and
@ref DebugOutput::setDefaultCallback() instead.
- The @cpp DebugMessage::maxLoggedMessages() @ce and
@cpp DebugMessage::maxMessageLength() @ce functions are deprecated, use
@ref DebugOutput::maxLoggedMessages() and
@ref DebugOutput::maxMessageLength() instead.
- The @cpp DebugMessage::setEnabled() @ce function and related values from
@cpp DebugMessage::Source @ce enum are deprecated, use
@ref DebugOutput::setEnabled() along with @ref DebugOutput::Source,
@ref DebugOutput::Type and @ref DebugOutput::Severity instead.
- Parameter-less @cpp *Query @ce constructor and parametrized
@cpp *Query::begin() @ce function are deprecated, use constructor with
parameter and parameter-less @ref Query::begin() "*Query::begin()"
instead.
@subsection changelog-2015-05-compatibility Potential compatibility breakages, removed APIs
- All functionality @ref changelog-2014-01-deprecated "deprecated in 2014.01"
has been removed, namely:
- Removed deprecated ability to use relative includes (e.g.
@cpp #include <Mesh.h> @ce), use absolute paths (@cpp #include <Magnum/Mesh.h> @ce)
instead.
- Removed deprecated @cpp Mesh::Primitive @ce enum, use @ref MeshPrimitive
instead.
- Removed deprecated @cpp Sampler::maxAnisotropy() @ce function, use
@ref Sampler::maxMaxAnisotropy() instead.
- Removed deprecated @cpp Math::Geometry::Rectangle @ce class, use
@ref Math::Range instead.
- Removed deprecated @cpp SceneGraph::Animable::group() @ce function, use
@ref SceneGraph::Animable::animables() instead.
- Removed deprecated `Shaders/magnumShadersResourceImport.hpp` file, use
`Shaders/resourceImport.hpp` instead.
- Removed deprecated @cpp Text::TextRenderer @ce alias, use
@ref Text::Renderer instead.
- Removed long-deprecated @ref BufferImage::setData() overload, use the
other one instead.
@subsection changelog-2015-05-performance Performance improvements
- Faster vector multiplication in @ref Math::Quaternion.
- Saved one swizzle in @ref Math::cross().
- Allocation-free overloads of functions that took @cpp std::string @ce just to
pass its contents to OpenGL.
@section changelog-2014-06 2014.06
Released 2014-06-30, tagged as
[v2014.06](https://github.com/mosra/magnum/releases/tag/v2014.06). See the
[release announcement](http://blog.magnum.graphics/announcements/june-2014-updates/)
for a high-level overview.
@subsection changelog-2014-06-dependencies Dependency changes
- Minimal required GCC version is now 4.7. Support for GCC 4.6 has been moved
to `compatibility` branch (see [mosra/magnum#18](https://github.com/mosra/magnum/issues/18))
@subsection changelog-2014-06-new New features
- Experimental Android support, see @ref building-cross-android "building documentation"
for more information
- Initial implementation of @ref Platform::AndroidApplication class
- @ref Platform::WindowlessWglApplication and @ref Platform::WindowlessCglApplication,
which enable @ref magnum-info, @ref magnum-distancefieldconverter and
@ref magnum-fontconverter utilities on OS X and Windows. See
[mosra/magnum#40](https://github.com/mosra/magnum/issues/40) and
[mosra/magnum#59](https://github.com/mosra/magnum/pull/59).
- @ref Trade::ObjImporter "ObjImporter" plugin, mesh import only (no
materials yet)
- Completed support of @extension{EXT,texture_integer},
@extension{ARB,stencil_texturing}, @extension{ARB,texture_rectangle},
@extension{ARB,texture_buffer_object}, @extension{ARB,texture_swizzle},
@extension{EXT,texture_sRGB_decode} extensions (and related ES extensions) and
other missing parameters in @ref Texture "*Texture" classes
- Basic support for @extension{ARB,texture_multisample} and
@extension{ARB,texture_storage_multisample} in new @ref MultisampleTexture
class
- Instanced rendering, base vertex and base instance specification in
@ref Mesh and @ref MeshView classes; @ref Mesh::addVertexBufferInstanced()
function for adding buffers with per-instance data (see
[mosra/magnum#47](https://github.com/mosra/magnum/issues/47))
- Mesh multi-draw using @ref MeshView::draw()
- Initial @extension{ARB,multi_bind} support with @ref AbstractTexture::bind()
- Support for @extension{ARB,vertex_type_10f_11f_11f_rev} in
@cpp AbstractShaderProgram::Attribute::DataType @ce
- New variants of @ref Shader::compile() and @ref AbstractShaderProgram::link(),
allowing the driver to perform paralell compilation in multiple threads.
- Added @ref Texture::maxSize() "*Texture::maxSize()" queries
- @ref MeshTools::compile() for automagic creation of 2D and 3D meshes from
imported data
- @ref MeshTools::interleaveInto() for interleaving data into existing
buffer
- @ref Shapes::Shape::collision() function as complement to
@ref Shapes::Shape::collides()
- @ref Platform::GlutApplication::KeyEvent finally has more complete key
support
- @ref Math::Range::data() function, useful when querying range values from
GL
- Support for specifying context flags using
@ref Platform::Sdl2Application::Configuration::setFlags() "Platform::*Application::Configuration::setFlags()",
they are now also shown in @ref magnum-info
- More robust support for driver detection and driver bug workarounds. Driver
can be detected using @ref Context::detectedDriver(), problematic
extension disabled, which is then shown in @ref magnum-info and can be
also queried using @ref Context::isExtensionDisabled()
- @ref Context::extensionStrings() for getting list of all extension
strings exposed by the driver
- @ref Context::resetState() for resetting internal state tracker, allowing
to use Magnum along with third-party OpenGL code (see
[mosra/magnum#48](https://github.com/mosra/magnum/issues/48))
- @ref MAGNUM_TARGET_WEBGL CMake and preprocessor variable
@subsection changelog-2014-06-changes Changes
- Libraries and plugins in debug build configuration are installed to
different locations, making it possible to have debug and release libraries
installed alongside each other (see
[mosra/magnum#20](https://github.com/mosra/magnum/issues/20),
[mosra/magnum#45](https://github.com/mosra/magnum/issues/18))
- @ref Platform::Sdl2Application is now used everywhere (documentation,
tutorials, examples) by default, replacing @ref Platform::GlutApplication.
The GLUT application is still available, though. See
[mosra/magnum#39](https://github.com/mosra/magnum/issues/39).
- The need for compiler compatibility mode is now automatically detected by
CMake to avoid strange compilation errors later
- Split out @ref Texture functionality into dedicated @ref TextureArray,
@ref MultisampleTexture and @ref RectangleTexture classes to make their
usage less error-prone
- @ref Buffer::invalidateData(), @ref Buffer::invalidateSubData() and
@ref Renderer::resetNotificationStrategy() functions are enabled on
OpenGL ES as a no-op
- Added @ref std::vector overload of @ref MeshTools::combineIndexArrays()
for greater runtime-usage flexibility
- @ref Platform::Sdl2Application now defaults to non-resizable window, you
can change the behavior using @ref Platform::Sdl2Application::Configuration::setWindowFlags()
- It's now possible to import objects without materials
- More robust OpenGL version checks when creating context
- Thorough documentation review, fixes and improvements
@subsection changelog-2014-06-buildsystem Build system
- Avoiding unnecessary linking of the OpenGL library (see
[mosra/magnum#60](https://github.com/mosra/magnum/pull/60))
@subsection changelog-2014-06-bugfixes Bug fixes
- Fixed usage with OpenGL ES 3.1 contexts (it complained about invalid
version)
- Fixed compilation of Shaders::MeshVisualizer under WebGL and with ANGLE,
see [mosra/magnum#56](https://github.com/mosra/magnum/issues/56)
- Fixed various build issues on Mac OS X, see
[mosra/magnum#51](https://github.com/mosra/magnum/issues/51) and
[mosra/magnum#54](https://github.com/mosra/magnum/issues/54)
@subsection changelog-2014-06-deprecated Deprecated APIs
- @cpp Mesh::setVertexCount() @ce and @cpp Mesh::setIndexCount() @ce had
nonintuitive behavior in some corner cases and are deprecated, use general
@ref Mesh::setCount() function instead
- @cpp MeshView::setVertexRange() @ce and four-/two-argument
@cpp MeshView::setIndexRange() @ce are deprecated for similar reason as
above, use @ref MeshView::setCount(), @ref MeshView::setBaseVertex()
and three-/one-argument @ref MeshView::setIndexRange() instead
- @cpp Texture::Target @ce enum is deprecated as the API was too error-prone,
use dedicated @ref TextureArray, @ref MultisampleTexture and
@ref RectangleTexture classes instead
- @cpp Framebuffer::attachTexture*D() @ce is deprecated, use more generic
@ref Framebuffer::attachTexture() and
@ref Framebuffer::attachTextureLayer() instead
- @cpp FramebufferBlit::*Buffer @ce enum values are deprecated, use shorter
@ref FramebufferBlit::Color and similar instead
- @ref Audio::Source::play(), @ref SceneGraph::AbstractObject::setClean(),
@ref SceneGraph::AbstractObject::transformationMatrices() and similar
taking @ref std::initializer_list of pointers are deprecated, use versions
taking list of references instead
- @ref MeshTools::compressIndices() and @ref MeshTools::interleave()
which filled @ref Mesh and @ref Buffer directly are deprecated as they
had undesired side-effects in some cases, use the data-returning versions
instead and then configure mesh and buffer manually
- @ref MeshTools::combineIndexedArrays() taking @ref std::tuple is
deprecated, use version taking @ref std::pair instead
- @ref MeshTools::removeDuplicates() taking also list of indices is
deprecated, use the function in conjunction with @ref MeshTools::duplicate().
See function documentation for more information.
- Parameter-less @ref Mesh::draw() and @ref MeshView::draw() are
deprecated, use versions with explicit shader parameter instead
- Deprecated implicit conversion of @ref Resource "Resource<T, U>" to
@cpp U& @ce, as it is not safe. Use explicit dereference operator instead.
- Texture binding using @ref Texture::bind() "*Texture::bind()" is
deprecated, use setup functions of particular shaders instead (e.g.
@ref Shaders::Phong::setDiffuseTexture())
- @cpp Context::Flag::Robustness @ce is deprecated, use
@ref Context::Flag::RobustAccess which reflects OpenGL naming better
instead
- @cpp Texture::maxLayers() @ce has misleading naming and is deprecated, use
@ref Shader::maxCombinedTextureImageUnits() instead
@subsection changelog-2014-06-compatibility Potential compatibility breakages, removed APIs
- All functionality @ref changelog-2013-10-deprecated "deprecated in 2013.10"
has been removed, namely:
- Removed deprecated raw-pointer versions of @ref Buffer::setData() and
@ref Buffer::setSubData(), use overloads taking
@cpp Containers::ArrayReference @ce instead
- Removed deprecated `Magnum/ImageFormat.h` header and
@cpp ImageFormat @ce/@cpp ImageType @ce enums, use `Magnum/ColorFormat.h`
header and @cpp ColorFormat @ce/@cpp ColorType @ce enums instead
- Removed deprecated @cpp Matrix2 @ce and @cpp Matrix2d @ce typedefs, use
:ref:`Matrix2x2` and :ref:`Matrix2x2d` instead
- Removed deprecated `Magnum/Swizzle.h` header and @cpp Magnum::swizzle() @ce
function, use @ref Magnum/Math/Swizzle.h and @ref Math::swizzle()
instead
- Removed deprecated @cpp *::maxSupported*() @ce limit queries, use the
less verbose @cpp *::max*() @ce versions instead
- Removed deprecated @cpp Platform::*Application::InputEvent::Modifier::*Button @ce
enum values, use @ref Platform::Sdl2Application::MouseMoveEvent::buttons() "Platform::*Application::*Event::buttons()"
function and @ref Platform::Sdl2Application::MouseMoveEvent::Button "Platform::*Application::*Event::Button"
enum instead
- @cpp Platform::Sdl2Application::Configuration::Flag @ce enum and related
functions were replaced with WindowFlag, as the name would now conflict
with context flags
@subsection changelog-2014-06-internal Internal changes
- Removed last remaining bits of global state, everything is now stored
per-context.
@section changelog-2014-01 2014.01
Released 2014-01-21, tagged as
[v2014.01](https://github.com/mosra/magnum/releases/tag/v2014.01). See the
[release announcement](http://blog.magnum.graphics/announcements/january-2014-updates/)
for a high-level overview.
@subsection changelog-2014-01-dependencies Dependency changes
No dependency changes in this release.
@subsection changelog-2014-01-new New features
- MSVC 2013 support in `compatibility` branch
- Dependency-less plugins from Magnum Plugins repository are now part of
Magnum to make their usage easier, in particular the @ref Text::MagnumFont "MagnumFont",
@ref Text::MagnumFontConverter "MagnumFontConverter",
@ref Trade::TgaImporter "TgaImporter", @ref Trade::TgaImageConverter "TgaImageConverter"
and @ref Audio::WavImporter "WavAudioImporter" plugins.
- Documented @ref opengl-support "state of OpenGL support",
@ref opengl-mapping "mapping between OpenGL and Magnum API",
@ref plugins "general plugin usage" and added
@ref troubleshooting "troubleshooting page" for most common building and
rendering issues
- Support for horizontal and vertical text alignment and multi-line text in
@ref Text::Renderer (line wrapping is still left up to the user)
- New @ref magnum-fontconverter utility for converting between font formats
(e.g. creating distance-field raster font from TTF font). Enable it with
`WITH_FONTCONVERTER` CMake option (currently Linux only), see
`magnum-fontconverter --help` for more information.
- Support for OpenGL object labels, debug message insertion and retrieval
(@extension{KHR,debug}, @extension{EXT,debug_label} and @extension{EXT,debug_marker}
extensions) (see [mosra/magnum#42](https://github.com/mosra/magnum/issues/42))
- @ref Platform::BasicScreenedApplication "Platform::ScreenedApplication"
class allowing the users to easily use multiple independent screens in the
application.
- New 1D, 2D and 3D @ref Math::Range class
- Added @cpp red() @ce, @cpp green() @ce, @cpp blue() @ce, @cpp cyan() @ce,
@cpp magenta() @ce and @cpp yellow() @ce convenience functions to @ref Color3
and @ref Color4 classes
- Convenience @ref Color3ub and @ref Color4ub typedefs
- New @ref version() utility functions for converting @ref Version enum
value to major/minor version number and back
- Added @cpp release() @ce function to @ref Image and @ref Trade::ImageData
for releasing ownership of the data, similar to @ref std::unique_ptr::release()
(see [mosra/magnum#29](https://github.com/mosra/magnum/issues/29))
- @cpp *Image::dataSize() @ce function for computing size of buffer required
to store image of given size
- Disallowing conversion of rvalue @ref Image and @ref Trade::ImageData
to ImageReference as it would result in access to deleted memory (GCC
4.8.1/Clang only)
- No-op fallback for @ref Texture::setMaxAnisotropy() "*Texture::setMaxAnisotropy()"
in case @extension{EXT,texture_filter_anisotropic extension} is not supported
- Added @cpp round() @ce, @cpp floor() @ce and @cpp ceil() @ce scalar/vector
functions to @ref Math namespace
- @ref Math::minmax() and @ref Math::Vector2::minmax() functions
- Modulo operations for integral @ref Math::Vector classes
- Ability to request context version in all windowed
@ref Platform::Sdl2Application "Platform::*Application" classes
- Mouse wheel support in @cpp Platform::NaClApplication::MouseEvent @ce
- No-op @ref Platform::GlutApplication::keyReleaseEvent() and
@cpp Platform::NaClApplication::Configuration::setTitle() @ce functions to
preserve source compatibility with other application classes.
- @ref SceneGraph::Drawable::drawables() function as a non-ambiguous
alternative to @cpp group() @ce
- Ability to specify background color color in @ref Shaders::Vector,
allowing it to use without blending enabled (fully transparent black was
used previously)
- New @ref Shaders::Generic class with common definitions, so you can
configure mesh for the generic shader and render it with any other
compatible shader
- Convenience @cpp hasNormals() @ce, @cpp hasTextureCoords2D() @ce functions to
@ref Trade::MeshData2D and @ref Trade::MeshData3D
- OpenGL ES 3.0 build now shares list of vendor extensions with OpenGL ES 2.0
build (i.e. only those extensions that aren't part of ES 3.0 are present in
@ref Magnum::Extensions)
- All classes in documentation are now shown with corresponding @cpp #include @ce
path
@subsection changelog-2014-01-changes Changes
- Preferring absolute includes instead of relative (see [mosra/magnum#36](https://github.com/mosra/magnum/issues/36))
- The `magnum-distancefield` utility is now named @ref magnum-distancefieldconverter
for consistency with other command-line utilities
- @cpp ImageReference @ce class now stores const data pointer instead of
mutable one, modifying the data through the class interface isn't valid use
case anyway
- Added default template parameter to @ref Buffer::data() and made
@ref Image::data() "*Image::data()" templated to have them consistent.
Note that this is source-compatible change.
- @cpp Query::result<bool>() @ce returns @cpp true @ce if value is nonzero
(was returning @cpp true @ce only for value of 1 previously)
- All functions in @ref MeshTools namespace are now returning either
@ref Corrade::Containers::Array or @ref std::unique_ptr instead of naked
pointers to avoid accidental out-of-bounds access and memory leaks
- All functions in @ref Text namespace are now returning @ref std::unique_ptr
instead of naked pointers to avoid accidental memory leaks
- Implementation of @ref Platform::Sdl2Application::viewportEvent() "Platform::*Application::viewportEvent()"
is not required anymore, because in many cases the application doesn't need
to react to window resize events at all
- Textured @ref Shaders::Flat now multiplies texture with the specified
color instead of ignoring it. See also [mosra/magnum#34](https://github.com/mosra/magnum/issues/34)
- All deprecated functions and types are now emitting compiler warnings to
encourage updating the code
- Various documentation and example updates and improvements
@subsection changelog-2014-01-bugfixes Bug fixes
- Fixed @ref CubeMapTextureArray::image() function (more precisely it
wasn't working at all). See also [mosra/magnum#31](https://github.com/mosra/magnum/issues/31).
- Fixed wrong assertion in @ref Texture::setWrapping() for rectangle
textures
- Fixed wrong assertion in @cpp AbstractImage::pixelSize() @ce when computing
size of separate depth and stencil formats
- @ref Mesh::addVertexBuffer() now properly computes offsets for matrix
attributes
- Taking index buffer offset into account in @ref MeshView class
- Fixed various issues with textured @ref Shaders::Flat shader (actually
the textured version was not working at all)
- Various OS X-related fixes in @ref Shaders library. See also
[mosra/magnum#27](https://github.com/mosra/magnum/issues/27).
- Fixed building issues when both SDL1 and SDL2 is installed on OS X. See
also [mosra/magnum#25](https://github.com/mosra/magnum/issues/25),
[mosra/magnum#38](https://github.com/mosra/magnum/pull/38).
- Fixed building issues with CMake-generated XCode project on OS X. See also
[mosra/magnum#37](https://github.com/mosra/magnum/issues/37).
- Proper and failsafe OpenGL 3 context creation on OS X (3.0 is implemented
only as core context, thus requesting 2.1 won't expose newer features). See
also [mosra/magnum#26](https://github.com/mosra/magnum/issues/26),
[mosra/magnum#35](https://github.com/mosra/magnum/issues/35) and
[mosra/magnum#43](https://github.com/mosra/magnum/pull/43).
- Fixed compilation issues with Clang and libc++
- Fixed various compilation issues under MSVC (and worked around an insane
amount of compiler bugs)
@subsection changelog-2014-01-deprecated Deprecated APIs
- @cpp Buffer::Usage @ce enum is deprecated to reduce header dependencies, use
global @ref BufferUsage enum instead
- @cpp Mesh::Primitive @ce enum is deprecated to reduce header dependencies,
use global @ref MeshPrimitive enum instead
- @cpp Sampler::maxAnisotropy() @ce is deprecated to avoid naming conflict with
@ref Texture::setMaxAnisotropy() "*Texture::setMaxAnisotropy()", use
@ref Sampler::maxMaxAnisotropy() instead
- @cpp Magnum::Geometry::Rectangle @ce class (and @cpp Rectangle* @ce typedefs)
is deprecated, use more generic and feature-rich @ref Math::Range
instead.
- @cpp Platform::Sdl2Application::Configuration::setFlags() @ce function and
related enum is deprecated to avoid naming conflict in the future, use @ref Platform::Sdl2Application::Configuration::setWindowFlags() instead
- @cpp SceneGraph::Animable::group() @ce is deprecated, use non-ambiguous
@ref SceneGraph::Animable::animables() instead
- `Magnum/Shaders/magnumShadersResourceImport.hpp` header is deprecated in
favor of less verbose `Magnum/Shaders/resourceImport.hpp`
- @cpp Text::TextRenderer @ce class (and @cpp Text::TextRenderer2D @ce,
@cpp Text::TextRenderer3D @ce typedefs) is deprecated, use less redundant
name @ref Text::Renderer instead
@subsection changelog-2014-01-compatibility Potential compatibility breakages, removed APIs
- Removed @cpp SceneGraph::*Transformation::move() @ce from 2D transformation
classes. It was originally meant for modifying draw order, but as the draw
order is managed by @ref SceneGraph::DrawableGroup class and not by
parent object, this function is essentially useless.
@subsection changelog-2014-01-documentation Documentation
- Various documentation updates and fixes (see
[mosra/magnum#28](https://github.com/mosra/magnum/issues/28))
@subsection changelog-2014-01-internal Internal changes
- Added thorough tests for all core OpenGL functionality to make refactoring
easier
- Various internal optimizations and cleanup to make maintenance easier
- Using Jenkins Continuous Integration to maintain compilable and bug-free
state of the project more easily. Currently GCC 4.8, 4.7, 4.6, 4.5, 4.4,
Clang 3.3, Clang 3.3 with libc++, Emscripten, x86-32/x86-64 Native Client
and MinGW32 compilers are tested with both shared and static libraries.
Separately testing builds with deprecated features enabled and disabled.
Also explicitly testing desktop OpenGL, OpenGL ES 2.0, desktop OpenGL ES
2.0 emulation, OpenGL ES 3.0 and desktop OpenGL ES 3.0 emulation.
- All files from `src/` directory were moved to `src/Magnum`,
`external/` directory was moved to `src/MagnumExternal` (required to
make inter-project includes absolute, as mentioned above)
@section changelog-2013-10 2013.10
Released 2013-10-30, tagged as
[v2013.10](https://github.com/mosra/magnum/releases/tag/v2013.10). See the
[release announcement](http://blog.magnum.graphics/announcements/october-2013-updates/)
for a high-level overview.
@subsection changelog-2013-10-dependencies Dependency changes
- Removed GLEW dependency in favor of built-in `glLoadGen`, resulting in
greatly reduced compilation time and less compatibility issues. The base
library thus now depends only on Corrade and OpenGL libraries. See
[mosra/magnum#11](https://github.com/mosra/magnum/issues/11),
[mosra/magnum#16](https://github.com/mosra/magnum/issues/16),
[mosra/magnum#21](https://github.com/mosra/magnum/issues/21),
[mosra/magnum#22](https://github.com/mosra/magnum/issues/22),
[mosra/magnum#23](https://github.com/mosra/magnum/pull/23).
@subsection changelog-2013-10-new New features
- Initial Emscripten (HTML5/WebGL) port. See @ref Platform::Sdl2Application
for detailed porting information. The @ref example-index "examples page"
has now links to online Emscripten demos, see also
[base-emscripten](https://github.com/mosra/magnum-bootstrap/tree/base-emscripten)
branch in Magnum Bootstrap.
- Mac OS X port (thanks to Miguel Martin)
- @ref Math::Vector::isZero() and @ref Math::Vector2::aspectRatio()
convenience functions
- Bitwise AND, OR, XOR, bit inversion and bit shift in integral
@ref Math::Vector classes
- @ref Math::Matrix4x3 "Math::MatrixMxN<T>" and
@ref Math::Matrix3x3 "Math::MatrixNxN<T>" template aliases for non-square
and non-transforming square matrices in @ref Math namespace,
@ref Matrix3x2 "MatrixNxN" and @ref Matrix2x2d "MatrixNxNd" typedefs for
@cpp float @ce and @cpp double @ce non-transforming square matrices in root
Magnum namespace. Note that template aliases are not present in GCC 4.6
builds.
- Limit queries for all OpenGL objects, the information is now printed also
by @ref magnum-info utility.
- @ref Context::isExtensionSupported() is now able to query extension
availability on particular GLSL version
- Using @ref std::unique_ptr and C++1y @cpp std::optional @ce for resources
returned from @ref Trade::AbstractImporter for better usability and to
avoid accidental memory leaks
- New translation-only transformation in @ref SceneGraph supporting also
purely integral coordinates, useful e.g. for UI or 2D platformers.
- Detailed collision queries and new @ref Shapes::InvertedSphere "InvertedSphere"
shape in Shapes library
- Texture support in @ref Shaders::Flat
- Mouse button queries in @ref Platform::Sdl2Application::MouseMoveEvent "Platform::*Application::MouseMoveEvent"
@subsection changelog-2013-10-changes Changes
- @ref Buffer::setData() and @ref Buffer::setSubData() are now accepting
@ref Containers::ArrayReference for more convenient usage
- @ref Platform::Sdl2Application::viewportEvent() "Platform::*Application::viewportEvent()"
is not called at all if window size doesn't change, allowing for less
cumbersome ofscreen rendering setups
- Removed redundant operators from @ref Math::RectangularMatrix "Math::*Matrix",
use vectors for component-wise multiplication and division instead
- Documentation updates and improvements to make the library more accessible
for newcomers
- Various build system updates for better compile times and easier
installation
@subsection changelog-2013-10-bugfixes Bug fixes
- Fixed compilation with Clang and libc++ (see
[mosra/magnum#12](https://github.com/mosra/magnum/issues/12))
- Fixes compilation of the Audio library on macOS (see
[mosra/magnum#19](https://github.com/mosra/magnum/issues/19))
- Fixed compatibility of builtin shaders with GLSL 1.20 and GLSL ES 1.00,
added shader compilation tests to prevent this issue from reappearing (see
[mosra/magnum#17](https://github.com/mosra/magnum/issues/17))
- Extension support queries depend on selected GLSL version (see
[mosra/magnum-examples#3](https://github.com/mosra/magnum-examples/issues/3))
@subsection changelog-2013-10-deprecated Deprecated APIs
- @cpp Matrix2 @ce and @cpp Matrix2d @ce is deprecated, use @ref Matrix2x2
and @ref Matrix2x2d instead
- @cpp swizzle() @ce is deprecated, all of its functionality has been moved
into @ref Math::swizzle()
- @cpp Buffer::setData() @ce and @cpp Buffer::setSubData() @ce overloads
taking pair of data pointer and size are deprecated, use
@cpp Containers::ArrayReference @ce-based @ref Buffer::setData() and
@ref Buffer::setSubData()
- `ImageFormat.h` header, @cpp ImageFormat @ce and @cpp ImageType @ce enums
are deprecated, use `ColorFormat.h` header, `ColorFormat` and `ColorType`
enums which reflect OpenGL naming better instead
- @cpp Platform::*Application::InputEvent::Modifier::*Button @ce enum values
are deprecated, use
@ref Platform::Sdl2Application::MouseMoveEvent::buttons() "Platform::*Application::*Event::buttons()"
and @ref Platform::Sdl2Application::MouseMoveEvent::Button "Platform::*Application::*Event::Button"
enum instead
- @cpp AbstractShaderProgram::maxSupportedVertexAttributeCount() @ce,
@cpp AbstractTexture::maxSupportedLayerCount() @ce and
@cpp Sampler::maxSupportedAnisotropy() @ce are deprecated in favor of less
verbose @ref AbstractShaderProgram::maxVertexAttributes(),
@cpp AbstractTexture::maxLayers() @ce and @cpp Sampler::maxAnisotropy() @ce
@subsection changelog-2013-10-compatibility Potential compatibility breakages, removed APIs
No deprecated API was removed in this release.
@section changelog-2013-08 2013.08
Released 2013-08-30, tagged as
[v2013.08](https://github.com/mosra/magnum/releases/tag/v2013.08). See the
[project announcement](http://blog.magnum.graphics/announcements/introducing-magnum/)
for a high-level overview.
Changelogs for previous versions are available in @ref changelog-old.
*/

Loading…
Cancel
Save