Christoph Oelckers
f9741f1047
- added a compatibility option for Hexen's MAP04 to change the z-position of 4 quartz flasks that get lowered into a pool of lava but were incorrectly positioned 48 map units above the floor.
2014-09-13 12:20:06 +02:00
Christoph Oelckers
acf6c259d8
- changed the handling of alpha textures. The only special case they need is with palette-less textures and this can be handled far more easily and robustly with a predefined translation instead of passing another parameter through all the layers of the texture management code. This also fixes problems with paletted PNGs that get used as an alpha texture because the old method clobbered the image's palette.
2014-09-09 13:21:36 +02:00
Christoph Oelckers
d5633701b4
- swapped order of textures in burn shader to avoid some problems with the texture samplers.
...
- fixed: texture sampler state for the burn texture was never set.
2014-09-09 10:17:44 +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
0ff061b928
Merge branch 'master' of https://github.com/rheit/zdoom
2014-09-08 22:55:37 +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
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
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
8f238f8d32
- fixed: the Revenant's frame duration in its missile state were wrong.
2014-08-27 11:06:12 +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
c98e3ca99d
Merge branch 'master' into v2.x
2014-08-03 10:58:41 +02:00
Christoph Oelckers
1b55c17379
Merge branch 'master' of https://github.com/rheit/zdoom
2014-08-03 10:08:05 +02:00
Christoph Oelckers
a1b579e5fc
- added menu entry for newly added hud_showweapons CVAR.
2014-08-03 01:20:12 +02:00
Christoph Oelckers
a8e9c1832f
- decided to restrict the 2.0 beta to OpenGL 4.x with GL_ARB_buffer_storage extension and removed all code for supporting older versions.
...
Sadly, anything else makes no sense.
All the recently made changes live or die, depending on this extension's presence.
Without it, there are major performance issues with the buffer uploads. All of the traditional buffer upload methods are without exception horrendously slow, especially in the context of a Doom engine where frequent small updates are required.
It could be solved with a complete restructuring of the engine, of course, but that's hardly worth the effort, considering it's only for legacy hardware whose market share will inevitably shrink considerably over the next years.
And even then, under the best circumstances I'd still get the same performance as the old immediate mode renderer in GZDoom 1.x and still couldn't implement the additions I'd like to make.
So, since I need to keep GZDoom 1.x around anyway for older GL 2.x hardware, it may as well serve for 3.x hardware, too. It's certainly less work than constantly trying to find workarounds for the older hardware's limitations that cost more time than working on future-proofing the engine.
This new, trimmed down 4.x renderer runs on a core profile configuration and uses persistently mapped buffers for nearly everything that is getting transferred to the GPU. (The global uniforms are still being used as such but they'll be phased out after the first beta release.
2014-08-01 22:42:39 +02:00
Christoph Oelckers
7967082e60
- use the light buffer to handle dynamic lighting.
2014-08-01 20:59:39 +02:00
Christoph Oelckers
01a1e10084
Merge branch 'master' into Glew_Version_For_Real
2014-07-31 00:59:56 +02:00
Christoph Oelckers
09ae52e26b
Merge branch 'master' of https://github.com/rheit/zdoom
2014-07-31 00:44:59 +02:00
Christoph Oelckers
ef8f66c9a1
- removed the code for hardware alpha testing again because it didn't work anymore with how things are set up now.
...
- we need to check all GL versions when trying to get a context because some drivers only give us the version we request, leaving out newer features that are not exposed via extension.
- added some status info about uniform blocks.
2014-07-30 23:13:16 +02:00
Randy Heit
ea7ba9dba3
Add per-actor friction
...
- This is multiplied by the sector's friction.
- This is intentionally not serialized yet, while awaiting feedback.
2014-07-28 23:15:50 -05:00
Christoph Oelckers
754c96a540
- added default precision settings to shader include because some old ATI drivers complain if they aren't there - even though the spec doesn't require them...
2014-07-27 16:09:47 +02:00
Christoph Oelckers
6d4eb7f62d
- changed handling of DF_NO_COOP_WEAPON_SPAWN dmflag so that weapons are not determined by class type but by a newly added flag WEAPONSPAWN, to allow CustomInventory replacements to act like weapons when being spawned.
2014-07-27 10:07:37 +02:00
Christoph Oelckers
637aa9d77e
- some adjustments to allow testing the different rendering methods.
2014-07-26 18:43:54 +02:00
Christoph Oelckers
0e647e0f2b
Merge branch 'master' into Glew_Version_For_Real
2014-07-26 10:37:00 +02:00
Christoph Oelckers
8465a5f5d7
Merge branch 'master' of https://github.com/rheit/zdoom
2014-07-26 10:23:41 +02:00
Christoph Oelckers
a21f01bc5f
- added jpalomo's submission to make freelook a 3-state setting, like crouch and jump. This required moving around the flags a bit so demo compatibility had to be bumped. It may also require adjustment for launchers that can set the dmflags.
2014-07-26 10:15:07 +02:00
Christoph Oelckers
f64428dd2a
Merge branch 'master' into Glew_Version_For_Real
2014-07-17 09:31:18 +02:00
Christoph Oelckers
b78b566b0a
Merge branch 'master' of https://github.com/rheit/zdoom
2014-07-17 09:30:50 +02:00
Christoph Oelckers
eb9d2d9917
- reactivate compatibility profile so that immediate mode drawing can be used on older hardware not supporting persistently mapped buffers.
...
- reactivate alpha testing per fixed function pipeline
- use the 'modern' way to define clip planes (GL_CLIP_DISTANCE). This is far more portable than the old glClipPlane method and a lot more robust than checking this in the fragment shader.
2014-07-17 02:37:18 +02:00
Braden Obrzut
bd5bf2a40a
- Expand environment variables for autoload paths.
...
- Forgot to save the French translation file for the last commit, so a few more corrections there.
2014-07-15 21:26:26 -04:00
Braden Obrzut
bfbea40415
- Fixed some typos with chex quest obituaries and French translation error.
2014-07-15 21:20:05 -04:00
Christoph Oelckers
b8bcbe819b
- removed texture based dynamic lighting. For GL 3.x the shader approach is always better.
...
- fixed: sky fog was not unset.
2014-07-15 20:49:21 +02:00
Christoph Oelckers
fc0cf4f998
- GZDoom now runs on an OpenGL core profile. :)
...
It's probably still necessary to replace GLEW with another loader library. GLEW is pretty much broken on core OpenGL without some hacky workarounds...
2014-07-15 02:26:23 +02:00
Christoph Oelckers
6046b11b4f
- all shaders now compile in core profile.
2014-07-15 01:05:53 +02:00
Christoph Oelckers
eedc5a69be
- replaced builtin position vertex attribute.
2014-07-15 01:02:48 +02:00
Christoph Oelckers
1b7f5a2e6a
- replaced builtin texture coordinate vertex attribute.
2014-07-15 00:59:01 +02:00
Christoph Oelckers
5a322742c3
- remove use of builtin and deprecated color vertex attribute.
2014-07-15 00:37:13 +02:00
Christoph Oelckers
5193f6cfef
- remove use of builtin deprecated varyings in shaders.
2014-07-15 00:19:41 +02:00
Christoph Oelckers
ed8a21fd86
- replaced deprecated alpha testing with shader code.
2014-07-14 21:14:43 +02:00
Christoph Oelckers
84a49e37ee
- handle normals for spheremapped mirror surfaces using non-deprecated features.
...
- move all WGL references out of global header files so that global wgl header include is no longer necessary
2014-07-14 19:54:07 +02:00
Christoph Oelckers
ce3653f6e1
- remove all uses of builtin matrices.
2014-07-13 23:13:40 +02:00
Christoph Oelckers
dbb05c5f33
- remove use of builtin texture matrices.
...
- make matrix class single precision.
2014-07-13 20:41:20 +02:00
Christoph Oelckers
00fcf4bc06
- for some reason using world coordinates for clipping in the shader is somewhat imprecise so the clip plane heights have to be adjusted a bit for it.
2014-07-13 13:25:42 +02:00
Christoph Oelckers
60dc2e1122
- some shader fixes.
2014-07-13 13:01:35 +02:00
Christoph Oelckers
d868f60f6c
- since the clip planes for plane mirrors did not work anymore I reimplemented them using shader based logic. It still needs to be seen if this affects performance on older hardware.
2014-07-13 12:14:12 +02:00
Christoph Oelckers
a936629cec
- use default fragment shader for burn and stencil shader, with the time consuming parts disabled by a #define, to avoid code duplication.
2014-07-10 10:33:07 +02:00
Christoph Oelckers
f710518903
- use a uniform array to store vertex data to render dynamic stuff on GL 3.x hardware without the ARB_buffer_storage extension.
...
Due to the way the engine works it needs to render a lot of small primitives with frequent state changes.
But due to the performance of buffer uploads it is impossible to upload each primitive's vertices to a buffer separately because buffer uploads nearly always stall the GPU.
On the other hand, in order to reduce the amount of buffer uploads all the necessary state changes would have to be saved in an array until they can finally be used. This method also imposed an unacceptable overhead.
Fortunately, uploading uniform arrays is very fast and doesn't cause GPU stalls, so now the engine puts the vertex data per primitive into a uniform array and uses a static vertex buffer to index the array in the vertex shader.
This method offers the same performance as immediate mode but only uses core profile features.
2014-06-30 18:10:55 +02:00
Christoph Oelckers
1efc2938b7
- implement model vertex buffer and draw MD2 models using it instead of using the GLCommands from the model.
2014-06-29 23:24:16 +02:00
Christoph Oelckers
9d1dbf4eab
- fixed: FBufferedUniform1f didn'T work because it used an int as its buffered value.
2014-06-29 14:08:44 +02:00
Christoph Oelckers
ffcb6cb70a
- added second vertex coordinate attribute for model interpolation.
2014-06-29 11:00:21 +02:00
Christoph Oelckers
08054ddc34
Merge branch 'master' into Glew_Version_For_Real
2014-06-29 08:53:43 +02:00
Christoph Oelckers
e15f80f640
Merge branch 'master' of https://github.com/rheit/zdoom
2014-06-23 09:27:30 +02:00
Christoph Oelckers
e56e525d0f
- A_FireCustomMissile transfer tranlsation flag, code submission by jpalomo
2014-06-22 08:55:21 +02:00
Christoph Oelckers
6457ced53f
Merge branch 'master' into Glew_Version_For_Real
2014-06-19 11:57:36 +02:00
Christoph Oelckers
d30bf6768e
Merge branch 'master' of https://github.com/rheit/zdoom
2014-06-19 11:20:38 +02:00
Edward Richardson
a3a7ee569f
Multi-intermission waits for all players + changes
...
- Added a segment of code that now makes the intermission wait for all
players before advancing, instead of continuing on any player. A "ready
icon" shows to reflect this.
- The Deathmatch intermisson couldn't show the ready icon (because it
just used the ingame scoreboard), so a proper intermission was added,
which reflects the same design as the coop scoreboard.
- The colour column wasted more space then it should have needed, so it
was replaced with player colour backgrounds.
- Slight y offset adjustments to make everything fit in 320x200
properly.
2014-06-17 19:46:10 +12:00
Christoph Oelckers
2ad47935ef
Merge branch 'master' into Glew_Version_For_Real
2014-06-01 12:43:17 +02:00
Christoph Oelckers
7fedaf9221
Merge branch 'master' of https://github.com/rheit/zdoom
2014-06-01 12:39:13 +02:00
Edward Richardson
e8513a64ed
Rebuild nodes for hellfact map04
2014-06-01 15:32:43 +12:00
Christoph Oelckers
3c5d07e9c6
Merge branch 'master' of https://github.com/rheit/zdoom
2014-05-31 11:05:44 +02:00
Christoph Oelckers
8f5683e23d
- moved secret found message to string table and removed the CVAR crutch that dates from a time when modifying string table content wasn't as easy as it is now.
...
- added 'showsecretsector' CVAR to show the sector number with the secret found message.
2014-05-29 17:50:14 +02:00
Christoph Oelckers
39775cc904
- mystery of desaturation shader solved: The old code passed '1-desaturation' to the shader, the new code 'desaturation', so for the 'mix' function to work its arguments must be swapped.
2014-05-21 15:25:25 +02:00
Christoph Oelckers
54425ee2ef
- fixed: Desaturation factor was applied incorrectly.
...
- Also fixed some very strange thing in the shader's desaturate function. For unknown reasons using the 'mix' function there did not work.
- fixed: The fog boundary special shader could not be used.
2014-05-21 13:40:46 +02:00
Christoph Oelckers
6e6be8ed5b
Merge branch 'master' into Glew_Version_For_Real
2014-05-18 12:47:48 +02:00
Christoph Oelckers
4e64ad847b
Merge branch 'master' of https://github.com/rheit/zdoom
2014-05-15 09:46:47 +02:00
Christoph Oelckers
802a478766
- Heretic doesn't really need dontcrunchcorpses because there was already some alternative handling for that situation.
2014-05-14 14:03:15 +02:00
Christoph Oelckers
51ed68dc72
- forgot to save this...
2014-05-14 13:02:04 +02:00
Christoph Oelckers
388f09f786
- fixed: In Heretic corpses do not get crunched to gibs, they just get their size reduced to 0. Handled by a new gameinfo flag. This also gets set for Chex quest which has the gib sprite replaced by something different. Using a Crush state will override this global flag.
2014-05-14 12:54:03 +02:00
Christoph Oelckers
cf45f2d718
- added missing shader files.
2014-05-12 22:24:26 +02:00
Christoph Oelckers
4d005bdfa0
shader rework
...
All those special shaders have been merged together.
Mostly working but the non-shader lighting seems a bit broken.
2014-05-12 14:45:41 +02:00
Christoph Oelckers
b9a6fe80a4
Do not use the shader to handle STYLEF_RedIsAlpha.
...
Turns out that the name doesn't accurately describe what it does.
It is correct for images that come with their own palette or are true color.
But for images using the game palette it doesn't use the red channel to determine translucency but the palette index! Ugh...
This means it cannot be done with a simple operation in the shader because it won't get a proper source image. The only solution is to create a separate texture.
2014-05-11 23:56:53 +02:00
Christoph Oelckers
7793bbbcc9
Further cleanup of lighting code.
...
- remove thing color from lighting calculations.
- implement alpha textures and inverse sprites for infrared as texture modes. This still requires some handling for the alpha texture mode for non-shader rendering because there is no way in the fixed pipeline to do it. The inverted texture effect can be done with a texture combiner.
- fixed: ThingColor for sprites was set in the wrong place. It must be in the Process function, not in the lighting calculation.
- added functions for isolated calculation of sprites' dynlight color.
2014-05-11 17:56:38 +02:00
Christoph Oelckers
52056a05bd
- changed handling of DynLight in shader to serve as a global dynamic light color for all lighting modes.
2014-05-11 16:49:17 +02:00
Christoph Oelckers
53f4cd0108
- added objectcolor uniform. This will be used to hold the thingcolor for shader based rendering.
2014-05-11 16:06:25 +02:00
Christoph Oelckers
09f4071436
Ok, it had to be done: Removed shader support for pre GLSL 1.3/GL 3.0 hardware. The compromises needed to accomodate these are just too bad and would block any attempt at streamlining the code.
2014-05-11 13:27:51 +02:00
Christoph Oelckers
b09405a8bd
- changed rendering of glowing walls so that it doesn't require an additional vertex attribute, just pass the floor and ceiling planes as uniforms.
2014-05-10 17:09:43 +02:00
Christoph Oelckers
6988156d0f
Merge branch 'master' of https://github.com/rheit/zdoom
2014-05-08 09:49:00 +02:00
Christoph Oelckers
63a0e01c6a
Merge branch 'interpview_optin'
2014-05-08 09:17:00 +02:00
Christoph Oelckers
67ebbe3ed4
made some changes to turn the CF_INTERPVIEW flag when changing angles into an op-in feature instead of making it automatic.
2014-05-08 09:15:56 +02:00
Christoph Oelckers
cc4305e86c
Merge branch 'master' of https://github.com/rheit/zdoom
2014-04-30 01:29:26 +02:00
Christoph Oelckers
94c4f38c58
- added constants for sound channels 5-7.
2014-04-28 01:26:30 +02:00
Christoph Oelckers
97c7f2c5ce
Merge branch 'master' of https://github.com/rheit/zdoom
2014-04-18 12:13:29 +02:00
Christoph Oelckers
7cb828d763
Merge branch 'slowstate' of https://github.com/Gaerzi/zdoom
2014-04-18 09:46:23 +02:00
Gaerzi
60fe07df74
Added slow states to relevant Strife monsters
...
Namely, acolyte, shadow acolyte, reaver, stalker, and turret. Info on
which states needed the slow flag was obtained with Quasar's permission
by looking at G_InitNew() in g_game.c and the info.c state tables from
Chocolate Strife.
Also added fast flag to acolyte states that needed it, based on the same
source.
2014-04-17 17:42:16 +02:00
Christoph Oelckers
29231fa3b7
Merge branch 'master' of https://github.com/rheit/zdoom
2014-04-16 11:34:32 +02:00
Gaerzi
94d47efbb5
Added slow monsters to Strife's easiest skill
2014-04-15 21:02:20 +02:00
Christoph Oelckers
745b147d18
- fixed typo in xlat files (they don't use exactly C syntax.)
2014-04-15 16:40:53 +02:00
Christoph Oelckers
dbefac81d8
Merge branch 'master' of https://github.com/rheit/zdoom
2014-04-15 09:26:05 +02:00
Gaerzi
580094a792
More editing flags
...
PSX-inspired flags to change the render styles of monsters (and other
things).
2014-04-10 12:32:23 +02:00
Christoph Oelckers
e983649731
Merge branch 'master' of https://github.com/rheit/zdoom
2014-03-31 16:02:43 +02:00
alexey.lysiuk
a97b068ed7
Enable fighting between different types of gargoyles and golems
...
In vanilla Heretic:
- Gargoyles are able to fight with Fire Gargoyles
- Golems are able to fight with Nitro Golems, both regular and ghosted versions
2014-03-30 13:27:27 +03:00
alexey.lysiuk
6a958b032c
Add NOBLOOD flag to Heresiarch actor
...
Heresiarch entity in vanilla Hexen doesn't spawn blood when hit
2014-03-18 12:29:14 +02:00
alexey.lysiuk
3c8e9b6dc0
Fix incorrect Maulotaur melee attack sound
...
It was STFHIT instead of STFPOW
2014-03-16 12:29:04 +02:00
Christoph Oelckers
4a23b97963
Merge branch 'master' of https://github.com/rheit/zdoom
2014-03-01 14:41:00 +01:00
Randy Heit
e7f427aa60
Merge branch 'maint'
2014-02-24 19:26:50 -06:00