Christoph Oelckers
bef8c9ae76
- hictinting cleanup.
...
This needs to be moved into the backend, and partially into the shader. So far this only removes the code from the main rendering logic, the final implementation is not done yet.
It had to go because it required the main rendering code to look deep into the texture data which would be a major blocker for refactoring.
2019-10-17 20:29:58 +02:00
Christoph Oelckers
304a906aa7
copy code
2019-10-17 14:21:51 +02:00
Christoph Oelckers
1426ebec20
Moved hightile replacement data into the textures
...
Not tested yet!
2019-10-17 12:45:25 +02:00
Christoph Oelckers
4cd2c024fc
- fixed crash in texture deinit code and ensure that everything gets deleted.
2019-10-16 21:16:40 +02:00
Christoph Oelckers
0e165e40a3
- first batch of adjustments to the new tile management.
...
- consolidated Polymost precaching and removed precaching for static tiles because they now are always loaded.
- removed cache configurability. On modern systems this is relatively pointless - allocating 50 or 100 MB is a non-issue - and the cache is due for replacement anyway.
2019-10-15 00:54:14 +02:00
Christoph Oelckers
fbc22e0125
- sanitized walock.
...
Sorry, but having a globally writable pointer to every texture is just insane and makes any functional management impossible.
This is merely a preparation for adding a real texture manager. That cannot be done if any code can write over the data at will. For that, it now has to make the texture writable first or create a writable empty texture.
2019-10-11 23:31:59 +02:00
Christoph Oelckers
3621aae3f0
- rerouted all write accesses to tilesiz and picsiz through a function interface.
...
These will have to do some texture management bookkeeping so directly changing the values is problematic.
This required changing the parameter interface in polymost.cpp because a few places hacked around with the global state to pass parameters to subfunctions.
2019-10-11 21:04:31 +02:00
Christoph Oelckers
d9d721bff6
- removed old sky code.
...
r_flatsky is now the only option.
2019-10-11 00:15:20 +02:00
Christoph Oelckers
79ef3413dc
- removed a large block of fudging code for NPOT textures on non-supporting hardware.
...
We do not care about non-supporting hardware, so off this goes.
2019-10-10 23:38:06 +02:00
Christoph Oelckers
4d83a3c2a5
- moved all code related to texture creation to texache.cpp
...
Also go directly to the source when trying to determine translucency of a texture.
2019-10-10 23:29:13 +02:00
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
36ca38258e
- hotfixed the transparency checkers to not create textures from regular tiles.
...
This caused some broken textures, apparently this gets called when not everything has been set up.
The hightile case will also have to be fixed.
2019-10-10 22:23:20 +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
46ffea94a4
- cleanup of gloadtile_art.
2019-10-10 19:30:05 +02:00
Christoph Oelckers
34b7759b7e
- removed the non-indexed parts of gloadtile_art.
...
This won't be needed anymore.
2019-10-10 19:25:03 +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
b78b53d75b
- deleted unused function.
2019-10-08 18:48:14 +02:00
Christoph Oelckers
50e6d364be
- prevent crash on invalid textures.
2019-10-08 01:37:24 +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
82f6e2edb0
- fixed creation of paletted textures and added some palette debugging aids.
2019-10-07 23:32:38 +02:00
Christoph Oelckers
c050a0c4c8
- changed palswap management to handle the size of full lookup tables.
2019-10-07 00:34:15 +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
b1aaafb973
- abstracted uploadpalswap out of the game code.
...
This needs special setup on the renderer side that needs to be done in a more controlled fashion.
2019-10-06 19:47:31 +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
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
93ad83b380
- use GZDoom's texture backend to read hightile textures. (Hightile tinting code moved to the shader but isn't active yet.
...
- remove all code for faking gamma correction through palette manipulated images.
2019-10-05 21:59:03 +02:00
Christoph Oelckers
f99492d6d5
- removed OpenGL headers from non-backend files.
2019-10-05 13:57:26 +02:00
Christoph Oelckers
644b07b718
- minor fixes.
2019-10-05 12:39:50 +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
2cbe211e7c
- transitioned project to CMake and deleted most of the old build system.
...
The EDuke32 and RedNukem frontends are working, Blood isn't yet.
Notes:
many of the CMake variables and its output still refer to zdoom. Before changing that I wanted to make sure to be able to commit something that works.
support code for Windows XP has been entirely removed. On Windows this will only target Vista and up.
the crc32.h header had to be renamed to deconflict from zlib.
several Windows API calls were changed to call the A-versions directly. Weirdly enough there were places that defined their parameters as T types but in a non-working way.
removed some remaining editor files and support for the native software rendering only Windows backend.
in a few simple cases, replaced 'char' with 'uint8_t'. The code as-is depends on chars being unsigned which is non-portable. This needs to be carefully reviewed.
2019-09-22 23:15:46 +02:00
Christoph Oelckers
998ac01157
- manual merge of all NBlood changes that couldn't get cherry picked.
2019-09-21 13:02:17 +02:00
nukeykt
78a3240c3e
Fix flat sky y offset
2019-09-21 10:51:47 +02:00
nukeykt
d3994b0801
Revise polymost HOM issue workaround in Duke's E1L1. Add code to remove very thin spans.
...
This commit does not gain noticeable rendering performance, but at least should prevent weird polygon leakages
2019-09-21 10:31:34 +02:00
terminx
062207b2e9
Fix polymost_dorotatesprite() clipping
...
git-svn-id: https://svn.eduke32.com/eduke32@8108 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 23:23:17 +02:00
terminx
c17db80734
Fix npot sky rendering in Polymost
...
Patch from Nuke.YKT.
git-svn-id: https://svn.eduke32.com/eduke32@8076 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
2019-09-20 23:16:01 +02:00
Christoph Oelckers
ba73268470
- removed GLES support and most related files.
...
My future plans do not include mobile support due tp poor support of modern APIs so this is essentially just baggage.
# Conflicts:
# source/build/src/2d.cpp
# source/build/src/dxtfilter.cpp
# source/build/src/mdsprite.cpp
# source/build/src/polymost.cpp
# source/build/src/sdlayer.cpp
# source/build/src/texcache.cpp
2019-09-20 22:16:21 +02:00
Christoph Oelckers
5503ee98a0
- fixed bad merge
2019-09-20 22:06:15 +02:00
terminx
c8d42af954
Flat parallax skies in Polymost
...
Patch from Nuke.YKT.
git-svn-id: https://svn.eduke32.com/eduke32@8074 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
# source/build/src/voxmodel.cpp
2019-09-20 21:15:14 +02:00
terminx
4d20afa9ed
Use integer math for Polymost rotatesprite
...
Patch from Nuke.YKT.
git-svn-id: https://svn.eduke32.com/eduke32@8069 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 21:10:41 +02:00
terminx
b8f668aa9b
Polymost projection changes to correct the perspective in widescreen and ultrawide resolutions.
...
Patch from Nuke.YKT and Fox.
git-svn-id: https://svn.eduke32.com/eduke32@7916 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/polymost.h
# source/build/src/polymost.cpp
2019-09-20 15:48:55 +02:00
terminx
9021b885d6
Eliminate pos_as_vec2 from anything that had it
...
git-svn-id: https://svn.eduke32.com/eduke32@7905 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/build.cpp
# source/build/src/polymost.cpp
2019-09-20 15:46:28 +02:00
pogokeen
a844fd4b13
polymost.cpp: Fix issue where tiles whose dimensions had grown would not have their sizes updated in GL and could fail to update their texture data
...
git-svn-id: https://svn.eduke32.com/eduke32@7888 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
2019-09-20 15:42:29 +02:00
terminx
7553bb043f
Skip drawing invalid polygons in polymost_drawpoly()
...
git-svn-id: https://svn.eduke32.com/eduke32@7880 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:18 +02:00
terminx
9f9a158946
Replace runtime pow2 calculations with pow2char LUT usage
...
I don't know that this is any faster, but there's something to be said for standardization and consistency. I will be making most of this stuff use bitmap_set/test/clear() soon.
git-svn-id: https://svn.eduke32.com/eduke32@7876 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/build.cpp
# source/build/src/polymost.cpp
2019-09-20 15:34:08 +02:00
terminx
1a0c56f0f1
This adds back in the engine's old automapping feature
...
This was removed a long time ago because Duke3D and Shadow Warrior don't use it.
git-svn-id: https://svn.eduke32.com/eduke32@7873 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymer.cpp
# source/build/src/polymost.cpp
2019-09-20 15:32:13 +02:00
terminx
0f4ccaf970
Hopefully work around more Polymost polygon leakages
...
Patch from Nuke.YKT.
git-svn-id: https://svn.eduke32.com/eduke32@7867 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:17 +02:00
terminx
0091acc858
"Another dumb polymost optimization. Probably worth few fps in heavy scenes"
...
Patch from Nuke.YKT
git-svn-id: https://svn.eduke32.com/eduke32@7865 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:12 +02:00
pogokeen
a0231cf90c
polymost_scansector(): avoid using a culling method not designed for voxels when handling 1-sided wall aligned sprites that have voxel replacements
...
git-svn-id: https://svn.eduke32.com/eduke32@7854 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:45 +02:00
terminx
f3e4dd4463
Patch from Nuke.YKT to work around precision-based inaccuracy problems in Polymost TROR
...
git-svn-id: https://svn.eduke32.com/eduke32@7846 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:25:31 +02:00
terminx
1d14991acc
Add MERGE_NODES macro for Polymost... this will be used in the following commit
...
git-svn-id: https://svn.eduke32.com/eduke32@7845 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:25:28 +02:00
terminx
ee92304087
Patch from Nuke.YKT to clip bunches to screen boundaries in Polymost
...
git-svn-id: https://svn.eduke32.com/eduke32@7844 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:25:24 +02:00
terminx
47fa1eccd4
Patch from Nuke.YKT to fix sloped floor and ceiling textures wiggling around in Polymost
...
git-svn-id: https://svn.eduke32.com/eduke32@7843 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
2019-09-20 15:24:54 +02:00
pogokeen
12ce6a78fe
Fix parallel build by switching to generating .obj files from .glsl files and treat the shader source as an externed global resolved at link time.
...
Additionally, remove the no longer necessary shader generated headers folder from .gitignore
git-svn-id: https://svn.eduke32.com/eduke32@7793 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# .gitignore
# source/build/src/polymost.cpp
2019-09-20 15:10:56 +02:00
hendricks266
4e04e4a096
Fix issue with shader compilation
...
git-svn-id: https://svn.eduke32.com/eduke32@7787 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:10:12 +02:00
pogokeen
1664310159
Support clamping in polymost1Frag.glsl and use it for sprites
...
git-svn-id: https://svn.eduke32.com/eduke32@7783 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/polymost.h
# source/build/src/polymost1Frag.glsl
# source/build/src/voxmodel.cpp
2019-09-20 15:10:02 +02:00
pogokeen
f6993940e5
Separate out polymost1Frag and polymost1Vert shaders from polymost.cpp and add rules for building in the GNUmakefile.
...
Additionally, git ignore the shader's generated headers folder.
git-svn-id: https://svn.eduke32.com/eduke32@7782 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# .gitignore
# source/build/src/polymost.cpp
2019-09-20 14:57:42 +02:00
pogokeen
fe36034e43
polymost.cpp: Adjust shaders to use texture2DGradARB() if available
...
git-svn-id: https://svn.eduke32.com/eduke32@7781 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:53:22 +02:00
terminx
2882609822
Don't attempt to animate sprites drawn as voxels by picnum
...
git-svn-id: https://svn.eduke32.com/eduke32@7777 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:39:10 +02:00
pogokeen
c9014870e3
Improve depth fighting by pushing out the near plane and improve near plane clipping by depth clamping.
...
Suggest reducing SCISDIST when there's time to debug SCISDIST issues.
git-svn-id: https://svn.eduke32.com/eduke32@7754 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:06 +02:00
Christoph Oelckers
8de0fd35a1
- fixed compilation
2019-09-20 14:32:28 +02:00
terminx
72821e7de1
Patch from Nuke.YKT to improve mouse selection in the editor in Polymost
...
git-svn-id: https://svn.eduke32.com/eduke32@7740 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
2019-09-20 14:12:27 +02:00
pogokeen
d621023807
polymost.cpp: Fix polymost_domost() issue with COMBINE_STRIPS where in certain cases, merging with the viewport nodes caused accidental reading of sentinel node values.
...
Additional debug code is included for visualizing the state of the vsp data structure.
Further, fix issue in drawpoly where it would access out of bounds of dpxy if fewer than 3 vertices were passed in and fix issue where multiple calls to polymost_setVisibility() were repeatedly setting the visibility factor to the same value.
git-svn-id: https://svn.eduke32.com/eduke32@7737 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:04:32 +02:00
pogokeen
8cbdf3a0c4
Use stencil buffer in Polymost to restrict mirrors to only render within the region of the screen occupied by the mirror wall.
...
Additionally, raise minimum number of stencil buffer bits to accomodate future use of the stencil buffer.
git-svn-id: https://svn.eduke32.com/eduke32@7736 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/build.h
# source/build/src/polymer.cpp
# source/build/src/polymost.cpp
# source/kenbuild/src/game.cpp
2019-09-20 14:04:29 +02:00
pogokeen
cdd83905ca
Fix TROR & skyboxes to work with mirrors in Software & Polymost
...
git-svn-id: https://svn.eduke32.com/eduke32@7733 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:59:17 +02:00
terminx
c122aa2178
Replace DO_TILE_ANIM() macro with tileUpdatePicnum() function
...
git-svn-id: https://svn.eduke32.com/eduke32@7722 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/engine_priv.h
# source/build/src/polymer.cpp
# source/build/src/polymost.cpp
2019-09-20 13:15:07 +02:00
terminx
fe2fe0c2cf
Patch from Fox:
...
Polymost visibility: compensate for the classic mode "truncating" the lookup shades by moving the fog ramp by the equivalent of 1/2 shade
Fix some issues with negative shade in GL fog.
git-svn-id: https://svn.eduke32.com/eduke32@7712 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:29 +02:00
terminx
ccdba037b5
Added Xfree() function to accompany the Xmalloc() family of functions and change all uses of Bfree() to Xfree()
...
This was necessary because everything is already allocated with the Xmalloc() functions, but a future commit will make blocks allocated with those functions no longer compatible with the system implementation of free(), which Bfree() wraps.
git-svn-id: https://svn.eduke32.com/eduke32@7705 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/build.cpp
# source/build/src/mdsprite.cpp
# source/build/src/polymer.cpp
# source/build/src/polymost.cpp
# source/build/src/texcache.cpp
# source/build/src/voxmodel.cpp
2019-09-20 12:07:10 +02:00
terminx
02ef02872a
Replace manual casts of sprite and wall pointers to vec2/3_t with use of the anonymous union
...
git-svn-id: https://svn.eduke32.com/eduke32@7697 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/build.cpp
# source/build/src/polymost.cpp
2019-09-20 12:02:26 +02:00
terminx
9d7e5d9970
Rename vec2s_t to vec2_16_t
...
git-svn-id: https://svn.eduke32.com/eduke32@7694 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
2019-09-20 11:28:57 +02:00
hendricks266
ecf990253b
Fix OOB access in polymost_spriteHasTranslucency
...
git-svn-id: https://svn.eduke32.com/eduke32@7686 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:14:37 +02:00
pogokeen
f92ec7bb89
polymost.cpp: fix issue where GL_ALPHA_TEST could be enabled in certain instances when executing polymost_drawrooms() and better handle when we are drawing without a texture in polymost_drawpoly()
...
git-svn-id: https://svn.eduke32.com/eduke32@7682 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
2019-09-20 10:14:28 +02:00
pogokeen
9b621c0ef2
Add GL debugging event annotations for Polymost functions
...
git-svn-id: https://svn.eduke32.com/eduke32@7681 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/polymost.h
# source/build/src/mdsprite.cpp
# source/build/src/polymost.cpp
2019-09-20 10:14:12 +02:00
terminx
91b9a605fa
"horizon offset should not be affected by projection hack"
...
git-svn-id: https://svn.eduke32.com/eduke32@7675 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
2019-09-20 10:05:22 +02:00
Christoph Oelckers
61d2e31610
- fixed another bad merge
2019-09-20 09:44:58 +02:00
terminx
5e470e8a5b
Neat Polymost y-shearing patch from Nuke.YKT
...
git-svn-id: https://svn.eduke32.com/eduke32@7656 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
2019-09-20 09:43:17 +02:00
Christoph Oelckers
dcc3e2b94e
- removed code duplication from last cherry-pick
2019-09-20 09:35:09 +02:00
terminx
410da8a085
Polymost shade table interpolation patch from Nuke.YKT
...
git-svn-id: https://svn.eduke32.com/eduke32@7650 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
2019-09-20 09:32:22 +02:00
pogokeen
fc636b53ca
polymost.cpp: Fix issue where state would not be reset properly in polymost_drawmaskwall() when rendering translucent maskwalls with no texture
...
git-svn-id: https://svn.eduke32.com/eduke32@7626 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:19:29 +02:00
pogokeen
40737f44cc
polymost.cpp: fix polymost_dorotatesprite() alpha test/blend issue introduced in r7619
...
git-svn-id: https://svn.eduke32.com/eduke32@7625 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:19:27 +02:00
pogokeen
775a0de6c1
polymost.cpp: fix issue where floors & ceilings with DAMETH_MASKPROPS were not being blended
...
git-svn-id: https://svn.eduke32.com/eduke32@7624 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:19:25 +02:00
Christoph Oelckers
8074d8251e
- can be compiled again but crashes.
2019-09-19 23:02:57 +02:00
Christoph Oelckers
53335f20ec
- Blood merge
...
# Conflicts:
# source/build/include/polymost.h
# source/build/src/build.cpp
# source/build/src/engine.cpp
# source/build/src/polymost.cpp
# source/build/src/voxmodel.cpp
2019-09-19 22:06:49 +02:00
pogokeen
d2ebc8a29c
Reduce state changes and fix translucent maskwall depth buffer issue
...
git-svn-id: https://svn.eduke32.com/eduke32@7619 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
2019-09-19 15:01:13 +02:00
pogokeen
2228af8658
Fix maskwall array indirection bug and two if conditional oversights from r7612
...
git-svn-id: https://svn.eduke32.com/eduke32@7615 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:58:14 +02:00
pogokeen
9534bb1578
polymost.cpp: switch from writing gl_FragColor to writing gl_FragData[0] in order to reduce VGPR usage on AMD cards
...
git-svn-id: https://svn.eduke32.com/eduke32@7613 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
2019-09-19 14:58:09 +02:00
pogokeen
2765ebec87
Fix depth buffer issue causing translucent sprites to not render properly in Polymost.
...
Use polymost_spriteHasTranslucency() and polymost_maskWallHasTranslucency() to determine if a sprite has translucency.
Optimize sprite rendering when in Polymost by only sorting sprites with translucency.
git-svn-id: https://svn.eduke32.com/eduke32@7612 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
2019-09-19 14:56:47 +02:00
terminx
ea826fb117
Move NEXTWALL and POINT2 macros into build.h
...
git-svn-id: https://svn.eduke32.com/eduke32@7590 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:30:26 +02:00
terminx
e5bd221746
auto/const/constexpr bullshit
...
git-svn-id: https://svn.eduke32.com/eduke32@7587 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:49 +02:00
pogokeen
71847ec0f1
polymost.cpp: fix fragment shader issue where fullbrights in a texture could affect rendering when u_useColorOnly was enabled
...
git-svn-id: https://svn.eduke32.com/eduke32@7552 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:23 +02:00
hendricks266
2081eff083
Patch from Nuke.YKT to fix TROR rendering in mirrors in Polymost
...
Includes "Fix screen tilt regression on mirror rendering"
git-svn-id: https://svn.eduke32.com/eduke32@7493 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:56:42 +02:00
hendricks266
eb5a90b1ef
Patch from Nuke.YKT to fix a TROR in Polymost issue
...
Report by oasiz: It only occurs when you try to sandwich surfaces and kind of punch through. It seems similar to the kind of behavior that the pre-TROR fixes did (where you had to stand on the TROR sector for things to work). This seems to work if the weird wall is punching IN on your sector but not OUT to another.
git-svn-id: https://svn.eduke32.com/eduke32@7492 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:56:40 +02:00
terminx
c8bd436cf8
Additional TROR patch from Nuke
...
git-svn-id: https://svn.eduke32.com/eduke32@7452 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:25:52 +02:00
terminx
5986dbf6e1
Fix crash in situations where rendering a scene would overrun all of the MAXBUNCHES sized arrays in both classic and polymost
...
git-svn-id: https://svn.eduke32.com/eduke32@7447 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:24:11 +02:00
terminx
37a8c98c2c
Replace some individual assignments of structure members with whole structure assignments
...
git-svn-id: https://svn.eduke32.com/eduke32@7434 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
2019-09-19 12:12:41 +02:00
terminx
dba335c7dd
Adjust projection matrix depending on SCISDIST
...
git-svn-id: https://svn.eduke32.com/eduke32@7432 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:09:13 +02:00
Christoph Oelckers
95c9dba9df
- deactivated the no-fog-calculation checks again.
...
The high level code should have no business deciding that - this must later be done in the backend.
Performance-wise this is really a non-issue so in the end this constitutes an optimization that only creates mess but np gain.
The commit was only cherry-picked for the remaining changes.
2019-09-19 12:04:06 +02:00
terminx
8a6ce26b57
Don't bother with fog calculations for things without hightile replacements
...
git-svn-id: https://svn.eduke32.com/eduke32@7424 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymer.cpp
2019-09-19 11:56:04 +02:00
terminx
35efbccfa3
Fix r_polygonmode cvar
...
git-svn-id: https://svn.eduke32.com/eduke32@7422 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 11:48:58 +02:00
terminx
bf7ee94a2d
Clean up polymost.cpp includes
...
git-svn-id: https://svn.eduke32.com/eduke32@7421 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
2019-09-19 11:48:56 +02:00
Christoph Oelckers
e1e8b835db
- make it compile again.
2019-09-19 11:43:11 +02:00
Christoph Oelckers
8f6f979fa5
- do not force the tile shades mode for now without re_adding the removed variable.
...
Much of this needs to be abstracted out but until that part is done this still needs to work properly.
2019-09-19 11:02:05 +02:00
terminx
a5965e2562
Remove r_usetileshades--GLOBAL_NO_GL_TILESHADES flag for DN64 not affected
...
This also locks the texture filtering options in the menu behind ifdef guards until they're fixed.
git-svn-id: https://svn.eduke32.com/eduke32@7420 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
# source/duke3d/src/menus.cpp
2019-09-19 10:50:18 +02:00
Christoph Oelckers
412f3a0b32
- proper npot checks for RedNukem's sky calculations.
2019-09-19 00:37:12 +02:00
Christoph Oelckers
51dc82b6a6
- merged in the changes RedNukem made to the Build code.
2019-09-19 00:19:02 +02:00
Christoph Oelckers
3a90d21661
- consolidated the redundant texture coordinates.
...
They were all the same, so no point recalculating them, the copies weren't even correct.
2019-09-19 00:06:12 +02:00
Christoph Oelckers
e0f823a492
- refactored texture setup to use an intermediate layer.
2019-09-18 22:16:15 +02:00
Christoph Oelckers
155f093bd5
- stuff
2019-09-17 20:57:45 +02:00
Christoph Oelckers
d63cf04e06
- removed the compressed texture cache.
...
This is a pointless relic from the past and makes zero sense with modern graphics hardware.
2019-09-17 20:18:18 +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
0359602159
- some missed parts.
2019-09-16 21:27:07 +02:00
Christoph Oelckers
6536d910b3
- all drawing is being routed through the interface layer, all vertex buffers are gone.
...
No big loss here, none of them made much sense performance wise.
2019-09-16 21:08:42 +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
Christoph Oelckers
2a20eb9287
- deleted vertex buffer drawing and used immediate mode instead.
...
This served no benefit and made cleanup harder than necessary.
2019-09-16 18:12:16 +02:00
Christoph Oelckers
20ab1289fd
- deletion of unused code.
2019-09-16 18:10:28 +02:00
Christoph Oelckers
d2e34ef18e
- this time the texture upload is working.
2019-09-16 18:00:19 +02:00
Christoph Oelckers
a85f9f4848
- this is good enough.
2019-09-13 22:27:20 +02:00
Christoph Oelckers
aecdd9b4c5
- this is the state I want to build.
2019-09-13 21:43:05 +02:00
terminx
4506b8490f
Minor cleanup of some Polymost shader program support functions
...
git-svn-id: https://svn.eduke32.com/eduke32@7419 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:09:06 +00:00
terminx
483fbe4cd6
Polymost sky Z buffer hack from Nuke.YKT
...
git-svn-id: https://svn.eduke32.com/eduke32@7415 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:08:51 +00:00
terminx
4522a8902b
Limit Polymost tile sheet size to 8192 when building with MSVC
...
git-svn-id: https://svn.eduke32.com/eduke32@7414 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:08:47 +00:00
terminx
5e97fc5f51
Polymost NPOT texture patch from Nuke.YKT
...
git-svn-id: https://svn.eduke32.com/eduke32@7413 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:08:43 +00:00
terminx
25cd73d99a
Patch from Nuke.YKT to use the shade tables for distance shading in Polymost
...
This makes the shading in Polymost more or less 1:1 with classic mode.
git-svn-id: https://svn.eduke32.com/eduke32@7412 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:08:39 +00:00
terminx
1a0ee0f4c3
Polymost relative texture alignment patch from Nuke
...
This "fixes" relative texture alignment for floors and ceilings in Polymost to match classic mode. "Fix" is in quotes because this actually means the alignment is less correct in terms of proper scaling than before, but more correct in terms of accuracy to classic mode.
git-svn-id: https://svn.eduke32.com/eduke32@7411 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:08:35 +00:00
terminx
b61027086c
Fix Polymost HOM
...
git-svn-id: https://svn.eduke32.com/eduke32@7408 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:08:23 +00:00
terminx
770b255bff
Calculate texture coordinates as double since we're storing them that way anyway
...
This isn't really intended to fix any specific issue, but to shut up Visual Studio whining about arithmetic overflows.
git-svn-id: https://svn.eduke32.com/eduke32@7403 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:08:05 +00:00
terminx
c8b161704b
Patch from Nuke.YKT to work around a Polymost glitch with slopes
...
git-svn-id: https://svn.eduke32.com/eduke32@7401 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:07:57 +00:00
terminx
f1ea04e7da
Another Polymost TROR patch from Nuke.YKT
...
This one should bring Polymost TROR into parity with classic mode.
git-svn-id: https://svn.eduke32.com/eduke32@7400 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:07:53 +00:00
terminx
0e01b45227
Revert r7388 because it just wasn't working out
...
git-svn-id: https://svn.eduke32.com/eduke32@7396 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:07:37 +00:00
hendricks266
5258e10271
Fix some GL ES compilation issues in polymost.cpp
...
git-svn-id: https://svn.eduke32.com/eduke32@7395 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-11 06:06:51 +00:00
terminx
f54f35a067
Polymost TROR patch from Nuke.YKT--nice!
...
git-svn-id: https://svn.eduke32.com/eduke32@7392 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-04 23:49:11 +00:00
terminx
c6261b9f45
It looks like this is OK to remove now!
...
git-svn-id: https://svn.eduke32.com/eduke32@7391 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-04 23:49:07 +00:00
terminx
0e6dd28573
Patch from Nuke.YKT to clip Polymost spans to screen borders
...
git-svn-id: https://svn.eduke32.com/eduke32@7390 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-04 23:49:03 +00:00
terminx
a206a83020
This seems to help with some polygon drawing issues in Polymost for now
...
git-svn-id: https://svn.eduke32.com/eduke32@7388 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-04 23:48:55 +00:00
terminx
ea66c0a682
Well, that didn't take long :D
...
git-svn-id: https://svn.eduke32.com/eduke32@7386 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-03 11:15:20 +00:00
terminx
a050281006
A curious Polymost optimization from Nuke.YKT
...
This bails out of drawing any domost spans that seem to be entirely outside of the range of the screen coordinates. Since this seems so obvious, I have to wonder if Polymost is supposed to be doing this elsewhere already...
git-svn-id: https://svn.eduke32.com/eduke32@7379 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-02 23:22:12 +00:00
terminx
23e53c17fc
This might not be needed anymore after the previous commit
...
git-svn-id: https://svn.eduke32.com/eduke32@7375 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-02 23:21:56 +00:00
terminx
0e107acd39
Work around floating point precision issues in Polymost causing problems when rendering certain geometry from particular angles
...
git-svn-id: https://svn.eduke32.com/eduke32@7374 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-02 23:21:52 +00:00
hendricks266
7414f29348
Add buildvfs, abstraction layer for file I/O.
...
Currently it passes calls through to the system libraries as before.
Also adds an incomplete implementation on PhysFS.
git-svn-id: https://svn.eduke32.com/eduke32@7359 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-01 08:51:50 +00:00
terminx
8433d133b4
Patch from Fox:
...
Add a FOV option in the menu. Range from 75 to 120 degrees (at 4:3 resolution), default is 90.
New userdef "fov". Equals the FOV in 360 degrees.
Update Polymost projection hack, so it compensates for the FOV or height of the game view.
Fix FOV in Polymer when the full status bar is visible. Now the FOV depends of the width of the game view instead of the height.
git-svn-id: https://svn.eduke32.com/eduke32@7329 1a8010ca-5511-0410-912e-c29ae57300e0
2019-02-18 22:02:33 +00:00
terminx
975126edf4
Fix a couple minor issues with 90 degree wall texture rotation
...
git-svn-id: https://svn.eduke32.com/eduke32@7325 1a8010ca-5511-0410-912e-c29ae57300e0
2019-02-02 23:24:32 +00:00
hendricks266
450244e258
Fix missing/invalid palswaps and shades in automap with Polymost
...
Patch from Nuke.YKT.
git-svn-id: https://svn.eduke32.com/eduke32@7314 1a8010ca-5511-0410-912e-c29ae57300e0
2019-01-22 17:56:37 +00:00