Christoph Oelckers
2514753afb
- make the vertex buffer accessible from the hwrenderer code.
2018-05-22 18:48:10 +02:00
Magnus Norddahl
91aec1689e
- move modeldef parsing to its own function (ParseModelDefLump)
...
- rename gl_InitModels to InitModels
- add commented out support for #include in modeldefs (blocked by gene tech having broken #include statements in its modeldef files)
2018-05-22 01:28:57 +02:00
Christoph Oelckers
226e8f84da
- most of gl_bsp.cpp moved to HWDrawInfo.
...
Only the vertex buffer update check needs to be done yet.
2018-05-22 00:27:39 +02:00
Christoph Oelckers
df0b1e8dae
- moved the clipper out of GLSceneDrawer and let it be handled by HWDrawInfo.
...
The precise way the clipper needs to be maintained may differ between APIs, so it is no longer owned by any render structure but instead HWDrawInfo only contains a reference.
For OpenGL there is still only one static clipper because without multithreaded BSP traversal there is no need for more.
2018-05-21 22:54:04 +02:00
Christoph Oelckers
5f87e81b6a
- moved CurrentMapSections and in_area from GLSceneDrawer to HWDrawInfo.
...
Not only are they better placed in the common code, but they are also both per-viewpoint and not per-scene, so this is a far more suitable place and avoids saving and restoring them in the portal code.
2018-05-21 22:04:29 +02:00
Christoph Oelckers
e6a447eb6f
- removed more occurences of gl_drawinfo.
2018-05-21 20:28:12 +02:00
Magnus Norddahl
31abe3df7e
- 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
2018-05-21 17:52:03 +02:00
Magnus Norddahl
cc4a09a3d2
- fix model interpolation bug
2018-05-21 14:23:30 +02:00
Christoph Oelckers
31263eeac2
- removed gl_drawinfo-> from FDrawInfo member functions and pass it to some other functions as a parameter.
...
This really shouldn't be handled as a global variable. The mere fact that several member functions used it incorrectly is ample proof of that.
2018-05-21 11:36:07 +02:00
alexey.lysiuk
2cdc9f9dda
- fixed applying of alpha to weapon sprites
...
https://forum.zdoom.org/viewtopic.php?t=60638
https://forum.zdoom.org/viewtopic.php?t=60642
2018-05-21 10:53:02 +03:00
Christoph Oelckers
2d4b8549c6
- per-sector plane rendering needs to be disabled when processing a line portal with hardware that has no working clip plane support.
...
In this case there are no means to discard the parts of the rendered sectors that lie behind the portal so it should only render the parts that are flagged as visible.
2018-05-20 08:56:29 +02:00
Christoph Oelckers
3069b53804
- disable shader storage blocks if none get reported for vertex shaders.
2018-05-20 00:16:06 +02:00
Christoph Oelckers
5cffa8873a
- added a CVAR to disable per-plane rendering.
...
This will require some comparisons on older hardware. On my Geforce 1060 rendering the full plane with one draw call is clearly faster in all cases I tested.
2018-05-19 19:19:48 +02:00
Christoph Oelckers
cc65490062
- added CVAR to disable WGL_EXT_swap_control_tear.
...
At least on faster NVidia hardware, setting this to false and gl_finishbeforeswap to true gives a better experience because it reduces screen tearing - but the same setting will reduce frame rate quite dramatically on Intel and can cause bad stalls on some older GPUs when rendering camera textures.
2018-05-19 19:18:38 +02:00
alexey.lysiuk
c6f7d92c76
- added forced automap style to linedef, UDMF only
...
https://forum.zdoom.org/viewtopic.php?t=59808
2018-05-19 17:09:26 +02:00
RockstarRaccoon
90cb0b3215
- added 'revealed on automap' linedef flag, UDMF only
...
https://forum.zdoom.org/viewtopic.php?t=59808
2018-05-19 17:09:26 +02:00
Marisa Kirisame
0c4a08460f
Cleaned UE1 math by using FVector classes.
...
Reversed winding order on vertex buffer creation as UE1 uses CCW.
2018-05-19 17:09:06 +02:00
Christoph Oelckers
f54cf561ab
- missed this.
2018-05-19 15:40:33 +02:00
Christoph Oelckers
3e204080ae
- render sector planes in one draw call.
...
On a fast and modern graphics card this is a lot faster than doing it per subsector but it may not be without drawbacks on older hardware so it will require some testing on older hardware.
For me Frozen Time's view over the bridge went from 46 fps to 51 fps with this change, the time saved was roughly 2 ms.
2018-05-19 15:20:46 +02:00
Christoph Oelckers
352279a52f
- removed the non-indexed flat setup.
...
This won't be needed any longer.
2018-05-19 14:44:16 +02:00
Christoph Oelckers
2125f8b9d1
- use triangles instead of triangle fans to render flats.
2018-05-19 14:42:25 +02:00
Christoph Oelckers
fd3681dae2
- use an indexed vertex buffer to render the flats.
...
Right now this has no advantage but it allows optimizing the data, e.g. rendering an entire sector in one go instead of per subsector.
2018-05-19 13:33:28 +02:00
alexey.lysiuk
9257c9cc0c
- fixed compilation warnings reported by GCC/Clang
...
src/r_data/models/models.cpp:418:33: warning: comparison of integers of different signs: 'long' and 'unsigned long' [-Wsign-compare]
src/r_data/models/models.cpp:427:38: warning: comparison of integers of different signs: 'long' and 'unsigned long' [-Wsign-compare]
src/r_data/models/models_ue1.cpp:49:37: warning: comparison of integers of different signs: 'long' and 'unsigned long' [-Wsign-compare]
2018-05-19 13:28:53 +03:00
alexey.lysiuk
ace5ee3c41
- fixed crash after saving a screenshot
...
https://forum.zdoom.org/viewtopic.php?t=60616
2018-05-19 13:19:24 +03:00
Christoph Oelckers
5ec47d8b4f
- removed some leftover data in sector_t.
2018-05-19 08:25:26 +02:00
Christoph Oelckers
ab3bacdaf5
- added missing files to project.
2018-05-18 23:00:10 +02:00
Christoph Oelckers
ebbe52082a
- fixed vr_enable_quadbuffered for real
...
I did not consider that this is an init-only option. So changing the CVAR may not affect game behavior at all. Instead its value must be moved to some globally accessible variable on startup that never gets changed again.
2018-05-18 08:44:32 +02:00
Rachael Alexanderson
f2e6ca4ced
- add 'vid_showcurrentscaling' ccmd, expanded output for 'vid_scaletowidth' and 'vid_scaletoheight' commands
...
- made the vid_scaleto____ commands less hacky - after finding out I could route the calls through screen->, found the correct screen-> commands, and do scaling based on the real screen dimensions
2018-05-17 19:25:32 -04:00
Christoph Oelckers
1656bbf9ec
- route the BlurScene call in the menu through DFrameBuffer.
...
Game code should never ever call the renderer directly. This must be done through the video interface so that it can also work with other framebuffers later.
2018-05-18 00:22:57 +02:00
Christoph Oelckers
2962fe9f08
- silence some warnings.
2018-05-18 00:12:58 +02:00
Christoph Oelckers
b197bfc964
- avoid checking for vr_enable_quadbuffered directly.
...
This option only exists on Windows, so on the other platforms it should not be in the menu and not affect the setup of the VR mode.
2018-05-18 00:12:45 +02:00
Christoph Oelckers
3f56e02352
Revert "- fix compile on non-Windows targets"
...
This reverts commit 781cc62f89
.
This gets in the way of a real fix.
2018-05-18 00:03:58 +02:00
Rachael Alexanderson
781cc62f89
- fix compile on non-Windows targets
2018-05-17 17:47:42 -04:00
Rachael Alexanderson
872cd529c7
- define zdoom.rc as a proper Windows text file, stop Git from mismanaging it
2018-05-17 17:39:18 -04:00
Christoph Oelckers
46a57fdfa1
- moved the postprocessing CVARs to hwrenderer.
2018-05-17 20:51:42 +02:00
Christoph Oelckers
ea98fe3c4d
- moved the hardware independent part of custom postprocessing shaders from gl to hwrenderer.
2018-05-17 20:23:01 +02:00
Christoph Oelckers
da1cdf65c3
Merge branch 'master' of https://github.com/coelckers/gzdoom
2018-05-17 20:12:44 +02:00
Rachael Alexanderson
bcadd2bf04
- also remove unused forward declarations
2018-05-17 06:30:36 -04:00
Rachael Alexanderson
0f36b9d63f
- cleaned up vid_scaleto____ code a bit, also set a sane lower limit for vid_scalefactor, removed some code redundancy
2018-05-17 06:24:21 -04:00
alexey.lysiuk
42668c6a5a
- fixed seeking end of file in memory reader
...
https://forum.zdoom.org/viewtopic.php?t=60611
2018-05-17 10:19:29 +03:00
Christoph Oelckers
c0837f42bd
- gl_system.h as well, in particular this has no place in hw_* files.
2018-05-16 23:34:52 +02:00
Christoph Oelckers
401c9ab8ca
- moved gl_interface.cpp/h to gl_load folder.
...
These files are not part of the actual renderer but part of the system code.
This means, for separated modern and legacy GL renderers, there still will only be one set of this, unlike everything else.
2018-05-16 23:21:21 +02:00
Christoph Oelckers
6e20ece3f4
- moved vr_enable_quadbuffered definition to win32gliface.cpp because this is where it gets used.
2018-05-16 23:14:30 +02:00
Christoph Oelckers
fb876852bb
- fix warnings.
2018-05-16 22:56:02 +02:00
Marisa Kirisame
1bb00ed4f0
Fix for Unreal meshes that don't have sequential texture numbers
2018-05-16 22:11:24 +02:00
Christoph Oelckers
44dd48c7fa
- moved the palette stuff and some remaining scaling code from OpenGLFrameBuffer to DFrameBuffer and fixed GetFlashedPalette
2018-05-16 22:10:24 +02:00
alexey.lysiuk
fc91827900
- trigger WorldThingDamaged event before WorldThingDied
...
https://forum.zdoom.org/viewtopic.php?t=60597
2018-05-16 20:48:59 +02:00
Jonathan Russell
e9050a38b3
- added LevelLocals vec2/3Offset(Z) functions for portal-aware offsetting without needing actors
2018-05-16 20:47:43 +02:00
Marisa Kirisame
98f279b651
Remove unnecessary checks.
2018-05-16 20:47:11 +02:00
Marisa Kirisame
ffc12eec29
Discarded "UMSH" packed format, now loads _d.3d + _a.3d pairs
2018-05-16 20:47:11 +02:00
Marisa Kirisame
f285e550d6
Add support for packed Unreal Engine 1 vertex mesh format.
...
(concatenated "UMSH" signature + datafile + anivfile)
This is pretty much 100% functional by now.
Hasn't been tested on platforms other than Linux yet, though.
Code definitely deserves some cleaning.
2018-05-16 20:47:11 +02:00
Rachael Alexanderson
0fae13bab4
- added vid_scaletowidth and vid_scaletoheight to calculate vid_scalefactor to reach a certain value on screen dynamics
2018-05-16 11:54:35 -04:00
alexey.lysiuk
e1e441091d
- fixed potential crash on startup, Windows only
...
At least one version of Windows SDK (10.0.17134.0) has broken _pgmptr/_get_pgmptr()
It points to an empty string for multi-byte character set applications
GetModuleFileName() is now used instead regardless of compiler/toolchain
Added extra guard against unexpected program paths to avoid crashes
https://forum.zdoom.org/viewtopic.php?t=60598
2018-05-16 11:44:49 +03:00
alexey.lysiuk
751e318c4e
- fixed wrong line number in error message
...
Parser of MAPINFO editor number definitions didn't assign line numbers, so 'Unknown actor class' fatal error displayed some garbage
2018-05-14 14:42:31 +03:00
alexey.lysiuk
fa5f936371
- fixed missing saved game picture in software modes
...
https://forum.zdoom.org/viewtopic.php?t=60574
2018-05-13 16:11:05 +03:00
Christoph Oelckers
8f96729e06
- fixed portal benchmarking and added separate output for 2D and finishing the main scene.
2018-05-13 09:48:19 +02:00
alexey.lysiuk
8a6ae503be
- use map axes in bad sound position/velocity warning
...
https://forum.zdoom.org/viewtopic.php?t=60578
2018-05-13 10:13:59 +03:00
Christoph Oelckers
142368d958
- fixed alpha of weapon sprite.
2018-05-12 18:45:12 +02:00
Christoph Oelckers
c2a7a4bf30
- moved viewport code to DFrameBuffer.
2018-05-12 17:23:56 +02:00
alexey.lysiuk
f17f8c9359
- added end line to various messages
...
so they don't screw up further output anymore
2018-05-11 18:03:57 +03:00
Magnus Norddahl
643828f5fa
- move 3d floor code into functions
2018-05-11 17:00:12 +02:00
Magnus Norddahl
e4d740e586
- more pointless complexity removal
2018-05-11 14:27:09 +02:00
Magnus Norddahl
acf9f55849
- remove pointless code
2018-05-11 13:29:24 +02:00
Magnus Norddahl
b0cc472e85
- fixed sloped drawer crash
2018-05-11 12:28:10 +02:00
alexey.lysiuk
2c2b19bb7f
- fixed crash during autoloading of material textures
...
https://forum.zdoom.org/viewtopic.php?t=60546
2018-05-10 18:01:29 +03:00
alexey.lysiuk
a7e7db1fe9
- fixed calculation of glow color
...
Width and pitch were mixed up for RGB format texture, pixel data were read outside of designated buffer
https://forum.zdoom.org/viewtopic.php?t=60538
2018-05-10 15:45:29 +03:00
Magnus Norddahl
46e2e0b57c
- reduce the number of direct OpenGL calls done by the post processing steps
2018-05-10 14:43:34 +02:00
landfillbaby
ba9a340c1f
fix highlighting in snd_listmididevices
2018-05-10 11:51:23 +03:00
alexey.lysiuk
ef536e7b00
- fixed crash in DECORATE parsing
...
The case with forward declared class used as a parent must be handled explicitly
actor MyWeapon : Weapon { Weapon.AmmoType "MyBaseAmmo" }
actor MyAmmo : MyBaseAmmo { }
actor MyBaseAmmo : Ammo { }
2018-05-10 11:47:16 +03:00
alexey.lysiuk
821cc2a140
- added end line to recursive sound warning
2018-05-10 11:43:27 +03:00
Christoph Oelckers
e1ad4b618d
- fixed: The targeter drawer did not check the return value of its setup function.
...
This caused invalid items to be passed to the renderer.
2018-05-10 09:09:24 +02:00
Christoph Oelckers
50cdcc79c8
- fixed OpenGL2.0 may not call the modern light setup code.
2018-05-10 09:05:26 +02:00
alexey.lysiuk
fd5df6e8d1
- Cocoa: ability to use drag and drop with custom IWADs
2018-05-09 12:47:11 +03:00
alexey.lysiuk
23dcc27542
- Cocoa: proper defaults in .plist
2018-05-09 12:33:19 +03:00
Magnus Norddahl
459f748c4e
- added r_debug_draw that shows how the software renderer composes its scene
2018-05-08 22:22:15 +02:00
David Carlier
1b68b69ed8
Needed headers for time and WIF*
2018-05-08 22:04:20 +03:00
Magnus Norddahl
b27655db70
- 3d floor clipping support for models
2018-05-08 01:36:18 +02:00
Magnus Norddahl
49c9de350f
- GetTimeFloat is not renderer specific
2018-05-07 00:40:12 +02:00
Magnus Norddahl
bfe6bffd33
- fix hud model clipping
2018-05-07 00:33:16 +02:00
alexey.lysiuk
78c06554af
- proper handle pixel format creation errors in Cocoa backend
2018-05-06 17:53:53 +03:00
alexey.lysiuk
7fcefa2ed1
- SDL: clear button state when switching from/to GUI input
...
https://forum.zdoom.org/viewtopic.php?t=60451
2018-05-06 14:37:04 +03:00
alexey.lysiuk
ce18ff1df3
- use libc++ for all targets on macOS
...
clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9
2018-05-06 09:44:13 +03:00
Magnus Norddahl
4642861501
- fixed missing depth for models
2018-05-06 03:23:07 +02:00
Magnus Norddahl
1d929dd79b
- fix translucent walls when r_models is enabled
2018-05-06 02:54:03 +02:00
Magnus Norddahl
d667a0192a
- fix null pointer crash
2018-05-06 02:31:58 +02:00
Christoph Oelckers
099057b142
- moved the vertex and light data generation back to the render pass for modern OpenGL with persistently mapped buffers.
...
Having this extra CPU time in there allows for better parallelization with the graphics driver and GPU.
2018-05-05 23:32:55 +02:00
alexey.lysiuk
437b44bafb
- serialize 'spawned' object flag, WorldThingDestroyed event relies on it
...
https://forum.zdoom.org/viewtopic.php?t=60435
2018-05-05 17:55:44 +03:00
Christoph Oelckers
74b624002c
- moved the software renderer's drawer to the swrenderer directory.
2018-05-05 11:44:42 +02:00
Christoph Oelckers
de15b589c0
- moved the screen blending code out of the renderer.
...
This is better be made part of the 2D interface.
That would have been done long ago if it hadn't been for the totally incompatible way this was handled by the purely paletted software renderer.
Now with that out of the way there is no point keeping this code this deeply embedded in the renderer.
2018-05-05 11:20:37 +02:00
Christoph Oelckers
52d73eabbf
- weapon drawing code refactor complete.
...
Setup and drawing are now done separately, this also no longer needs the Quad drawer.
2018-05-04 23:11:37 +02:00
alexey.lysiuk
2be84dc636
- skip rendering when application is not active
...
Use vid_activeinbackground CVAR to override this behavior
2018-05-04 11:24:37 +03:00
Christoph Oelckers
e0833d5005
- prepared the weapon sprite drawer for full separation.
2018-05-03 23:49:16 +02:00
Christoph Oelckers
e309fd1f3d
- moved a bit more of the wall setup to the API independent side.
2018-05-03 22:14:25 +02:00
Christoph Oelckers
6285a309ce
- added UploadLights to the DrawInfo interface.
...
- removed GLPASS_PLAIN because it was the same as GLPASS_ALL.
2018-05-03 21:47:58 +02:00
Christoph Oelckers
96ac1fa363
- changed GLDecal to work without a pointer to the generating GLWall.
...
Although this is currently safe there is no guarantee that future refactorings will keep the current draw lists, so it's better if GLDecal used its own copy of the data.
2018-05-03 21:42:34 +02:00
Christoph Oelckers
43b491ea33
- moved the global 'no dynamic lights' variable to FLevelLocals so that it is outside renderer specific data.
2018-05-03 21:27:45 +02:00
Hisymak
583da7f6cf
OPL Synth fix: Double-voice instruments randomly don't play second voice
2018-05-03 21:10:17 +02:00
alexey.lysiuk
e87cdd3658
- fixed missing geometry with render precision set to quality
...
https://forum.zdoom.org/viewtopic.php?t=60423
2018-05-03 21:10:05 +02:00
Christoph Oelckers
14410ae526
- fixed: FDrawInfo must be kept around until DrawEndScene2D finishes.
...
Otherwise some code crashes on invalid data.
2018-05-01 19:01:01 +02:00
Christoph Oelckers
9bdb0f2e49
- renamed the flag bits for sector_t::MoreFlags, so that they are easier to distinguish from sector_t::Flags.
...
- precalculate if a sector's floor and ceiling plane overlap. This avoids rechecking this for each single call of hw_FakeFlat.
- vertices must be marked dirty every time they change after map setup. That means that ChangePlaneTexZ must do this as well, because it cannot rely on interpolation taking care of it.
- Having a 'dirty' argument for SetPlaneTexZ's ZScript version makes no sense. If the value changes from the script side the vertices must always be marked to be recalculated.
2018-05-01 11:29:29 +02:00