Magnus Norddahl
e7476e5dac
Fix fullbright shade bug
2021-03-26 07:09:33 -04:00
Magnus Norddahl
bdb35e5e86
Fix some r_scene_multithreaded crashes
2021-03-26 07:09:33 -04:00
Magnus Norddahl
fb87f90d86
Fix some r_scene_multithreaded related bugs
2021-03-26 07:09:33 -04:00
Magnus Norddahl
4cd994c027
Remove threading from the drawers
2021-03-26 07:09:33 -04:00
Rachael Alexanderson
6e5dbbc8ec
Revert "Merge dpJudas's renderslices branch ( #1356 )"
...
This reverts commit a5cba1aba5
.
2021-03-26 07:08:31 -04:00
Xaser Acheron
a5cba1aba5
Merge dpJudas's renderslices branch ( #1356 )
...
* Remove threading from the drawers
* Fix some r_scene_multithreaded related bugs
* Fix some r_scene_multithreaded crashes
* Fix fullbright shade bug
* Fix truecolor drawer crash
* Add debug code for showing the render slices
* Fix texture loading race condition and improve performance by only locking the load mutex if data hasn't already been updated for this frame
Co-authored-by: Magnus Norddahl <dpjudas@users.noreply.github.com>
2021-03-25 20:58:08 -04:00
James Le Cuirot
8ef02544a7
Fix camera texture aspect ratio in hardware renderer
...
It wasn't respecting the map's pixel ratio setting. This wouldn't have
been very noticeable with the default pixel ratio of 1.2 but it was
very obvious with 1.8.
2021-03-19 00:04:46 +01:00
Christoph Oelckers
d18b74b537
Merge branch 'master' of https://github.com/Chernoskill/gzdoom
2021-03-06 11:32:31 +01:00
Christoph Oelckers
8feba7dff9
- fixed: line portal rendering PR was missing handling for portals with z offset.
...
Since it used the back sector's height directly the needed offsetting was not applied to the upper and lower texture.
2021-03-05 17:19:02 +01:00
Christoph Oelckers
0c0ef4f938
- reinstated rendering of mid textures over two-sided wall portals.
...
This was removed in the last PR due to z-fighting problems which now have also been addressed
2021-03-05 12:25:41 +01:00
Timothy Quinn
a15216c90f
- fixed rendering of one-sided line portals in the hardware renderer
...
# draw upper and lower textures when the back sector does not properly match
# do not draw middle textures on portal lines
# minor optimization to 'is***Portal' functions to avoid memory access in the most common case of no portal being present.
2021-03-05 12:02:31 +01:00
Chernoskill
fa2058004b
The two TArrays of type FTextureID skinIDs and surfaceskinIDs no longer have any null elements. These elements will have a textureid (FTextureID.texnum) of 0.
...
Re-worded error messages which were unprecise or unfitting before (model index below 0 was not acknowledged at all, or grouped together with a "too many models" message).
modelIDs are given a default value of -1.
Important: A MODELDEF's FrameIndex lines can no longer refer to model indices that are beyond the number of models of that MODELDEF entry. There is in fact a check to avoid going beyond the number of an actor's models which would abort program operation at startup, but it never caught any such occurances.
surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, elements are accessed via [Row + Column * NumRows], in this case surfaceIndex + modelIndex * MD3_MAX_SURFACES]
Used TArray.Alloc to make TArrays have the correct size depending on the number of models.
Also removed MAX_MODELS_PER_FRAME.
Edited skinSurfaceIDs access for one-dimensional TArray
Added MD3_MODELS_MIN
To ensure compatibility with mods, all model-related TArrays (four in total) have a minimum size of 4, defined by MD3_MODELS_MIN.
2021-02-26 22:22:33 +01:00
Rachael Alexanderson
d6987ff6b2
Revert "Dynamic number of models per frame instead of a hard limit of four. ( #1298 )"
...
This reverts commit 769d60a64f
.
2021-02-25 09:58:17 -05:00
Chernoskill
769d60a64f
Dynamic number of models per frame instead of a hard limit of four. ( #1298 )
...
* Changed model-related arrays to TArrays.
* Update models.cpp
Used TArray.Alloc to make TArrays have the correct size depending on the number of models.
surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, it's size is now (models * MD3_MAX_SURFACES)
surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, elements are accessed via [Row + Column * NumRows], in this case sSurfaceIndex + modelIndex * MD3_MAX_SURFACES]
* Edited skinSurfaceIDs access for one-dimensional TArray
* Edited skinSurfaceIDs access for one-dimensional TArray
* Edited skinSurfaceIDs access for one-dimensional TArray
* Changed model-related arrays to TArrays.
Also removed MAX_MODELS_PER_FRAME.
* Used TArray.Alloc to make TArrays have the correct size depending on the number of models.
surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, elements are accessed via [Row + Column * NumRows], in this case surfaceIndex + modelIndex * MD3_MAX_SURFACES]
* Used TArray.Alloc to make TArrays have the correct size depending on the number of models.
surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, elements are accessed via [Row + Column * NumRows], in this case surfaceIndex + modelIndex * MD3_MAX_SURFACES]
* Update models.h
* Edited MAX_MODELS_MD3
* Update models_obj.cpp
2021-02-24 15:26:47 -05:00
Magnus Norddahl
3b7ada83bf
Fix black wall sprites
2021-02-14 14:05:52 -05:00
Magnus Norddahl
2855b1c4ae
Fix line portal clipping bug
2021-02-14 13:59:35 -05:00
drfrag
97a4080496
- Amend previous commit: fix the wallsprites crash.
2021-02-13 12:34:31 -05:00
Magnus Norddahl
1a5f0fd40a
Fix Additive Shaded renderstyle for UDMF things bugged
2021-02-13 12:32:28 -05:00
Rachael Alexanderson
4100251e25
- another wallsprite crash fix: https://forum.zdoom.org/viewtopic.php?f=56&t=71450
2021-02-12 06:49:47 -05:00
Magnus Norddahl
d7924d6e9d
Fix dancing sprites regression
2021-02-11 23:05:08 -05:00
alexey.lysiuk
6d47d79e22
- removed useless x86.h #include's
2021-02-06 15:01:08 +02:00
Christoph Oelckers
572db3930d
- removed unused FSoftwareTexture::GenerateBgraMipmapsFast() function.
2021-02-06 13:18:15 +01:00
Rachael Alexanderson
e6c71c2f0c
- reimplement fix #1267 from @drfrag666 differently - fix damagecount overflow
2021-01-05 11:09:19 -05:00
Rachael Alexanderson
df4f41f4e8
- Modified commit from @OrdinaryMagician #1261
...
- Always allow skyboxes by default
- Add option to disable skyboxes through mapinfo
Squashed commit of the following:
commit d4c4d9310d
Author: Marisa Kirisame <marisa@sayachan.org>
Date: Wed Dec 30 09:58:39 2020 +0100
Disable AO for skybox portals (can be forced back with MAPINFO flag).
2020-12-30 11:08:43 -05:00
Christoph Oelckers
58d8ce1a4f
- cleanup of m_fixed.h.
...
With fixed point math barely being used anywhere with the vast majority of calls in the software voxel drawer it makes sense to reduce the function interface to the minimum possible and move the shift value into the function call as an argument.
2020-11-22 10:25:04 +01:00
Major Cooke
38eb6db9ce
Disabled vertice off-screen check, but fixed it at the same time. If it's desired, the solution is simply commented out in the event its desired.
2020-10-25 15:42:12 +01:00
Major Cooke
7477dfa922
Converted scale and pivot to vectors, and rotation to an angle.
2020-10-25 15:42:12 +01:00
Major Cooke
a6bbddf167
Finished implementing PSprite interpolation for vertices.
...
- Setting WOF_INTERPOLATE on any of the functions with flags (except A_OverlayFlags) will enable one tic for interpolating.
- Setting PSPF_INTERPOLATE with A_OverlayFlags will permanently enable it for that layer, but requires manual calling.
2020-10-25 15:42:11 +01:00
Major Cooke
c41733e436
Added support for PSPF_FLIP flag and cleaned up.
2020-10-25 15:42:11 +01:00
Major Cooke
7c4c0163a3
Added A_OverlayPivotAlign and A_OverlayVertexOffset.
...
A_OverlayPivotAlign(int layer, int halign, int valign)
- Aligns the pivot point origin to a corner of the PSprite before applying offsets.
- - halign: Horizontal. Applicable constants are PSPA_<LEFT/CENTER/RIGHT>.
- - valign: Vertical. Applicable constants are PSPA_<TOP/CENTER/BOTTOM>.
- - Default is top left.
A_OverlayVertexOffset(int layer, int index, double x, double y, int flags)
- Allows offsetting the corners of the psprite, granting modders the ability to skew weapon sprites as they see fit.
- - index: The index of the vertice. Valid ranges are between [0,3].
- - x/y: Offsets of vertices.
- - flags: Takes WOF_ flags.
Other changes:
- Removed pivot point interpolation since it's pointless.
- Removed PSPF_PIVOTSCREEN due to complications with it having relativity. This will be revisited either later or in another submission.
- Added ResetPSprite() to be called with BringUpWeapon(), A_Lower(), and morph weapon raising to reset all the new properties to 0.
Nearly ready now. Just some final testing needed.
2020-10-25 15:42:11 +01:00
Major Cooke
42902959a8
- Removed relativity from GetWeaponRect.
...
- Fixed PSPF_PIVOTPERCENT not being applied at start by default.
- Pivots now start in the upper left corner. Alignment flags are planned next for pivot point starting.
Significant progress made, but more testing still required.
2020-10-25 15:42:10 +01:00
Major Cooke
f9f6e896f3
- Added functionality to WOF_Relative. Untested until the relative code from GetWeaponRect is taken out.
...
- Fixed A_OverlayPivot carrying over copying of X to Y if Y is zero. This is meant to be exclusive to A_OverlayScale only.
- Added WOF_ZeroY to prevent copying X to Y for A_OverlayScale when desired, mirroring A_SetScale's behavior.
2020-10-25 15:42:09 +01:00
Major Cooke
4a3a5c3877
Replaced PSPF_PIVOTOFFSETREL with WOF_RELATIVE.
...
The idea behind this is to outright remove the relative position adding from the engine side and let it happen with A_OverlayOffset instead. Still more work to do.
2020-10-25 15:42:09 +01:00
Major Cooke
8f74cebd44
Added code for rotating the PSprite, courtesy of IvanDobrovski.
...
- However, the XY offsets are relative as a result.This must be made toggleable.
2020-10-25 15:42:09 +01:00
Major Cooke
e5ca3caa6c
Setting everything up.
2020-10-25 15:42:08 +01:00
Nash Muhandes
7bea14e6b2
- Add A_OverlayTranslation to set PSprite translations ( #1202 )
...
- Added PSPF_PLAYERTRANSLATED support to the software renderer
2020-10-11 17:14:06 -04:00
Rachael Alexanderson
a2f0c27651
- add option to texture hqresize resize model skins.
2020-10-08 00:30:12 -04:00
Christoph Oelckers
d1e613e514
- use a sector's special sprite color to colorize decals.
2020-09-26 23:39:42 +02:00
MajorCooke
eaba63e13b
View Angles (Part 1 - Redux) ( #1002 )
...
* Added ViewAngle/Pitch/Roll properties to actors.
- These are offsets for camera angles that allow turning the camera without affecting aim or movement direction.
- Added A_SetView<Angle/Pitch/Roll>, which will set the view direction.
- Added ABSVIEWANGLES flag, used to make the view absolute instead of an offset.
* Converted functions to be direct-native.
2020-08-27 13:03:06 -04:00
MajorCooke
85759e3bd0
Added A_SpriteOffset. ( #895 )
...
- Coordinates work akin to A_OverlayOffset: +X shifts to the right, +Y shifts down.
2020-08-27 12:43:09 -04:00
Christoph Oelckers
712d80006a
- split game dependent parts out of menudef.cpp.
2020-06-14 00:27:32 +02:00
Christoph Oelckers
efbd80c325
- fixed: the attenuation flag wasn't passed to the shader if shadowmaps were disabled.
2020-06-12 15:16:50 +02:00
Christoph Oelckers
80b5a66635
- fixed bad range check in shadowmap code.
...
Since the last refactoring this only counts lights, not occupied entries in the array, but the check wasn't adjusted for that.
2020-06-12 15:07:13 +02:00
Christoph Oelckers
b20de184a0
- made the new Build light mode operational
2020-06-11 08:48:33 +02:00
Christoph Oelckers
60a20af8ff
- fixed code that deternines when to upscale a texture.
...
This was very much non-functional.
2020-06-10 00:21:19 +02:00
Christoph Oelckers
af7c2fb4e9
- fixed the burn shader.
2020-06-09 22:06:19 +02:00
Christoph Oelckers
5896f24eba
- added a new light mode that emulates Build's depth fading.
...
Not active yet, this needs some testing and finetuning.
2020-06-08 23:37:20 +02:00
Christoph Oelckers
9e51a2f63c
- added Build's NPOT emulation to the backend.
...
For GZDoom this is completely disabled, of course, because the Doom engine does not need it, but in order to have the same backend code in both engines it needs to be present.
2020-06-08 23:37:20 +02:00
drfrag
65df05cba2
- fixed crash with texture upscaling in the truecolor software renderer.
...
Based on: 4746d0c626
2020-06-08 22:37:23 +02:00
drfrag
68e0e52aaf
- Fixed crash rendering 3D floors without ceiling or floor textures in software.
2020-06-08 19:04:38 +02:00
Christoph Oelckers
b06af634e2
- added a flash component to the colormap shader.
...
Its main purpose is for RR's lightning flash in Raze but this looks very useful for manipulating fullscreen colormaps. Currently not exposed, though.
2020-06-07 09:16:56 +02:00
Christoph Oelckers
d643a42c4f
- added per pixel lighting for decals.
2020-06-06 15:18:07 +02:00
Christoph Oelckers
4746d0c626
- fixed crash with texture upscaling in the software renderer.
2020-06-06 09:24:12 +02:00
Christoph Oelckers
fd3845ce09
- fixed: vertically mirrored textures should not be subjected to empty space optimizations because the algorithm cannot deal with the inverted case.
2020-06-03 22:30:44 +02:00
Christoph Oelckers
87d81656e1
- fixed: the 3D floor processing code in the renderer did not restore the render style after finishing.
...
Normally this won't be noticable, the only exception is if the last processed 3D floor had additive translucency and colored fog - this case is special because for additive rendering the fog color needs to be disabled.
2020-06-03 21:35:09 +02:00
Christoph Oelckers
8f07ab87c8
- make sure that incomplete multipatch textures are technically complete.
...
They need a valid FTexture backing them and should have their name cleared so that nothing references them by accident.
2020-06-02 20:15:55 +02:00
drfrag
332dfa4d6f
- Remove wrong GL includes.
2020-05-27 21:35:09 +02:00
Christoph Oelckers
0cf967dc06
- fixed wrong order of actions on shadow map updater.
2020-05-04 22:15:18 +02:00
Christoph Oelckers
3fd4d08004
- fixed startup and font init crashes.
2020-05-04 20:06:54 +02:00
Christoph Oelckers
652712d970
- moved Vulkan and Softpoly backends to 'common'.
2020-04-29 22:17:35 +02:00
Christoph Oelckers
bc8335de3b
- Vulkan backend dependency cleanup.
2020-04-29 18:52:08 +02:00
Christoph Oelckers
68630d6782
- sanitized dependencies of the softpoly render backend.
...
This included half the game state and lots of unneeded parts of the software renderer.
The two modules that are shared between softpoly and the classic software renderer have been moved to a neutral place.
2020-04-29 18:48:15 +02:00
Christoph Oelckers
8cce6207c7
- sanitized includes in a few files.
2020-04-29 18:15:56 +02:00
Christoph Oelckers
5d10d6c448
- directory structure cleanup.
...
The hwrenderer folder did not contain sufficient files anymore for such extensive subgrouping.
2020-04-29 17:36:58 +02:00
Christoph Oelckers
6cf91d3941
- moved the remaining core parts of the GL renderer to 'common'.
2020-04-29 17:19:17 +02:00
Christoph Oelckers
c996600de7
- gl_renderer.cpp include cleanup
2020-04-29 08:01:29 +02:00
Christoph Oelckers
64e301130b
- moved low level sky rendering to 'common'
2020-04-29 00:21:30 +02:00
Christoph Oelckers
4b8fb7d48b
- moved around some sky rendering code so that the game independent parts are grouped together.
2020-04-29 00:14:42 +02:00
Christoph Oelckers
b1dd1eff50
- moved video files to 'common'.
2020-04-28 23:08:27 +02:00
Christoph Oelckers
ddef3f7b98
- made video base code game independent
2020-04-28 22:54:53 +02:00
Christoph Oelckers
2196b4fb04
- moved the frame rate drawer out of DFrameBuffer.
...
Too much of this is not shareable and all it consists of are drawing operations on the 2D drawer.
2020-04-27 23:53:26 +02:00
Christoph Oelckers
5f3e4a5d0e
- did a bit of cleanup on DFrameBuffer, most notably taking GetCaps out of it.
...
With the old softpoly renderer and OpenGL 2.x being gone there is no more need for such complex handling, it is now a single function in d_main.cpp.
2020-04-27 22:24:41 +02:00
Christoph Oelckers
3ee1aa76c3
- moved model code to 'common'.
2020-04-27 20:50:46 +02:00
Christoph Oelckers
8ea0a0c5f8
- took the game dependent model render functions out of the FModelRenderer class.
...
This makes FModelRenderer game independent - the 3 functions in question may just be global functions instead.
2020-04-27 00:25:53 +02:00
Christoph Oelckers
6afa73bdcd
- moved m_bbox to 'common'
2020-04-27 00:07:17 +02:00
Christoph Oelckers
67a50d084a
- started cleanup of model code.
...
* refactored FBoundingBox so that the game dependent members are global functions now.
* changed some methods of the model renderer to take a render style parameter instead of a full actor.
2020-04-27 00:03:23 +02:00
Christoph Oelckers
b58e3172fc
- need hw_viewpointuniforms.h as well in 'common', after decoupling it from game data.
2020-04-26 23:02:16 +02:00
Christoph Oelckers
cb1e8a177f
- moved gl_shader.cpp to 'common'.
2020-04-26 22:24:27 +02:00
Christoph Oelckers
1346787e29
- moved 2 more modules to 'common'.
2020-04-26 21:38:34 +02:00
Christoph Oelckers
f8dcb09ff0
- moved postprocessing shaders to their own folder.
2020-04-26 21:22:57 +02:00
Christoph Oelckers
fde9172ea3
- moved shadowmap to 'common'.
2020-04-26 20:28:43 +02:00
Christoph Oelckers
c30165db0d
- removed the remaining dependencies of the shadowmap code on game data.
...
Everything is handled with callbacks now.
2020-04-26 19:58:17 +02:00
Christoph Oelckers
ba0b42465d
- changed shadowmap setup so that the AABB tree is owned and controlled by the map, not the renderer.
...
Needed to properly separate game logic from backend implementation, the shadowmap had both in the same object thanks to the old setup.
2020-04-26 18:54:43 +02:00
Christoph Oelckers
0a3e9a49f8
- changed the light parameter of ShadowTest to a position vector.
...
This was one of two places where game state leaked into the shadowmap implementation.
2020-04-26 14:53:26 +02:00
Christoph Oelckers
02832297ff
- moved most of the OpenGL backend to 'common'.
...
A few things are yet to do, because they still need some changes.
2020-04-26 14:44:19 +02:00
Christoph Oelckers
5611fe0f41
- cleaned up the dependencies in the model rendering code and separated it into game-independent and game-dependent parts.
2020-04-26 13:19:57 +02:00
Christoph Oelckers
69d724ae73
- moved lightbuffers and flatvertices to 'common'.
2020-04-26 12:41:13 +02:00
Christoph Oelckers
c5dca89e66
- clean separation of vertex creation from map data and the buffer object.
...
This was yet another object with too broad scope, the vertex creation has been offloaded into out-of-class functions now.
2020-04-26 12:12:07 +02:00
Christoph Oelckers
cf41a0b1fb
- moved hw_cvars to 'common'.
2020-04-26 11:38:38 +02:00
Christoph Oelckers
61c94c25ed
- more hw_cvars cleanup.
...
Copied several range checks from Raze, moved vid_gamma to hw_cvars.cpp and removed some old and no longer necessary gamma setup code.
2020-04-26 10:58:44 +02:00
Christoph Oelckers
1ad2f30e0d
- moved sprite CVARs out of the global CVAR storage file.
...
They are local to hw_sprites.cpp now, as they aren't used anywhere else.
2020-04-26 10:47:57 +02:00
Christoph Oelckers
686aa9779d
- moved VR code and IntRect to 'common'
2020-04-26 10:26:29 +02:00
Christoph Oelckers
4b56714199
- made hw_postprocess.cpp compatible.
...
The shadowmap is not universal, it depends on Doom's map format.
2020-04-26 00:03:08 +02:00
Christoph Oelckers
0c63f5c832
- moved FRenderState to 'common' and removed some game-dependent parts from it.
2020-04-25 23:29:38 +02:00
Christoph Oelckers
21f32834b2
- moved the postprocessing code to 'common', except for the game-dependent script exports.
2020-04-25 22:37:27 +02:00
Christoph Oelckers
b6cc31eb0d
- moved around a few more files.
2020-04-25 22:17:41 +02:00
Christoph Oelckers
b9e3c9681b
- moved a few files from 'rendering' to 'common'.
2020-04-25 21:52:21 +02:00
Christoph Oelckers
59360f2d77
- started cleanup of dependencies of the framebuffer class.
...
* made the portal state global, outside the framebuffer, because it is pure logic state without dependencies on the backend.
* took the setup functions out of FDynLightData - there is no need to have them as members and they age game dependent.
2020-04-25 21:08:07 +02:00
Christoph Oelckers
9872065fc6
- moved file to its proper place.
2020-04-25 18:38:17 +02:00
Christoph Oelckers
10bc37b37e
- moved RenderView out of the framebuffer classes to complete the consolidation of the renderer's entry points.
2020-04-25 17:58:26 +02:00
Christoph Oelckers
9dceedd3b0
- cleanup
2020-04-25 14:15:15 +02:00
Christoph Oelckers
730d07fbf7
- reworked canvas texture updater to avoid passing game data to the render backends.
...
These are now handled one level above using a callback to perform the actual rendering.
2020-04-25 14:13:36 +02:00
Christoph Oelckers
44d39ef63e
- consolidated the savegame picture code.
2020-04-25 13:18:57 +02:00
Christoph Oelckers
6177ed153d
- consolidated the 3 RenderViewpoint variants and took the function out of the framebuffer class.
2020-04-25 10:51:45 +02:00
Christoph Oelckers
c203df5edb
- consolidated the 3 virtually identical instances of DrawScene and moved the function to HWDrawInfo.
...
The only backend dependent call in there, ambient occlusion, has been made a virtual of DFrameBuffer.
2020-04-24 21:47:18 +02:00
Christoph Oelckers
90585c4931
- added a RenderState virtual to the FrameBuffer class.
2020-04-24 16:15:18 +02:00
Christoph Oelckers
70d30feb4c
- moved the render interface functions out of FGLRenderer into OpenGLFrameBuffer.
...
These need some consolidation among the backends, and the additional indirection in the OpenGL backend made it harder than necessary.
2020-04-24 15:52:31 +02:00
Magnus Norddahl
ab16cbe298
Fix missing texture update
2020-04-24 13:08:22 +02:00
Christoph Oelckers
f8e23500c7
- moved Windows platform code as well.
2020-04-23 22:26:30 +02:00
Christoph Oelckers
4da2351671
- fixed compile errors in POSIX platform code.
2020-04-22 20:42:13 +02:00
Christoph Oelckers
a40578a0a4
- changed more license headers to BSD.
2020-04-21 22:11:59 +02:00
Christoph Oelckers
f17617706d
- moved the scale overrider to v_draw.h.
2020-04-21 21:23:04 +02:00
Christoph Oelckers
ce95d7379f
- swapped out the license in two files.
...
BSD is preferred over LGPL
2020-04-21 21:06:11 +02:00
Christoph Oelckers
8dbc727178
- fixed compile errors pointed out by CI
2020-04-19 19:05:50 +02:00
Christoph Oelckers
0eb68177ca
Merge branch 'master' into texture_rework
2020-04-19 18:07:16 +02:00
Christoph Oelckers
a21d3ae106
- fixed incorrect value range for particle's depth value, used for sorting.
2020-04-19 13:46:00 +02:00
Christoph Oelckers
d4cc217d42
- fixed a few things that slipped through
2020-04-19 12:40:30 +02:00
Christoph Oelckers
b2281c38e1
- fixed texture layer management so that each material layer can decide for itself if it wants to allow upscaling.
...
- rewrote the hardware texture precacher to use the new texture management to properly track the data to delete.
2020-04-19 10:57:56 +02:00
Christoph Oelckers
cedc95c2a5
- split out FGameTexture into its own files.
2020-04-19 10:57:56 +02:00
Christoph Oelckers
5a2a72fc95
- store the Vulkan descriptor sets in the material - where they belong!
...
Having them in the base texture object was a major maintenance issue.
2020-04-19 10:57:56 +02:00
Christoph Oelckers
46e75e8107
- fixed crash with particles checking a non-existent actor.
2020-04-19 10:57:56 +02:00
Christoph Oelckers
ef8e7a4944
- reworked the multipatch texture builder to reuse the FImageTexture objects.
2020-04-19 10:57:55 +02:00
Christoph Oelckers
59cd049b77
- added missing handling for Rotations to the hardware renderer.
...
Untested due to lack of material.
2020-04-19 10:57:55 +02:00
Christoph Oelckers
f7dd16ba16
- test skyboxes with dynamic_cast and scale them properly.
2020-04-19 10:57:55 +02:00
Christoph Oelckers
e60d758287
- made all member variables of FTexture protected. Also temorarily disabled the CleanUnused call of the precacher - this needs some reworking, now that the texture system is better equipped for it.
2020-04-19 10:57:54 +02:00
Christoph Oelckers
718949f74d
- moved the texture name to FGameTexture.
2020-04-19 10:57:53 +02:00
Christoph Oelckers
8843761bf8
- moved most of the texture size maintenance to the FGameTexture class.
2020-04-19 10:57:53 +02:00
Christoph Oelckers
c563f4993f
- took the sky cap color getter out of the texture system.
...
# Conflicts:
# src/common/textures/textures.h
2020-04-19 10:57:52 +02:00
Christoph Oelckers
7641da8b7b
- moved several members from FTexture to FGameTexture.
2020-04-19 10:57:52 +02:00
Christoph Oelckers
70ec20c137
- optimization of texture scaling checks.
...
The texture dimension checks can be performed up front when the texture is inserted into the texture manager.
2020-04-19 10:57:51 +02:00
Christoph Oelckers
8505c7ee7d
- major refactor of texture upscaling control.
...
All decisions were done deep inside the texture creation code, leaving zero options to the higher level code for controlling the feature.
Changed this so that the option to upscale must be passed as a parameter to FRenderState::SetMaterial and extended all needed variables to manage the added texture variants.
Still not solved: Material layers need explicit control, not only for scaling but also for filtering.
2020-04-19 10:57:51 +02:00
Christoph Oelckers
0b990f0dcb
- moved the decision whether to upscale textures up one level in the function chain. Still not the perfect place, this should be decided before creating the texture, not in the middle of the process.
...
- disabled the selective texture cleaning in the precacher. The logic here turned out to be a serious blocker and needs to be rethought.
2020-04-19 10:57:50 +02:00
Christoph Oelckers
c5e81c54a2
- Moved the raw texture handling into the texture manager as well.
2020-04-19 10:57:50 +02:00
Christoph Oelckers
5352682697
- moved the front layer hack for Hexen's skies to the texture manager.
2020-04-19 10:57:50 +02:00
Christoph Oelckers
da873ca8d1
- moved the handling for paletted replacements into the texture manager.
...
This is something the texture should not concern itself with.
2020-04-19 10:57:49 +02:00
Christoph Oelckers
662fa6e667
- removed the conversion helper code and fixed a few places where FMaterial was only used to access the hardware textures in the FTexture class.
2020-04-19 10:57:49 +02:00
Christoph Oelckers
7bdef7fe9a
- cleaned the texture manager's method interface from FTexture references.
2020-04-19 10:57:49 +02:00
Christoph Oelckers
83817080bb
- more texture cleanup.
...
It is now in a state where FTexture really needs to be separated from FGameTexture.
2020-04-19 10:57:48 +02:00
Christoph Oelckers
31035a6cea
- cleaned out the coordinate code in FMaterial.
2020-04-19 10:57:48 +02:00
Christoph Oelckers
c178313da5
- got rid of the last remaining FMaterial references in the high level renderer.
2020-04-19 10:57:47 +02:00
Christoph Oelckers
4cbd20e822
- transitioned sky and decal code away from FMaterial.
2020-04-19 10:57:47 +02:00
Christoph Oelckers
cca3f878f5
- removed FMaterial references from other high level renderer data like HWFlat and HWSprite.
2020-04-19 10:57:47 +02:00
Christoph Oelckers
1146cf9e08
- use FGameTexture instead of FMaterial for texture tracking in HWWall.
...
The FMaterial object is only needed when finally binding the texture to the render state.
2020-04-19 10:57:47 +02:00
Christoph Oelckers
0ce0099e29
- moved the sprite positioning info out of FMaterial back into FTexture.
...
This cleans out half of FMaterial and brings it closer to being a texture binding descriptor, which is all it really should be.
2020-04-19 10:57:47 +02:00
Christoph Oelckers
9099bc8420
- reworking some lower level texture code.
2020-04-19 10:57:46 +02:00
Christoph Oelckers
72835c5462
- transitioned the GLDEFS parser to FGameTexture.
2020-04-19 10:57:46 +02:00
Christoph Oelckers
54f4267597
- use FGameTexture in the model rendering code.
2020-04-19 10:57:46 +02:00
Christoph Oelckers
b9b6a354c7
- changed all texture access in the play code to use FGameTexture and redid Hexen's front sky layer by adding a new texture instead of hacking the existing one.
2020-04-19 10:57:46 +02:00
Christoph Oelckers
9e7094848c
- transitioned the 2D drawer to FGameTexture.
2020-04-19 10:57:45 +02:00
Christoph Oelckers
d9928b51a8
- eliminated all cases of calling DrawTexture with an FTexture.
...
Everything uses FGameTexture now.
2020-04-19 10:57:45 +02:00
Christoph Oelckers
c7db5b932e
- switched the entire status bar code to use FGameTexture.
...
- scale the automap parchment to clean 320x200 dimensions.
2020-04-19 10:57:45 +02:00
Christoph Oelckers
9593cb56ae
- decoupled the software renderer entirely from FTexture - it will only look at FSoftwareTexture now, all access to the texture manager has been wrapped.
2020-04-19 10:57:45 +02:00
Christoph Oelckers
aeba304715
- texture code refactoring to consolidate multiple textures referencing the same backing image.
2020-04-19 10:57:44 +02:00
Christoph Oelckers
3a47c5c7f7
- fixed Vulkan's uTextureMode setup. Also only mask out the flags we really do not want to avoid surprises in the future.
2020-04-19 10:57:44 +02:00
Magnus Norddahl
9ef6d8fd53
Always null textures for all slots because the vulkan target is an OpenGL emulator ;)
2020-04-19 10:57:44 +02:00
Christoph Oelckers
7c46dace03
- this still doesn't work on Vulkan. :(
2020-04-19 10:57:44 +02:00
Christoph Oelckers
8381092cce
- major shader rework
...
* handle brightmaps in the main shader instead of keeping separate instances around.
* added detail and glow layers from Raze.
* fixed material setup which could not guarantee that everything was initialized correctly.
* for warped textures, warp all layers. With this brightmaps finally work on warped textures.
Note: Vulkan reports a "device lost" error with this which still needs to be investigated.
2020-04-19 10:57:43 +02:00
Christoph Oelckers
e92be97f33
- let FSkybox inherit from FImageTexture to simplify the redirection of the base image for the software renderer.
2020-04-13 14:23:57 +02:00
alexey.lysiuk
9c23c0ac59
- fixed compilation with GCC 5
2020-04-12 11:50:11 +03:00
Christoph Oelckers
8f8aed5ee3
- moved bitmap.cpp to 'common' and remove the duplicate IceRemap.
2020-04-11 20:23:26 +02:00
Christoph Oelckers
9dce6d88fa
- use 'override' qualifier.
2020-04-11 20:21:00 +02:00
Christoph Oelckers
0cb2a1b8e9
- moved gl_load to common.
2020-04-11 20:20:59 +02:00
Christoph Oelckers
295fa1e73f
- header cleanup in gl_interface.cpp
2020-04-11 20:20:59 +02:00
Christoph Oelckers
1e40b745d5
- added some things from Raze to allow using the same code in both projects.
2020-04-11 20:20:59 +02:00
Christoph Oelckers
5fe22c70b5
- moved the 2D drawer to 'common'.
2020-04-11 20:20:59 +02:00
Christoph Oelckers
def123823b
- cleanup of 2D code.
2020-04-11 20:20:58 +02:00
Christoph Oelckers
ce4c2be3c7
- use the 2d drawer's size where appropriate.
2020-04-11 20:20:58 +02:00
Christoph Oelckers
b18faacab0
- 2D drawer cleanup.
2020-04-11 20:20:58 +02:00
Christoph Oelckers
ac1f4b8f11
- initialize native functions before the first query.
2020-04-11 20:20:57 +02:00
Christoph Oelckers
932f5c64c2
- moved stats.cpp to common.
2020-04-11 20:20:57 +02:00
Christoph Oelckers
fa99fc5346
- added global variants of the main 2D-draw functions taking an F2DDrawer as their first parameter.
...
This is a preparation for refactoring the calls to these so that they no longer require a 'screen' parameter.
2020-04-11 20:20:57 +02:00
Christoph Oelckers
3bf7686cfb
- moved v_text.cpp to 'common'.
2020-04-11 20:20:56 +02:00
Christoph Oelckers
f8ac9a2662
- moved DObject and core parts of the VM to 'common'.
...
# Conflicts:
# src/common/objects/dobject.h
2020-04-11 20:20:51 +02:00
Christoph Oelckers
1a0ace4f88
- palette related fixes.
2020-04-11 20:20:40 +02:00
Christoph Oelckers
d586ffa79c
- const-ified the palette pointers in the texture creation code.
...
- fixed includes.
2020-04-11 20:20:39 +02:00
Christoph Oelckers
65f15e1147
- moved the material class to 'common' as well.
2020-04-11 20:20:38 +02:00
Christoph Oelckers
580e463498
- moved texture code to 'common'.
2020-04-11 20:20:38 +02:00
Christoph Oelckers
2ff93b4635
- added the missing blend modes to FRenderStyle.
2020-04-11 20:20:37 +02:00
Christoph Oelckers
3e285d2261
- moved renderstyle and colortables code to 'common'.
2020-04-11 20:20:37 +02:00
Christoph Oelckers
f8e9cb8fbc
- major dependency reduction of the texture system.
2020-04-11 20:20:37 +02:00
Christoph Oelckers
721b857e5e
- minor FTexture cleanup.
2020-04-11 20:19:53 +02:00
Christoph Oelckers
ac610d87e5
- merged FPalette and PaletteContainer.
2020-04-11 20:19:53 +02:00
Christoph Oelckers
7243495b16
- moved special color maps to utilities.
...
The default tables are needed by the texture compositor which should be universal, so this needs to be, too.
2020-04-11 20:19:52 +02:00
Christoph Oelckers
c3a381ed92
- moved most of the console code to 'common'.
...
The main console.cpp file cannot be done yet, but the rest is ready to go.
2020-04-11 20:19:51 +02:00
Christoph Oelckers
603ad755ab
- separated the button code from c_dispatch.
...
Two separate features justify two separate files.
2020-04-11 20:19:24 +02:00
Christoph Oelckers
e425615770
- moved the V_GetColor family of functions to the global palette utilities.
2020-04-11 14:00:22 +02:00
Christoph Oelckers
05d8856fe0
- moved file system implementation to 'common'.
2020-04-11 14:00:20 +02:00
Christoph Oelckers
80c6d5b276
- renamed more stuff and also moved the Strife teaser voice handling out of the file system.
2020-04-11 14:00:19 +02:00
Christoph Oelckers
c1bb7de23a
- more file system refactoring.
...
* moved the sprite renaming out of the file system entirely into a caller-provided callback.
* renamed several functions to closer match the terms of a file system.
* moved the VM interface out of the implementation.
2020-04-11 14:00:19 +02:00
Christoph Oelckers
6bccde3b51
- renamed the file system related classes to actually use the term "FileSystem".
2020-04-11 14:00:18 +02:00
Christoph Oelckers
fdc14ca805
- renamed fullscreen CVar internally to vid_fullscreen to make searching for it easier.
...
The word 'fullscreen' appears a bit too frequently in the source.
2020-04-11 14:00:15 +02:00
Christoph Oelckers
fb1a7679ec
- moved most basic utility code without any dependencies on the rest of the engine to 'common' directory.
...
Again the objective is easier sharing with Raze.
2020-04-11 14:00:13 +02:00
Christoph Oelckers
6996d54a23
- moved more code to 'common'.
...
This is all low level utilities with no dependencies on game logic. Having this in a separate directory makes sharing with Raze a lot easier.
2020-04-11 14:00:12 +02:00
Christoph Oelckers
cf757ba834
- made the translation container a class.
...
This also splits off some Doom-specific implementation details into higher level headers.
2020-04-11 14:00:11 +02:00
Christoph Oelckers
0a7344e432
- abstract the external translation interface.
...
The translation table array now only gets accessed from within r_translate.cpp.
2020-04-11 14:00:10 +02:00
Christoph Oelckers
b0ecb02d6b
- move SuperFastHash to its own set of files, instead of having this tied to the console.
...
- replace swapvalues with std::swap globally.
- added some additions to utility code from Raze, mainly to reduce file content differences.
- reduced some unused utilities
2020-04-11 14:00:10 +02:00
Christoph Oelckers
1fe667c6a0
- cleaned up the includes in m_png.h, this file had far too many and far too broad dependencies.
2020-04-11 14:00:09 +02:00
Christoph Oelckers
c623b04170
- copied some fixes for overlong config entries from Raze.
...
- renamed basictypes.h to basics.h to keep the file name in line with Raze and make comparisons easier.
2020-04-11 14:00:08 +02:00
Lucy Phipps
2c1a42ae55
remove gl_texture_usehires since it's unused now
...
GLTEXMNU_ENABLEHIRES in language.csv is unused too
2020-04-05 13:22:32 +01:00
Christoph Oelckers
5490ffcd77
- removed the obsolete Doomsday 1.8-style texture pack support.
...
This poorly integrated into the texture system and wasn't compatible with modern texture packs anymore so its usefulness was questionable.
2020-04-04 12:55:24 +02:00