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
f17f8c9359
- added end line to various messages
...
so they don't screw up further output anymore
2018-05-11 18:03:57 +03: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
b35213741f
- don't force the renderer to remain active in windowed mode when in the background.
...
It's ok to have this as an option, but not as an unconditional forced feature.
2018-05-01 07:48:59 +02:00
alexey.lysiuk
2ae8d39441
Removed all superfluous #include's
...
Automatically optimized by CLion IDE with manual corrections
2018-04-24 14:30:35 +03:00
alexey.lysiuk
4ab6034a36
Cleaned up Windows backend from remains of Direct3D
...
Removed obsolete CMake settings, useless #include's, dead code
2018-04-18 17:05:25 +03:00
alexey.lysiuk
e6e2b11167
Set common name for system-specific framebuffer class
...
Implementation details are hidden as much as possible in platform-specific source files
Reduced number of included header files
2018-04-09 20:47:49 +02:00
Christoph Oelckers
e50d09ceb2
- removed the render mode settings from the launch popup.
...
They were already deactivated because with 5 render modes present this was destructive, having only 2 options available.
Since the render mode can now be changed on the fly this isn't as critical anymore as it once was.
2018-04-08 22:03:38 +02:00
Christoph Oelckers
df4f435952
- merged vid_renderer, swtruecolor and r_polyrender into one CVAR to reduce menu clutter.
...
- with renderers freely switchable, some shortcuts in the 3D floor code had to be removed, because now the hardware renderer can get FF_THISINSIDE-flagged 3D floors.
- changed handling of attenuated lights in the legacy renderer to be adjusted when being rendered instead of when being spawned. For the software renderer the light needs to retain its original values.
2018-04-07 23:30:28 +02:00
Christoph Oelckers
5fbc723842
- live switching of the renderer works.
2018-04-07 12:59:04 +02:00
Christoph Oelckers
d474b849a5
- removed the remaining calls from the FRenderer interface from the main game code.
...
This does not work with a setup where the same backend is driving both renderers.
Most of this is now routed through 'screen', and the decision between renderers has to be made inside the actual render functions.
The software renderer is still driven by a thin opaque interface to keep it mostly an isolated module.
2018-04-04 00:21:25 +02:00
Christoph Oelckers
9ba32cb994
- with the new order of things we need the software renderer to be always available.
2018-04-03 20:14:26 +02:00
Christoph Oelckers
51bf2eb9fa
- took GetMaxViewPitch out of renderer interfaces.
...
With live switching and both renderers on the same backend the old approach will no longer work.
2018-04-03 19:18:16 +02:00
Christoph Oelckers
7589dfda25
- removed test and debug code.
2018-04-03 00:53:45 +02:00
Christoph Oelckers
1fc4c9801b
- 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.
2018-04-02 12:28:20 +02:00
Christoph Oelckers
711a88bab3
- consolidated cycle_t and glcycle_t because aside from glcycle_t's ability to be deactivated when no profiling takes place they did exactly the same thing.
2018-04-01 13:24:03 +02:00
Christoph Oelckers
6d6196388e
- made SPROFS a more usable feature.
...
This was originally invented to fix the sprite offsets for the hardware renderer.
Changed it so that it doesn't override the original offsets but acts as a second set.
A new CVAR has been added to allow controlling the behavior per renderer.
2018-03-31 10:37:46 +02:00
Christoph Oelckers
6cd26dec01
- remove some dead code.
2018-03-31 00:25:15 +02:00
Christoph Oelckers
a001a5304d
- removed the old software renderer framebuffers for Windows
...
This cannot be refactored with the old code still present and done properly both renderers should share what they can.
2018-03-30 23:18:25 +02:00
Christoph Oelckers
832df6d43a
- implemented desaturation for the legacy GL renderer's 2D.
...
A lot of work that's only needed to be able to use the hardware renderer's 2D code with the software renderer.
2018-03-30 18:14:42 +02:00
Christoph Oelckers
811d96e07e
D3D 2D code refactored but not tested yet.
2018-03-29 23:21:25 +02:00
Christoph Oelckers
16480a3f4b
- it compiles again.
...
This won't work, though, because no backend for the new 2D code exists yet.
2018-03-28 16:40:09 +02:00
Christoph Oelckers
29ad081368
- removed remaining DirectDraw code and a few other things that are no longer being used.
2018-03-27 21:04:01 +02:00
Christoph Oelckers
0c3635e22c
- removed vid_hw2d CVar.
2018-03-27 17:58:25 +02:00
Christoph Oelckers
62f073ef60
- removed Accel2D variable and a little bit of locking cruft.
2018-03-27 17:13:10 +02:00
Christoph Oelckers
cff5f0e3c7
- removed DFrameBuffer's locking mechanism.
...
In its current form this is quite useless. What's really needed is to require a lock on the RenderBuffer for the 3D scene, but since this is not needed for the 2D stuff anymore it can be done far simpler.
2018-03-27 16:48:33 +02:00
Christoph Oelckers
c06ad5c59c
- separated DFrameBuffer from DCanvas.
...
This was a bad idea from the start and really only made sense with DirectDraw.
These days a FrameBuffer represents an abstract hardware canvas that shares nothing with a software canvas so having these classes linked together makes things needlessly complicated.
The software render buffer is now a canvas object owned by the FrameBuffer.
Note that this commit deactivates a few things in the software renderer, but from the looks of it none of those will be needed anymore if we set OpenGL 2 as minimum target.
2018-03-27 14:14:46 +02:00
Christoph Oelckers
bb9283a9af
- work on separating DFrameBuffer from DCanvas.
...
2D works in D3D backend, but 3D crashes because not all pointers have been rerouted yet.
2018-03-27 13:50:31 +02:00
Christoph Oelckers
1a28644d83
- cleaned out unused stuff from DCanvas.
...
- removed CocoaFrameBuffer because it is a software fallback which is no longer supported.
2018-03-27 11:25:06 +02:00
Christoph Oelckers
ba799aebbd
- moved locking logic from DCanvas to DFrameBuffer.
...
The software canvases used for rendering camera textures and save pictures in the software renderer do not need this.
2018-03-27 11:12:13 +02:00
Christoph Oelckers
dd491d6558
- removed support for paletted Windows display modes.
...
This was only relevant for DirectDraw which has been removed.
2018-03-27 10:41:38 +02:00
Christoph Oelckers
e0039179cb
- merge error fixed.
2018-03-26 22:11:13 +02:00
Christoph Oelckers
41a0e6af4a
- removed the D3D texture atlas implementation.
...
This is a necessary first step for simplifying the texture handling in order to refactor it.
# Conflicts:
# src/gl/system/gl_swframebuffer.cpp
# src/textures/textures.h
# src/win32/fb_d3d9.cpp
2018-03-26 22:05:35 +02:00
Christoph Oelckers
d9f6546c16
- removed Shader Model 1.4 support.
...
The only hardware ever to support this is ATI's R200 which has been deprecated by ATI before Vista got released, and is no longer a relevant target.
2018-03-26 22:03:33 +02:00
Christoph Oelckers
40bbe5cd8a
- removed DirectDraw backend.
2018-03-26 22:03:32 +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
4c4f8288a4
- disable XP toolset warning for 64 bit builds.
...
- fixed an error with assigning a string constant to a non-const char * variable that was pointed out by compiling with /permissive-.
2018-03-25 10:50:14 +02:00
Christoph Oelckers
da74b9df95
- serialize the temporary music volume that can be set through ACS.
2018-03-24 13:07:18 +01:00
Christoph Oelckers
7301001a3f
- made the necessary adjustments to the HW2D interfaces to handle alpha textures properly.
...
These cannot be done with the regular textures so there needs to be an option to create more than one native texture per FTexture. For completeness' sake there is also the option now to create a paletted version of a texture if the regular one is true color. This fixes a long standing problem that translations were not applied to non-paletted textures.
2018-03-23 23:04:30 +01:00
Christoph Oelckers
f2f649bf77
- put all stats related code into one file.
2018-03-12 19:33:48 +01:00
Christoph Oelckers
d2fa4d0ff9
- most stat stuff done.
2018-03-12 19:33:48 +01:00
Rachael Alexanderson
c15e868b0f
- implemented anonymous stats collector
2018-03-12 19:33:48 +01:00
Christoph Oelckers
b939836846
- renamed FileRdr back to FileReader.
2018-03-11 19:29:37 +01:00
Christoph Oelckers
833dbee167
- fixed some issues with m_swap's design.
...
The native byte order converters were defined as macros which hid some issues due to lack of type checks.
Additionally the ???Long variants taking 'long' variables were removed, because longs are not always 32 bits so this could be destructive.
As a result of this, removed several DWORDs from struct definitions in i_crash.cpp.
2018-03-11 14:35:36 +01:00
Christoph Oelckers
5fa63c396d
- sound code and most of texture code converted to FileRdr.
...
This allowed to remove a lot of bad pointer voodoo in the music loader, because the new class does not allow duplication of the reader object
2018-03-10 18:45:11 +01:00
Christoph Oelckers
918d188263
- This shouldn't have been committed.
2018-02-25 16:15:24 +01:00
Christoph Oelckers
67a6ec01e1
- added a separate section for soundfont search paths.
2018-02-25 09:32:05 +01:00
Christoph Oelckers
2d8e394529
Merge branch 'master' into reverbedit
...
# Conflicts:
# wadsrc/static/zscript/menu/optionmenuitems.txt
2018-01-20 11:44:42 +01:00
Rachael Alexanderson
000037dbf6
- implemented 'i_soundinbackground' to continue playing sounds and music while in the background.
...
- OpenGL rendering continues now even when losing focus while in windowed mode.
2017-12-24 18:01:45 -05:00
Rachael Alexanderson
938cd3cabe
- implemented win_borderless for fake fullscreen in Windows
2017-12-07 06:32:51 -05:00
alexey.lysiuk
5162e7162e
Fixed overbright screenshots with hardware gamma off
...
When render buffers are used to apply gamma/brightness/contrast screenshots should not use PNG gamma correction
2017-12-06 11:24:10 +02:00
Christoph Oelckers
4c799af293
Merge branch 'master' into reverbedit
2017-12-03 21:04:14 +01:00
Christoph Oelckers
a945418ba6
- added M_GetDocumentsPath function.
2017-12-03 21:03:44 +01:00
Christoph Oelckers
7e45535669
Merge branch 'master' into reverbedit
2017-12-03 12:46:08 +01:00
Christoph Oelckers
7cbcbe66c0
- sanitization of temporary file stuff for Timidity++.
...
* do not use the global temp directory. Instead create one in the AppData folder.
* removed lots of unneeded code from tmpfileplus.
* use C++ strings in there.
2017-12-02 17:33:43 +01:00
Christoph Oelckers
1af42b3d50
- use FileWriter for the OPL dumper.
2017-12-02 12:31:21 +01:00
Christoph Oelckers
57058ef727
- removed all remains of the old EAX editor.
2017-11-26 15:23:07 +01:00
Christoph Oelckers
1ed1b42c21
Safety commit.
2017-11-26 14:13:56 +01:00
Christoph Oelckers
78184ad6b5
- more work on reverb menu.
2017-11-26 10:16:21 +01:00
Christoph Oelckers
3ae5f8c09f
- initial work on a reverb editor based on the menu system.
...
This is to get rid of some ugly Windows code and make this platform independent.
2017-11-25 22:03:18 +01:00
Magnus Norddahl
56477c8f89
- Fix 'Requested invalid render buffer sizes' when executing the reverbedit command from fullscreen
2017-11-25 12:20:00 +01:00
Christoph Oelckers
87816f811f
- removed windows.h include from a few files which do not need it anymore.
2017-11-25 10:58:33 +01:00
Rachael Alexanderson
6d43c5cdc6
Merge remote-tracking branch 'origin/friendly_window_title'
2017-11-24 14:41:25 -05:00
Rachael Alexanderson
505da5bf4f
Merge branch 'master' of https://github.com/coelckers/gzdoom into newtimercode4
2017-11-21 05:23:00 -05:00
Rachael Alexanderson
47e9975e90
- fixed a couple of fixes from the previous commit
2017-11-21 05:20:02 -05:00
Rachael Alexanderson
2bc86b52c8
- fixed a few of the more obvious logic errors
2017-11-21 04:06:24 -05:00
Christoph Oelckers
d9808e6d68
- there were still some old definitions left...
2017-11-12 10:02:29 +01:00
Christoph Oelckers
6bd76d6b5a
- fixed compilation in debug mode.
...
- moved timer definitions into their own header/source files. d_main is not the right place for this.
- removed some leftover cruft from the old timer code.
2017-11-12 09:06:40 +01:00
Magnus Norddahl
307d8931d8
- Switch to C++11 steady clock
...
- Move the C++11 implementation to d_main
- Remove the platform specific timer implementations
2017-11-12 03:12:22 +01:00
Magnus Norddahl
090943eaa4
- Fix freeze interpolation bug
2017-11-11 17:28:38 +01:00
Magnus Norddahl
28401cd674
- Rewrite win32 game tick timer backend to use performance counters and only calculate values once per frame
2017-11-11 17:28:20 +01:00
Rachael Alexanderson
d16ad3dcb5
- added I_FriendlyWindowTitle cvar, which takes the current game/mod name and uses it as a default window title.
2017-10-31 19:47:56 -04:00
AraHaan
e15a84f062
Changed Fatal Error Dialog title.
...
This is to match all the parts that says GZDoom.
2017-09-22 19:13:08 +02:00
Rachael Alexanderson
3531f3e285
- Use a FreeDoom sprite for deadguy.bmp - much better than a red circle with an exclamation point on it.
2017-09-16 04:16:14 -04:00
Rachael Alexanderson
765646ee1c
- fixed: Changed IWAD_FILENUM to a dynamic lookup.
2017-09-13 04:19:03 -04:00
Rachael Alexanderson
7cc073b7d2
- Added an .ico file compiled by Kinsie from an image set on the forum.
2017-09-07 17:18:26 -04:00
Rachael Alexanderson
6f98c5e8fb
- replace potentially infringing static EXE assets (including icons) with ones from GZDoom-GPL
2017-09-07 04:13:30 -04:00
Mike Swanson
1bc8fe7312
Add GOG path for Doom 3: BFG Edition
2017-08-26 09:01:02 +02:00
Christoph Oelckers
9878477612
Revert "- fix linux compile"
...
This reverts commit b8c0e78c91
et al.
Instead, use the already provided access function I_FindName to get the file name from findstate_t.
Also made the contents of findstate_t private so that use of the access functions is required to retrieve the information and direct access triggers a compile error.
2017-08-20 08:01:41 +02:00
Rachael Alexanderson
b7d26b3fa1
- fixed Linux IWAD search thanks to a suggestion by Chris on the forum. Moved the search macros to i_system.h for both platforms. Neither are compatible with the other. This can be improved upon later, but for now, at least the major compile issue is fixed.
2017-08-19 22:10:45 -04:00
Rachael Alexanderson
8a7090b4b7
Revert "- In software rendering, lights now check if they are too far above or below a certain plane before rendering. An example of this is in unloved.pk3 where in map02, some lights are above the ceiling."
...
- fixed accidental QZDoom rename
This reverts commit eb425f206a
.
2017-08-18 18:19:39 -04:00
Rachael Alexanderson
eb425f206a
- In software rendering, lights now check if they are too far above or below a certain plane before rendering. An example of this is in unloved.pk3 where in map02, some lights are above the ceiling.
2017-08-18 18:14:43 -04:00
Magnus Norddahl
1a4cf16168
- Fix swtruecolor cvar messing up the chosen video mode
2017-07-23 20:54:03 +02:00
Magnus Norddahl
c3702ae9e7
Add vid_scalemode support to GL framebuffer
2017-07-23 00:33:56 +02:00
Christoph Oelckers
03ed0656e1
- fixed: The frame timer for interpolating the renderer should always take its time from the actual beginning of the frame instead of checking the system timer in real time when rendering starts.
...
This fixes two issues:
* timer related texture animations are not being recreated multiple times if a scene renders multiple viewpoints (e.g. camera textures or portals.)
* interpolation is smoother when maps have a high think time of multiple milliseconds. A good map to see the difference would be ZDCMP2 which has a think time of 4-5 milliseconds. With the timer taken in real time after the thinkers have run and VSync on this resulted in alternating time slices of 11 and 21 ms between frame interpolations instead of an even 16 as should be done for smooth 60 fps because roughly every second frame was offset by those 5 ms.
2017-07-20 14:20:50 +02:00
Magnus Norddahl
c8e713b067
- Remember maximized window state
2017-07-09 15:12:31 +02:00
Christoph Oelckers
c74356a1c0
- made OpenGL 3.3 a requirement for running the modern render path. Also force '-glversion 3' to use the modern render path, even though actual OpenGL 3.0 won't support it.
...
This will exclude Intel HD3000 and many obsolete drivers for NVidia and ATI which should have been updated long ago.
2017-06-28 17:57:04 +02:00
Rachael Alexanderson
78061f1cf7
- fixed: D3DFB::DoClear did not call Super::DoClear when vid_hw2d was false.
2017-06-07 03:55:02 -04:00
Christoph Oelckers
446d1eb9c8
- we no longer support Windows 9x or NT 4 so its special code may just be removed entirely.
2017-06-07 09:26:06 +02:00
alexey.lysiuk
3b61be3145
Removed dependency on dxguid library
...
It's impossible to use VS2017 with XP compatible toolset otherwise
2017-05-29 14:46:56 +03:00
Rachael Alexanderson
b7295775b9
- Print out warnings when Direct3D initialization fails.
2017-05-29 01:01:08 -04:00
Rachael Alexanderson
4545bb2fa1
- rename vid_used3d on windows to vid_glswfb to match Linux. Additionally, the values were reversed to match the Linux variant of this configuration. This CVar now operates exactly the same way it does on Linux, except it defaults to being off and still allows the D3D framebuffer on Windows when it's deactivated.
2017-05-27 04:52:43 -04:00
Magnus Norddahl
e27e89b57d
- Make sure a hung worker thread always crashes the application
2017-05-21 12:03:12 +02:00
Christoph Oelckers
9fc309d5b5
- stop the music when processing a fatal error.
2017-05-19 12:20:33 +02:00
alexey.lysiuk
8fbb5372b2
Fixed 32-bit Windows crash reporter
...
Restored old exception handling for 32-bit Windows executable
Tested on 32-bit Windows XP (previously exited without notification), 64-bit Windows 7 and 10 (previously deadlocked in system DLLs)
2017-05-10 11:34:48 +03:00
Christoph Oelckers
567c21cdeb
- fixed recursion in Dim functions. When the main worker function was renamed to DoDim the Super calls were not fixed for it.
2017-05-06 10:44:29 +02:00
Rachael Alexanderson
aae9b33198
- fixed: Swapping swtruecolor no longer crashes in OpenGL mode after selecting Software in the menu
2017-04-30 07:39:00 -04:00
Christoph Oelckers
ace0568d09
- now that SSE2 is a required feature for compiling on x86, DoBlending_MMX has no use anymore and could be removed, as could the checks for bRDTSC, which is an older hardware feature than SSE2. There's also little point printing pre-SSE2 hardware features because they can be assumed to be present on anything the code can run on.
2017-04-23 11:54:08 +02:00
alexey.lysiuk
b6774e723b
Fixed non-functional XInput support when built with modern Windows SDKs
...
https://mantis.zdoom.org/view.php?id=568
2017-04-18 10:42:05 +03:00
Christoph Oelckers
57d703236b
- changed Doom source license to GPL in all subdirectories and fixed missing licenses in a few other files.
2017-04-17 12:27:19 +02:00