Vladimír Vondruš
8276405ce3
Shaders: rendering tests for Flat shader.
7 years ago
Vladimír Vondruš
87764900a4
Shaders: rendering tests for Phong shader.
7 years ago
Vladimír Vondruš
3d5f50ac49
Test: use the new setTestCaseTemplateName().
7 years ago
Vladimír Vondruš
8d98f1161e
Shaders: clamp shininess factor in Phong to minimize artifacts.
...
I feel this makes the shader code unnecessarily slow to handle bad
parameters. But eh, until I actually benchmark, I shouldn't be making
assumptions.
7 years ago
Vladimír Vondruš
0cb4ded506
Shaders: add normal texture support to Phong.
...
Note -- since there are no visual tests for Phong yet, this is done in
the least intrusive manner to avoid breaking current functionality. It's
likely very underperforming due to the matric calculation per fragment,
it'll get optimized once I have proper tests.
7 years ago
Vladimír Vondruš
528e3822dc
Shaders: added Tangent generic vertex attribute.
7 years ago
Vladimír Vondruš
a1d3f734d6
Shaders: generate textured Phong VS only if textures are actually used.
...
Previously this got enabled also when AlphaMask was enabled, but no
texture. That's a strange case but nevertheless, let's be precise.
7 years ago
Vladimír Vondruš
b1ecff0052
Shaders: have a definition for the generic color attribute.
7 years ago
Vladimír Vondruš
3626562e1d
Adapted to Corrade changes.
...
Mostly missing includes now.
7 years ago
Vladimír Vondruš
8e8010c40b
Document and print helpful error messages for GL-dependent features.
7 years ago
Vladimír Vondruš
8ba2cac0ee
DebugTools, MeshTools, TextureTools: handle broken gl_VertexID.
...
DebugTools::textureSubImage(), MeshTools::fullScreenTriangle() and
TextureTools::distanceField() all plagued by this on SwiftShader.
7 years ago
Vladimír Vondruš
a36d8eb033
Remove use of std::reference_wrapper where possible.
...
What's left is *a lot* of places taking monstrous
std::vector<std::reference_wrapper> and that can't be changed to
std::vector<Containers::Reference> in a source-compatible way. Even that
would be only a temporary change, since the goal is to fully avoid
dependency on STL in those cases.
The final version of these APIs should take
Containers::ArrayView<Containers::Reference> and be implicitly
convertible froom e.g. std::vector<Containers::Reference>. That's
definitely possible, but not in time for 2019.01, so instead of forcing
users to temporary pass a `{vec.begin(), vec.size()}` everywhere instead
of just `vec`, I'm rather keeping these APIs intact.
7 years ago
Vladimír Vondruš
2149f7b869
Wrap all tests in unnamed namespaces.
...
This makes the compiler warn about test cases that aren't ever used,
which is a good thing.
7 years ago
Vladimír Vondruš
e6b7aa12fa
Updated copyright year.
7 years ago
Vladimír Vondruš
de3081042e
Shaders: avoid overflowing alpha with multiple lights.
...
Still not sure what the proper semantics of light alpha should be.
8 years ago
Vladimír Vondruš
295843189d
doc: convert shader images to proper sRGB and HiDPI.
8 years ago
Vladimír Vondruš
799d9b80db
Doc++
8 years ago
Vladimír Vondruš
b615e1ae28
Shaders: support multiple lights in Phong.
8 years ago
Vladimír Vondruš
7d0757ca4d
Shaders: debug output for all Flag / Flags enums / enum sets.
8 years ago
Vladimír Vondruš
b5dc42f332
Shaders: I f'ed up the Flat shader defaults, again.
...
Leftover from 0e9cb6945e . Documented
properly, but not implemented. I *need* the shader tests ASAP.
8 years ago
Vladimír Vondruš
a1ef8550d3
Shaders: don't multiply Phong diffuse alpha with light intensity.
...
That messes up with alpha mask (basically, areas that receive less than
50% light get clipped away).
8 years ago
Vladimír Vondruš
02f0e0aeb9
Doc++
8 years ago
Vladimír Vondruš
fd1572a3a3
Shaders: default ambient color in Phong to transparent black.
...
Makes it possible to support alpha-masked drawing out of the box,
shouldn't have any negative effect on anything else.
8 years ago
Vladimír Vondruš
0e9cb6945e
Shaders: define reasonable uniform defaults for all shaders.
...
Plus a bit of cleanup / fixing broken English.
8 years ago
Vladimír Vondruš
8e73cad1c1
Shaders: make the preprocessor less crazy and consistent with 2D.
...
What the heck. Probably 2011 me is to blame.
8 years ago
Vladimír Vondruš
daf287d2a6
Shaders: classical alpha masking support in Phong and Flat.
...
Slow and ugly, is here only for making quick'n'dirty alpha masked
drawing without a need for blending or depth sorting. Oh and also to
support the glTF alpha mask feature. Again, beware: *slow*.
8 years ago
Vladimír Vondruš
5201176cdb
Shaders: assert texturing is enabled when calling Flat::bindTexture().
8 years ago
Vladimír Vondruš
412ee9a04b
Shaders: simplify Flat shader test.
8 years ago
Vladimír Vondruš
f0a868da9c
Shaders: assert on Phong::bindTexture*() if no texture was enabled.
8 years ago
Vladimír Vondruš
bbebfa971f
Shaders: simplify the Phong construction test a bit.
...
Ugh.
8 years ago
Vladimír Vondruš
460df2b97c
Shaders: doc++
8 years ago
Vladimír Vondruš
6885f0647b
Shaders: minor code reordering.
8 years ago
Vladimír Vondruš
c26075427b
Doxygen. Doxygen IS BROKEN BEYOND REPAIR.
...
I introduced *strong* enum with values, in a subnamespace, that have the
same name as completely unrelated typedefs. Guess what?! It breaks ALL
LINKS TO THOSE TYPEDEFS! **EVERYWHERE!!!**
8 years ago
Vladimír Vondruš
453fc0b3e7
Shaders: more convenient VertexColor::Color[34] attribute specifiers.
...
Much easier to write (and explain!) than Shaders::VertexColor2D::Color{
Shaders::VertexColor2D::Color::Components::Three}. Ugh. Why again it
took me *years* to realize?
8 years ago
Vladimír Vondruš
f7122d3ce6
Shaders: explicitly list deleted/defaulted copy/move constructor.
...
Two reasons:
* documentation
* making it actually work because the rules are so complex and ever
changing that a thing I thought "just worked" in fact did not work at
all
The Vector tests now compile again.
8 years ago
Vladimír Vondruš
f27b75bd65
Shaders: improve copy/move construction tests.
...
Doesn't compile at the moment because AbstractVector has a private
constructor and so the move constructors are not generated or something.
8 years ago
Vladimír Vondruš
8018b17bc7
Doxygen: renamed \extension[2] to \gl_extension[2].
...
So it's clear that this is not a Vulkan extension link.
8 years ago
Vladimír Vondruš
adb4547ba0
Split the OpenGL layer out, pt 20: adapted Shaders.
8 years ago
Vladimír Vondruš
b1de952c13
Split the OpenGL layer out, pt 6: adapted buildsystem of dependent libs.
...
Now the rest should build with a lot of deprecation warnings.
8 years ago
Vladimír Vondruš
55d4d344cf
Avoid linking to APIs that are not named like this anymore.
8 years ago
Vladimír Vondruš
b1c60c1b78
Shaders: hint how to have a fully diffuse material with Phong.
8 years ago
Vladimír Vondruš
7917741346
Shaders: rename texture binding functions from set*() to bind*().
...
This better reflects that the functions modify a global state instead of
a shader-local state and so rebinding may be necessary (unlike with
uniforms, which get preserved).
The old set*() functions are now inline aliases to the bind*()
functions, are marked as deprecated and will be removed in some future
release.
8 years ago
Vladimír Vondruš
bc8b8f159a
doc: there's no latex output anyway.
8 years ago
Vladimír Vondruš
3906f533bb
doc: compiled code snippets for the Shaders namespace.
...
Also not really without errors.
8 years ago
Vladimír Vondruš
8f27da9dfd
Set library soversion to 1.0, version to 0.
8 years ago
Vladimír Vondruš
6dffc0a91e
Shaders: documentation update for the new theme.
...
Also made the shader image background transparent to better fit in the
docs and updated the images to match site colors.
8 years ago
Vladimír Vondruš
a97384839b
Use privately Corrade Optional instead of the problematic std::optional.
...
Not in the public APIs yet (Trade etc.), as I need to solve backwards
compatibility first.
8 years ago
Vladimír Vondruš
623fa97970
Updated copyright year.
8 years ago
Vladimír Vondruš
1ec14c678b
Local Doxygen ignores for symbol export macros.
...
It was impossible to put all macros including the ones from other
projects into the global Doxyfile. Much cleaner now <3
8 years ago
Squareys
db56be54a0
Shaders: @mosra is evil.
9 years ago