Commit graph

160 commits

Author SHA1 Message Date
Rachael Alexanderson
f442d4bd54 - split gl_texture_hqresize into two variables - one for mode, one for multiplier.
# Conflicts:
#	src/textures/hires/hqresize.cpp

# Conflicts:
#	src/gl/textures/gl_hqresize.cpp
#	src/r_videoscale.cpp
2019-04-17 21:04:41 +02:00
Rachael Alexanderson
301246236c - added normal5x and normal6x 2019-04-17 20:59:20 +02:00
drfrag
96f996d8aa Revert "Revert "- update xBRZ upscaler to version 1.6""
This reverts commit 285791622d.

# Conflicts:
#	src/gl/textures/gl_hqresize.cpp
#	wadsrc/static/menudef.txt

Goodbye to TDM-GCC.
2019-04-17 20:33:41 +02:00
Christoph Oelckers
ebf46b8d04 - fixed: FTexture::SmoothEdges must forward its result to the base texture in case a redirection is in effect.
Both need the bMasked flag, or some code will think that the texture is not fully opaque if no holes were found.

# Conflicts:
#	src/gl/textures/gl_material.h
#	src/textures/texture.cpp
2018-11-17 21:12:22 +01:00
Christoph Oelckers
6c76566bb1 - use the same formula for calculating 3DMidTex offsets as the renderer when per-sidedef scaling is used.
This reuses the FTexCoordInfo class the hardware renderer had been using to calculate wall texture offsetting.
The software renderers still need this sorted out to bring them in line with the rest of the code, though, but they do not have this code sufficiently well organized to make this a straightforward task.

# Conflicts:
#	src/hwrenderer/textures/hw_material.cpp
#	src/textures/textures.h
2018-11-17 20:43:52 +01:00
drfrag666
9d10545ff2 - Fixed non valid value. 2018-10-04 21:10:05 +02:00
Rachael Alexanderson
92d631deb7 - changed macro into a regular function 2018-09-29 21:26:56 +02:00
Rachael Alexanderson
f06501da22 - implement normalNx scaling
# Conflicts:
#	wadsrc/static/menudef.txt
2018-09-29 21:26:54 +02:00
Christoph Oelckers
4efb5187c7 - defaulted constructors and assignment operators of several trivial types.
# Conflicts:
#	src/hwrenderer/textures/hw_material.cpp
2018-08-28 13:43:51 +02:00
Christoph Oelckers
26a782031c - no, we do not want to use global variables to pass parameters around...
# Conflicts:
#	src/gl/models/gl_models.h
2018-08-22 01:49:33 +02:00
drfrag666
d79855d26b - disable any texture clamping for textures with a user shader.
This cannot be reliably determined so the least restrictive setting must be used.
(refactored patch by Graf)
2018-08-21 15:06:53 +02:00
drfrag666
76dffaf658 - Fixed bad merge of "- rewrite the user shader support for materials - new syntax is to create a 'Material ProcessMaterial()' function". 2018-08-20 12:50:54 +02:00
Magnus Norddahl
9c74c9629a - rewrite the user shader support for materials - new syntax is to create a 'Material ProcessMaterial()' function
# Conflicts:
#	src/gl/shaders/gl_shader.cpp
#	src/hwrenderer/textures/hw_material.cpp
#	src/r_data/gldefs.cpp
#	wadsrc/static/shaders/glsl/main.fp
2018-08-20 01:22:34 +02:00
usernameak
4c106de5d7 Custom hardware shaders now can use custom texture units
# Conflicts:
#	src/gl/textures/gl_material.cpp
#	src/textures/textures.h
2018-08-19 21:47:32 +02:00
Christoph Oelckers
b03c329ec6 - moved all GLDEFS parsing into a dedicated source file.
- split gl_postprocessshader.h in two so that the hardware independent part can be used by GLDEFS without pulling in all of OpenGL.

# Conflicts:
#	src/CMakeLists.txt
#	src/gl/dynlights/gl_glow.cpp
#	src/gl/renderer/gl_postprocess.cpp
#	src/gl/textures/gl_texture.cpp
2018-08-19 20:56:49 +02:00
drfrag666
285791622d Revert "- update xBRZ upscaler to version 1.6"
This reverts commit 6dd17b4ef0.

This broke compilation with TDM-GCC 5.1. While it has problems i still use it for convenience, also no more win98.
2018-08-12 11:36:58 +02:00
alexey.lysiuk
aa4cb300da - added 5x and 6x upscaling with xBRZ 2018-08-10 21:16:09 +02:00
alexey.lysiuk
6dd17b4ef0 - update xBRZ upscaler to version 1.6
Fixed build with all suported toolchains thanks to incomplete implementation of C++14 in MSVC 2015 and GCC 4.9
Removed obsolete header comments and support for C++98
Disabled Windows only debug features

https://sourceforge.net/projects/xbrz/
https://sourceforge.net/projects/xbrz/files/xBRZ/xBRZ_1.6.zip
2018-08-10 21:05:40 +02:00
Christoph Oelckers
0d9deb35aa - fixed: When deleting a camera texture's depth buffer, the corresponding variable must also be cleared.
Thanks to OpenGL's messed up state system this didn't cause some clear failure but just reused the last bound buffer instead which may not have had a matching size.

(cherry picked from commit 2c86c4e942)
2018-07-15 12:14:36 +02:00
drfrag666
09a3d7c9da - Made the software renderer the default.
- Changed default GL texture filtering mode.
2018-06-19 17:08:10 +02:00
Magnus Norddahl
8de520e9e1 - avoid reusing the same mVBuf pointer for the different renderers as that causes too many problems when switching between them
- remove gl_ prefix for model functions that are no longer GL specific

(cherry picked from commit 31abe3df7e)

# Conflicts:
#	src/gl/models/gl_models.h
#	src/gl/scene/gl_scene.cpp
#	src/hwrenderer/scene/hw_sprites.cpp
#	src/hwrenderer/scene/hw_weapon.cpp
#	src/hwrenderer/textures/hw_precache.cpp
2018-05-24 10:25:05 +02:00
drfrag
9727484190 - Applied Blzut3's patches to compile with MinGW. 2018-04-22 10:08:00 +02:00
Christoph Oelckers
e89a598b31 - renamed FTexture's UseType flags and gave them a dedicated type.
This was done mainly to reduce the amount of occurences of the word FTexture but it immediately helped detect two small and mostly harmless bugs that were found due to the stricter type checks.
2018-03-25 20:26:16 +02:00
Christoph Oelckers
0a07f4c144 - fixed alpha texture generation for OpenGL rendering.
The old logic used a translation table that does not work with color images, it was designed to handle 8 bit grayscale images.
So now, it creates a true color buffer and then turns it into a texture with R,G,B = 255 and the alpha channel set to the grayscale value.

This was also the reason why crosshairs made from 32 bit PNGs did not show correctly.
2018-03-22 23:57:14 +01:00
Christoph Oelckers
f4d9ad1123 - extended FTexture::GetPixels and FTexture::GetColumn by a RenderStyle parameter.
Now it is no longer necessary to provide specially set up textures for rendering shaded decals, they can use any PNG texture now that contains a proper red channel.
Handling of the alPh chunk has been removed as a result as it in no longer needed.
2018-03-18 21:33:44 +01:00
Christoph Oelckers
7e169eb76f - split out the span generation from most texture classes
Until now each subclass of FTexture had to implement the entire span generation itself, presumably so that a few classes can use simpler structures.
This does not work if a texture can have more than one pixel buffer as is needed for alpha textures.
Even though it means that some classes will allocate more data now, it's the only way to do it properly.
In addition this removes a significant amount of mostly redundant code from the texture classes.

- added alpha texture processing to all converted classes

As of now this is not active and not tested.
Note that as part of the conversion even those textures that were working as alphatextures will not look correct until the higher level code gets adjusted.
2018-03-18 12:36:14 +01:00
Magnus Norddahl
57e66555da - Change the search paths for auto folders 2018-02-21 23:20:31 +01:00
Magnus Norddahl
05827ffcda - Implement auto textures for materials 2018-02-21 23:12:46 +01:00
Magnus Norddahl
2c9a2e7170 - fix specular defaults to be a little more sane 2018-01-25 19:59:57 +01:00
Magnus Norddahl
7a59bcde4c - move glossiness and specular level to GLDEFS 2018-01-25 19:53:55 +01:00
Magnus Norddahl
81c6808d2a - Add specular and normal map handling to main.fp 2018-01-23 23:10:28 +01:00
Magnus Norddahl
4dd2d789f4 - Rename mTextureEffects to mMaterialShaders to help distinguish between those and effect shaders (mEffectShaders)
- Add MaterialShaderIndex enum
2018-01-21 01:19:16 +01:00
Magnus Norddahl
f3c55c01c8 Add material definition to GLDEFS 2018-01-20 16:28:24 +01:00
Rachael Alexanderson
fd5b8cdbf7 Merge remote-tracking branch 'origin/master' into newtimercode4
# Conflicts:
#	src/gl/models/gl_models.cpp
2017-11-23 21:08:09 -05:00
Magnus Norddahl
f1e7df542f - Create model renderer abstraction to share more model drawing between renderers 2017-11-24 00:38:52 +01:00
Rachael Alexanderson
505da5bf4f Merge branch 'master' of https://github.com/coelckers/gzdoom into newtimercode4 2017-11-21 05:23:00 -05:00
alexey.lysiuk
c2b4efbea0 Fixed applying of brightmaps to overridden textures
https://forum.zdoom.org/viewtopic.php?t=58444
2017-11-18 17:07:42 +02:00
Christoph Oelckers
0323f54384 - rename I_FPSTime function.
- now that the frame buffer stores its render time, the 'ms' return from I_GetTimeFrac is not needed anymore, we may just as well use the globally stored value instead.

The only feature this value was ever used for was texture warping.
2017-11-13 00:54:32 +01:00
Christoph Oelckers
fafc636476 - allow allocating constructor of TArray to also reserve the allocated data and use this to properly handle the precalc arrays for the texture resizer. 2017-11-03 17:27:32 +01:00
Rachael Alexanderson
765646ee1c - fixed: Changed IWAD_FILENUM to a dynamic lookup. 2017-09-13 04:19:03 -04:00
alexey.lysiuk
490e873602 Moved parallel_for() function template to own header file 2017-07-15 12:16:06 +03:00
Christoph Oelckers
98124c8049 - avoid using plain chars as variables.
This is all I found with a quick search, there's probably more...
2017-07-15 09:01:02 +02:00
alexey.lysiuk
970adff5e7 Use multiple threads for xBRZ upscaling
Implementation relies on Concurrency Runtime, Grand Central Dispatch aka libdispatch or OpenMP depending on their availability
2017-07-14 16:01:38 +03:00
Christoph Oelckers
cf1d94c9bb - fixed blood translation's alpha so that CreateTexBuffer can assume that all palette entries in translations are correct. 2017-06-18 09:23:56 +02:00
Christoph Oelckers
a1694a79c6 - removed the FGLBitmap class and replaced all uses with the regular FBitmap.
The only reason this ever existed is that the GL renderer used RGBA instead of BGRA but there's no reason why this is even necessary.
2017-06-18 09:14:33 +02:00
Christoph Oelckers
8b19ae98ea - consolidated the two averageColor instances. 2017-06-07 22:42:59 +02:00
alexey.lysiuk
c99cecea8e Fixed warnings reported by GCC/Clang
src/p_pspr.cpp:363:37: warning: more '%' conversions than data arguments [-Wformat]
src/gl/textures/gl_texture.cpp:845:21: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
2017-04-13 10:40:44 +03:00
Christoph Oelckers
6599e2c425 - moved the VM types into their own file and only include it where really needed. 2017-04-13 01:12:04 +02:00
Christoph Oelckers
e4d2380775 - moved all remaining fields from PClassActor to FActorInfo.
- added a few access functions for FActorInfo variables.

With PClassActor now empty the class descriptors can finally be converted back to static data outside the class hierarchy, like they were before the scripting merge, and untangle the game data from VM internals.
2017-04-12 00:07:41 +02:00
Christoph Oelckers
4afe2d4218 - moved OwnedStates and NumOwnedStates out of PClassActor. 2017-04-11 22:44:35 +02:00