Vladimír Vondruš
e19154be5e
Reducing pointer chasings, part 3a: less pointer passing in root namespace.
...
Passing pointer as function parameter will now mean that it is possible
to pass `nullptr`. Some code examples now look like the parameter is
copied instead of referenced, which is misleading. Updated the
documentation to reflect that more clearly.
13 years ago
Vladimír Vondruš
d04b308aa3
Reducing pointer chasings, part 1: method chaining via references.
...
Makes some cases less consistent (and some convenience shortcuts
impossible), but goes well with the attitude "don't use pointer when it
can't be null".
13 years ago
Vladimír Vondruš
6a877375d4
No need to have virtual destructor in Buffer.
13 years ago
Vladimír Vondruš
99c72ed99b
Initial support for OpenGL 4.4.
13 years ago
Vladimír Vondruš
fbdbd4aa01
Implemented CHROMIUM_map_sub for Buffer.
13 years ago
Vladimír Vondruš
5f0d9297e2
Templated version of Buffer::{data,subData}().
...
More convenient for end user, assert that buffer size is divisible by T
size to avoid some issues.
13 years ago
Vladimír Vondruš
834d68945e
GCC 4.6 compatibility: weird name conflicts. WTF.
13 years ago
Vladimír Vondruš
69a5c2f06f
Buffer data queries are not available in OpenGL ES.
...
Similarly to texture image queries.
13 years ago
Vladimír Vondruš
f7aa2c05a6
Deinlined heavy functions and removed redundant `inline` everywhere else.
13 years ago
Vladimír Vondruš
5b54b07210
Added Buffer::size(), Buffer::data() and Buffer::subData() queries.
13 years ago
Vladimír Vondruš
db71a23e3c
Bring whole Corrade namespace into Magnum namespace.
...
These projects are tightly interconnected anyway, this means a lot less
typing (yay!).
13 years ago
Vladimír Vondruš
ca38c015f0
Refactored Buffer internals to follow GL naming conventions.
...
Similar reasoning as in 4a9b0b36ec .
13 years ago
Vladimír Vondruš
932b9f4377
Method chaining in Buffer.
13 years ago
Vladimír Vondruš
deafd8f6ee
No deprecated Buffer::map() in ES3.
13 years ago
Vladimír Vondruš
ca3b0f7d63
Added debug output operator for Buffer::Target.
13 years ago
Vladimír Vondruš
adde9154cd
Doc++
13 years ago
Vladimír Vondruš
38ec076eda
Minor code cleanup (unused parameters).
13 years ago
Vladimír Vondruš
6a5d75d1e4
Relicensing to MIT/Expat license, part 2: headers.
13 years ago
Vladimír Vondruš
23f91fe339
Doc++
13 years ago
Vladimír Vondruš
1693c772ad
Moved OpenGL includes out from Magnum.h.
...
OpenGL includes are ~35k lines together and it is a waste of
compilation time to include them even if they are not needed at all
(e.g. whole SceneGraph and Physics libraries). Saves ~10s of compilation
time (6:46 before, now 6:35).
13 years ago
Vladimír Vondruš
a45454ca73
Using CORRADE_INTERNAL_ASSERT_OUTPUT() where appropriate.
13 years ago
Vladimír Vondruš
35a918d050
Extension-aware Buffer and *Texture data invalidation.
...
If ARB_invalidate_subdata is not available, these functions do nothing,
instead of crashing on null pointer dereference. It results in more
convenient usage, enabling users to call them whenever they want,
improving performance on implementations which supports that.
14 years ago
Vladimír Vondruš
d59297aeeb
Implemented ARB_invalidate_subdata GL 4.3 extension.
...
Framebuffer invalidation is also available in OpenGL ES 3.0 and ES 2.0
using EXT_discard_framebuffer extension.
14 years ago
Vladimír Vondruš
ae801ea945
OpenGL ES compilation fixes & workarounds.
14 years ago
Vladimír Vondruš
6fd67c978e
Buffer memory mapping.
...
I sincerely hope for glMapBuffer() being marked as deprecated.
14 years ago
Vladimír Vondruš
7183110eee
Doc++, @todo++
14 years ago
Vladimír Vondruš
7e66a09461
Marking all constructors explicit, except for matrix and vector classes.
...
It prevents unwanted implicit conversions from e.g. nullptr to Camera,
Vector2 to Physics::Point etc. By making all the constructors explicit
it is easier to routinely add the keyword to all new classes instead of
thinking about cases when to add and when not to.
14 years ago
Vladimír Vondruš
dc1ab80cda
Doc++
14 years ago
Vladimír Vondruš
2acbd49e9c
Renamed Buffered{Image,Texture} to Buffer{Image,Texture}.
...
Buffered* hinted that it has something to do with caching, streaming or
whatever. "Buffer texture" is now also consistent with naming in
specification.
14 years ago
Vladimír Vondruš
c01c522248
Mention Native Client buffer requirements.
...
Allow more convenient target hint setting.
14 years ago
Vladimír Vondruš
8f83485653
Forward declarations for Magnum namespace in Magnum.h header.
14 years ago
Vladimír Vondruš
9701c8dacb
If targetting exactly ES 2.0, hide everything not available there.
...
Some target platforms supply their own OpenGL headers, thus we cannot
use our own from ES 3.0 and compilation fails.
On the other hand, this will be better for users as usage of unsupported
features will be catched right during compilation and not at runtime.
14 years ago
Vladimír Vondruš
bb2fe188db
Updated OpenGL ES support in Buffer and related classes.
14 years ago
Vladimír Vondruš
14192fa40f
Mesh rework, part 6: don't rebind default VAO after draw call.
...
There are a few corner cases namely with binding element buffer, which
should be resolved as soon as possible.
14 years ago
Vladimír Vondruš
4aa01e073e
Code cleanup, doc++
14 years ago
Vladimír Vondruš
53d82bda19
Got rid of default Buffer target.
...
For non-DSA access user can now specify target hint, which will be used
when binding the buffer internally.
14 years ago
Vladimír Vondruš
ddbfca2f95
Don't export private symbols.
14 years ago
Vladimír Vondruš
b9e96d3b08
Documented internal buffer state tracking.
14 years ago
Vladimír Vondruš
f28f5398d3
Added some @todos .
14 years ago
Vladimír Vondruš
6b3781b97f
Tracking Buffer state.
...
Reduces OpenGL call count if subsequently binding the same Buffer into
the same Target.
14 years ago
Vladimír Vondruš
7004ebdd50
Using EXT_direct_state_access also for Buffer::set*Data().
14 years ago
Vladimír Vondruš
684a1ee712
Removed set*Data(Target, ...) functions from Buffer.
...
They didn't make sense at all (and even less with DSA, where target
doesn't need to be specified anywhere), the only usage in BufferedImage
was misunderstood from the beginning.
14 years ago
Vladimír Vondruš
806828f173
First extension-aware functionality - Buffer::copy().
...
If EXT_direct_state_access is supported, it uses faster alternative to
explicit binding.
14 years ago
Vladimír Vondruš
2595974fae
Refactoring of internal OpenGL object names.
14 years ago
Vladimír Vondruš
5283b3b9cd
Buffer: support for copying.
14 years ago
Vladimír Vondruš
ae5b88d448
Buffer: added last remaining targets from OpenGL 4.2 and 4.3.
14 years ago
Vladimír Vondruš
3868dba6ae
Buffer documentation update.
...
* Documented setData()/setSubData() overloads.
* Alphabetically reordered Target
* Linking related functions from enums
14 years ago
Vladimír Vondruš
c97d2c9049
Support for filling Buffer from std::array.
14 years ago
Vladimír Vondruš
0145343d59
Pedantic: using std::size_t instead of size_t from C compat headers.
14 years ago
Vladimír Vondruš
b067a6d1dc
Several new buffer targets and usages are available on OpenGL ES 3.0.
...
In turn also BufferedImage is now available on OpenGL ES 3.0.
14 years ago