mirror of https://github.com/mosra/magnum.git
3 changed files with 749 additions and 710 deletions
@ -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. |
||||
|
||||
*/ |
||||
|
||||
} |
||||
Loading…
Reference in new issue