Vladimír Vondruš
522db683a9
external: provide the GL_VERSION_* defines in our GL headers.
...
This fixes a conflicting definition of GLsizeiptr and GLintptr when
Magnum is combined with qopengl.h from Qt on Windows. Khronos has it as
`signed long int`, whereas qopengl.h as ptrdiff_t, which is just `int`.
7 years ago
Vladimír Vondruš
6e482549d2
external: don't even attempt to load ES3.1 and ES3.2 functions on iOS.
...
Probably a missed leftover from the times where the world was still
optimistic about OpenGL on Apple platforms.
7 years ago
Vladimír Vondruš
d557563a83
doc: updated changelog and credits.
7 years ago
Guillaume Jacquemin
f4b6130ab0
Platform: improve {Glfw,Sdl2}Application::exit().
...
Now, it's possible to specify a custom exit code.
7 years ago
Vladimír Vondruš
e8d6f337f4
doc: fix invalid references in changelog.
7 years ago
Vladimír Vondruš
99ab736f93
doc: whoops, wrong link.
7 years ago
Vladimír Vondruš
a3ea5154d6
GL: explicitly instantiate template function.
...
It suddenly started causing linker errors on macOS Travis builds.
7 years ago
Vladimír Vondruš
b77651cf93
GL: remove Buffer::set[Sub]Data() taking std::array / std::vector.
...
Instead make use of the ArrayView STL compatibility. To avoid breaking
almost all existing code the Corrade/Containers/ArrayViewStl.h header is
included implicitly when MAGNUM_BUILD_DEPRECATED is defined, but this
will get removed in some future release to speed up the compilation.
7 years ago
Vladimír Vondruš
b05c887375
Audio, GL: make the extension lists constexpr.
...
The Audio::Extension::extensions() and GL::Extension::extensions()
functions now return an ArrayView instead of a reference to std::vector.
Having a function-local static std::vector is the worst thing ever. Ugh.
7 years ago
Vladimír Vondruš
3626562e1d
Adapted to Corrade changes.
...
Mostly missing includes now.
7 years ago
Vladimír Vondruš
fb27ecd87d
doc: updated changelog and credits.
7 years ago
Max Schwarz
f58c26c66d
GL: add unit test for Platform::GLContext{NoCreate, ...}
7 years ago
Vladimír Vondruš
0b43018f6c
GL: make Context constructors and internal methods protected.
...
But hidden from Doxygen. So these can be called from both
Platform::GLContext (without friending) and also tested.
7 years ago
Max Schwarz
c38319ef00
GL: Use Corrade::Containers::Pointer for Context _state
...
The old raw pointer could cause a segfault if the context is never
created, since the destructor unconditionally deleted _state.
7 years ago
Vladimír Vondruš
927b75efaf
GL: this internal API always takes a C string anyway.
7 years ago
Vladimír Vondruš
f8b9c69b16
Don't use std::tie() on std::pair().
...
It's nice and all, but including the whole <tuple> just for that is not
worth it.
7 years ago
Vladimír Vondruš
ff947257aa
doc: hint that there will be more than just C++ soon.
7 years ago
Vladimír Vondruš
7f7728a592
doc: adapted to m.css changes.
7 years ago
Vladimír Vondruš
f467d32890
singles: updated changelogs.
7 years ago
Vladimír Vondruš
93686746ab
Pernament is not a word.
...
/me hides in embarrassment
7 years ago
Vladimír Vondruš
b61f8262e9
Math: inline a helper function.
7 years ago
Vladimír Vondruš
e4e90bd75c
Math: explicitly specialize 3x3 matrix determinant.
...
Together with the operator[] deinilining that makes matrix inverse
almost six times faster than before. Now 2x faster in debug builds than
GLM (was 3x slower before).
7 years ago
Vladimír Vondruš
89c13c517a
Avoid unnecessary operator[] calls in Array internals.
...
Similarly to the Math optimizations before.
7 years ago
Vladimír Vondruš
05b1cefda5
Math: avoid operator[] calls where possible (and not too verbose).
...
In debug builds (where nothing is inlined), this makes matrix
multiplication run in 33% of the time and matrix inversion roughly twice
as fast.
7 years ago
Vladimír Vondruš
5cf4f6bb19
Math: be nicer to people and preserve compatibility.
...
This broke backwards compatibility pretty heavily for little reason.
Putting back a compat include.
7 years ago
Vladimír Vondruš
8c1d62d97c
Math: use CORRADE_TARGET_EMSCRIPTEN instead of MAGNUM_TARGET_WEBGL.
...
When WebGPU is here, what would we gonna do?
7 years ago
Vladimír Vondruš
7b3110e7f8
Math: missing includes when building with CORRADE_NO_DEBUG.
7 years ago
Vladimír Vondruš
2173668e09
singles: use Corrade's StlMath.h in MagnumMath.hpp.
7 years ago
Vladimír Vondruš
754c84525e
The <cmath> header is not allowed anymore.
7 years ago
Vladimír Vondruš
0dd763fe9d
Math: fix deprecated build.
7 years ago
Vladimír Vondruš
0339a59995
MagnumMath as a single-header lib.
...
Let's shake the foundations of *everything* now.
7 years ago
Vladimír Vondruš
db1b888188
doc: mention ADB and multiple connected Android devices.
7 years ago
Vladimír Vondruš
53c1549e69
Math: deprecate Frustum::planes() in favor of begin()/end().
...
This allows us to get rid of the StaticArrayView, which is the last
roadblock on the way to a single-header math. The planes() are now
deprecated, along with the include, and will get removed in a future
release.
7 years ago
Vladimír Vondruš
8079cda8aa
Math: check for OOB access in Frustum::operator[]().
7 years ago
Vladimír Vondruš
3a1713d549
Math: no need to include <tuple> just for std::tie() in tests.
...
Unpack the pairs manually instead.
7 years ago
Vladimír Vondruš
c12680ec38
Math: move batch functionality to FunctionsBatch.h.
...
Avoids including a (relatively) large ArrayView in Functions.h. Yes,
we are now at a point where 500 lines matter.
7 years ago
Vladimír Vondruš
fd51ef662b
Math: avoid std::tie() in DualQuaternion sclerp..
...
It needs #include <tuple> and that's heavier than I'd like.
7 years ago
Vladimír Vondruš
563dee0436
Math: provide our own min() / max().
...
The one from std:: needs to #include <algorithm> to be used portably.
That's insane, so it's a big nope. Also, the standard implementation
takes the value always by reference, making it unnecessarily slow for
small types. We do better here.
7 years ago
Vladimír Vondruš
547a3f3cea
Math: use a dedicated type for HSV colors instead of a tuple.
...
Pros:
* faster compile times (#include <tuple> is 13k lines, ugh)
* ability to have NoInit and ZeroInit constructors
* ability to do fuzzy compare
* named members, so we don't have to use mutable std::tie()
Cons:
* ... none?
The old Color[34]::Hsv is still a tuple and the new ColorHsv is
convertible to/from it (and even std::tie() works). These are all
deprecated (along with the <tuple> include).
7 years ago
Vladimír Vondruš
cc1d878cff
Math: put types before static functions.
7 years ago
Vladimír Vondruš
8ee5f5cc6d
Math: include proper header for std::div().
7 years ago
Vladimír Vondruš
e98e10a58e
Math: make Constants base incomplete.
7 years ago
Vladimír Vondruš
676b19ec0b
Math: avoid using std::array.
...
Plain C array and a view on it is much better. And lighter weight. And
compiles faster.
7 years ago
Vladimír Vondruš
93b62148ce
Math: avoid BOMs.
...
Caused acme.py to fail. I need to fix acme.py to handle this properly,
but the BOM should not have been here in the first place.
7 years ago
Vladimír Vondruš
77a8c0c99b
Math: make it possible to opt-out of Tweakable parsers.
...
Again, for magnum-singles export.
7 years ago
Vladimír Vondruš
cee530733e
Math: make it possible to opt out of Debug output operators.
...
Undocumented at this point, will be used for magnum-singles export.
7 years ago
Vladimír Vondruš
e7af6bf07b
Math: minor cleanup and code shuffling.
7 years ago
Vladimír Vondruš
64bc7f9c8e
Math: moved configuration value parsers to a dedicated header.
...
There's a lot of string operations and that's nothing good to have
included everywhere. Should speed up the compilation quite a bit.
7 years ago
Vladimír Vondruš
b24ffa4a3e
Use min() / max() / minmax() from Math instead of std::.
...
First step to avoid the <algorithm> header.
7 years ago
Vladimír Vondruš
2cd1e4b7c6
Do not use GL-related ifdefs for API-agnostic functionality.
7 years ago