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
ff19627251
- fixed legacy version of color overlay to use the correct blend settings.
2018-03-30 21:34:04 +02:00
Christoph Oelckers
00c66f42d3
- made DTA_SpecialColormap work, both for GL3+ and GL2 render paths.
...
This will only be used for HUD sprites. At the moment it will ignore sprite translations, though, when running in OpenGL 2 legacy mode.
2018-03-30 21:14:49 +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
a40e085a46
- 2D drawer implementation complete for hardware renderer.
...
This also replaces DTA_ColormapStyle with proper implementations of its components. As implemented it was a very awkward mixture of various effects that already existed in a separate form. As a result of its implementation it required additional but completely redundant shader support which could be removed now. As a side effect of this change a new DTA_Desaturate option was added.
2018-03-29 16:21:21 +02:00
Christoph Oelckers
077df87704
- 2D code works in GL legacy mode.
...
Not tested yet with shaders.
2018-03-29 11:58:28 +02:00
Christoph Oelckers
fa6ba84094
- fixed untextured vertex order and removed some test code.
2018-03-29 00:38:31 +02:00
Christoph Oelckers
a253b15334
- more fixes.
2018-03-28 23:57:50 +02:00
Christoph Oelckers
3ca3193379
- fixed a few things, but still not working.
2018-03-28 23:42:06 +02:00
Christoph Oelckers
b194f2c466
- game starts, but no 2D visible yet.
2018-03-28 22:04:28 +02:00
Christoph Oelckers
70b6754299
- implemented the 2D drawer for the hardware renderer. Not tested yet.
2018-03-28 21:38:00 +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
33289ade49
- renamed the 2D drawer in the GL renderer so that the same name can be used for the device-independent replacement.
2018-03-27 21:44:58 +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
2ed744963c
- Changed frame buffer locking mechanism so that the only place where a lock is needed is when the software renderer wants to access the render buffer, which is precisely for the duration of the RenderView function.
...
No more locking insanity! :)
There are no locking counters or other saveguards here that would complicate the implementation because there's precisely two places where this buffer must be locked - the RenderView functions of the regular and poly SW renderer which cannot be called recursively.
2018-03-27 20:02:44 +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
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
a350c43c87
. removed the texture atlases from the OpenGLSWFrameBuffer.
...
# Conflicts:
# src/gl/system/gl_swframebuffer.cpp
2018-03-26 22:05:45 +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
d166ab95a9
Revert "- fixed: 3D floor that extend into the real sector's floor were not clipped properly."
...
This reverts commit a33ad3c99e
.
Turns out that this breaks legitimate maps. So I'd rather let that one broken map glitch than the good ones.
2018-03-26 19:44:41 +02:00
Christoph Oelckers
755cbd341b
- fixed: A sprite having a picnum was not animating its image in the hardware renderer.
2018-03-25 22:01:18 +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
a33ad3c99e
- fixed: 3D floor that extend into the real sector's floor were not clipped properly.
...
The only check being done on this was done after processing for the renderer which simply is too late.
2018-03-24 22:42:10 +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
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
d586d774cf
- adjusted GL renderer to the new rules for alpha textures. This means that the translation fallback is only needed for the legacy renderer now. Modern GL can use the regular texture and will apply a grayscale mapping instead of merely using the red channel.
2018-03-22 20:42:17 +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
Christoph Oelckers
d2fa4d0ff9
- most stat stuff done.
2018-03-12 19:33:48 +01:00
Christoph Oelckers
b327aa737a
Merge remote-tracking branch 'remotes/origin/materials'
2018-03-03 08:54:04 +01:00
Christoph Oelckers
bc25ad4136
- fixed a small logic error introduced by fixing the translucent particle sorting.
...
Due to an unintended swap of two values a few equal comparisons led to incorrect sorting.
2018-03-01 17:10:21 +01:00
Christoph Oelckers
685e5c1e95
- fixed: Camera textures must always be drawn with texture mode opaque, because the contents of their alpha channels are undefined.
2018-03-01 13:52:23 +01:00
Christoph Oelckers
b39cb4f095
- fixed translucemt sorting for particles.
...
At least on any semi-modern hardware. On old legacy hardware which lacks some important features this will still glitch.
2018-03-01 13:01:26 +01:00
Magnus Norddahl
48e534bf19
- Add per-pixel model light to the OpenGL 3.3 render path
2018-03-01 01:27:12 +01:00
Magnus Norddahl
6652df40c1
Merge remote-tracking branch 'gzdoom/master' into materials
2018-02-28 22:12:12 +01:00
Christoph Oelckers
e70250425a
- fixed: For two-sided midtextures the light lists were always taken from the sector referenced by the rendered sidedef, not the sector in which the line gets renderered.
...
For polyobjects these two are not identical.
2018-02-28 13:15:04 +01:00
Rachael Alexanderson
07f168a58b
- additional check for tween-tic particle rendering, prevents jitter with timefreeze powerup
2018-02-24 16:04:20 -05: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
4e7ca68bd6
Merge remote-tracking branch 'gzdoom/master' into materials
2018-02-20 00:22:06 +01:00
Magnus Norddahl
07fa310f23
- move material light modes to their own subshader lumps
2018-02-20 00:13:05 +01:00
Christoph Oelckers
6a02eaa595
- second part of texture fix.
2018-02-15 18:40:23 +01:00
Christoph Oelckers
ef55386d9f
- let the texture manager handle the special OpenGL textures so that they get deleted and recreated when needed.
2018-02-15 17:56:04 +01:00
alexey.lysiuk
61979f63c1
Removed last remnants of PowerPC Mac support
2018-02-11 16:35:34 +02:00
Magnus Norddahl
e2cab652d0
- Improve the "#line 1" directive insertion so that errors in all the shaders use line numbers relative to the lump they are referring to
2018-02-10 14:46:43 +01:00
Magnus Norddahl
5528d4157b
- Make uniform removal a little bit more robust by only searching for known legacy uniforms
2018-02-10 14:06:17 +01:00
Magnus Norddahl
f01ef3d7a7
- Remove uniforms from user shader code
2018-02-10 12:52:59 +01:00
Magnus Norddahl
94fbcacf22
Merge branch 'gzdoom' into materials
2018-02-10 00:08:17 +01:00
Magnus Norddahl
7cbe8669b6
- fix decals not getting lit by lights not having a target while still having the LF_DONTLIGHTSELF flag
...
- fix decal light not being calculated from the center of the decal
2018-02-10 00:06:47 +01:00
Magnus Norddahl
3207d8aef7
- generate uniform declarations from c++
2018-02-09 23:29:31 +01:00
alexey.lysiuk
ed23008069
Fixed crash in stereoscopic modes caused by camera without player
...
https://forum.zdoom.org/viewtopic.php?t=55039&start=381#p1039251
2018-02-07 11:37:02 +02:00
Christoph Oelckers
64921ea968
- use a more consistent setting for rendering fuzzy sprites with enhanced nightvision on.
2018-01-28 20:46:16 +01:00
alexey.lysiuk
6003625721
Silenced quad stereo message during startup
2018-01-28 11:41:00 +02:00
alexey.lysiuk
577c6b033e
Changed quad stereo mode restart notification
...
Restart requirement for quad stereo mode should be output to console because CVAR can be toggled directly from it
Long option names break menu layout on some aspect ratios like 16:10
2018-01-26 10:10:51 +02:00
Magnus Norddahl
30af6d38b3
- fix automap render bug
2018-01-25 20:22:51 +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
0855418475
Merge branch 'gzdoom' into materials
...
# Conflicts:
# src/gl/shaders/gl_shader.cpp
# src/gl/shaders/gl_shader.h
2018-01-25 19:21:19 +01:00
Magnus Norddahl
a46bbc81a0
Merge branch 'bloom_psprite_fix' into gzdoom
2018-01-25 19:01:46 +01:00
Magnus Norddahl
4c0dce875f
Merge branch 'fuzz_software' into gzdoom
2018-01-25 19:00:14 +01:00
Magnus Norddahl
81c6808d2a
- Add specular and normal map handling to main.fp
2018-01-23 23:10:28 +01:00
Magnus Norddahl
c7ec489846
Merge remote-tracking branch 'origin/master' into materials
2018-01-23 20:16:32 +01:00
Christoph Oelckers
76d594f952
- reverted the hard offset for transferred skies.
...
This is not the correct way to apply it.
2018-01-21 19:25:21 +01:00
Christoph Oelckers
6438416adb
- fixed: The culling mode for translucent models must be inverted when rendering a mirror.
2018-01-21 16:29:40 +01:00
Christoph Oelckers
e1d6f6f3b3
- fixed: precise rendering did not work anymore due to a missing reference operator in the setup function for the needed data.
2018-01-21 16:17:49 +01:00
Magnus Norddahl
0f69778e23
- Add new material shader entries for specular and PBR light modes
2018-01-21 01:53:44 +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
Magnus Norddahl
a23e5f49f6
- Add "fuzz software" to GL that renders fuzz like the scaled fuzz mode in the software renderer
2018-01-07 02:29:55 +01:00
Magnus Norddahl
56db2b02cc
- Fix psprite not appearing when invulnerability effect is active with bloom turned on
2018-01-06 17:21:02 +01:00
Magnus Norddahl
f88d9a02df
Remove bloom effect on psprites
2018-01-06 05:11:12 +01:00
Magnus Norddahl
79440d7014
- Fix sprite spot light calculation
2018-01-04 19:42:52 +01:00
Magnus Norddahl
bae3620540
- Added spot light support to gl_SetDynSpriteLight
2018-01-04 19:27:03 +01:00
Magnus Norddahl
f398286162
- Fix wrong spot direction
2018-01-04 19:09:12 +01:00
Magnus Norddahl
5f36b86013
- Add dynamic spot lights
2018-01-04 17:58:11 +01:00
Rachael Alexanderson
6aa724a9b4
- add 'gl_riskymodernpath' for computers that worked before the GL >= 3.3 modern path enforcement, since some did, but they seemed to be the exception rather than the rule.
2018-01-03 21:46:04 -05:00
alexey.lysiuk
2c4eae7487
Applied vertical offset to transferred sky in OpenGL renderer
...
https://forum.zdoom.org/viewtopic.php?t=58934
2017-12-31 21:29:27 +02:00
alexey.lysiuk
33213f5d5d
Fixed rendering of wrapped midtex with sky ceiling
...
https://forum.zdoom.org/viewtopic.php?t=58311
2017-12-29 14:37:09 +02:00
Rachael Alexanderson
a441cea350
- interpolate particles
2017-12-28 11:36:36 -05:00
alexey.lysiuk
8ca3427850
Fixed applying of Doom 64 lighting to horizon portals
...
https://forum.zdoom.org/viewtopic.php?t=58878
2017-12-28 18:32:26 +02:00
Christopher Bruns
a3399c1af2
Fix: Bind the default framebuffer before testing whether hardware stereo 3D is supported. This allows Nvidia 3D vision glasses to function correctly when gl_light_shadowmap is ON.
...
Doc: Add "requires restart" to "enable quad stereo" option menu label, to help folks trying to setup 3D.
2017-12-27 17:50:53 -05:00
alexey.lysiuk
0afc09678f
Fixed bright sprites in sectors with Doom 64 lighting
...
https://forum.zdoom.org/viewtopic.php?t=58703
2017-12-16 17:37:03 +02:00
Rachael Alexanderson
1559d74c2c
- repaired the video scaling code
2017-12-10 04:22:28 -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
Rachael Alexanderson
505c99b0a8
- fixed: doublize more internal structures, even if they still get converted to float later
2017-12-04 17:39:57 -05:00
Rachael Alexanderson
0fa74220c9
- fixed: doublize sky float, in order to make it more smooth
2017-12-03 12:39:24 -05:00
Christoph Oelckers
ebf5c5763e
- removed the unused bitmap loading and saving features from hqnx_asm/hqnx_asm_Image.
2017-12-02 12:15:26 +01:00
alexey.lysiuk
0667f2ec55
Fixed string format issues reported by GCC/Clang
...
d_net.cpp:2874:25: warning: format specifies type 'int' but the argument has type 'unsigned long long' [-Wformat]
gl/utility/gl_clock.cpp:240:38: warning: format specifies type 'int' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
v_video.cpp:883:71: warning: format specifies type 'unsigned int' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
v_video.cpp:883:80: warning: format specifies type 'unsigned int' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
2017-11-26 09:59:28 +02:00
Christoph Oelckers
836970f012
- moved the matrix code out of 'gl' because the model code also needs it.
2017-11-25 13:51:09 +01:00
Magnus Norddahl
7bb92812b8
- Move models into r_data
2017-11-25 13:19:00 +01:00
Magnus Norddahl
679f42db78
- Remove model GL dependencies except for the matrix classes
2017-11-25 13:00:44 +01:00
Magnus Norddahl
b25f191e85
- Move shared model code out of the GL renderer
2017-11-25 12:11:57 +01:00
Rachael Alexanderson
5e29b1c89c
Merge branch 'newtimercode4'
2017-11-24 14:39:58 -05:00
Christoph Oelckers
ed871c3bf8
Merge remote-tracking branch 'remotes/origin/texman_models'
2017-11-24 19:14:08 +01:00
Rachael Alexanderson
297f00aa4b
- fix model rotation some more
...
- a couple compiler warning fixes
2017-11-23 22:37:07 -05:00
Rachael Alexanderson
1f00810f40
- re-doubled the model rotation code
2017-11-23 21:27:16 -05:00
Rachael Alexanderson
16e6fbf5bf
- commit fix - todo: need to re-double/floatify the model timers again
2017-11-23 21:12:50 -05: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
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
alexey.lysiuk
cf9a364f71
textures for models
2017-11-19 18:02:14 +02:00
Christoph Oelckers
f0dc619b5b
- fixed bad use of FScanner::GetNumber and GetFloat in code inherited from ZDoomGL.
...
This could lead to bad error messages if some malformed definitions were used.
2017-11-19 15:30:45 +01:00
Rachael Alexanderson
de19efa79d
- trying again: fix shader targets being case sensitive
2017-11-19 04:48:30 -05:00
Rachael Alexanderson
351de94311
- fixed: Accidentally committed in-progress work... again
...
Partial Revert "- fixed: Made shader targets not case sensitive"
This reverts commit 2c24d2e047
.
2017-11-19 04:46:52 -05:00
Rachael Alexanderson
2c24d2e047
- fixed: Made shader targets not case sensitive
2017-11-19 04:41:07 -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
Rachael Alexanderson
909daadd75
- update more millisecond-storing data structures to u/int64_t to fix possible rollover bugs
2017-11-15 20:33:08 -05:00
Christoph Oelckers
16fa0cba21
- fixed comparison.
...
The timer reset must also occur when the values are equal, meaning they got set during the same millisecond.
2017-11-15 18:02:41 +01:00
Rachael Alexanderson
ab32cb4c88
- track level start time for the shader system, reset the shaders.
2017-11-15 11:06:21 -05:00
Rachael Alexanderson
d2bc24737b
- put in timer resets for the shader system, so that they can continue being passed as floats
2017-11-14 22:46:28 -05:00
Rachael Alexanderson
763222b571
- fixed: high uptime was causing overloads in uint32_t and float structures (float losing loss of precision) - this caused any computer online for more than a few days to experience jankiness with internal animations such as rotations and shader timers. Unfortunately, this sounds the death knell for 32-bit platforms, since uint64_t is now required in time-critical structures, which will hurt performance tremendeously, but 64-bit systems will be unaffected.
2017-11-14 16:15:25 -05: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
2c65f08011
- more timer cleanup
...
* store the frame time in the current screen buffer from where all render code can access it.
* replace some uses of I_MSTime with I_FPSTime, because they should not use a per-frame timer. The only one left is the wipe code but even this doesn't look like it needs either a per-frame timer or a timer counting from the start of the playsim.
2017-11-13 00:28:43 +01:00
Christoph Oelckers
e94109f1c3
- Inside the renderer, use only the time value being passed to RenderView.
...
The voxel rotation code of the software renderer and R_SetupFrame still called I_FPSTime directly.
2017-11-12 23:53:46 +01:00
Christoph Oelckers
f54475b1f1
- I_FPSTime may not return the time at frame start.
...
This is used for real-time profiling and as such needs to return the current time or most of its uses will break.
2017-11-12 23:39:48 +01:00
Christoph Oelckers
93e9c383fa
- get the timer used for animation only once at the very beginning of the frame and pass it on to the renderer to avoid any dependencies on the timer's implementation.
2017-11-12 18:51:11 +01:00
Christoph Oelckers
e50b012c87
- fixed: Model rotation should use the time of the current frame's start, not the time of the time of processing the particular actor.
...
Reading the time directly would result in different values for different viewpoints in a scene or for different objects in the same scene which is not how this is supposed to work.
2017-11-12 12:04:11 +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
d4ebe51e83
- Place the HUD model correctly in the world so that shader light calculations work
2017-11-05 15:35:03 +01:00
Magnus Norddahl
23e5d81746
- Implement VSMatrix::inverseMatrix
2017-11-05 15:32:42 +01:00
Magnus Norddahl
bd08568b90
- Fix wrong math for model/light distance check
2017-11-05 13:28:56 +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
alexey.lysiuk
724d711d1f
Fixed a few cases when IWAD was checked by hardcoded index
2017-10-21 11:10:36 +03:00
Rachael Alexanderson
0ccd388d91
- reverted the texture flip from the previous commit
2017-10-12 12:44:00 -04:00
Rachael Alexanderson
1b6f77a473
- fixed: inverted vertically texture uniforms for custom post-process shaders, and also changed their input format to BGRA to match the standard.
2017-10-12 11:54:56 -04:00
Rachael Alexanderson
69abf095c9
- added vid_cropaspect. This cvar turns vid_aspect into a letterboxing function that will crop the unused sides of the screen away, instead of stretching it. Requires one of the non-legacy OpenGL framebuffers to work.
2017-10-07 20:18:37 -04:00
Rachael Alexanderson
765646ee1c
- fixed: Changed IWAD_FILENUM to a dynamic lookup.
2017-09-13 04:19:03 -04:00
Rachael Alexanderson
8454e09694
- fixed: I was using the wrong check to determine which renderer was in use. Ooops. It now checks for the actual (active) renderer rather than the state of vid_glswfb
2017-09-12 14:32:29 -04:00
Rachael Alexanderson
1e4d7534c4
- remove gl_legacy_mode check in the glswfb
2017-09-12 08:57:27 -04:00
Rachael Alexanderson
79fc219afd
- allow OpenGL 3.0 MESA drivers to use vid_glswfb
2017-09-12 08:18:22 -04:00
nashmuhandes
d80f9634e3
Change default shadowmap quality to 512 at dpJudas's advice ( https://forum.zdoom.org/viewtopic.php?p=1016143#p1016143 )
2017-09-10 12:46:55 -04:00
nashmuhandes
3ff1597640
Change minimum shadowmap quality to 128.
2017-09-10 12:46:55 -04:00
nashmuhandes
f96f71044f
Change camera texture FOV to doubles.
2017-09-02 07:44:38 +02:00
Christoph Oelckers
e424ef63f2
- fixed: Sprites drawn in the opaque pass still need to set their texture mode so that they can be drawn with STYLE_Stencil.
2017-08-27 09:58:25 +02:00
Magnus Norddahl
b9dc06a4c8
- Fix crash in legacy and deferred light paths
2017-08-21 18:42:07 +02:00
Magnus Norddahl
c3562fead2
Merge branch 'dynlightmodels'
2017-08-15 00:27:26 +02:00
alexey.lysiuk
eb52088487
Fixed compilation warnings reported by Clang
...
src/gl/scene/gl_sprite.cpp:685:34: warning: '&&' within '||' [-Wlogical-op-parentheses]
src/polyrenderer/scene/poly_sprite.cpp:297:34: warning: '&&' within '||' [-Wlogical-op-parentheses]
src/swrenderer/scene/r_opaque_pass.cpp:975:35: warning: '&&' within '||' [-Wlogical-op-parentheses]
src/sound/mididevices/music_timiditypp_mididevice.cpp:548:30: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
2017-08-13 16:42:08 +03:00
raa-eruanna
507122b778
- put in actorinlines include as suggested by dpjudas here, to fix compile: https://forum.zdoom.org/viewtopic.php?f=2&t=57484
2017-08-04 09:13:20 -04:00
Magnus Norddahl
801fbddd47
- Fix gcc compile error
...
- Fix weapon null pointer crash
2017-08-02 01:41:48 +02:00
Magnus Norddahl
aaa00cbcb9
- Include all lights touching a model actor's render radius
2017-08-01 00:43:58 +02:00
Magnus Norddahl
04be9fe6f2
- Remove test code committed by accident
2017-07-31 20:09:45 +02:00
Rachael Alexanderson
c07a4461a0
- fixed: GetCaps() did not account for r_drawvoxels cvar
2017-07-30 10:45:05 -04:00
Magnus Norddahl
d5733f515c
- Support binding textures for custom PP shaders
2017-07-30 13:59:25 +02:00
Rachael Alexanderson
b6c15b997a
- added 'r_debug_disable_vis_filter' cvar for debug purposes, to show all objects regardless of their actor filter fields.
2017-07-29 17:03:43 -04:00
Rachael Alexanderson
91ff447a90
- fixed compile from last commit
...
- refactored the zscript hookup a bit, made it actually work
2017-07-29 17:03:43 -04:00
Rachael Alexanderson
712d21e26a
- implement per-renderer sprite hiding based on the actor's render feature flags
...
- hook the thing up to zscript (does not currently compile)
2017-07-29 17:03:43 -04:00
Rachael Alexanderson
8bb5687159
- Implemented GetCaps() for the software renderer
...
- fixed: Forgot to describe Brightmap capability in the GL Renderer
2017-07-29 17:03:43 -04:00
Rachael Alexanderson
9a9fe7c133
- implemented GetCaps() for OpenGL
...
- renamed RFF_FRAGMENTSHADER to RFF_MATSHADER
- D_Display now calls Renderer->GetCaps() and stores it in a global variable for later use.
2017-07-29 17:03:43 -04:00
Magnus Norddahl
7d21fe6d75
- Fix mouse position being wrong when vid_scalemode is active
2017-07-29 19:26:53 +02:00
Rachael Alexanderson
030450b6a9
- fixed: include missing header
2017-07-27 03:08:42 -04:00
Rachael Alexanderson
16e38816ba
- oops, forgot one thing in the last commit...
2017-07-27 03:07:19 -04:00
Rachael Alexanderson
30087f7cd7
- cleaned up the video scale mode code a bit, in order to increase future flexibility.
2017-07-27 03:05:01 -04:00
Magnus Norddahl
cbda6e9427
- Improve dynamic lights for the HUD model
2017-07-26 09:18:05 +02:00
Magnus Norddahl
0c0f0789c2
- Improved dynamic lights on models
2017-07-25 23:00:09 +02:00
Magnus Norddahl
d2e0933a81
- Fix packed normal order bug
2017-07-25 20:20:13 +02:00
Magnus Norddahl
4e14ed4e9e
- Hook up model normals
2017-07-25 20:20:12 +02:00
David Carlier
64e96c5f46
OpenBSD support
2017-07-25 07:56:19 -04:00
Magnus Norddahl
e06f87cf10
- Added 0.75x scale mode
2017-07-24 08:35:27 +02:00
Magnus Norddahl
18f0f6be4b
- Pixel stretch for 320x200 and 640x400 in glswfb
2017-07-23 17:26:55 +02:00
Rachael Alexanderson
2f37c4b272
- added vid_scalemode == 4 to super-sample the screen
2017-07-23 11:24:04 -04:00
Magnus Norddahl
449c4cb711
- Pixel stretch 320x200 and 640x400 scale modes in the GL renderer
2017-07-23 17:18:25 +02:00
Rachael Alexanderson
b30b93f40f
- made postprocess shader parsing a little more strict, will error out more frequently with common mistakes.
2017-07-23 06:11:04 -04:00
Magnus Norddahl
370e53befe
- Replace vid_max_width and vid_max_height with vid_scalemode for the GL software framebuffer backend
...
- Fix a crash if the window was resized before creating a game
- Fix main menu scaling being wrong if the video mode didn't match the unscaled screen size
2017-07-23 04:23:13 +02:00
Magnus Norddahl
c3702ae9e7
Add vid_scalemode support to GL framebuffer
2017-07-23 00:33:56 +02:00
Rachael Alexanderson
d020ec68d2
Merge branch 'master' into qzdoom-merge
2017-07-20 06:43:03 -04:00
Rachael Alexanderson
bc38f7f776
- changed gl_ssao_portals default to 1
2017-07-20 06:41:34 -04:00
Rachael Alexanderson
77617a2757
Merge branch 'master' into qzdoom-merge
2017-07-19 17:32:41 -04:00
alexey.lysiuk
bbb8374b06
Fixed applying of color to untranslated fonts in hardware renderer
...
https://forum.zdoom.org/viewtopic.php?t=57268
2017-07-19 15:00:55 +03:00
Rachael Alexanderson
a383dacbe6
Merge https://github.com/coelckers/gzdoom
2017-07-16 01:38:25 -04:00
alexey.lysiuk
490e873602
Moved parallel_for() function template to own header file
2017-07-15 12:16:06 +03:00
Rachael Alexanderson
a3e782a164
Merge https://github.com/coelckers/gzdoom
2017-07-15 03:48:13 -04: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
Rachael Alexanderson
c1e3f10802
Merge https://github.com/coelckers/gzdoom
2017-07-15 00:24:25 -04: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
Rachael Alexanderson
7728875a7f
- Added 'enabled' property for PP shaders, to automatically enable them without ZScript
2017-07-13 05:57:12 -04:00
Rachael Alexanderson
d2c8a5c33d
Revert "Merge commit 'refs/pull/338/head' of https://github.com/coelckers/gzdoom "
...
This reverts commit 65bb8a5185
, reversing
changes made to 619281de64
.
2017-07-10 11:29:58 -04:00
Rachael Alexanderson
26355ece82
Revert "Merge commit 'refs/pull/338/head' of https://github.com/coelckers/gzdoom "
...
This reverts commit 035c036eb2
, reversing
changes made to 61660bf147
.
2017-07-10 11:29:30 -04:00
Rachael Alexanderson
e1b4bb11ba
Merge https://github.com/coelckers/gzdoom
2017-07-09 20:09:12 -04:00
Magnus Norddahl
ddd1b629c3
- Calculate globvis/r_visibility in r_utility and use it in GL and poly renderers
2017-07-09 19:01:34 +02:00
Magnus Norddahl
00893763ed
Merge branch 'custom_postprocess' into qzdoom
2017-07-08 14:44:30 +02:00
Magnus Norddahl
a38de996e7
- Move uniform declarations to the GLDEFS lump to make it Vulkan safe (a vulkan implementation can then declare them in an uniform block)
...
- Change SetUniform functions to be clearscope as they can be safely called from both play and ui
- Add PlayerInfo argument to SetUniform functions to force the modder to take network play into account
- Add enabled flag on custom postprocess shaders
- Removed custom texture support until a more clean implementation is written
2017-07-08 14:44:07 +02:00
Magnus Norddahl
a4b96f7673
- Fix linker error
2017-07-06 18:02:27 +02:00
Magnus Norddahl
69a3d10cb6
Merge branch 'custom_postprocess' into qzdoom
...
# Conflicts:
# src/gl/renderer/gl_postprocess.cpp
2017-07-06 05:41:16 +02:00
Magnus Norddahl
8a0e801cb5
- Move custom postprocess shader to its own file
2017-07-06 05:36:01 +02:00
Rachael Alexanderson
1cfaae78d9
- Add new "scene" target for custom postprocess shaders
...
- Add "gl_custompost" cvar to turn off custom postprocess shaders completely
- Made "scene" affect the screen before 2D drawing, made "screen" affect the entire screen after 2D drawing
2017-07-06 04:45:51 +02:00
Rachael Alexanderson
2bfd7859e4
Merge remote-tracking branch 'origin/custom_postprocess'
2017-07-03 17:17:17 -04:00
Magnus Norddahl
e161bba146
- Specify shader uniforms from ZScript
2017-07-03 22:30:49 +02:00
Rachael Alexanderson
5c87cdd786
- Add new "scene" target for custom postprocess shaders
...
- Add "gl_custompost" cvar to turn off custom postprocess shaders completely
- Made "scene" affect the screen before 2D drawing, made "screen" affect the entire screen after 2D drawing
2017-07-02 21:04:22 -04:00
Rachael Alexanderson
edb45cd70d
Merge remote-tracking branch 'origin/custom_postprocess'
2017-07-02 19:56:57 -04:00
Magnus Norddahl
1b5f3da9c5
- Fix lump lookup
2017-07-03 01:50:51 +02:00
Magnus Norddahl
befe081683
- Upload custom texture
2017-07-03 01:29:03 +02:00
Magnus Norddahl
ee6d7cf17e
- Add initial postprocess shader support to GLDEFS file
2017-07-03 01:26:02 +02:00
Rachael Alexanderson
0d8b7c55ef
- added a grayscale formula selector
2017-07-02 16:45:06 -04:00
Rachael Alexanderson
bd02893ce7
- expanded hard limits for saturation to -15.0/15.0
...
- added menu option for saturation
- tried to get the new saturation shader to consume less GPU power by turning it off when it is 1.0
2017-07-02 16:45:06 -04:00
Rachael Alexanderson
63da6e70c0
- added a vid_saturation control - works in postprocessing, only.
2017-07-02 16:45:06 -04:00
Rachael Alexanderson
17aceac912
Merge https://github.com/coelckers/gzdoom
2017-06-29 03:50:22 -04: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
c15880a2fc
Merge https://github.com/coelckers/gzdoom
2017-06-27 17:38:26 -04:00
Christopher Bruns
e9f03102f4
Update fixed color map for each eye, so light goggles would work in both eyes in stereo 3d modes.
2017-06-27 17:55:11 +02:00
Rachael Alexanderson
cf400ba2db
Merge https://github.com/coelckers/gzdoom
2017-06-25 23:44:33 -04:00
Magnus Norddahl
b6e035e796
- Implemented radial fog support in software light mode
2017-06-25 15:02:34 +02:00
Rachael Alexanderson
9001009fcf
Merge https://github.com/coelckers/gzdoom
2017-06-22 01:42:33 -04:00
Rachael Alexanderson
f49794d6c6
- fixed: Due to recent changes, textures now use 'bgra' format in OpenGL. The palette tonemap shader had not yet been updated to reflect this.
2017-06-21 19:00:51 -04:00
Rachael Alexanderson
ff257fcfd7
Merge https://github.com/coelckers/gzdoom
2017-06-20 09:39:12 -04:00
Christoph Oelckers
f909b82074
- fixed: Blood translations did not properly treat color 0 as transparent.
2017-06-20 09:10:19 +02:00
Rachael Alexanderson
d454fafc9e
Merge https://github.com/coelckers/gzdoom
2017-06-19 03:22:23 -04:00
Christoph Oelckers
3b024c347b
- use a dedicated flag word for the dynamic light flags instead of piggybacking on some flags4 bits.
2017-06-18 10:15:31 +02: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
Rachael Alexanderson
717e9dd0d8
Merge https://github.com/coelckers/gzdoom
2017-06-07 16:46:21 -04:00
Christoph Oelckers
8b19ae98ea
- consolidated the two averageColor instances.
2017-06-07 22:42:59 +02:00
Rachael Alexanderson
921ce9247e
Merge https://github.com/coelckers/gzdoom
2017-06-05 10:40:15 -04:00
svdijk
c698f10257
Fix setting of the gl_legacy_mode cvar.
2017-06-05 14:45:24 +02:00
Rachael Alexanderson
c340a6f794
Merge branch 'master' of https://github.com/coelckers/gzdoom
...
# Conflicts:
# src/gl/scene/gl_sprite.cpp
# src/polyrenderer/scene/poly_sprite.cpp
# src/r_data/r_vanillatrans.cpp
# src/r_data/r_vanillatrans.h
# src/swrenderer/things/r_sprite.cpp
2017-06-04 07:24:35 -04:00
Rachael Alexanderson
c18134dbd3
- r_vanillatrans: Cache the cache! Transform the function into a global variable and recheck at the start of D_Display
2017-06-04 12:30:35 +02:00
Rachael Alexanderson
68b6f922f7
- Added auto-detection scheme for r_vanillatrans
...
It now works the following way:
(0) - Force off (ZDoom defaults)
(1) - Force on (Doom defaults)
(2) - Auto off (Prefer ZDoom defaults - if DEHACKED is detected with no ZSCRIPT it will turn on) (default)
(3) - Auto on (Prefer Doom defaults - if DECORATE is detected with no ZSCRIPT it will turn off)
2017-06-04 12:30:35 +02:00
Rachael Alexanderson
2997f31f9f
- removed ZDOOMADD and updated actors in question with ZDOOMTRANS
2017-06-04 12:30:35 +02:00
Rachael Alexanderson
89b372cb01
- Changed MF7_SPRITEFLIP, MF8_ZDOOMTRANS to RenderFlags
...
- Added RF_ZDOOMADD
- renamed r_canontrans to r_vanillatrans
- this developer's insanity level has increased by 231%.
2017-06-04 12:30:35 +02:00
Rachael Alexanderson
01f88cfb16
- Added 'canonical transparency' cvar r_canontrans - this simply turns off transparency for Doom objects that were marked as transparent sometime in ZDoom's development cycle
2017-06-04 12:30:35 +02:00
Rachael Alexanderson
64b22f6cb3
Merge https://github.com/coelckers/gzdoom
2017-06-03 22:34:13 -04:00
Rachael Alexanderson
deb62ee156
Merge commit 'refs/pull/340/head' of https://github.com/coelckers/gzdoom
...
# Conflicts:
# src/gl/scene/gl_sprite.cpp
# src/polyrenderer/scene/poly_sprite.cpp
# src/swrenderer/things/r_sprite.cpp
# wadsrc/static/language.enu
# wadsrc/static/menudef.txt
2017-06-03 20:06:28 -04:00
Rachael Alexanderson
9af370f51e
- Added auto-detection scheme for r_vanillatrans
...
It now works the following way:
(0) - Force off (ZDoom defaults)
(1) - Force on (Doom defaults)
(2) - Auto off (Prefer ZDoom defaults - if DEHACKED is detected with no ZSCRIPT it will turn on) (default)
(3) - Auto on (Prefer Doom defaults - if DECORATE is detected with no ZSCRIPT it will turn off)
2017-06-03 20:00:53 -04:00
Magnus Norddahl
7acb492852
- Add gl_shadowmap_quality cvar that controls the resolution of the 1D shadow map texture
2017-06-04 00:44:49 +02:00
Magnus Norddahl
265df4b797
- Change shadowmap resolution from 1024 to 128
2017-06-03 21:19:34 +02:00
Magnus Norddahl
797cb94b4f
- Add stat shadowmap to get performance for the upload part of the shadow maps
2017-06-03 19:24:54 +02:00
Magnus Norddahl
7edb75d299
- The mandatory include compile error fix for unix
2017-06-03 18:28:12 +02:00
Magnus Norddahl
d38dae5de8
- Add gpu stat that displays how much time the GPU spent on named GL groups
2017-06-03 18:14:24 +02:00
Rachael Alexanderson
6605bd70df
Merge https://github.com/coelckers/gzdoom
2017-06-02 14:23:30 -04:00
Rachael Alexanderson
b240ad0814
- removed ZDOOMADD and updated actors in question with ZDOOMTRANS
2017-06-02 12:24:03 -04:00
Rachael Alexanderson
00bfee8b1e
- Changed MF7_SPRITEFLIP, MF8_ZDOOMTRANS to RenderFlags
...
- Added RF_ZDOOMADD
- renamed r_canontrans to r_vanillatrans
- this developer's insanity level has increased by 231%.
2017-06-02 12:24:03 -04:00
Rachael Alexanderson
daad76547d
- Added 'canonical transparency' cvar r_canontrans - this simply turns off transparency for Doom objects that were marked as transparent sometime in ZDoom's development cycle
2017-06-02 12:24:03 -04:00
Kirill Gavrilov
2a8ebc6c27
Fixed broken Interleaved 3D output when GL Sampler objects are used
2017-06-02 09:10:38 +02:00
Rachael Alexanderson
bf12d38afd
- removed ZDOOMADD and updated actors in question with ZDOOMTRANS
2017-06-02 01:10:46 -04:00
Rachael Alexanderson
aa93990d3b
- Changed MF7_SPRITEFLIP, MF8_ZDOOMTRANS to RenderFlags
...
- Added RF_ZDOOMADD
- renamed r_canontrans to r_vanillatrans
- this developer's insanity level has increased by 231%.
2017-06-02 01:10:46 -04:00
Rachael Alexanderson
813b321c45
- Added 'canonical transparency' cvar r_canontrans - this simply turns off transparency for Doom objects that were marked as transparent sometime in ZDoom's development cycle
2017-06-02 01:10:45 -04:00
Rachael Alexanderson
e72ae3f266
Merge ../gzdoom
...
# Conflicts:
# src/version.h
# wadsrc/static/compatibility.txt
2017-05-31 09:08:13 -04:00
Christoph Oelckers
977d5988c5
- fixed weapon sprite light calculation for low light levels.
2017-05-31 09:27:50 +02:00
Rachael Alexanderson
e1a2de4989
Merge https://github.com/coelckers/gzdoom
2017-05-30 12:43:14 -04:00
alexey.lysiuk
0c90253a5d
Fixed potentially broken portal rendering after OpenGL context change
...
https://forum.zdoom.org/viewtopic.php?t=56393
2017-05-30 13:01:51 +03:00
Rachael Alexanderson
2f7d512acf
Merge commit 'refs/pull/335/head' of https://github.com/coelckers/gzdoom
2017-05-29 04:53:39 -04:00
Rachael Alexanderson
035c036eb2
Merge commit 'refs/pull/338/head' of https://github.com/coelckers/gzdoom
2017-05-28 10:50:24 -04:00
Christopher Bruns
9db4dfd963
Link to platform specific openvr library, and install it, and update license headers.
2017-05-28 10:28:07 -04:00
Rachael Alexanderson
65bb8a5185
Merge commit 'refs/pull/338/head' of https://github.com/coelckers/gzdoom
2017-05-28 07:13:27 -04:00
Rachael Alexanderson
619281de64
Revert "Merge commit 'refs/pull/336/head' of https://github.com/coelckers/gzdoom "
...
This reverts commit a05c38fefd
, reversing
changes made to 0fb1a0604c
.
2017-05-28 07:12:41 -04:00
Christopher Bruns
a49afd5bfc
Initial OpenVR mode.
...
Second attempt: clean up commit, and avoid messing with HDR framebuffer format.
2017-05-28 06:20:32 -04:00
Rachael Alexanderson
a05c38fefd
Merge commit 'refs/pull/336/head' of https://github.com/coelckers/gzdoom
2017-05-28 01:33:59 -04:00
Christopher Bruns
a149b54226
Maybe avoid gcc compile problem with forward declared enum.
2017-05-27 20:16:00 -04:00
Christopher Bruns
c1bacdbf92
Create initial rotation-tracking-only implementation of OpenVR mode for VR headsets.
2017-05-27 19:42:49 -04:00
Rachael Alexanderson
872db304f0
Merge https://github.com/coelckers/gzdoom
2017-05-27 04:31:53 -04:00
Magnus Norddahl
b111a708da
- Fix compile error and some warnings
2017-05-27 06:27:36 +02:00
Magnus Norddahl
3f991429d1
- Reduce the number of naked new/delete calls in OpenGLSWFrameBuffer
2017-05-27 02:31:15 +02:00
Major Cooke
35583621cf
PSPF_MIRROR now corrects the bobx direction.
2017-05-26 18:28:09 -05:00
Major Cooke
636e36b90d
Clean-up.
2017-05-26 11:34:26 -05:00
Major Cooke
a25a536c9f
Removed the auto PSPF_FLIP implimentation.
2017-05-25 20:40:54 -05:00
Major Cooke
a111c59286
Added PSPF_MIRROR.
...
- Flips the sprite's drawing and position over entirely. Automatically implies PSPF_FLIP.
2017-05-25 19:46:36 -05:00
Rachael Alexanderson
7600fdb200
Merge https://github.com/coelckers/gzdoom
2017-05-22 13:10:19 -04:00
Christoph Oelckers
7bc5573baa
- call P_FindParticleSubsectors before rendering a save picture in OpenGL.
...
This entry point was the only one missing that call.
2017-05-21 12:45:49 +02:00
Christoph Oelckers
fc0855fac7
- fixed size of particles in the hardware renderer.
...
From the look of it the scale was changed in the software renderer several years back but the hardware renderer never got adjusted for it.
This also adds a bit of compensation to round particles so that they get rendered a bit larger than square ones.
2017-05-21 12:36:34 +02:00
Rachael Alexanderson
fd0602a163
Merge https://github.com/coelckers/gzdoom
2017-05-19 23:40:51 -04:00
Christoph Oelckers
a4231ffd00
- more handling of some very broken old ATI drivers.
2017-05-19 21:33:48 +02:00
Christoph Oelckers
c8e631bf26
- fixed: The colormap was not fully initialized for 3D floors in sectors where neither the original floor nor ceiling were visible.
2017-05-19 11:42:44 +02:00
Rachael Alexanderson
7ded20ca05
Merge https://github.com/coelckers/gzdoom
2017-05-15 03:27:58 -04:00
Christoph Oelckers
437dd68d79
- the Render state must be applied before performing a portal clear screen, because it would still be set to stencil drawing at this point.
2017-05-14 12:42:25 +02:00
Rachael Alexanderson
a7025b5563
Merge https://github.com/coelckers/gzdoom
...
# Conflicts:
# src/version.h
2017-05-14 06:41:56 -04:00
Christoph Oelckers
ef7e4fe678
- draw empty portals in black, not the last set color.
2017-05-14 12:31:51 +02:00
Rachael Alexanderson
ac244b3229
Merge https://github.com/coelckers/gzdoom
2017-05-10 05:15:49 -04:00
Christoph Oelckers
2bf8e8f1c0
- fixed: InitClipper was missing a call to Clipper.Clear.
2017-05-09 12:20:49 +02:00
Christoph Oelckers
762ba13cd9
- store the last found OpenGL version in the INI so that modern GL related options can be removed when running old hardware with software rendering.
2017-05-08 19:30:51 +02:00
Christoph Oelckers
4a5fe65ce8
- added missing check for RenderStyle None to GL weapon drawer.
2017-05-08 19:13:18 +02:00
Rachael Alexanderson
0941cda7cc
Merge https://github.com/coelckers/gzdoom
2017-05-07 05:07:22 -04:00
Magnus Norddahl
81de951abc
- Fix missing include
2017-05-06 22:25:18 +02:00
Magnus Norddahl
f083109b51
- Add SSE code to OpenGLSWFrameBuffer::OpenGLPal::Update to workaround a broken auto-vectorizer in GCC
2017-05-06 22:03:32 +02: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
118976129d
Merge https://github.com/coelckers/gzdoom
2017-05-04 02:38:13 -04:00
Christoph Oelckers
99a61e74c7
- fixed: The first model ID was always initialized to 0, even if that model wasn't even present in the definition.
2017-05-04 00:37:43 +02:00
Rachael Alexanderson
5a450b5eaa
- fixed: +FLIPSPRITE works in mirrors in OpenGL now.
2017-05-03 15:56:33 -04:00
Rachael Alexanderson
00a4993654
- forgot to implement +SPRITEFLIP for OpenGL
2017-05-03 21:13:31 +02:00
Rachael Alexanderson
a9412ec815
Merge https://github.com/coelckers/gzdoom
2017-05-02 23:26:34 -04:00
Magnus Norddahl
e68da4cd6b
- Fix crash in glswfb if vid_hw2d is toggled off
2017-05-02 22:56:31 +02:00
Rachael Alexanderson
9fc2f805de
Merge https://github.com/coelckers/gzdoom
2017-04-27 14:29:28 -04:00
Christoph Oelckers
b5dc5ceb3c
- removed some unused static variables
2017-04-26 14:48:33 +02:00
Rachael Alexanderson
88f8c4afcc
Merge https://github.com/coelckers/gzdoom
2017-04-24 08:09:34 -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
Rachael Alexanderson
5d11c9962b
Merge commit '8db239d'
2017-04-18 11:33:52 -04:00
Christoph Oelckers
47bcd8aaa2
- added per-layer translucency support to the OpenGL PSprite drawer.
2017-04-15 17:25:46 +02:00
Rachael Alexanderson
997a62de36
Merge https://github.com/coelckers/gzdoom
2017-04-14 23:09:21 -04:00
Christoph Oelckers
47bb29bac6
- check the return value of ogl_LoadFunctions and abort if it indicates failure.
...
If this happens there is normally something very wrong on the system side so continuing is not advised.
2017-04-14 15:32:04 +02:00
Rachael Alexanderson
4b2b2af63e
Merge https://github.com/coelckers/gzdoom
2017-04-14 05:51:36 -04:00
Christoph Oelckers
dc5a5419fc
- took DCanvas and all its subtypes out of the DObject tree.
...
I have no idea why they were even in there, as they intentionally circumvented all GC related features - they declared themselves fixed if prone to getting collected, they all used OF_YesReallyDelete when destroying themselves and they never used any of the object creation or RTTI features, aside from a single assert in V_Init2.
Essentially they were a drag on the system and OF_YesReallyDelete was effectively added just to deal with the canvases which were DObjects but not supposed to behave like them in the first place.
2017-04-14 10:48:18 +02:00
Rachael Alexanderson
2c4552da42
Merge https://github.com/coelckers/gzdoom
2017-04-13 10:09:47 -04: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
Rachael Alexanderson
a15031706d
Merge https://github.com/coelckers/gzdoom
2017-04-12 20:33:38 -04: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
Rachael Alexanderson
7040bc2156
Merge https://github.com/coelckers/gzdoom
2017-04-11 14:06:13 -04:00
Magnus Norddahl
f049e6145b
- remove all usage of std::make_unique to keep things C++11 compliant
2017-04-11 01:25:44 +02:00
Rachael Alexanderson
00531cda49
Merge https://github.com/coelckers/gzdoom
2017-04-09 11:53:40 -04:00
Christoph Oelckers
18d6fb7f49
- fixed: USEACTORPITCH in the model code was still using inverted pitch.
2017-04-08 10:24:12 +02:00
Rachael Alexanderson
cecf41e4d0
Merge https://github.com/coelckers/gzdoom
2017-04-07 21:50:23 -04:00
Magnus Norddahl
9f180b29b9
- Remove GL_MAJOR_VERSION check for OpenGL ES as apparently not even this can be done right by driver writers
2017-04-08 00:19:39 +02:00
Rachael Alexanderson
a90692330b
Merge https://github.com/coelckers/gzdoom
2017-04-07 09:55:00 -04:00
Magnus Norddahl
73effc70bb
- The legacy OpenGL path resets the GLSL version, which in turn makes #version 0 crash the AMD driver. Old stuff that uses the legacy path will not get glswfb acceleration.
2017-04-07 15:45:08 +02:00
Magnus Norddahl
35c35fc26f
- Check if glCreateProgram or glCreateShader fails, because apparently AMD found a way to make exactly that happen
2017-04-07 15:27:04 +02:00
Rachael Alexanderson
b1e1f25218
- detect gl es shaders and request them
2017-04-06 23:34:50 -04:00
Magnus Norddahl
85a9984807
- Add OpenGL ES 3 support to GL renderer
2017-04-06 23:34:42 -04:00
Magnus Norddahl
b7482e10e2
- Detect dinosaur OpenGL and refuse to use it
2017-04-06 23:34:37 -04:00
Magnus Norddahl
e690de25a8
- Use SDL_GL_GetProcAddress on platforms where the SDL is being used. Since SDL initialized OpenGL for us, it is the only reliable way of retrieving proc addresses.
...
- Check if ogl_LoadFunctions failed and make OpenGLSWFrameBuffer gracefully recover from that
2017-04-06 23:33:56 -04:00
Rachael Alexanderson
dc1695918e
- detect gl es shaders and request them
2017-04-06 23:29:15 -04:00
Magnus Norddahl
994740b3ae
- Add OpenGL ES 3 support to GL renderer
2017-04-07 04:09:04 +02:00
Magnus Norddahl
a9591f57a6
- Detect dinosaur OpenGL and refuse to use it
2017-04-07 03:03:21 +02:00
Magnus Norddahl
0376d4e8fc
- Use SDL_GL_GetProcAddress on platforms where the SDL is being used. Since SDL initialized OpenGL for us, it is the only reliable way of retrieving proc addresses.
...
- Check if ogl_LoadFunctions failed and make OpenGLSWFrameBuffer gracefully recover from that
2017-04-07 02:17:34 +02:00
Rachael Alexanderson
5851408803
Merge https://github.com/coelckers/gzdoom
2017-04-04 01:29:14 -04:00
Major Cooke
d3ef3b585b
- fixed: Flat sprites did not rotate their sprite angles when given the FLATSPRITE flag.
2017-04-03 17:06:33 +02:00
Rachael Alexanderson
12d39c74ef
Merge https://github.com/coelckers/gzdoom
2017-04-02 21:38:20 -04:00
alexey.lysiuk
659f75c84a
Avoid duplication of member in OpenGL software framebuffer class
2017-04-02 10:13:25 +03:00
Rachael Alexanderson
643bdac514
Merge https://github.com/coelckers/gzdoom
2017-04-02 02:34:32 -04:00
Magnus Norddahl
4268090738
- switch OpenGLSWFrameBuffer to use m_Lock instead of LockCount
2017-04-02 00:47:18 +02:00
Magnus Norddahl
0ed60b8df6
- fix OpenGLSWFrameBuffer::Begin2D
2017-04-01 22:14:04 +02:00
Rachael Alexanderson
2b2297b73e
Merge https://github.com/coelckers/gzdoom
2017-04-01 10:11:52 -04:00
Christoph Oelckers
54764c136d
- changed the 2D draw abort check to use a dedicated variable, that gets set in Begin2D and unset at the end of D_Display.
...
This is really all the extent where 2D draw operations may be allowed. Trying to detect this from other variables is not reliable.
2017-04-01 12:59:58 +02:00
alexey.lysiuk
59ae50aecb
Fixed compilation warning reported by GCC/Clang
...
src/gl/textures/gl_texture.cpp:691:25: warning: comparison of integers of different signs: 'unsigned int' and 'int' [-Wsign-compare]
2017-04-01 10:24:05 +03:00
Rachael Alexanderson
39826753f9
Merge https://github.com/coelckers/gzdoom
2017-03-30 02:11:03 -04:00
Christoph Oelckers
bde73fc530
- added automatic brightmaps.
...
Everything in the brightmaps/auto directory will automatically be assigned to the same-named texture.
2017-03-29 23:13:11 +02:00
Christoph Oelckers
01b095c911
- added colorization for untranslated fonts. This uses the light color of the vertices. The software rendered 2D code will ignore this infomation.
...
- added a virtual OnRetrun method to menus.
2017-03-29 21:22:05 +02:00
Christoph Oelckers
1d4ab0cc2a
- implemented proper scaling for the status bar itself.
...
This allows using the UI scale or its own value, like all other scaling values.
In addition there is a choice between preserving equal pixel size or aspect ratio because the squashed non-corrected versions tend to look odd, but since proper scaling requires ununiform pixel sizes it is an option.
- changed how status bar sizes are being handled.
This has to recalculate all scaling and positioning factors, which can cause problems if the drawer leaves with some temporary values that do not reflect the status bar as a whole.
Changed it so that the status bar stores the base values and restores them after drawing is complete.
2017-03-29 19:23:40 +02:00
Rachael Alexanderson
9f38b2b107
Merge https://github.com/coelckers/gzdoom
2017-03-28 22:40:40 -04:00
Magnus Norddahl
d160424aea
- added DFrameBuffer::HasBegun2D to allow scripting to test if 2D drawing is active (instead of using IsLocked, which may return false when vid_hw2d is active)
2017-03-29 00:45:53 +02:00
Christoph Oelckers
5e3e4a3bd1
- fixed: The wall spliter for 3D lights did not initialize the resulting colormap's fog density value.
2017-03-28 23:36:26 +02:00
Rachael Alexanderson
9da596cd9c
Merge https://github.com/coelckers/gzdoom
2017-03-28 16:29:07 -04:00
nashmuhandes
99d1581c27
Added "DontLightActors" flag for dynamic lights. Actors will not be illuminated by lights that are given this flag.
2017-03-28 21:33:16 +02:00
Christoph Oelckers
71fe4a83c9
- fixed: the translucent flat drawer used a bad condition for dynamic light processing which caused a problem with the GL 3.x lighting method.
2017-03-28 21:18:03 +02:00
Christoph Oelckers
f3db5f3803
- added a clipping rectangle to DCanvas that can be used independently of DrawTexture calls.
...
Currently this is only being used for draw operations that are not automap related, i.e. DrawLine, DrawPixel and FillSimplePoly are not subjected to it.
2017-03-28 13:06:24 +02:00
Rachael Alexanderson
71ad6c9651
Merge https://github.com/coelckers/gzdoom
2017-03-25 11:19:27 -04:00
alexey.lysiuk
093a05b588
Reset OpenGL 2D drawer state fully on each frame
...
https://mantis.zdoom.org/view.php?id=469
2017-03-25 11:32:39 +02:00
Rachael Alexanderson
733cf1acc5
Merge https://github.com/coelckers/gzdoom
2017-03-25 00:26:06 -04:00
Christoph Oelckers
6760e01a0d
- implemented the status bar's DrawString function and ported the fullscreen HUD part of the Strife status bar to use the new functionality.
2017-03-24 20:09:50 +01:00
Rachael Alexanderson
b747b0c3c6
- made gl_menu_blur into a menu option
...
- made bluramount also into a gameinfo option
- negative gl_menu_blur cvar now uses gameinfo option, 0 disables it
- removed gl_menu_blur_enabled since gl_menu_blur==0 does that anyway
- made gl_menu_blur default to -1 to use gameinfo option
- add default gameinfo bluramount options
2017-03-24 14:59:25 -04:00
Rachael Alexanderson
954f21f71d
- changed defaults
...
- moved CVARs to head of file as forward declaration
- FGLRenderer::BlurScene now checks if postprocessing is enabled before executing
2017-03-24 14:59:25 -04:00
Rachael Alexanderson
e49b549364
- added CVARs to control menu blur
...
- made blur effect menu only
2017-03-24 14:59:25 -04:00
Magnus Norddahl
93a6e4bc94
Add an aggressive blur pass for the scene
2017-03-24 14:59:25 -04:00
Christoph Oelckers
9bffe4ee50
- scriptified the main statusbar interface and the Strife status bar.
...
Note that the Strife status bar does not draw the health bars yet. I tried to replace the hacky custom texture with a single fill operation but had to find out that all the coordinate mangling for the status bar is being done deep in the video code. This needs to be fixed before this can be made to work.
Currently this is not usable in mods because they cannot initialize custom status bars yet.
2017-03-22 00:32:52 +01:00
Magnus Norddahl
fc3cb01029
- only ray test sprites on lights that are shadowmapped
2017-03-21 14:32:48 +01:00
Christoph Oelckers
f45371e231
- reverted the counter for the vertex angle cache to a simple incrementing global variable.
...
Using I_MSTime is not precise enough, because some camera textures can be done quicker. It was pointless anyway trying to make this multithreading-safe, the entire caching idea here makes no sense if two clippers can simultaneously work on the same level data without changing the memory organization and rendering it ineffective.
2017-03-20 01:21:33 +01:00
Christoph Oelckers
1031481167
- added some checks to exclude dynamic lights from being subjected to shadowmapping if they do not touch any one-sided lines from the back side. This condition is a requirement for a 1D shadowmap to even have an effect.
2017-03-20 00:34:19 +01:00
alexey.lysiuk
cb5ddeff25
Fixed compilation warnings reported by Clang
...
src/gl/scene/gl_clipper.h:150:23: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
src/gl/dynlights/gl_aabbtree.cpp:137:24: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:137:34: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:137:44: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:139:6: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:139:30: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:139:54: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:142:6: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:143:3: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:144:3: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:167:6: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_shadowmap.cpp:163:31: warning: '&&' within '||' [-Wlogical-op-parentheses]
src/p_saveg.cpp:367:16: warning: comparison of integers of different signs: 'unsigned int' and 'int' [-Wsign-compare]
src/p_saveg.cpp:402:60: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
src/p_setup.cpp:1553:39: warning: format specifies type 'ptrdiff_t' (aka 'long') but the argument has type 'int' [-Wformat]
src/scripting/zscript/zcc_compile.cpp:293:74: warning: field 'AST' will be initialized after field 'mVersion' [-Wreorder]
src/swrenderer/drawers/r_thread.cpp:113:21: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
2017-03-18 15:13:02 +02:00
Christoph Oelckers
c9296ead57
- moved the skybox texture files to the main textures directory.
2017-03-17 21:12:09 +01:00
Christoph Oelckers
fee18a6971
- fixed the attenuation check in gl_GetLight.
2017-03-17 20:16:49 +01:00
Christoph Oelckers
7d8d69d01b
- fixed: The clipper for the main scene may not be initialized before the camera textures have been drawn.
...
It looks like the memory management at use here is not capable of maintaining multiple instances simultaneously and the camera textures create another scene drawer so the initialization of the main scene drawer has to be delayed until after the camera textures are done.
2017-03-17 19:28:47 +01:00
Christoph Oelckers
ea1d6634f7
- moved the Zones array into FLevelLocals.
...
- replaced TStaticArray with regular TArrays.
They had incomplete implementations preventing proper cleanup of the level loading code. It makes more sense to add the missing methods to the regular TArray and use that.
This also makes some changes to how the game nodes are used to avoid creating a copy: If the head node's pointer is stored in a separate variable, no code needs to check which of the two arrays gets used.
2017-03-17 12:11:37 +01:00
Christoph Oelckers
fea4079b7c
- moved nodes into FLevelLocals.
2017-03-17 01:42:37 +01:00
Christoph Oelckers
f201dab534
- moved the subsectors into FLevelLocals.
2017-03-17 00:22:52 +01:00
Christoph Oelckers
59b684bdbc
- moved the segs array into FLevelLocals.
2017-03-16 21:34:04 +01:00
Christoph Oelckers
2b2c986bd0
- cleanup of GL renderer interface and improper header use in software renderer.
2017-03-16 21:34:03 +01:00
Christoph Oelckers
b529b1e3a7
- removed several unneeded GL headers from the software renderer's sources.
...
- consolidated the code to calculate a sprite's display angle for all 3 renderers.
As it turned out, they all differed in their feature support because they had always been updated independently by different people.
2017-03-16 13:49:34 +01:00
Christoph Oelckers
3aa7687d91
- made 'nocoloredspritelighting' a global option and also implemented it in the software renderer.
2017-03-16 00:56:03 +01:00
Christoph Oelckers
921bc763fb
- separated the software-renderer-specific parts of colormap processing from the common parts.
...
- moved testcolor and test fades into SWRenderer files.
These CCMDs work by hacking the default colormap and were never implemented for hardware rendering because they require many checks throughout the code.
2017-03-15 22:04:59 +01:00
Christoph Oelckers
9a24771a7d
- refactored FDynamicColormap out of sector_t.
...
This has increasingly become an obstacle with the hardware renderer, so now the values are being stored as plain data in the sector, with the software renderer getting the actual color tables when needed. While this is a bit slower than storing the pregenerated colormap, in realistic situations the added time is mostly negligible in the microseconds range.
2017-03-15 22:04:59 +01:00
Christoph Oelckers
d86bd470e5
- moved two MAPINFO settings that are not exclusively used by the OpenGL renderer to the common code.
2017-03-14 18:31:11 +01:00
Christoph Oelckers
3c6e9f361c
- fixed typo in fog boundary check.
2017-03-14 16:13:00 +01:00
Christoph Oelckers
44a087554f
- moved the OpenGL fog properties to FLevelLocals to simplify their handling.
...
- added access to the glow properties for ZSCript and ACS.
2017-03-14 13:54:24 +01:00
Christoph Oelckers
0ebe98d1e0
- added support for reading JASC palette files. I hope it's correct, considering I have no such files to test. The format should be simple enough, though.
2017-03-14 12:16:42 +01:00
Christoph Oelckers
5141fee8c0
- reverted the change of position where polyobjects get linked to the subsectors.
2017-03-13 21:17:25 +01:00
Christoph Oelckers
feb680a4eb
- Removed the RSQRTSS code from GLSeg::Normal.
...
If we have to write compiler specific code for micro-optimizations I am out.
The Posix compatible version nullified most the advantage on MSVC by writing out the XMM register to memory and then reading back the float.
That's not worth the hassle for an optimization that brings a few microseconds at best.
2017-03-13 13:17:15 +01:00
alexey.lysiuk
fc8b697e33
Fixed compilation of POSIX targets
...
TODO: Need better way to detect SSE support
2017-03-13 12:51:06 +02:00
Christoph Oelckers
60fd79ce23
- some menu reorganization:
...
* dynamic lights also work in the true color software renderer and have been moved out of the OpenGL menu.
* created a separate software renderer menu and moved all relevant options there.
* delete non-applicable options when running in legacy mode.
* moved the OpenGL preferences menu one level up to eliminate a two-entry GL top level menu.
2017-03-13 01:17:46 +01:00
Christoph Oelckers
4965cdfd9a
- removed some unused global variables.
2017-03-12 23:56:17 +01:00
Christoph Oelckers
d72623b9b5
- eliminated global in_area variable.
...
Removing this made me realize that calling the renderers' FakeFlat functions from the automap is inherently unsafe with the recent refactorings because there is absolutely no guarantee that the data may actually still be defined when the automap is being drawn.
So the best approach here is to give the automap its own FakeFlat function that runs independently of render data and assumptions of data preservation. This one can also be a lot simpler because it only needs the floor, not the ceiling info.
2017-03-12 23:13:07 +01:00
Christoph Oelckers
4c61048278
- moved gl_fixedcolormap into GLSceneDrawer.
...
This means that one of the most extensively used global variables is gone.
2017-03-12 21:57:39 +01:00
Christoph Oelckers
438b983ab1
- inlined the 4 remaining short functions of the Plane class and removed gl_geometric.cpp.
...
# Conflicts:
# src/CMakeLists.txt
# Conflicts:
# src/CMakeLists.txt
2017-03-12 20:11:57 +01:00
Christoph Oelckers
4cd0d3d454
- removed the Vector class in the GL renderer and replaced all its uses with FVector3.
...
- optimized the math to get a plane equation from a linedef. The original code used a generic algorithm that knew nothing about the fact that Doom walls are always perfectly vertical. With this knowledge the plane calculation can be reduced to a lot less code because retrieving the normal is trivial in this special case.
- use the SSE2 rsqrtss instruction to calculate a wall's length, because this is by far the most frequent use of square roots in the GL renderer. So far this is only active on x64, it may be activated on 32 bit later as well, but only after it has been decided if 32 bit builds should be x87 or SSE2.
# Conflicts:
# src/gl/dynlights/gl_dynlight.cpp
# Conflicts:
# src/g_shared/a_dynlightdata.cpp
2017-03-12 19:59:45 +01:00
Christoph Oelckers
ef3421eee5
- moved dynamic lights out of the GL code into the common game code.
...
Since the true color software renderer also handles them there is no point keeping them on the GL side.
This also optimized how they are stored, because we no longer need to be aware of a base engine which doesn't have them.
2017-03-12 19:57:06 +01:00
Christoph Oelckers
e7330cfa03
- all main functions in gl_scene.cpp now belong to the new GLSceneDrawer class.
2017-03-12 12:51:26 +01:00
Christoph Oelckers
e4d7d9de8b
- moved several more functions from FGLRenderer to GLSceneDrawer.
2017-03-12 12:03:54 +01:00
Christoph Oelckers
64183fc3cd
- moved GL texture precaching to gl_texture.cpp.
2017-03-12 01:49:44 +01:00
Christoph Oelckers
9b33d1dd18
Merge branch 'scene_multithreaded' of https://github.com/raa-eruanna/qzdoom into 3.0_work
...
# Conflicts:
# src/gl/scene/gl_clipper.cpp
# src/gl/scene/gl_portal.cpp
# src/gl/scene/gl_scene.cpp
# src/swrenderer/scene/r_scene.cpp
2017-03-12 00:38:55 +01:00
Magnus Norddahl
c79051126e
Fix ssao being applied to skybox portals
2017-03-12 00:22:58 +01:00
Christoph Oelckers
0aa0db637c
- started adding a SceneDrawer class to the OpenGL renderer.
...
This will eventually hold all the global variables for the rendering.
2017-03-12 00:19:20 +01:00
Magnus Norddahl
0c9014b984
- move r_utility globals into r_viewpoint and r_viewwindow
...
- change r_utility functions to only work on FRenderViewpoint and FViewWindow
2017-03-11 23:28:07 +01:00
Christoph Oelckers
8e2ebe15fe
- removed several unused variables from OpenGLFrameBuffer.
...
- removed the LastCamera logic in RenderView. This code predates the first GZDoom release and apparently was only added because back then R_SetupFrame was not fully compatible with the hardware renderer. Today it is not needed anymore.
2017-03-11 21:10:21 +01:00
Christoph Oelckers
9e70771da3
- Added a check to allow shader storage buffers on GL 4.3 Intel drivers. It doesn't work if GLSL version is set to 4.0 and the feature activated via extension.
2017-03-11 20:14:18 +01:00
Christoph Oelckers
9eae422dab
Merge branch 'shadowmaps' of https://github.com/raa-eruanna/qzdoom into 3.0_work
...
# Conflicts:
# src/CMakeLists.txt
# wadsrc/static/language.enu
2017-03-11 19:55:43 +01:00
Christoph Oelckers
28aba3469d
- missed 2 includes
2017-03-11 19:18:31 +01:00
Christoph Oelckers
921abc404d
- fixed GCC warnings and errors
...
(Is there anyway to tone down GCC's warning level? It outputs too many false positives for potentially uninitialized variables in which the genuine errors get drowned.)
2017-03-11 19:02:35 +01:00
Rachael Alexanderson
81291e6892
- fixed: Clang on Linux compile
2017-03-11 11:01:30 -05:00
Magnus Norddahl
b407ea2164
Change gl_light_shadowmap to default to being off
2017-03-10 22:12:13 +01:00
Magnus Norddahl
59ec97d2d5
Fix shadow map acne and the attenuate flag
2017-03-10 22:08:55 +01:00
Christoph Oelckers
fec958cc0a
- finally managed to get rid of the DWORD type.
...
This one was particularly nasty because Windows also defines a DWORD, but in Windows it is an unsigned long, not an unsigned int so changing types caused type conflicts and not all could be removed.
Those referring to the Windows type have to be kept, fortunately they are mostly in the Win32 directory, with a handful of exceptions elsewhere.
2017-03-10 19:46:22 +01:00
Magnus Norddahl
b660493051
Add menu option for disabling shadow maps and detecting if storage buffers are available or not
2017-03-10 19:10:40 +01:00