Vladimír Vondruš
b9e96d3b08
Documented internal buffer state tracking.
14 years ago
Vladimír Vondruš
f9099a86bf
Tracking texture state - bindings and limits.
14 years ago
Vladimír Vondruš
676f89127f
BufferedTexture is now privately based on AbstractTexture.
...
Don't duplicate the functionality when it is not necessarily needed.
14 years ago
Vladimír Vondruš
803ebfd2ab
Removed unneeded #include.
14 years ago
Vladimír Vondruš
c0aa6a3ba5
Don't forget to set ShapedObject as dirty after setting shape.
...
Also inlined the function and allowed method chaining.
14 years ago
Vladimír Vondruš
6ae88e22c5
Removed forgotten traces of debug draw from ShapedObject.
14 years ago
Vladimír Vondruš
706db2b560
Physics: Accessors to ShapeGroup members.
14 years ago
Vladimír Vondruš
71d90580b0
Physics: Shape type is public function.
14 years ago
Vladimír Vondruš
ef6858aeca
Warn about self-initialization.
14 years ago
Vladimír Vondruš
f28f5398d3
Added some @todos .
14 years ago
Vladimír Vondruš
602a9be75e
Don't duplicate CubeMapTexture functionality in CubeMapTextureArray.
14 years ago
Vladimír Vondruš
b97e6f8bce
Updated and simplified AbstractShaderProgram documentation.
14 years ago
Vladimír Vondruš
beea8235b1
Using EXT_direct_state_access/ARB_separate_shader_objects for uniforms.
...
Also explicitly calling use() on default (non-DSA) setUniform()
implementation. Because of that, it is now possible to conveniently call
use() at the end, instead of at the beginning of uniform setting chain,
for example:
// before
shader->use();
shader->setTransformation(transformation)
->setProjection(projection)
->setColor(color);
// now
shader->setTransformation(transformation)
->setProjection(projection)
->setColor(color)
->use();
Note that you still have to explicitly call use(), because if DSA is
available, no use() is called explicitly on any setUniform(). If DSA is
not available, use() is called on first setUniform() and subsequent
calls have no negative performance impacts.
14 years ago
Vladimír Vondruš
2dde4b9bf8
Tracking AbstractShaderProgram state.
...
Reduces OpenGL call count when subsequently using the same shader for
rendering.
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š
193246e533
Private (implementation-only) OpenGL state tracker.
14 years ago
Vladimír Vondruš
4d8825bee0
Removed WTF todo. It was the case only for ES.
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š
c47b416bcf
Added EXT_direct_state_access to Extensions list.
14 years ago
Vladimír Vondruš
04a0f9511f
Fixed compilation error.
...
I should really test before commit & push, wtf.
14 years ago
Vladimír Vondruš
df836f126d
Ability to link to extension functions in Doxygen documentation.
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š
f2a569de0e
Workarounds to make Doxygen happy.
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š
18c23cbd37
Ooops, forgot to install DimensionTraits.h.
14 years ago
Vladimír Vondruš
c1cf94fb46
Using fixed-size integer types also everywhere else.
...
It solves issues with int/long int/long long int ambiguity, which is
good.
14 years ago
Vladimír Vondruš
1de2154823
Using fixed-size integer types for Trade data IDs.
14 years ago
Vladimír Vondruš
8f5940dd56
Using fixed-size 32bit integer type for indices.
14 years ago
Vladimír Vondruš
cdc2e5302c
Using fixed-size 32bit integer instead of size_t for log/pow.
...
I want something like "use 32bit on x86, but 64bit on x86_64 and
x86_32", but <cstdint> header has nothing like that.
14 years ago
Vladimír Vondruš
246f08c4f1
Using fixed-size 8bit integer for color attachment IDs.
14 years ago
Vladimír Vondruš
1077370937
Using fixed-size 8bit integer for dimension count.
...
There can be only one, two or three dimensions, so why to use eight
times larger type than needed?
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š
815f2d7491
Use the right type for attribute binding location.
14 years ago
Vladimír Vondruš
a0f79fcf78
Don't parse Implementation/ directories with Doxygen.
...
These are even more "private" versions of Implementation namespace in
public headers, so we don't need to generate public documentation for
them.
14 years ago
Vladimír Vondruš
131e75ef91
Added @todos .
14 years ago
Vladimír Vondruš
972846677d
Using DimensionTraits for Shape implementation.
...
Removed equivalent typedefs from AbstractShape, using DimensionTraits
everywhere except for internal storage. It would possibly allow to
remove #include for specialized types from Shape headers.
Also removed Doxygen workarounds for applyTransformation(), as both the
pure virtual function and implementations have now the same signature.
14 years ago
Vladimír Vondruš
cac85252ac
Using DimensionTraits in SceneGraph implementation.
...
Removed equivalent typedefs from AbstractObject and replaced them with
DimensionTraits.
14 years ago
Vladimír Vondruš
d49ee5c76e
Using specialized Vector type in images and textures.
...
Thanks to DimensionTraits it is now possible to e.g. conveniently access
components by name or pass size as combination of vector and scalar:
GLsizei width = image.size().x();
image.setData({xy, 1}, ...);
Instead of previous inconvenient ways:
GLsizei width = image.size()[0];
Math::Vector2<GLsizei> size(xy, 1);
image.setData(size, ...);
Not using the specialized type for internal functions and storage, as it
wouldn't cause any other improvements. This way it is virtually possible
to forward-declare the specialized types without including them in the
headers.
14 years ago
Vladimír Vondruš
2b3a2951cc
New struct DimensionTraits for matrix, vector and point specializations.
14 years ago
Vladimír Vondruš
934d04a76b
Added method for getting key of given Resource.
14 years ago
Vladimír Vondruš
58d9d351c0
Compile Primitives library with -fPIC.
...
Allows to link it into dynamic libraries in the future (such as Physics
library).
14 years ago
Vladimír Vondruš
8a7c86d700
Initial implementation of ShapedObject.
...
Physics library now depends on SceneGraph, which must be explicitly
linked too.
14 years ago
Vladimír Vondruš
805a51fd17
Export BufferedImage and Image explicit instantiations.
14 years ago
Vladimír Vondruš
64fae952dd
Follow-up fix for previous commit.
14 years ago
Vladimír Vondruš
aceb93c313
Distinguish dimensions (1D, 2D, 3D) from image size.
14 years ago