You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Opening early mainly to avoid forgetting the tiny but important things to do (in addition to all issues/PRs that are in this milestone). Goddamit this is growing fast.
Native touch events in EmscriptenApplication, Sdl2Application and AndroidApplication -- a76b764, 755a551, 005d4c2
update reST docs in bindings to use explicit :ref:, backticks somehow don't work anymore -- mosra/magnum-bindings@be5ffdd
Bind only the first attribute of given type in MeshTools::compile() -- if a mesh has two texcoord sets, both get bound, which basically means the first get overwritten by the second one and that's not correct -- c357a44
With mesh = GL::Mesh{NoCreate}, GL::Context::current() is still accessed on mesh destruction (needs to drop/rework the vector-based internals and turn them into a type-erased Array with a growable deleter of a concrete type, which will avoid the need to ask state tracker which code path to use) -- f7a6d79
EXT/OES_draw_elements_base_vertexis broken (no-op?) on ANGLE multidraw doesn't work on ANGLE due to EXT_multi_draw_elements not implemented, use the ANGLE ext there instead - 5f184bb
Prefix all CMake options with CORRADE_ / MAGNUM_ to make things less shitty for subprojects, provide some backwards compatibility to avoid breaking everything -- mosra/corrade@878624a, b983781 and similar commits in other repos
Magnum Integration options should be also suffixed with INTEGRATION, it's confusing otherwise
And bindings should be suffixed with _BINDINGS I guess?
Check for src == dst in Directory::copy() (needs to compare inodes to be robust) @Squareys
uploading 512x512 tiles of a 4096x4096 CompressedImage3D (4x4, 128bit blocks) doesn't work correctly, data size is calculated as 2034 kB instead of 20148 for some reason -- investigate
note to self: I have a stash of this + various other fixes, need better tests to catch this properly
make FreeTypeFont library thread-local on windows (it needs to be exported so harfbuzz can use it, but dllexported symbols can't be threadlocal because WINDOWS GODDAMIT WINDOWS)
With static plugins the manager doesn't verify that there are no instances left on destruction, causing FreeType to be unloaded too early, and then the plugin use crashes in a nasty way -- make it check always
The "global" state also breaks/asserts when the plugin is loaded through multiple plugin managers at the same time, what to do?
implement option propagation in Any plugins and avoid specifying --importer every time I need to set some plugin options -- e6d673c
Add -I / -C shortcut options for --importer / --converter to all tools -- 6be0248
allow omiting the Importer / SceneConverter / ImageConverter suffixes
Look into website caching (cache-busting URLs?)
Finally deshittify Doxygen URLs (should also save quite a bit on the search data size)
Source links
List of all members including inherited members (add those to search also)
Improve docs:
Mark SceneGraph, ResourceManager, Interconnect and related APIs as being in maintenance mode from now on
ResourceManager, Resource (what is T and U, what is "resource state"... basically throw away everything existing and start from scratch) no, maintenance mode now
"Light drawing" example in Drawable docs (based on what I have in magnum-player) -- or maybe do that directly in the viewer example once SceneData is in? no, maintenance mode now
Mention the difference between Matrix3x3 and Matrix3 more prominently (in the type overview, in Matrix3 docs...) and for Matrix4 as well -- 3097c4c
Document use of ANGLE on Mac, stop saying it's Windows-only in progress -- 4be0f6d
Improve GL::Texture documentation, show a basic single-mip case and then either uploading all mips (mention file formats that know it) or generating them; reference the example
Split package and building docs, it grew too much over the years
Switch to the new NDK layout, update docs about LIB_SUFFIX autodetect LIB_SUFFIX on new NDK versions, mention CMake 3.20 and an explicit FIND_ROOT_PATH on older versions -- bc0bb07
Additionally, on Emscripten it's missing image plugins, make it exclude icons from the style to fix that -- mosra/magnum-examples@06acb6b
Add a Mac + ANGLE build, use a binary from Mac Angle magnum-ci#3 actually running against SwiftShader would be better (and using it for Vulkan as well) -- 031d1ce
Tell travis to fuck offPort to travis-ci.com so we have usable PR reports again actually, yes, tell Travis to fuck off
Port remaining repos to CircleCI (integration, examples, extras, bindings, bootstrap, flextgl left)
What about Android and iOS builds? I really don't want to rework these as they rely on some ancient infrastructure in order to actually run the tests (hopefully maybe Travis actually responds to that e-mail at some point?) Restore Android and iOS builds on another CI service #523
Same for codecov (@codecov-commenter comments but complains we should be using the GitHub App action thingy whatever)
Use grcov all in clang-cl builds (done in magnum-extras already, needs to be done elsewhere as well)
Drop lcov in MinGW in favor of grcov, once a new release with that \r\n fix is made, and if it actually fixes the strange misreported lines; if not then drop it altogether
Make at least one build use a multi-config generator to catch multi-config-related bugs (Ninja Multi-Config, since CMake 3.17)
Make bindings build w/o deprecated just once, to catch issues where non-deprecated builds work on MSVC but deprecated not -- mosra/magnum-bindings@d5ffa81
WinRT magnum builds take 1+ hour now, disable test building and try re-enabling tests once STL usage is further trimmed down, especially in tests -- d81ea6b
Switch all SceneGraph examples to use addChild() / addFeature() instead of naked new -- the original reason for this "being based off Qt" makes no sense nowadays (not that many people use or know Qt anyway) and feels strange, especially in cases when the expression result isn't used anywhere nope, this lib is in maintenance mode now
ability to set window position in Configuration for GLFW and SDL (and later as well), figure out what to do on HiDPI and multi-mon systems
String[View] APIs returning a view should not be a noun because that sounds like the original object is modified (so no stripWhatever() but rather exceptWhatever()) -- mosra/corrade@b310615
what about join(), split() and such? this is fine, as it kinda implies returning a result
rename ArrayView::except() to exceptSuffix(), do the same elsewhere and in StringView, and also suffix() to exceptPrefix(), with suffix() reserved for the future to take N chars at the end -- mosra/corrade@c6f3ec5
Introduce ArrayView::isEmpty() and similarly for others, deprecate empty() -- mosra/corrade@6bebd0e
Deprecate Utility::Resource::get() in favor of getString() returning a StringView so we can repurpose get() to return an ArrayView and drop getRaw() -- mosra/corrade@64b922f
decide if plugin options should be camelCase or snail-case (former is consistent with existing options, latter looks better on the command-line -- magnum-shaderconverter -fmax-struct-members=3 --validate a.spv) -- decided to stay with camelCase because it's faster to type, dropping the -f option as it's redundant
could GL::Context remember the context handle it was created with, cache it in the struct and then if not the same when switching / when current() is queried, copy the data over? it won't handle all cases tho, GL symbols can be accessed even without GL::Context involvement :(
symbol deduplication doesn't work with Python bindings because Python loads it with RTLD_LOCAL (but this has to be recent, also the bindings warn that X11 symbols are not found, i don't remember this before)
workaround with an explicit sys.setdlopenflags(flags | ctypes.RTLD_GLOBAL) before importing magnum -- mosra/magnum-bindings@b4d437b
vcpkg installs sceneconverters to a wrong location on linux?! vcpkg/installed/x64-linux/lib/libMeshOptimizerSceneConverter.a this is the desired behavior actually
from is a keyword in python and so having any python bindings with this name is stupid -- mosra/magnum-bindings@cbb5358
new pybind has some shittiness in printing enum values (magnum.shaders.Flat2D.<Flags.NONE: 0>, thefuck?!), affecting doc builds -- mosra/m.css@c6707e1
python bindings gl.Context.current() causes an exception (no current context) when generating docs, patch to be a noop if running under m.css -- mosra/magnum-bindings@3218db2
Change extension-dependent GL functionality to be non-member funcs (so we don't need to do the includes for MSVC) and referencing directly the target GL API where possible to avoid extra indirections (uniforms, drawinstanced, KHR_debug APIs etc) -- eb790d7
Intel-specific workaround for shader output logs added back in 3bb62b7 might be obsolete already, remove if not reproducible anymore even on older systems (not reproducible on 27.20, neither 22.20)
OTOH WebGL probably needs the ANGLE workaround as well (superfluous newline) no, logs are clean
Add addFlags() / clearFlags() to AbstractImporter, AbstractImageConverter... APIs and encourage their use in order to prevent issues when FlipY gets added implicitly for images -- 29ac7b5
ability to specify NoError in all apps, --magnum-gpu-validation no-error as well -- 24138e2, 45ccf50
Move Quaternion::toEuler() to a Matrix4, since that's where it should live, add other variants of it (ZXY, ZYX, ...) and ensure they're really in the order that is advertised (e.g. this one is labelled as ZYX in threejs but it's actually XYZ)
Move Containers/Tags.h to root namespace as SIMD stuff will live there as well and we then don't need to put weird aliases to Magnum -- mosra/corrade@c0267de
glslang 11.2.0 in homebrew causes unresolved symbol errors when loading the plugin? -- mosra/magnum-plugins@e8ebb74
SceneConverter::convertToFile() needs to be changed to (from, to), all others have it like this -- 06e039d
scene, image, shader and font converter plugins need to return Optional<Array> instead of Array consistently with Utility::Path API changes, otherwise it doesn't enforce proper error handling -- 51f7862 (font converters have a TODO for later)
Phong specular color should have a Color3 setter that uses alpha=0 (the default conversion to Color4 will set it to 1, breaking alpha-blended materials)
Also the specular with alpha=1 probably doesn't really do the "soap bubble" effect at all? I suppose I don't even have a test for that.
also arrayRemoveUnordered() that swaps the hole with the last value instead of moving everything after for containers that don't need to preserve order -- mosra/corrade@c9089f7
should I go with arrayRemoveAt() for removing by index and reserve arrayRemove() / arrayRemoveAll() for removing by value?arrayRemove() is shorter and thus should do the faster operation, go with arrayRemoveValue() for a version that performs a lookup first?
Add a converter-/importer-specific flags to override those? (e.g., open a (misinterpreted) 3D image as an array, force 3D image export to be understood as a cubemap...)
Also YDown / YUp, ZForward / ZBackward, for X as well, with both being set meaning the GL variant and none meaning "any"; enforce in GL upload functions
needs flipping of generic block formats implemented so we don't assert with no way to fix that -- 3ccb7a9
also a way to set desired orientation on import (not on export tho, there it either embeds the metadata or flips to match the file format implicit orientation)
Check that T in image.pixels<T>() actually matches the format to avoid accidentally interpreting the data as some completely different type that only coincidentally happens to have the same size and thus passes the current assertion
keep the size check for implementation-specific format
would require a dependency on PixelFormat.h, not nice :/
Implement & test 1D, 3D and compressed image export in AnyImageConverter, use the KTX plugin for testing -- a130f26, 876976b, 9fbc637, 1f33071
Mutable access to MaterialData values (images, meshes, ... all have this already, so why not materials) -- 78cf81b
glTF Vertex color import broken AssimpImporter their bug (floats get extracted as shorts??), I can't fix the world
Change "$Layer" in MaterialData to " Layer" to avoid conflicts with attributes starting with $, whitelist a whitespace for just this case alone (unblocks AssimpImporter: support PBR magnum-plugins#91) -- aeeff73
Color3::fromInt() that doesn't go through sRGB decoding, make it named weirdly so it's not accidentally used in sRGB-correct workflows (fromLinearInt()?) -- 4a87a0b
and finallyColor3::from[Srgb]HexString(Containers::StringView) (name?), implement it in a cpp (for all types??) to avoid the StringView include
what about to[Srgb]HexString()? returning a String? ugh actually why not, it's SSO'd
make plugin interface strings picked up automatically from a header so i don't need to manually update them every time -- 12fc59b
Internal assertion in Corrade's arg parser when a positional argument is specified as named -- mosra/corrade@6455c5a
⚠️ AssimpImporter 5.1.4 asserting when opening CesiumMilkTruck.glb
ideally also Arguments, Configuration and Utility::String
[compressed]PixelFormatName(), vertexFormatName(), meshIndexTypeName(), *ForName() in importer APIs for better support of custom formats
Update to Vulkan 1.4+ (expose new feature bits, etc.)
Vulkan swapchain support
Vulkan builtin shaders
Needs SPIR-V patching to clean up inputs that are used only by code disabled via a specialization constant
Needs convenience APIs for binding buffers & textures
Add a non-hacky way to disable dynamic plugin lookup in PluginManager (currently it's done by passing "nonexistent" to the constructor, which is shitty)
copysign(), signbit() scalar/vector utils in Math
Add GL suffix to Text::GlyphCache, Text::DistanceFieldGlyphCache and TextureTools::DistanceField -- 2f3d7c0, 42342cd
All debug-only assertions in Math should be (non-debug-only) exceptions in Python, the extra overhead doesn't matter there and it's too error-prone without -- mosra/magnum-bindings@7a35f40
Simplify PluginManager internals to do just one dlsym(), not seven thousand
Deprecate manager-less constructors in all plugins except Any*, such use case is no longer supported -- mosra/magnum-plugins@bdc2bfd, still needs to be done for builtin Magnum plugins
Deprecate tag-less Array constructor
Use Nanoseconds in Animation APIs and elsewhere
In Timeline
And in application setMinimalLoopPeriod() -- ba0fbe3
in GL TimeQuery
Clean up Animation::Track[View] APIs, drop reliance on std::pair
Convert hex color literals to take the literal chars as a template, to prevent accidents where RGBA is used with _rgb and vice versa -- 7a895e8
Change JSON API to use JsonTokenRef or some such, to avoid accidents with JsonToken being copied -- mosra/corrade@aa4cac1
Make it so on 64bit it uses just 32bit offsets if the file is small enough
Direct keyboard and pointer state queries in all applications -- 70b0d76, for pointers i still need to decide whether touch and pen should be included or not
Opening early mainly to avoid forgetting the tiny but important things to do (in addition to all issues/PRs that are in this milestone). Goddamit this is growing fast.
EmscriptenApplication,Sdl2ApplicationandAndroidApplication-- a76b764, 755a551, 005d4c2:ref:, backticks somehow don't work anymore -- mosra/magnum-bindings@be5ffddMeshTools::compile()-- if a mesh has two texcoord sets, both get bound, which basically means the first get overwritten by the second one and that's not correct -- c357a44dartin magnum-integration vcpkg package (uncomment, changedarttodartsimand enable/permissive-on msvc -- https://gitter.im/mosra/magnum/archives/2020/09/30)mesh = GL::Mesh{NoCreate},GL::Context::current()is still accessed onmeshdestruction (needs to drop/rework the vector-based internals and turn them into a type-erased Array with a growable deleter of a concrete type, which will avoid the need to ask state tracker which code path to use) -- f7a6d79EXT/OES_draw_elements_base_vertexis broken (no-op?) on ANGLEmultidraw doesn't work on ANGLE due toEXT_multi_draw_elementsnot implemented, use the ANGLE ext there instead - 5f184bbCORRADE_/MAGNUM_to make things less shitty for subprojects, provide some backwards compatibility to avoid breaking everything -- mosra/corrade@878624a, b983781 and similar commits in other reposINTEGRATION, it's confusing otherwise_BINDINGSI guess?src == dstin Directory::copy() (needs to compare inodes to be robust) @Squareys--importerevery time I need to set some plugin options -- e6d673c-I/-Cshortcut options for--importer/--converterto all tools -- 6be0248Importer/SceneConverter/ImageConvertersuffixesResourceManager, Resource (what is T and U, what is "resource state"... basically throw away everything existing and start from scratch)no, maintenance mode now"Light drawing" example in Drawable docs (based on what I have inno, maintenance mode nowmagnum-player) -- or maybe do that directly in the viewer example once SceneData is in?AbstractImageConverter/AbstractSceneConverterclasses -- 4a06f4dGL::Texturedocumentation, show a basic single-mip case and then either uploading all mips (mention file formats that know it) or generating them; reference the exampleupdate docs about LIB_SUFFIXautodetect LIB_SUFFIX on new NDK versions, mention CMake 3.20 and an explicit FIND_ROOT_PATH on older versions -- bc0bb07Mac + ANGLE build, use a binary from Mac Angle magnum-ci#3actually running against SwiftShader would be better (and using it for Vulkan as well) -- 031d1ceTell travis to fuck offPort to travis-ci.com so we have usable PR reports againactually, yes, tell Travis to fuck offclang-clbuilds (done in magnum-extras already, needs to be done elsewhere as well)\r\nfix is made, and if it actually fixes the strange misreported lines; if not then drop it altogetherand try re-enabling tests once STL usage is further trimmed down, especially in tests-- d81ea6bSwitch all SceneGraph examples to usenope, this lib is in maintenance mode nowaddChild()/addFeature()instead of nakednew-- the original reason for this "being based off Qt" makes no sense nowadays (not that many people use or know Qt anyway) and feels strange, especially in cases when the expression result isn't used anywhereadd an option tono, deprecate that and turn it into standalone tools insteadcompile()magnum-sceneconverterString[View]APIs returning a view should not be a noun because that sounds like the original object is modified (so nostripWhatever()but ratherexceptWhatever()) -- mosra/corrade@b310615what aboutthis is fine, as it kinda implies returning a resultjoin(),split()and such?ArrayView::except()toexceptSuffix(), do the same elsewhere and in StringView, and alsosuffix()toexceptPrefix(), withsuffix()reserved for the future to take N chars at the end -- mosra/corrade@c6f3ec5ArrayView::isEmpty()and similarly for others, deprecateempty()-- mosra/corrade@6bebd0eUtility::Resource::get()in favor ofgetString()returning aStringViewso we can repurposeget()to return anArrayViewand dropgetRaw()-- mosra/corrade@64b922fcamelCaseorsnail-case(former is consistent with existing options,latter looks better on the command-line --) -- decided to stay withmagnum-shaderconverter -fmax-struct-members=3 --validate a.spvcamelCasebecause it's faster to type, dropping the-foption as it's redundantEmscriptenApplicationdoesn't implementModule.doNotCaptureKeyboardWebApplication.cssto use classes instead of IDs (also, prefix with.magnum-or some such?) EmscriptenApplication: custom canvas id, multiple applications on one page #480Moduleproperties EmscriptenApplication: custom canvas id, multiple applications on one page #480 (comment) -- should be now done for all HTML runners including examplesif(IN_LIST)for component classification (integration, extras, bindings left)REASON_FAILURE_MESSAGEin remaining Find modules (integration, extras, bindings left)dynCall()not found with Emscripten 2.0.11 (happens when drawing anything)?? -- e65d6cfalso it seems like the fix broke the idling? ughnah, it works (Oct 2024)Matrix[34]::from(scale, rotation, translation)in addition to the one combining just rotation and translationAlwaysOnTopflag for Application classes (huh, already done for 2020.06, why this item is even here?!)Containers::Pairbecause std::pair isn't trivially copyable and so Algorithms::copy() doesn't work on it, ffs (https://danlark.org/2020/04/13/why-is-stdpair-broken/) -- mosra/corrade@e9d43faPair) -- 7f4500dGL::Contextremember the context handle it was created with, cache it in the struct and then if not the same when switching / whencurrent()is queried, copy the data over? it won't handle all cases tho, GL symbols can be accessed even withoutGL::Contextinvolvement :(sys.setdlopenflags(flags | ctypes.RTLD_GLOBAL)before importing magnum -- mosra/magnum-bindings@b4d437bSTB_GNU_UNIQUEthat's for the same thing? https://stackoverflow.com/questions/50402314/static-link-stdc-without-stb-gnu-unique-cause-memory-leak-when-dlcloselibdirectory only on windows (https://github.com/microsoft/vcpkg/blob/b759049a36728d18260963799a56e6b19cb4a2ef/ports/magnum-plugins/portfile.cmake#L102-L103, same for magnum) -- Trouble loading plugins in Viewer demo magnum-examples#96, [magnum,-plugins] Fix deployment of plugin types and incorrect removal of plugin lib dir on unix microsoft/vcpkg#16245vcpkg installs sceneconverters to a wrong location on linux?!this is the desired behavior actuallyvcpkg/installed/x64-linux/lib/libMeshOptimizerSceneConverter.afromis a keyword in python and so having any python bindings with this name is stupid -- mosra/magnum-bindings@cbb5358magnum.shaders.Flat2D.<Flags.NONE: 0>, thefuck?!), affecting doc builds -- mosra/m.css@c6707e1gl.Context.current()causes an exception (no current context) when generating docs, patch to be a noop if running under m.css -- mosra/magnum-bindings@3218db2OTOH WebGL probably needs the ANGLE workaround as well (superfluous newline)no, logs are cleanaddFlags()/clearFlags()toAbstractImporter,AbstractImageConverter... APIs and encourage their use in order to prevent issues whenFlipYgets added implicitly for images -- 29ac7b5NoErrorin all apps,--magnum-gpu-validation no-erroras well -- 24138e2, 45ccf50Homebrew packages fail to build ifnot reproducible anymore, too long agobinutilsis installed -- reproduce, fix: https://gitter.im/mosra/magnum/archives/2021/03/04?at=6040d89fe8267a46f2efe1e6Quaternion::toEuler()to aMatrix4, since that's where it should live, add other variants of it (ZXY, ZYX, ...) and ensure they're really in the order that is advertised (e.g. this one is labelled as ZYX in threejs but it's actually XYZ)std::string_viewcompat forStringView,Debugandformat()-- mosra/corrade@cf0bd1f, mosra/corrade@e7ec9c5, mosra/corrade@46f74dc, mosra/corrade@1ce936cContainers/Tags.hto root namespace as SIMD stuff will live there as well and we then don't need to put weird aliases to Magnum -- mosra/corrade@c0267deSceneConverter::convertToFile()needs to be changed to(from, to), all others have it like this -- 06e039dOptional<Array>instead ofArrayconsistently withUtility::PathAPI changes, otherwise it doesn't enforce proper error handling -- 51f7862 (font converters have a TODO for later)Color3setter that uses alpha=0 (the default conversion to Color4 will set it to 1, breaking alpha-blended materials)MeshTools::generate{Flat,Smooth}Normals()operating directly on MeshData, because it's too inconvenient to not have itcompile()flipFaceWindingInPlace()andflipNormalsInPlace()magnum-sceneconverterMeshTools::generateTrivialIndices()that outputs 0, 1, 2, 3... -- 6733550MeshTools::generateIndices()if the mesh is non-indexed, make it a passthrough if already indexed -- 9d99e00arrayRemoveUnordered()that swaps the hole with the last value instead of moving everything after for containers that don't need to preserve order -- mosra/corrade@c9089f7should I go witharrayRemoveAt()for removing by index and reservearrayRemove()/arrayRemoveAll()for removing by value?arrayRemove()is shorter and thus should do the faster operation, go witharrayRemoveValue()for a version that performs a lookup first?arrayClear()-- mosra/corrade@72107f5blocks DDS and KTX2 import/export (Trade: KTX importer magnum-plugins#103)ValueInit/NoInit[Compressed]Imageconstructors that allocateTrade::AnimationTrackTargetType::ImageLayerfor animated image support, and possibly others to prepare for the new glTF extensionStbImageImporterto use thisAnimationTrackMeshAttributeDataAnimationDataconstructors less annoying ("backport" the newly learned usability features fromMeshDataandSceneData) -- 94e9961Trade::TextureTypevalues -- 4c4b259Cube/Arrayflags to all image classes, adapt Basis, DDS, KTX and EXR plugins to use them (details in Trade: KTX importer magnum-plugins#103) -- f14e15cYDown/YUp,ZForward/ZBackward, for X as well, with both being set meaning the GL variant and none meaning "any"; enforce in GL upload functionsTinimage.pixels<T>()actually matches the format to avoid accidentally interpreting the data as some completely different type that only coincidentally happens to have the same size and thus passes the current assertionPixelFormat.h, not nice :/ImageViews toAbstractImageConverterto support mip level export (blocks Trade: KTX importer magnum-plugins#103) -- 11268c6BasisImageConverterfor this -- Upgrade Basis plugins to 1.15 magnum-plugins#112OpenExrImageConverter+OpenExrImporterfor this -- mosra/magnum-plugins@21698e9MaterialDatavalues (images, meshes, ... all have this already, so why not materials) -- 78cf81bglTF Vertex color import broken AssimpImportertheir bug (floats get extracted as shorts??), I can't fix the world"$Layer"inMaterialDatato" Layer"to avoid conflicts with attributes starting with$, whitelist a whitespace for just this case alone (unblocks AssimpImporter: support PBR magnum-plugins#91) -- aeeff73Color3::fromInt()that doesn't go through sRGB decoding, make it named weirdly so it's not accidentally used in sRGB-correct workflows (fromLinearInt()?) -- 4a87a0bColor3::from[Srgb]HexString(Containers::StringView)(name?), implement it in a cpp (for all types??) to avoid theStringViewincludeto[Srgb]HexString()? returning a String?ughactually why not, it's SSO'd[compressed]PixelFormatName(),vertexFormatName(),meshIndexTypeName(),*ForName()in importer APIs for better support of custom formats"nonexistent"to the constructor, which is shitty)copysign(),signbit()scalar/vector utils in MathGLsuffix toText::GlyphCache,Text::DistanceFieldGlyphCacheandTextureTools::DistanceField-- 2f3d7c0, 42342cdPluginManagerinternals to do just onedlsym(), not seven thousandAny*, such use case is no longer supported -- mosra/magnum-plugins@bdc2bfd, still needs to be done for builtin Magnum pluginsNanosecondsinAnimationAPIs and elsewhereTimelinesetMinimalLoopPeriod()-- ba0fbe3TimeQueryAnimation::Track[View]APIs, drop reliance onstd::pair_rgband vice versa -- 7a895e8JsonTokenRefor some such, to avoid accidents withJsonTokenbeing copied -- mosra/corrade@aa4cac1ANSI_COLORSshould be just on Windows)GlslangShaderConverter,SpirvToolsShaderConverter,OpenExrImporter,OpenExrImageConverter,GltfImporter,GltfSceneConverter,StbResizeImageConverter,StbDxtImageConverter,AstcImporter,SpngImporter,UfbxImporter,BcDecImageConverter,EtcDecImageConverter,WebPImporter,WebPImageConverter,PlutoSvgImporter/LunaSvgImporter/ResvgImporterif the dependencies for those exist)SceneTools,ShaderTools,MaterialTools, any others missing?)magnum-shaderconverter, any others missing?)CORRADE_/MAGNUM_EmscriptenApplicationon Emscripten instead of SDL2: Update vcpkg packages to include EmscriptenApplication on Emscripten #607