Commit graph

13511 commits

Author SHA1 Message Date
Christoph Oelckers
96bb8a779c - fixed incomplete reordering of code. 2018-07-23 21:17:57 +02:00
Christoph Oelckers
6076f0a69d - disable any texture clamping for textures with a user shader.
This cannot be reliably determined so the least restrictive setting must be used.
2018-07-23 17:53:35 +02:00
alexey.lysiuk
3a6e05710a - fixed missing decals on 3D floors with hardware renderer
https://forum.zdoom.org/viewtopic.php?t=61404
2018-07-23 16:46:51 +03:00
Rachael Alexanderson
63393e8f1a - fixed: use templates.h function for minimal value check
- fixed: it was `MAX` all along, not `min` :P
2018-07-22 18:08:54 -04:00
Magnus Norddahl
b1468d9dcc - somehow visual studio 2015 miscompiles this so badly it triggers an out of bounds assert in STL! 2018-07-22 22:51:08 +02:00
Christoph Oelckers
2382b9a238 - fixed: GLScenePortal did not forward IsSky to its backing object. 2018-07-22 21:18:00 +02:00
Rachael Alexanderson
fccb0b76c6 - fixed: correct the functionality of the 'min' function in the scaling code 2018-07-22 12:34:33 -04:00
Rachael Alexanderson
8cb281bf42 - fixed: I misnamed the function in my last commit, it should've been called 'min' not 'max' 2018-07-22 12:07:46 -04:00
Rachael Alexanderson
682b0ebf48 - enforce 320x200 minimum in actual scaling code 2018-07-22 12:05:16 -04:00
Christoph Oelckers
d84497c85a - don't let the video scale let the screen end up with a client size less than 320x200, which may cause undefined behavior and trigger asserts in debug builds. 2018-07-22 11:40:12 +02:00
Christoph Oelckers
6d0b172762 - added MF8_DONTFACETALKER flag which prevents NPCs from facing the player in conversations. 2018-07-22 11:32:45 +02:00
alexey.lysiuk
051521a898 - set minimum size for Cocoa window 2018-07-22 12:10:06 +03:00
alexey.lysiuk
43d472328c - implemented vid_setsize CCMD in Cocoa backend 2018-07-22 11:16:48 +03:00
alexey.lysiuk
4bb125d76c - removed obsolete list of video modes 2018-07-22 11:04:38 +03:00
Rachael Alexanderson
f71b5154c7 - fix vid_showcurrentscaling so that it works even when vid_scalemode is 2 or greater. 2018-07-21 22:27:43 -04:00
Rachael Alexanderson
e4fd6ee03f - the error checking on the previous commit should've been done slightly differently 2018-07-21 21:51:37 -04:00
Rachael Alexanderson
d7b7ae06e7 - implement a new vid_scalemode: 5 - this allows the usage of custom absolute scaling modes
- new ccmd: vid_setscale <x> <y> [linear] [fake-mcga-4:3] - sets vid_scalemode to 5 with the absolute scaling parameters. example: vid_scalemode 800 600 allows you to see the screen (stretched) as if it were 800x600. Linear specifies whether to force the scaling to be linear in this mode, and "fake-mcga-4:3" is meant for 320x200-like modes that mimic mode13h scaling.
2018-07-21 21:39:35 -04:00
Christoph Oelckers
156ed5790e - added vid_setsize CCMD and fixed some issues with window restoration when switching from fullscreen.
Windows apparently cannot both undo borderless fullscreen and resize the window at the same time, so this must delay the resizing one frame.
2018-07-21 21:32:02 +02:00
Christoph Oelckers
369267bbe9 - adjusted stat code for the new survey. 2018-07-21 19:14:11 +02:00
Rachael Alexanderson
21575bc3df - re-enable stats sending
- re-direct stats sending to new stats script
2018-07-21 07:21:37 -04:00
Christoph Oelckers
6ca2b3fce1 - fixed display for smaller screeblocks value.
When refactoring the screen scaling one line too many was altered by accident.
2018-07-21 12:13:17 +02:00
Christoph Oelckers
57f65a9379 - fixed: The 2D drawer did not restore the blend mode after finishing. 2018-07-20 19:46:53 +02:00
Christoph Oelckers
18213f377c - fixed: Inventory items that have been modified with Dehacked to be monsters should not be killed by P_Massacre when being owned. 2018-07-20 11:43:49 +02:00
Christoph Oelckers
2a0c3e63a3 - allow temporary strings to be used as self pointer for String's member functions.
Due to how function calls get resolved by the code generator there were some incorrect flags on the self pointer which triggered an assert and caused incorrect code generation.
Fortunately this was a mostly contained special case for which a workaround was possible.
2018-07-20 10:38:55 +02:00
Christoph Oelckers
4a7b1aada7 Merge remote-tracking branch 'remotes/origin/modern'
# Conflicts:
#	wadsrc/static/shaders/glsl/main.fp
2018-07-20 10:19:07 +02:00
Magnus Norddahl
a841602d70 - change the software renderer to render to a DSimpleCanvas like the old D3D9 target did. Then use the drawer threads to memcpy the result to the PBO 2018-07-20 05:48:15 +02:00
alexey.lysiuk
4d35b12808 - fixed crash on accessing state owner during VM abort
https://forum.zdoom.org/viewtopic.php?t=61338
2018-07-19 13:38:49 +03:00
Magnus Norddahl
7da61ddfee - fix missing forward declaration when falling back to older user shaders 2018-07-19 02:34:45 +02:00
Magnus Norddahl
a0a7fd53e8 - change software renderer back to writing directly into the pixel buffer object, but change the creation and mapping so that hopefully all vendors put it in system memory 2018-07-18 17:47:09 +02:00
Magnus Norddahl
23c0f8f6ac - fix buffer usage warning caused by using the wrong flag for glMapBuffer after switching to doing a plain memcpy 2018-07-18 16:04:35 +02:00
Magnus Norddahl
e93d1e3ebc - change software renderer upload code to use GL_STREAM_DRAW and a memcpy from system memory 2018-07-18 06:46:30 +02:00
alexey.lysiuk
4e2385e912 - load common conversation lumps regardless of map naming scheme
https://forum.zdoom.org/viewtopic.php?t=61313
2018-07-17 12:56:23 +03:00
alexey.lysiuk
b2697a99f8 - added missing null pointer checks to VM ops 2018-07-16 17:10:47 +03:00
Magnus Norddahl
1ef9938320 - fix user defines and textures not working 2018-07-15 23:34:58 +02:00
Magnus Norddahl
fcb14494d7 - improve the gldefs syntax by allowing the shader to be specified in the material section 2018-07-15 23:21:06 +02:00
Magnus Norddahl
8a500a25f5 - rewrite the user shader support for materials - new syntax is to create a 'Material ProcessMaterial()' function 2018-07-15 23:01:40 +02:00
Christoph Oelckers
79b3c41677 - fixed titlepic animation.
It needed more than using the animated accessor. The code here nearly went out of its way to circumvent the texture manager's built in logic.
2018-07-15 22:51:25 +02:00
Christoph Oelckers
f62e2f9ba3 - fixed: The stencil cap may never write to the depth buffer.
Due to the way nested portals work this will block rendering of the nested cap entriely and cause some visual glitches when looking straight up or down in such a sector.
2018-07-15 19:16:12 +02:00
alexey.lysiuk
f554120086 - output Mac model identifier to startup window 2018-07-15 14:28:21 +03:00
alexey.lysiuk
5c7dd28f7d - replaced deprecated macOS functions in paths handling 2018-07-15 13:20:36 +03:00
alexey.lysiuk
fc7af31cb9 - replaced usage of deprecated APIs to get macOS version 2018-07-15 13:20:36 +03:00
alexey.lysiuk
ccf056a888 - increased minimum macOS version to 10.9 in .plist 2018-07-15 13:20:36 +03:00
alexey.lysiuk
e2ac5cdf57 - removed unused macOS specific #include 2018-07-15 13:20:36 +03:00
Christoph Oelckers
7c527de374 - call P_PlayerStartStomp only when the map is played directly from the loaded data and only when it has been fully loaded.
The old code did this right in the middle of map initialization where not everything had been set up yet.
2018-07-15 10:57:10 +02:00
Christoph Oelckers
2c86c4e942 - 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.
2018-07-15 10:55:34 +02:00
Christoph Oelckers
d58d1e21d0 - removed the texture invalidation check from FHardwareTexture.
This is not needed anymore because only warp and camera textures still implement CheckModified and both are excluded here.
2018-07-15 00:28:16 +02:00
Christoph Oelckers
1294f3df64 - replaced the procedural backdrop texture with some warped noise texture.
This was done because the backdrop as implemented was the only texture in the entire game that had to be deleted and recreated each frame.
However, with Vulkan this would have necessitated quite a bit of synchronization with the render pipeline which wasn't really feasible just for this one single texture.
Now the texture manager can assume that once a texture was created it will be immutable and never has to change.
2018-07-15 00:00:00 +02:00
Christoph Oelckers
7a692b1557 - added DTA_LegacyRenderStyle so that STYLE_* constants can be passed directly to the Draw functions.
- fixed the optional parameter in Shape2D.Clear.
2018-07-14 22:58:24 +02:00
Christoph Oelckers
ed856085f4 - use the Dim function to draw the palette tester.
This looks better, consumes less resources and removes one ugly special texture from the engine.
2018-07-14 18:28:12 +02:00
Christoph Oelckers
33ee0f3c27 Merge branch 'master' into modern
# Conflicts:
#	src/gl/renderer/gl_renderer.cpp
#	src/gl/renderer/gl_renderer.h
#	src/gl/renderer/gl_renderstate.h
#	src/gl/system/gl_framebuffer.cpp
#	src/gl/system/gl_framebuffer.h
2018-07-14 13:18:34 +02:00
Christoph Oelckers
7817e6a7b2 - moved the texture binding code back to the OpenGL specific parts.
turns out that this cannot be consolidated with Vulkan because the semantics are far too different here.
2018-07-14 13:05:49 +02:00
Christoph Oelckers
69a3271440 - removed the unused feature to allow animated material layers.
This was a relic from trying to support ZDoomGL's texture shader system but would make texture management with Vulkan significantly more complicated because it would require dynamic descriptor set management for textures which can cause a lot of overhead.
2018-07-14 12:10:41 +02:00
usernameak
7de9e1f097 Added ability to set defines in custom HW shaders 2018-07-14 12:01:54 +02:00
usernameak
e306d4ee04 Fix codestyle; add ability to name the textures 2018-07-14 12:01:54 +02:00
usernameak
fa51a54042 Made ability to define custom material shaders for ProcessMaterial function 2018-07-14 12:01:54 +02:00
usernameak
292458ee2d Custom hardware shaders now can use custom texture units 2018-07-14 12:01:54 +02:00
Christoph Oelckers
124fe63d00 Merge branch 'master' into modern 2018-07-14 10:24:41 +02:00
Marisa Kirisame
2d0fb4ed2e Adds 2D shape (triangle array) drawer, usable from ZScript. Handles most drawtexture parameters excluding those related to scaling, at the moment. 2018-07-13 20:24:06 +02:00
alexey.lysiuk
23a4daac23 - skipped owned items in proximity test
https://forum.zdoom.org/viewtopic.php?t=61224
2018-07-11 17:49:30 +02:00
alexey.lysiuk
55ae431c02 - fixed crash on setting particular CVARs
Game crashed when any of gl_brightfog, gl_lightadditivesurfaces, gl_notexturefill CVARs is set with no level loaded
There was impossible to reset settings to defaults because of this
2018-07-07 12:04:41 +03:00
David Carlier
2a59327aeb foo being allocated with metadata based allocator needs to
be freed similarly.
2018-07-06 10:59:23 +03:00
Marisa Kirisame
e5249f302a UE1: Clean up and restructure model class.
UE1: Add support for Deus Ex format vertex data.
UE1: Group triangles by skin index AND type/flags (preparation for per-surface render style support).
UE1: Add handling of Weapon Triangle (preparation for model attachment support).
UE1: Support flat shaded triangle flag.
2018-07-04 21:31:48 +02:00
Magnus Norddahl
ebae12e74b - Make members private that are not used outside FGLRenderBuffers 2018-07-03 23:35:34 +02:00
Magnus Norddahl
092b2953ea - add GL to OpenGL specific postprocess classes to make it more clear which belongs to the generic hw interface and which belong to the OpenGL implementation 2018-07-03 23:31:40 +02:00
Magnus Norddahl
2128b99117 - fix ssao not working when multisample was off 2018-07-03 23:21:54 +02:00
Magnus Norddahl
128c8d8318 - improve the bloom blur quality slightly 2018-07-03 23:12:47 +02:00
Magnus Norddahl
fcee021753 Fix frame buffer binding bug that caused PP textures to end up with bad data 2018-07-03 21:44:49 +02:00
Christoph Oelckers
158890e0ce - fixed : Decals used the wrong texture variant. 2018-07-02 19:12:48 +02:00
Magnus Norddahl
2e5b7a7d8b - softpoly: fix sprites still lit when dynlights off 2018-07-01 20:53:50 +02:00
Magnus Norddahl
6d6ee1281e - softpoly: fix normal walls not getting rendered for subsectors with poly objects in them 2018-07-01 14:41:35 +02:00
Magnus Norddahl
4482ad2b78 - fix saved texture bindings to work for any number of binds 2018-07-01 14:31:30 +02:00
alexey.lysiuk
0a139e90fb - restored initial clamping for blend colors
https://forum.zdoom.org/viewtopic.php?t=61134
2018-06-30 20:27:04 +03:00
Magnus Norddahl
5b3212df13 Merge remote-tracking branch 'gzdoom/modern' into hw_postprocess 2018-06-30 16:47:06 +02:00
Magnus Norddahl
c0c7573788 - fix black ssao bug 2018-06-30 16:46:33 +02:00
Magnus Norddahl
8eb825e25a - fix some postprocess bugs 2018-06-30 16:44:09 +02:00
Magnus Norddahl
ba09af7cbb - add GL debug group for the 2D drawer
- remove pointless opengl calls from effects that are doing nothing
2018-06-30 15:41:12 +02:00
Magnus Norddahl
723b18f2cd Merge branch 'hw_postprocess' of https://github.com/coelckers/gzdoom into hw_postprocess 2018-06-30 15:24:25 +02:00
Magnus Norddahl
35c13763db - convert the SSAO pass to use hw_postprocess 2018-06-30 15:24:13 +02:00
alexey.lysiuk
43b94d829e - fixed crash when actor is destroyed during spawning
This only applies to spawning via summon... CCMDs
Now 'summon decal 0' no longer crashes the game
2018-06-30 15:11:21 +03:00
alexey.lysiuk
5d27c16f30 - disabled default values for out parameters
https://forum.zdoom.org/viewtopic.php?t=61128
2018-06-30 11:44:22 +03:00
alexey.lysiuk
1d937b9f3c - removed Class identifier workaround from Cocoa backend 2018-06-30 11:43:30 +03:00
alexey.lysiuk
49f2e75ee4 - removed support of legacy OpenGL profile in Cocoa backend
Minimum OpenGL version is now 3.3 and so, the given legacy fallback doesn't make any sense
This increases required macOS version to 10.9 as on previous versions nothing but a black screen was rendered
2018-06-30 11:13:12 +03:00
alexey.lysiuk
a1d5833c8a - reset framebuffer pointer on destruction in Cocoa backend
Added debug validation of framebuffer pointer as well
2018-06-30 11:06:41 +03:00
alexey.lysiuk
da005fa7fc Fixed compilation warnings reported by Clang
hwrenderer/postprocessing/hw_postprocess.cpp:22:3: warning: delete called on non-final 'PPEffectManager' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
hwrenderer/postprocessing/hw_postprocess.h:64:5: warning: cannot delete expression with pointer-to-'void' type 'void *' [-Wdelete-incomplete]
hwrenderer/postprocessing/hw_postprocess.h:75:3: warning: cannot delete expression with pointer-to-'void' type 'void *' [-Wdelete-incomplete]
hwrenderer/postprocessing/hw_postprocess.h:85:4: warning: cannot delete expression with pointer-to-'void' type 'void *' [-Wdelete-incomplete]
2018-06-30 10:51:47 +03:00
Magnus Norddahl
ecb5d69ae3 - Simplify FGLRenderer::PostProcessScene 2018-06-29 21:55:46 +02:00
Magnus Norddahl
a7529ce3b4 Merge remote-tracking branch 'gzdoom/modern' into hw_postprocess 2018-06-29 20:24:32 +02:00
alexey.lysiuk
651e735246 Merge branch 'master' into modern 2018-06-29 17:51:10 +03:00
alexey.lysiuk
ecb5bfec13 - removed obsolete code from POSIX backends 2018-06-29 17:50:19 +03:00
alexey.lysiuk
1ebc169d56 - fixed potential crash on fatal error in Cocoa backend
Early fatal error can be triggered when native OpenGL frame buffer is not created yet and DDummyFrameBuffer is still used
2018-06-29 17:50:19 +03:00
alexey.lysiuk
907ce777a3 - added extra validation for status bar classes
Print a message when status bar class defined in GAMEINFO is missing or when it's not derived from BaseStatusBar
Validate internal status bar classes for basic consistency in Debug configuration
2018-06-29 13:47:06 +03:00
alexey.lysiuk
0703030be3 - simplified key repeat detection in SDL backend 2018-06-29 12:26:30 +03:00
alexey.lysiuk
0342bf532d - fixed excess keyboard events in SDL backend
https://forum.zdoom.org/viewtopic.php?t=61104
2018-06-29 12:20:49 +03:00
alexey.lysiuk
6e4c0fc416 - disabled annoying macOS spaces in SDL backend 2018-06-29 12:20:49 +03:00
alexey.lysiuk
c30505d02a - fixed excess keyboard events in Cocoa backend
https://forum.zdoom.org/viewtopic.php?t=61104
2018-06-29 12:20:49 +03:00
alexey.lysiuk
a968aeba8a - added detection of macOS Mojave 2018-06-28 11:06:19 +03:00
Christoph Oelckers
cbe4c9c5c1 Added lump size validation to the WAD loader 2018-06-27 08:51:45 +02:00
Christoph Oelckers
8ac864b007 Merge branch 'master' into modern 2018-06-26 09:28:23 +02:00
Christoph Oelckers
446be98f37 - fixed light application logic for flats.
The light mode check wasn't done properly anymore after merging GLPASS_ALL and GLPASS_PLAIN.
2018-06-26 09:28:10 +02:00
Christoph Oelckers
0ed1077f29 - correct checks for HasDynamicLights 2018-06-26 08:51:21 +02:00
Christoph Oelckers
e402babfc0 Fixed: Software rendered models checked the wrong CVAR for enabled dynamic lights. 2018-06-26 08:23:07 +02:00