Commit graph

79 commits

Author SHA1 Message Date
Christoph Oelckers
c588cd499a - let GLInstance::Draw set the palette indexing mode.
This can be trivially decided based on the texture type, so there's really no need to let the higher level code deal with this.
2019-10-10 23:14:57 +02:00
Christoph Oelckers
fbc7e626e9 - removed the fullbright render pass, because this is better set up as a shader option.
- also removed the legacy fog modes because their implementation did not mix well with the texture system - they are also not really useful to begin with.

The last fog mode will most likely also be removed once true color shading is working but that one is less of an issue.
2019-10-10 21:05:10 +02:00
Christoph Oelckers
1407c18f8b - cleaned out some remains of the non-indexed render path.
All of this will be redone in the backend.
2019-10-10 19:40:33 +02:00
Christoph Oelckers
c428e367a0 - hotfix for texture filter settings.
This needs to be done differently later to choose the proper clamp setting.
2019-10-10 19:16:27 +02:00
Christoph Oelckers
1fee7a5f01 - cleanup of texture creation code.
There were several mostly pointless options complicating all of this.
2019-10-10 00:07:45 +02:00
Christoph Oelckers
7131fe6c6e - use separate textures for the palswap shade tables.
This creates a lot less mess than one big texture and also allows easier use of texelFetch in the server which is preferable for data textures.
2019-10-08 01:08:08 +02:00
Christoph Oelckers
dfaa162bb2 - finished the palswap handling in the palette manager. 2019-10-07 22:11:09 +02:00
Christoph Oelckers
7713860b63 wip. 2019-10-07 00:14:16 +02:00
Christoph Oelckers
734d8b7d1e - moved the palette management into the backend. 2019-10-06 21:15:53 +02:00
Christoph Oelckers
ef2de97077 - the harmless changes of the failed refactoring of the shader. 2019-10-06 19:32:35 +02:00
Christoph Oelckers
cf30f5560b - upgraded the polymost fragment shader to GLSL 3.3 as well, removing all legacy features from it.
The only compatibility mode feature left is the main drawer function using glBegin/glEnd but changing that is not as urgent as the rest.
This also cleans up the fog application and adds the exponential fog mode again that somehow got lost over time.
2019-10-06 12:42:35 +02:00
Christoph Oelckers
3d538b4c8f - use explicit vertex attributes for everything.
No more glVertex, glTexCoord or glColor calls anywhere.
2019-10-06 10:46:23 +02:00
Christoph Oelckers
71d132b470 - use explicitly declared matrix uniforms.
The builtin matrices are no longer available in modern GLSL, preventing an upgrade of the shader.
Also perform better reporting of shader compilation errors.
2019-10-06 10:19:51 +02:00
Christoph Oelckers
3fb5154dc9 - make it work again. 2019-10-05 14:17:59 +02:00
Christoph Oelckers
3c193bb243 - moved the animvpx shader to the backend code.
This removes the final access to OpenGL from the rest of the source, with the exception of the glFinish call in the swap code.
2019-10-05 13:38:02 +02:00
Christoph Oelckers
b83349fe6b - moved the surface shader to the backend and the shader source to the resource file. 2019-10-05 13:09:15 +02:00
Christoph Oelckers
bd4e4834e3 - moved the main shader and its entire uniform maintenance into the backend. 2019-10-05 12:28:08 +02:00
Christoph Oelckers
d058084c10 - added an engine resource file.
Currently this only contains the main Polymost shaders and the resources from nblood.pk3.
The latter cannot be used yet because the Build resource management system is too stubborn to add the newly added file without some changes.
It's better to refactor the entire system instead.
2019-10-04 23:29:00 +02:00
Christoph Oelckers
ae1e090716 - all non-shader related GL calls are gone from the main code base. 2019-10-04 21:13:04 +02:00
Christoph Oelckers
f992aebf33 - two more 2019-10-04 19:17:55 +02:00
Christoph Oelckers
cb80e877ff - refactored fog and depth func setting into GLInterface. 2019-10-04 18:44:16 +02:00
Christoph Oelckers
204abab724 glColor calls refactored. 2019-10-04 18:25:18 +02:00
Christoph Oelckers
96c0c3197c - abstracted away more OpenGL calls, in particular all matrix access. 2019-10-04 18:12:03 +02:00
Christoph Oelckers
ad4527c8be - initialize the GL backend in the proper place.
As long as there are still video mode switches this needs to be in the video mode switching function.
2019-09-23 23:33:59 +02:00
Christoph Oelckers
e0f823a492 - refactored texture setup to use an intermediate layer. 2019-09-18 22:16:15 +02:00
Christoph Oelckers
b1763a8f4a - hooked up the texture management.
Not in active use yet!
2019-09-17 19:03:42 +02:00
Christoph Oelckers
2b439ae181 - work on backend 2019-09-16 23:28:26 +02:00
Christoph Oelckers
9edf6be10d - texture sampler class added, not used yet. 2019-09-16 22:56:48 +02:00
Christoph Oelckers
318009fd69 - added a centralized drawer and converted the main geometry drawer to use it. 2019-09-16 19:35:04 +02:00