From 26c5617011b66776a4f92675462238b4ab91cdf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 28 Apr 2018 15:11:21 +0200 Subject: [PATCH] doc: moved old changelogs to a separate page. Nobody needs them. --- doc/00-page-order.dox | 5 +- doc/changelog-old.dox | 743 ++++++++++++++++++++++++++++++++++++++++++ doc/changelog.dox | 711 +--------------------------------------- 3 files changed, 749 insertions(+), 710 deletions(-) create mode 100644 doc/changelog-old.dox diff --git a/doc/00-page-order.dox b/doc/00-page-order.dox index 6b94ddbe2..0406dd732 100644 --- a/doc/00-page-order.dox +++ b/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 diff --git a/doc/changelog-old.dox b/doc/changelog-old.dox new file mode 100644 index 000000000..44dd2a5f7 --- /dev/null +++ b/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š + + 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 + `()` and `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 @ce), use absolute paths (@cpp #include @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" 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() @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" and + @ref Math::Matrix3x3 "Math::MatrixNxN" 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. + +*/ + +} diff --git a/doc/changelog.dox b/doc/changelog.dox index 16f44c323..df605de51 100644 --- a/doc/changelog.dox +++ b/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 - `()` and `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 @ce), use absolute paths (@cpp #include @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" 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() @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" and - @ref Math::Matrix3x3 "Math::MatrixNxN" 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. */