Commit Graph

4663 Commits

Author SHA1 Message Date
Christoph Oelckers c6f4c0b6f0 - fixed: FMaterial's tex pointer could be accessed before it was set.
- allow more than two texture units in shaders.
2014-09-09 10:03:34 +02:00
Christoph Oelckers 62880f113b - fix a render glitch with Back to Saturn X MAP06: Do not flood missing upper and lower textures with the backsector's flat if that backsector is malformed (i.e. has no area.) 2014-09-09 08:47:39 +02:00
Christoph Oelckers 9b8869e78d Merge branch 'master' into v2.x
Conflicts:
	src/gl/textures/gl_material.cpp
2014-09-09 01:30:11 +02:00
Christoph Oelckers 86d9c7ec8e - add some compatibility settings to fix rendering glitches in BTSX_E1 MAP12. 2014-09-09 01:27:41 +02:00
Christoph Oelckers e2c2f635ac Merge branch 'master' of https://github.com/rheit/zdoom 2014-09-08 23:26:17 +02:00
Christoph Oelckers 5e34b78451 - missed a line. 2014-09-08 23:25:27 +02:00
Christoph Oelckers 0ff061b928 Merge branch 'master' of https://github.com/rheit/zdoom 2014-09-08 22:55:37 +02:00
Christoph Oelckers 580e580c42 - added option to set a sector's tag via compatibility.txt (needed by GZDoom) 2014-09-08 22:54:56 +02:00
Christoph Oelckers 3d2646cbae Merge branch 'master' of https://github.com/rheit/zdoom 2014-09-08 13:02:39 +02:00
Christoph Oelckers cfd24f438f - jpalomo's A_Saw flags submission. 2014-09-08 13:02:05 +02:00
Gaerzi 4659a87292 Merge pull request #15 from alexey-lysiuk/fix_upscale_transparency
Fixed missing transparency on upscaled textures
2014-09-07 16:15:44 +02:00
alexey.lysiuk e29fce6951 Fixed missing transparency on upscaled textures
Textures with diagonal patterns were treated as opaque after resizing
Images upscaled by hqNx were affected mostly by this issue

http://forum.drdteam.org/viewtopic.php?f=24&t=5370
http://zandronum.com/tracker/view.php?id=269
http://zandronum.com/tracker/view.php?id=315
2014-09-07 11:52:51 +03:00
Braden Obrzut 49382a2a14 - Added detection for The Adventures of Sqaure (based off MTrop's submission).
- IWADINFO no longer requires a mapinfo to be specified.
2014-09-04 19:36:08 -04:00
Christoph Oelckers b96dd6c421 - fixed: The missing fourth component of the texture coordinate must be filled with 1.0, not 0.0 before applying the texture matrix. Not doing so will cancel out the translation part of the matrix. 2014-09-02 10:31:48 +02:00
Christoph Oelckers fa3a62e954 - fix a render glitch with Back to Saturn X MAP06: Do not flood missing upper and lower textures with the backsector's flat if that backsector is malformed (i.e. has no area.) 2014-08-31 23:01:53 +02:00
Christoph Oelckers a280c20b4e - fixed: If we want to cache texture binding state we have to reset it in all places where a texture becomes unbound. 2014-08-31 19:00:17 +02:00
Christoph Oelckers 12160bd29c - remove some obsolete code from decal rendering.
- avoid rebinding the same texture multiple times, as there's considerable overhead in the texture manager.
- check gl_sort_textures only once per scene, not per draw list.
2014-08-30 15:34:14 +02:00
Christoph Oelckers 6a3cd6378a - found out that reading the CPU's real time clock costs a not insignificant amount of time so this is now only done when either the benchmark command is running or the rendertimes are shown. 2014-08-30 14:33:06 +02:00
Christoph Oelckers 49ec7beb8f - separate draw lists for walls and flats. This makes the sorting much more efficient because draw types no longer need to be checked in the compare function. This is a lot more important than having perfect texture order. 2014-08-30 13:04:41 +02:00
Christoph Oelckers 8f238f8d32 - fixed: the Revenant's frame duration in its missile state were wrong. 2014-08-27 11:06:12 +02:00
Christoph Oelckers 1d2aa3df0c fixed: The wait console command waited one tic too many because it got 1 added to it twice instead of only once. 2014-08-25 10:51:50 +02:00
Christoph Oelckers a903cbe12e - sorting draw items by light level no longer makes sense so remove all corresponding code from dicmp. 2014-08-24 13:10:45 +02:00
Christoph Oelckers bf03d02228 - print OpenGL profile type in startup log. 2014-08-24 01:09:44 +02:00
Christoph Oelckers 904cc2e158 - some code cleanup. 2014-08-23 18:54:24 +02:00
alexey.lysiuk 51d7340288 Fixed crash on music volume change when no track is played using FluidSynth device 2014-08-23 16:35:05 +03:00
Christoph Oelckers 5364116354 - fixed: APROP_Friendly did not manage monster counting correctly. 2014-08-23 13:24:15 +02:00
Christoph Oelckers bf6079af46 - fixed incorrect check for overrideshader. 2014-08-23 00:47:05 +02:00
Christoph Oelckers 1050013017 major cleanup of the texture manager:
- use sampler objects to avoid creating up to 4 different system textures for one game texture just because of different clamping settings.
- avoids flushing all textures for change of texture filter mode.
- separate sprite and regular dimensions on the material level to have better control over which one gets used. It's now an explicit parameter of ValidateTexture. The main reason for this change is better handling of wall sprites which may not be subjected to such handling.
- create mipmaps based on use case, not texture type.
- allows removal of FCloneTexture hack for proper sharing of the same sprite for decals and other purposes.
- better precaching of skyboxes.
2014-08-22 23:50:38 +02:00
Christoph Oelckers 7a727b6807 Merge branch 'master' into v2.x 2014-08-21 13:44:41 +02:00
Christoph Oelckers 816999109e Merge branch 'master' of https://github.com/rheit/zdoom 2014-08-21 13:42:43 +02:00
Christoph Oelckers eebd5c9d4d - fixed bad edit in linedef translation. 2014-08-21 13:38:47 +02:00
Christoph Oelckers df0d3543a8 - fixed: *ALL* original ceiling crushers, not just type 49, require a distance of 8 to the floor for the destination height. For the silent types this required a new action special, Ceiling_CrushAndRaiseSilentDist. This change only affects the XLAT mapping, the Hexen format types behave as before.
- removed the redundant internal ceilCrushAndRaiseDist ceiling movement type. It was precisely the same as ceilCrushAndRaise in all details.
2014-08-21 13:01:12 +02:00
Christoph Oelckers d794d9651f Merge branch 'upstream' of https://github.com/Edward850/zdoom 2014-08-21 12:08:24 +02:00
Christoph Oelckers 274a4216ea - disabling inlining in the GL loader produces an executable that's 8kb smaller. 2014-08-21 11:47:53 +02:00
Christoph Oelckers 78815a9601 -we need this, too. 2014-08-21 11:29:43 +02:00
Christoph Oelckers e132fc5eed - replaced GLEW with GLLoadGen for GL access. This allows to have a header that only contains what's actually required, namely OpenGL 3.3 plus glBegin and glEnd which are the only compatibility functions needed for the fallback render path.
GLEW has two major problems:

- it always includes everything, there is no way to restrict the header to a specific GL version
- it is mostly broken with a core profile and only works if all sanity checks get switched off.
2014-08-21 11:02:46 +02:00
Edward Richardson 07d7f690e8 Non-wall sprites need their original depth checks 2014-08-21 20:03:17 +12:00
Christoph Oelckers 6f65bccf1c - reinstated the far superior assembly HQnX version for Visual C++. 2014-08-20 12:45:33 +02:00
Christoph Oelckers 86d37e06f9 - lowered requirements of GL 2.x to OpenGL 3.3.
There was one issue preventing the previous 2.0 betas from running under GL 3.x: The lack of persistently mapped buffers.
For the dynamic light buffer today's changes take care of that problem.
For the vertex buffer there is no good workaround but we can use immediate mode render calls instead which have been reinstated.

To handle the current setup, the engine first tries to get a core profile context and checks for presence of GL 4.4 or the GL_ARB_buffer_storage extension.
If this fails the context is deleted again and a compatibility context retrieved which is then used for 'old style' rendering which does work on older GL versions.

This new version does not support GL 3.2 or lower, meaning that Intel GMA 3000 or lower is not supported. The reason for this is that the engine uses a few GL 3.3 features which are not present in the latest Intel driver.
In general the Intel GMA 3000 is far too weak, though, to run the demanding shader of GZDoom 2.x, so this is no real loss. Performance would be far from satisfying.

A command line option '-gl3' exists to force the fallback render path. On my Geforce 550Ti there's approx. 10% performance loss on this path.
2014-08-19 15:56:33 +02:00
Christoph Oelckers a2dc4afe3f - screwed by the editor's autocompletion... (wrong GL flag was used...) 2014-08-19 14:25:47 +02:00
Christoph Oelckers 00d7707aef - allow reallocation of light buffer if more lights are needed.
- added a light preprocessing pass to the renderer so that a non-persistent buffer can be used with minimal mapping/unmapping. This only gets used if necessary because it adds some overhead to the renderer.
2014-08-19 14:18:21 +02:00
Christoph Oelckers 38796e7714 - removed some obsolete and useless GL calls. 2014-08-17 11:41:03 +02:00
alexey.lysiuk b461000795 Fixed crash on opening 7z/LZMA archives, x64 only
With Position Independent Code (PIC) enabled on x64, non-MSVC compilers use wrong inline assembly for cpuid
2014-08-13 22:46:08 +03:00
Christoph Oelckers 5d6ef5cb16 Merge branch 'master' into v2.x 2014-08-11 13:19:42 +02:00
Christoph Oelckers c30cfb3190 Merge branch 'master' of https://github.com/rheit/zdoom 2014-08-11 13:18:21 +02:00
Christoph Oelckers f482dc094d fixed: R_PointOnSideSlow had precision issues with very short lines.
When this function was originally written there was no possibility of fractional vertex coordinates so it threw away the fractional parts of the node's directional vector (which in the original nodes was always 0.)
Now, with UDMF and high precision vertices this no longer works and the loss of significant parts of their value caused this code to produce erroneous results if the linedefs were only a few map units long and using fractional positions.
2014-08-11 12:27:04 +02:00
Christoph Oelckers 48163de8e2 must include doomdef.h in cmdlib.h to get TICRATE. 2014-08-11 11:47:14 +02:00
Christoph Oelckers f0eccb9d15 - BlueShadow's submission for keeping the max save amount of BasicArmorPickups around when picking up armor bonuses. 2014-08-11 10:08:49 +02:00
Christoph Oelckers 259466c3d4 fixed time printing.
- In ZDoom the timer runs a bit too fast because roundoff errors make 35 tics only last 0.98 seconds. None of the internal timing has been changed, only the places where a time value is printed it will get adjusted for this discrepancy.
2014-08-11 09:39:38 +02:00
Christoph Oelckers 1fcde91298 - BlueShadow's GetArmorInfo submission. 2014-08-08 09:25:35 +02:00