Christoph Oelckers
1eb1d8d280
- fixed math imprecisions in horizon vertex generation.
...
Floats are not precise enough to be used as a loop counter.
2018-09-09 08:57:50 +02:00
Christoph Oelckers
1c3d4b46c6
- fixed the use of Doom-Legacy-style 3D floor lighting in light mode 8.
...
Legacy used some strange blending formula to calculate its colormaps for colored 3D floor lighting, this is not available in the software lighting mode, so for these the engine has to temporarily revert to light mode 2 to render them correctly.
2018-09-08 13:08:04 +02:00
Christoph Oelckers
3dcaa509ef
Merge branch 'master' of https://github.com/coelckers/gzdoom
2018-09-08 12:10:34 +02:00
Christoph Oelckers
dd971805af
- fixed: The viewpoint buffer was mapped write only but read from. On old hardware it wasn't even mapped.
...
Changed to cache the needed value in a CPU-side array so that the buffer access is not needed.
2018-09-08 10:16:31 +02:00
Christoph Oelckers
8b26b6dd1e
- reworked fog uniforms to move the global fog mode setting to the viewpoint buffer.
2018-09-06 19:14:30 +02:00
alexey.lysiuk
0e6af71376
- improved SDL_GetWindowBordersSize() pointer loading
...
https://forum.zdoom.org/viewtopic.php?t=61913
2018-09-04 18:19:01 +03:00
Christoph Oelckers
f007473a9f
- fixed memory leak with wipes set to pff.
...
In this case the start screen's texture wasn't destroyed.
2018-09-02 21:13:58 +02:00
Christoph Oelckers
22e8c57a59
- reset the viewpoint buffer only once per scene, not per viewpoint.
...
This doesn't work for camera textures because they are a separate viewpoint.
2018-09-02 20:05:36 +02:00
Christoph Oelckers
5e39890118
- use a uniform buffer for per-scene data like rotation matrices.
2018-09-02 18:40:36 +02:00
Christoph Oelckers
4571aa52f0
- fixed bad code for OP_SRL_KR.
2018-09-02 18:20:38 +02:00
alexey.lysiuk
207988bb1b
- fixed crash when wipe type is set to none
2018-09-02 15:15:38 +03:00
Christoph Oelckers
b570f28597
- restored block of code that got deleted by a bad merge of a cherry-picked commit.
2018-09-02 12:43:13 +02:00
Christoph Oelckers
bec1825e8c
- fixed: The wipe textures need to be rendered with DTA_Masked set to false because they contain bogus alpha values where a stencil got rendered.
2018-09-02 12:30:40 +02:00
Christoph Oelckers
bec588eaf4
- moved the two remaining functions from gl_wipe.cpp to gl_framebuffer.cpp and deleted the file.
...
The single most hideous thing in the GL renderer is finally gone. :)
2018-09-02 12:03:18 +02:00
Christoph Oelckers
775ddfa0a8
- fixed the melt wipe.
2018-09-02 12:03:18 +02:00
Christoph Oelckers
6e0ed3e930
- crossfade wipe is working again.
...
The other two types still need work.
2018-09-02 12:03:17 +02:00
Christoph Oelckers
29a54c33b2
- temporarily disabled wipe code and removed old function stubs.
...
This still needs work.
# Conflicts:
# src/gl/data/gl_attributebuffer.cpp
2018-09-02 12:02:59 +02:00
Christoph Oelckers
e4a40c98ce
- wasn't saved
2018-09-02 12:02:36 +02:00
Christoph Oelckers
9af01c4667
- Untested wipe refactor
...
# Conflicts:
# src/gl/renderer/gl_renderer.cpp
# src/gl/system/gl_wipe.cpp
# src/hwrenderer/scene/hw_attributebuffer.cpp
2018-09-02 12:02:36 +02:00
Christoph Oelckers
ecf6e3f620
Sanitized the Being/End2D interface so that it can be used to keep the attribute buffer mapped while processing 2D commands.
...
For this to work the 2D mode has to be properly set and unset at the right places so that no double mapping occurs and no render operation can happen while in 2D mode.
# Conflicts:
# src/d_main.cpp
# src/v_video.h
2018-09-02 11:59:01 +02:00
Christoph Oelckers
2d1043d1d3
- added profiling for postprocessing code.
2018-09-02 11:35:02 +02:00
Kevin Caccamo
55d1613ea4
Update usage of LastIndexOf
...
Now that LastIndexOf works properly, update the code that uses it to find OBJ models
Also, make UE1 model finder use LastIndexOf
2018-09-01 07:28:26 +02:00
Kevin Caccamo
a38b0813cf
Fix OBJ rendering in software renderers, and other things
...
Pass surf->vbStart to SetupFrame instead of 0, and pass 0 to DrawArrays instead of surf->vbStart.
Use a potentially faster method of modifying the OBJ file text buffer by modifying it directly.
Add RealignVector and FixUV methods to begin work on re-aligning OBJ models to the same orientation as MD3 models.
Re-align OBJ models to match MD3 models
Fix normal calculation for re-aligned OBJs
Ensure AddSkins does not go out of bounds of surfaceskinIDs
Do not precache skins that were replaced by the user.
Fix OBJs with a large number of materials not being fully rendered
Print a warning message if a material referenced by the OBJ could not be found.
Free surface triangles once they are no longer needed
Also, use continue instead of return so that surfaces after those with missing materials are still rendered.
Fail if a face side has no vertex reference. Vertex references are required for a valid OBJ.
Clean up OBJ model code
Remove commented code, mainly Printf's that aren't used any more.
Add more documentation comments, and tweak existing documentation comments
Replace ParseVector2 and ParseVector3 with a template ParseVector function
2018-09-01 07:28:26 +02:00
Kevin Caccamo
bb8c66b3a0
Fix rendering and parsing of OBJ models
...
Create a new surface for each 'usemtl' statement in the OBJ file, and fix memory errors caused by TriangulateQuad.
Calculate missing normals, and fix incorrect UV coordinates
Fix construction of vertex buffer for objects with multiple surfaces
Localize curMtl, curSurface, aggSurfFaceCount, and curSurfFaceCount to FOBJModel::Load(), since they are not used anywhere else.
Fix parsing of OBJs without UV references
Internally, I replaced hashtag line comments with C-style line comments, and I replaced each forward slash with newSideSep.
If no UV coordinates are available, add a default vector of (0,0).
Also, remove "this->" from ResolveIndex to make the code a bit cleaner, and fix a minor garbage issue I failed to notice earlier (normref would pick up garbage if there was no normal reference).
Ensure usemtl statements remain intact
It may be a bit inefficient, but I tried modifying the buffer directly, and I got memory corruption errors. In this case, it's a lot better to be safe than sorry.
2018-09-01 07:28:26 +02:00
Kevin Caccamo
1c15fb2408
Initial work on OBJ model support
...
What works:
- Parsing the model
- Constructing geometry (surfaces) for triangulated models
What doesn't:
- Rendering the model
- Building the vertex buffer
- Triangulating quads
2018-09-01 07:28:26 +02:00
ZippeyKeys12
c8e55fed46
Moved FConfigFile over to FileReader/FileWriter
...
Don't use new operator, use value instead
2018-08-31 14:29:37 +02:00
alexey.lysiuk
050d72724f
- fixed: always initialize active colors in special font
...
https://forum.zdoom.org/viewtopic.php?t=61859
2018-08-31 10:42:53 +03:00
Jonathan Russell
ea81ab4097
- added Screen.DrawThickLine for drawing lines with thickness
2018-08-30 19:21:57 +02:00
Braden Obrzut
aaee655eba
- Added paths for all games on Steam for Linux since they now offer the ability to download all games for Proton/Wine.
...
- Check ~/.steam on Linux for the config since either they moved it at some point or my setup changed and that's where it is for me now.
2018-08-29 19:08:54 +02:00
Rachael Alexanderson
4d3249496a
- fixed: sound from poly objects through portals will now propegate properly
2018-08-25 18:23:59 -04:00
Christoph Oelckers
5b7d3c91f9
- defaulted constructors and assignment operators of several trivial types.
2018-08-25 23:51:36 +02:00
Rachael Alexanderson
0c4e6f88a6
- bump ZScript version number to 3.6.0, since GZDoom 3.5.1 updated it and that's not yet reflected in the master.
2018-08-25 16:46:09 -04:00
Christoph Oelckers
d263f7bcc8
- removed most of the old LastIndexOf methods in FString, only leaving one for ZScript and clearly giving it a name that says it all. RIndexOf has been made the proper version of LastIndexOf internally now.
2018-08-25 20:54:16 +02:00
Christoph Oelckers
c04c48d157
- renamed RIndexOf to RightIndexOf
2018-08-25 20:39:58 +02:00
Kevin Caccamo
884de51b70
Add the "RIndexOf" method to FString, which works like String.lastIndexOf from JavaScript
...
RIndexOf returns the index where the substring starts, instead of the index where the substring ends - 1.
Deprecate the LastIndexOf method of StringStruct
2018-08-25 20:37:40 +02:00
Rachael Alexanderson
a99b71e19a
- disable survey code, 3.5.0's is over
2018-08-23 15:09:40 -04:00
Magnus Norddahl
01ea329cd4
- only render visual portals if they are front facing
2018-08-23 18:19:53 +02:00
argv-minus-one
1d930b45cf
Add ZScript method LevelLocals.SphericalCoords
.
...
It computes spherical coordinates from one point in the world to another. Useful for checking whether one actor is inside another actor's view cone.
2018-08-21 08:22:16 +02:00
Christopher Bruns
03fa1a12cb
Avoid overriding vr eye-specific buffer binding during 2D rendering.
2018-08-20 00:59:52 +02:00
Christoph Oelckers
fad406c4c9
- got rid of FNameNoInit and made the default constructor of FName non-initializing.
...
This setup has been a constant source of problems so now I reviewed all uses of FName to make sure that everything that needs to be initialized is done manually.
This also merges the player_t constructor into the class definition as default values.
2018-08-19 08:19:19 +02:00
alexey.lysiuk
34f2d8f310
- fixed typo in error message
2018-08-18 17:45:26 +03:00
alexey.lysiuk
12b8510574
- cleaned up inconsistent leading whitespaces
...
Bump copyright year as well
2018-08-18 16:05:33 +03:00
alexey.lysiuk
31bd7cfc04
- prohibit assignment of dynamic arrays
...
https://forum.zdoom.org/viewtopic.php?t=61682
2018-08-18 15:20:38 +03:00
alexey.lysiuk
d965c9aa76
- support static const arrays inside structs
...
https://forum.zdoom.org/viewtopic.php?t=61677
2018-08-18 13:00:33 +03:00
Marisa Kirisame
20b6db30d7
Added missing check for HITOWNER on bouncers with 0 damage.
2018-08-17 21:39:41 +02:00
Marisa Kirisame
155afebb65
Add HITOWNER flag, when set, allows a projectile to collide with its shooter.
2018-08-17 19:47:12 +02:00
Marisa Kirisame
02926a5567
Add "IsFinal" parameter for CheckReplacement.
...
If set to true it guarantees that the replacement is final and will not go through the rest of the replacement chain.
2018-08-16 21:44:21 +02:00
Marisa Kirisame
4e690b1f60
Fix SDL window "sticking" to the center of the screen after using vid_setsize.
2018-08-15 21:03:07 +02:00
Marisa Kirisame
e18b17217f
Added CheckReplacement to event handlers, a function inspired by its namesake in Unreal's Mutator class.
...
Performs runtime replacement of actor classes.
Takes priority over the "replaces" keyword in both DECORATE and ZScript.
2018-08-15 19:31:09 +02:00
Christoph Oelckers
96ec6b1dc6
- fixed FS camera for real.
2018-08-14 21:12:50 +02:00
Christoph Oelckers
57ed4df85e
- fixed FraggleScript's moving camera.
...
The logic here was a bit more complicated than I assumed but it was all buried in a heap of code that tried to deal with angular wraparounds in the BAM format.
2018-08-13 20:48:27 +02:00
Christoph Oelckers
c33f358894
- clear GLWF_TRANSLUCENT at the end of PutWall.
2018-08-13 20:48:27 +02:00
argv-minus-one
a10f9526bc
Bump ZScript version to 3.5.0.
...
When GZDoom 3.5.0 was released, the ZScript version in the release commit was set to 3.5.0, but on master it was left at 3.4.0.
In the future, I suggest setting the ZScript version *before* making a release commit. Then master will remain up to date.
2018-08-12 10:01:27 +02:00
alexey.lysiuk
b6ff468aaf
- creation of dither texture no longer affects active unit
...
Red checkerboard was rendered upon startup instead of
* the first saved game's thumbnail
* the first game frame
2018-08-12 10:55:24 +03:00
Christoph Oelckers
19a5a2fd2b
- fixed dither math.
2018-08-11 09:27:35 +02:00
Rachael Alexanderson
ecdc485e05
- Allow specifying monitor bits-per-channel for dithering output. Not all displays are created equal, so this option is actually important for specifying the exact amount for your display.
2018-08-09 15:13:26 -04:00
Magnus Norddahl
d121fa21bf
- add gl_dither for toggling dithered output on and off
2018-08-08 21:58:23 +02:00
Christoph Oelckers
863b9fff8a
Make dither texture data constant
2018-08-08 08:43:46 +02:00
Rachael Alexanderson
24e2c3a611
- replace dither texture with a hand pre-calculated table)
2018-08-07 20:47:17 -04:00
Magnus Norddahl
31addbc859
- use a texture for the dither matrix
2018-08-08 00:54:12 +02:00
Marisa Kirisame
51b57cebb1
Additional blocking-related flags for Actor.LineTrace()
2018-08-05 09:42:40 -04:00
Marisa Kirisame
a2f7d36dc3
Fix model rendering only using interpolated yaw. Pitch and roll are now also interpolated.
2018-08-05 09:40:01 -04:00
Magnus Norddahl
48c83d36b5
- add post processing support to the software renderer and softpoly
2018-08-04 14:58:55 +02:00
David Carlier
1e11ce3bee
Texture data overlap occuring here, using memmove instead.
2018-08-04 09:21:55 +03:00
alexey.lysiuk
9d2b7e560b
- fixed compilation warning reported by MSVC
...
src\r_data\models\models_ue1.cpp(103): warning C4244: 'argument': conversion from 'int' to 'float', possible loss of data
2018-08-03 16:29:13 +03:00
alexey.lysiuk
eeec943cc0
- bump version number
2018-08-03 16:27:37 +03:00
Rachael Alexanderson
bd1e484c1e
- redo the menu a bit, add in some C++ support code to make it a little bit more flexible
...
- further tweaks. reduce clutter in custom resolution submenu by moving it to another
- add 'prevmenu' ccmd
2018-08-02 07:37:07 -04:00
Magnus Norddahl
00ada6cf56
fix: softpoly TEXTURES sprites with scale of 2 are tiled
2018-07-30 22:09:40 +02:00
Magnus Norddahl
5b8a016cad
- add vid_hdr cvar that enables higher than 8bpc output for monitors that support it
2018-07-30 22:01:05 +02:00
Christoph Oelckers
a516210b18
- always retrieve uniform buffer properties.
...
They are sometimes needed even if shader storage buffers are available.
2018-07-29 21:31:16 +02:00
Christoph Oelckers
6634416b89
- allow skipping optional arguments of the parent function in a virtual override definition.
...
This is mainly to allow retroactive addition to existing virtual functions without breaking existing content.
The MeansOfDeath fix for Actor.Die would not be possible without such handling.
2018-07-29 17:00:05 +02:00
Christoph Oelckers
ff69d945e1
- fixed: A global variable was used to pass MeansOfDeath to ClientObituary.
...
The problem here is that this affects the public scripting interface so it cannot be committed to master without further adjustments.
# Conflicts:
# src/p_interaction.cpp
2018-07-29 17:00:05 +02:00
alexey.lysiuk
269ca3155a
- fixed buffer overflow in saved game comment
...
https://forum.zdoom.org/viewtopic.php?t=61465
2018-07-29 11:29:29 +03:00
alexey.lysiuk
e9041c0697
- fixed potential garbage collection of still referenced objects
...
Objects from dynamic array stored in items of array of structures were incorrectly treated as unreachable
https://forum.zdoom.org/viewtopic.php?t=61354
2018-07-28 19:34:20 +02:00
Christoph Oelckers
7e69cd862e
- restore the viewport after the SSAO pass.
...
This runs through the generic postprocessing code which restores the screen's viewport but since this is run in the middle of the scene it needs to restore the scene's viewport (i.e. the window controlled by screenblocks.)
2018-07-28 19:01:34 +02:00
Marisa Kirisame
66f616dc1a
Set default window size to 80% of current display in SDL.
...
Make vid_setsize center window on current display in SDL.
2018-07-28 17:45:19 +02:00
alexey.lysiuk
477d2d0389
- center Cocoa window on vid_setsize CCMD
2018-07-28 18:17:25 +03:00
Christoph Oelckers
7c39773f98
- somehow the fullscreen default got reset...
2018-07-28 14:28:48 +02:00
alexey.lysiuk
8fab9f8c13
- set default window size to 80% of screen in Cocoa backend
2018-07-28 15:05:06 +03:00
Christoph Oelckers
9768698eda
- do not use SSBOs for dynamic lights on Intel graphics hardware for performance reasons.
...
This was already disabled for GL 4.4 and lower but also needs to be done for Intel's GL 4.5 drivers.
Unlike before this is now exclusive to the light buffer, the shadowmap feature is not affected anymore, although that should be impossible to use anyway on all affected hardware due to lack of computing power.
2018-07-28 12:43:35 +02:00
Christoph Oelckers
843e9e950f
- make the non-fullscreen window default to 80% of the current display size on Windows.
2018-07-28 11:57:51 +02:00
alexey.lysiuk
d58fe1f78a
- fixed compilation of Cocoa backend
...
src/posix/cocoa/i_main.mm:262:2: error: use of undeclared identifier 'fullscreen'
2018-07-28 12:24:23 +03:00
Christoph Oelckers
0d8d860c93
- moved the win_* CVARs to a single platform independent location.
2018-07-28 10:27:41 +02:00
Christoph Oelckers
3b53f31da3
- default to fullscreen display.
2018-07-28 10:05:50 +02:00
Magnus Norddahl
990f02d7c5
- add support for specifying the exact thread count to r_multithreaded and r_scene_multithreaded
2018-07-28 04:57:23 +02:00
Christoph Oelckers
c60b4239ed
- more parentheses.
2018-07-27 20:55:57 +02:00
Christoph Oelckers
bb5dc92225
- added information about full OpenGL features support to survey code.
2018-07-27 20:47:23 +02:00
Marisa Kirisame
79f0deaff4
Implement vid_setsize on SDL backend.
2018-07-25 10:34:52 +03:00
Christoph Oelckers
96bb8a779c
- fixed incomplete reordering of code.
2018-07-23 21:17:57 +02:00
Christoph Oelckers
6076f0a69d
- disable any texture clamping for textures with a user shader.
...
This cannot be reliably determined so the least restrictive setting must be used.
2018-07-23 17:53:35 +02:00
alexey.lysiuk
3a6e05710a
- fixed missing decals on 3D floors with hardware renderer
...
https://forum.zdoom.org/viewtopic.php?t=61404
2018-07-23 16:46:51 +03:00
Rachael Alexanderson
63393e8f1a
- fixed: use templates.h
function for minimal value check
...
- fixed: it was `MAX` all along, not `min` :P
2018-07-22 18:08:54 -04:00
Magnus Norddahl
b1468d9dcc
- somehow visual studio 2015 miscompiles this so badly it triggers an out of bounds assert in STL!
2018-07-22 22:51:08 +02:00
Christoph Oelckers
2382b9a238
- fixed: GLScenePortal did not forward IsSky to its backing object.
2018-07-22 21:18:00 +02:00
Rachael Alexanderson
fccb0b76c6
- fixed: correct the functionality of the 'min' function in the scaling code
2018-07-22 12:34:33 -04:00
Rachael Alexanderson
8cb281bf42
- fixed: I misnamed the function in my last commit, it should've been called 'min' not 'max'
2018-07-22 12:07:46 -04:00
Rachael Alexanderson
682b0ebf48
- enforce 320x200 minimum in actual scaling code
2018-07-22 12:05:16 -04:00
Christoph Oelckers
d84497c85a
- don't let the video scale let the screen end up with a client size less than 320x200, which may cause undefined behavior and trigger asserts in debug builds.
2018-07-22 11:40:12 +02:00
Christoph Oelckers
6d0b172762
- added MF8_DONTFACETALKER flag which prevents NPCs from facing the player in conversations.
2018-07-22 11:32:45 +02:00
alexey.lysiuk
051521a898
- set minimum size for Cocoa window
2018-07-22 12:10:06 +03:00
alexey.lysiuk
43d472328c
- implemented vid_setsize CCMD in Cocoa backend
2018-07-22 11:16:48 +03:00
alexey.lysiuk
4bb125d76c
- removed obsolete list of video modes
2018-07-22 11:04:38 +03:00
Rachael Alexanderson
f71b5154c7
- fix vid_showcurrentscaling so that it works even when vid_scalemode is 2 or greater.
2018-07-21 22:27:43 -04:00
Rachael Alexanderson
e4fd6ee03f
- the error checking on the previous commit should've been done slightly differently
2018-07-21 21:51:37 -04:00
Rachael Alexanderson
d7b7ae06e7
- implement a new vid_scalemode: 5 - this allows the usage of custom absolute scaling modes
...
- new ccmd: vid_setscale <x> <y> [linear] [fake-mcga-4:3] - sets vid_scalemode to 5 with the absolute scaling parameters. example: vid_scalemode 800 600 allows you to see the screen (stretched) as if it were 800x600. Linear specifies whether to force the scaling to be linear in this mode, and "fake-mcga-4:3" is meant for 320x200-like modes that mimic mode13h scaling.
2018-07-21 21:39:35 -04:00
Christoph Oelckers
156ed5790e
- added vid_setsize CCMD and fixed some issues with window restoration when switching from fullscreen.
...
Windows apparently cannot both undo borderless fullscreen and resize the window at the same time, so this must delay the resizing one frame.
2018-07-21 21:32:02 +02:00
Christoph Oelckers
369267bbe9
- adjusted stat code for the new survey.
2018-07-21 19:14:11 +02:00
Rachael Alexanderson
21575bc3df
- re-enable stats sending
...
- re-direct stats sending to new stats script
2018-07-21 07:21:37 -04:00
Christoph Oelckers
6ca2b3fce1
- fixed display for smaller screeblocks value.
...
When refactoring the screen scaling one line too many was altered by accident.
2018-07-21 12:13:17 +02:00
Christoph Oelckers
57f65a9379
- fixed: The 2D drawer did not restore the blend mode after finishing.
2018-07-20 19:46:53 +02:00
Christoph Oelckers
18213f377c
- fixed: Inventory items that have been modified with Dehacked to be monsters should not be killed by P_Massacre when being owned.
2018-07-20 11:43:49 +02:00
Christoph Oelckers
2a0c3e63a3
- allow temporary strings to be used as self pointer for String's member functions.
...
Due to how function calls get resolved by the code generator there were some incorrect flags on the self pointer which triggered an assert and caused incorrect code generation.
Fortunately this was a mostly contained special case for which a workaround was possible.
2018-07-20 10:38:55 +02:00
Christoph Oelckers
4a7b1aada7
Merge remote-tracking branch 'remotes/origin/modern'
...
# Conflicts:
# wadsrc/static/shaders/glsl/main.fp
2018-07-20 10:19:07 +02:00
Magnus Norddahl
a841602d70
- change the software renderer to render to a DSimpleCanvas like the old D3D9 target did. Then use the drawer threads to memcpy the result to the PBO
2018-07-20 05:48:15 +02:00
alexey.lysiuk
4d35b12808
- fixed crash on accessing state owner during VM abort
...
https://forum.zdoom.org/viewtopic.php?t=61338
2018-07-19 13:38:49 +03:00
Magnus Norddahl
7da61ddfee
- fix missing forward declaration when falling back to older user shaders
2018-07-19 02:34:45 +02:00
Magnus Norddahl
a0a7fd53e8
- change software renderer back to writing directly into the pixel buffer object, but change the creation and mapping so that hopefully all vendors put it in system memory
2018-07-18 17:47:09 +02:00
Magnus Norddahl
23c0f8f6ac
- fix buffer usage warning caused by using the wrong flag for glMapBuffer after switching to doing a plain memcpy
2018-07-18 16:04:35 +02:00
Magnus Norddahl
e93d1e3ebc
- change software renderer upload code to use GL_STREAM_DRAW and a memcpy from system memory
2018-07-18 06:46:30 +02:00
alexey.lysiuk
4e2385e912
- load common conversation lumps regardless of map naming scheme
...
https://forum.zdoom.org/viewtopic.php?t=61313
2018-07-17 12:56:23 +03:00
alexey.lysiuk
b2697a99f8
- added missing null pointer checks to VM ops
2018-07-16 17:10:47 +03:00
Magnus Norddahl
1ef9938320
- fix user defines and textures not working
2018-07-15 23:34:58 +02:00
Magnus Norddahl
fcb14494d7
- improve the gldefs syntax by allowing the shader to be specified in the material section
2018-07-15 23:21:06 +02:00
Magnus Norddahl
8a500a25f5
- rewrite the user shader support for materials - new syntax is to create a 'Material ProcessMaterial()' function
2018-07-15 23:01:40 +02:00
Christoph Oelckers
79b3c41677
- fixed titlepic animation.
...
It needed more than using the animated accessor. The code here nearly went out of its way to circumvent the texture manager's built in logic.
2018-07-15 22:51:25 +02:00
Christoph Oelckers
f62e2f9ba3
- fixed: The stencil cap may never write to the depth buffer.
...
Due to the way nested portals work this will block rendering of the nested cap entriely and cause some visual glitches when looking straight up or down in such a sector.
2018-07-15 19:16:12 +02:00
alexey.lysiuk
f554120086
- output Mac model identifier to startup window
2018-07-15 14:28:21 +03:00
alexey.lysiuk
5c7dd28f7d
- replaced deprecated macOS functions in paths handling
2018-07-15 13:20:36 +03:00
alexey.lysiuk
fc7af31cb9
- replaced usage of deprecated APIs to get macOS version
2018-07-15 13:20:36 +03:00
alexey.lysiuk
ccf056a888
- increased minimum macOS version to 10.9 in .plist
2018-07-15 13:20:36 +03:00
alexey.lysiuk
e2ac5cdf57
- removed unused macOS specific #include
2018-07-15 13:20:36 +03:00
Christoph Oelckers
7c527de374
- call P_PlayerStartStomp only when the map is played directly from the loaded data and only when it has been fully loaded.
...
The old code did this right in the middle of map initialization where not everything had been set up yet.
2018-07-15 10:57:10 +02:00
Christoph Oelckers
2c86c4e942
- fixed: When deleting a camera texture's depth buffer, the corresponding variable must also be cleared.
...
Thanks to OpenGL's messed up state system this didn't cause some clear failure but just reused the last bound buffer instead which may not have had a matching size.
2018-07-15 10:55:34 +02:00
Christoph Oelckers
d58d1e21d0
- removed the texture invalidation check from FHardwareTexture.
...
This is not needed anymore because only warp and camera textures still implement CheckModified and both are excluded here.
2018-07-15 00:28:16 +02:00
Christoph Oelckers
1294f3df64
- replaced the procedural backdrop texture with some warped noise texture.
...
This was done because the backdrop as implemented was the only texture in the entire game that had to be deleted and recreated each frame.
However, with Vulkan this would have necessitated quite a bit of synchronization with the render pipeline which wasn't really feasible just for this one single texture.
Now the texture manager can assume that once a texture was created it will be immutable and never has to change.
2018-07-15 00:00:00 +02:00
Christoph Oelckers
7a692b1557
- added DTA_LegacyRenderStyle so that STYLE_* constants can be passed directly to the Draw functions.
...
- fixed the optional parameter in Shape2D.Clear.
2018-07-14 22:58:24 +02:00
Christoph Oelckers
ed856085f4
- use the Dim function to draw the palette tester.
...
This looks better, consumes less resources and removes one ugly special texture from the engine.
2018-07-14 18:28:12 +02:00
Christoph Oelckers
33ee0f3c27
Merge branch 'master' into modern
...
# Conflicts:
# src/gl/renderer/gl_renderer.cpp
# src/gl/renderer/gl_renderer.h
# src/gl/renderer/gl_renderstate.h
# src/gl/system/gl_framebuffer.cpp
# src/gl/system/gl_framebuffer.h
2018-07-14 13:18:34 +02:00
Christoph Oelckers
7817e6a7b2
- moved the texture binding code back to the OpenGL specific parts.
...
turns out that this cannot be consolidated with Vulkan because the semantics are far too different here.
2018-07-14 13:05:49 +02:00
Christoph Oelckers
69a3271440
- removed the unused feature to allow animated material layers.
...
This was a relic from trying to support ZDoomGL's texture shader system but would make texture management with Vulkan significantly more complicated because it would require dynamic descriptor set management for textures which can cause a lot of overhead.
2018-07-14 12:10:41 +02:00
usernameak
7de9e1f097
Added ability to set defines in custom HW shaders
2018-07-14 12:01:54 +02:00
usernameak
e306d4ee04
Fix codestyle; add ability to name the textures
2018-07-14 12:01:54 +02:00
usernameak
fa51a54042
Made ability to define custom material shaders for ProcessMaterial function
2018-07-14 12:01:54 +02:00
usernameak
292458ee2d
Custom hardware shaders now can use custom texture units
2018-07-14 12:01:54 +02:00
Christoph Oelckers
124fe63d00
Merge branch 'master' into modern
2018-07-14 10:24:41 +02:00
Marisa Kirisame
2d0fb4ed2e
Adds 2D shape (triangle array) drawer, usable from ZScript. Handles most drawtexture parameters excluding those related to scaling, at the moment.
2018-07-13 20:24:06 +02:00
alexey.lysiuk
23a4daac23
- skipped owned items in proximity test
...
https://forum.zdoom.org/viewtopic.php?t=61224
2018-07-11 17:49:30 +02:00
alexey.lysiuk
55ae431c02
- fixed crash on setting particular CVARs
...
Game crashed when any of gl_brightfog, gl_lightadditivesurfaces, gl_notexturefill CVARs is set with no level loaded
There was impossible to reset settings to defaults because of this
2018-07-07 12:04:41 +03:00
David Carlier
2a59327aeb
foo being allocated with metadata based allocator needs to
...
be freed similarly.
2018-07-06 10:59:23 +03:00
Marisa Kirisame
e5249f302a
UE1: Clean up and restructure model class.
...
UE1: Add support for Deus Ex format vertex data.
UE1: Group triangles by skin index AND type/flags (preparation for per-surface render style support).
UE1: Add handling of Weapon Triangle (preparation for model attachment support).
UE1: Support flat shaded triangle flag.
2018-07-04 21:31:48 +02:00
Magnus Norddahl
ebae12e74b
- Make members private that are not used outside FGLRenderBuffers
2018-07-03 23:35:34 +02:00
Magnus Norddahl
092b2953ea
- add GL to OpenGL specific postprocess classes to make it more clear which belongs to the generic hw interface and which belong to the OpenGL implementation
2018-07-03 23:31:40 +02:00
Magnus Norddahl
2128b99117
- fix ssao not working when multisample was off
2018-07-03 23:21:54 +02:00
Magnus Norddahl
128c8d8318
- improve the bloom blur quality slightly
2018-07-03 23:12:47 +02:00
Magnus Norddahl
fcee021753
Fix frame buffer binding bug that caused PP textures to end up with bad data
2018-07-03 21:44:49 +02:00
Christoph Oelckers
158890e0ce
- fixed : Decals used the wrong texture variant.
2018-07-02 19:12:48 +02:00
Magnus Norddahl
2e5b7a7d8b
- softpoly: fix sprites still lit when dynlights off
2018-07-01 20:53:50 +02:00
Magnus Norddahl
6d6ee1281e
- softpoly: fix normal walls not getting rendered for subsectors with poly objects in them
2018-07-01 14:41:35 +02:00
Magnus Norddahl
4482ad2b78
- fix saved texture bindings to work for any number of binds
2018-07-01 14:31:30 +02:00
alexey.lysiuk
0a139e90fb
- restored initial clamping for blend colors
...
https://forum.zdoom.org/viewtopic.php?t=61134
2018-06-30 20:27:04 +03:00
Magnus Norddahl
5b3212df13
Merge remote-tracking branch 'gzdoom/modern' into hw_postprocess
2018-06-30 16:47:06 +02:00
Magnus Norddahl
c0c7573788
- fix black ssao bug
2018-06-30 16:46:33 +02:00
Magnus Norddahl
8eb825e25a
- fix some postprocess bugs
2018-06-30 16:44:09 +02:00
Magnus Norddahl
ba09af7cbb
- add GL debug group for the 2D drawer
...
- remove pointless opengl calls from effects that are doing nothing
2018-06-30 15:41:12 +02:00
Magnus Norddahl
723b18f2cd
Merge branch 'hw_postprocess' of https://github.com/coelckers/gzdoom into hw_postprocess
2018-06-30 15:24:25 +02:00
Magnus Norddahl
35c13763db
- convert the SSAO pass to use hw_postprocess
2018-06-30 15:24:13 +02:00
alexey.lysiuk
43b94d829e
- fixed crash when actor is destroyed during spawning
...
This only applies to spawning via summon... CCMDs
Now 'summon decal 0' no longer crashes the game
2018-06-30 15:11:21 +03:00
alexey.lysiuk
5d27c16f30
- disabled default values for out parameters
...
https://forum.zdoom.org/viewtopic.php?t=61128
2018-06-30 11:44:22 +03:00
alexey.lysiuk
1d937b9f3c
- removed Class identifier workaround from Cocoa backend
2018-06-30 11:43:30 +03:00
alexey.lysiuk
49f2e75ee4
- removed support of legacy OpenGL profile in Cocoa backend
...
Minimum OpenGL version is now 3.3 and so, the given legacy fallback doesn't make any sense
This increases required macOS version to 10.9 as on previous versions nothing but a black screen was rendered
2018-06-30 11:13:12 +03:00
alexey.lysiuk
a1d5833c8a
- reset framebuffer pointer on destruction in Cocoa backend
...
Added debug validation of framebuffer pointer as well
2018-06-30 11:06:41 +03:00
alexey.lysiuk
da005fa7fc
Fixed compilation warnings reported by Clang
...
hwrenderer/postprocessing/hw_postprocess.cpp:22:3: warning: delete called on non-final 'PPEffectManager' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
hwrenderer/postprocessing/hw_postprocess.h:64:5: warning: cannot delete expression with pointer-to-'void' type 'void *' [-Wdelete-incomplete]
hwrenderer/postprocessing/hw_postprocess.h:75:3: warning: cannot delete expression with pointer-to-'void' type 'void *' [-Wdelete-incomplete]
hwrenderer/postprocessing/hw_postprocess.h:85:4: warning: cannot delete expression with pointer-to-'void' type 'void *' [-Wdelete-incomplete]
2018-06-30 10:51:47 +03:00
Magnus Norddahl
ecb5d69ae3
- Simplify FGLRenderer::PostProcessScene
2018-06-29 21:55:46 +02:00
Magnus Norddahl
a7529ce3b4
Merge remote-tracking branch 'gzdoom/modern' into hw_postprocess
2018-06-29 20:24:32 +02:00
alexey.lysiuk
651e735246
Merge branch 'master' into modern
2018-06-29 17:51:10 +03:00
alexey.lysiuk
ecb5bfec13
- removed obsolete code from POSIX backends
2018-06-29 17:50:19 +03:00
alexey.lysiuk
1ebc169d56
- fixed potential crash on fatal error in Cocoa backend
...
Early fatal error can be triggered when native OpenGL frame buffer is not created yet and DDummyFrameBuffer is still used
2018-06-29 17:50:19 +03:00
alexey.lysiuk
907ce777a3
- added extra validation for status bar classes
...
Print a message when status bar class defined in GAMEINFO is missing or when it's not derived from BaseStatusBar
Validate internal status bar classes for basic consistency in Debug configuration
2018-06-29 13:47:06 +03:00
alexey.lysiuk
0703030be3
- simplified key repeat detection in SDL backend
2018-06-29 12:26:30 +03:00
alexey.lysiuk
0342bf532d
- fixed excess keyboard events in SDL backend
...
https://forum.zdoom.org/viewtopic.php?t=61104
2018-06-29 12:20:49 +03:00
alexey.lysiuk
6e4c0fc416
- disabled annoying macOS spaces in SDL backend
2018-06-29 12:20:49 +03:00
alexey.lysiuk
c30505d02a
- fixed excess keyboard events in Cocoa backend
...
https://forum.zdoom.org/viewtopic.php?t=61104
2018-06-29 12:20:49 +03:00
alexey.lysiuk
a968aeba8a
- added detection of macOS Mojave
2018-06-28 11:06:19 +03:00
Christoph Oelckers
cbe4c9c5c1
Added lump size validation to the WAD loader
2018-06-27 08:51:45 +02:00
Christoph Oelckers
8ac864b007
Merge branch 'master' into modern
2018-06-26 09:28:23 +02:00
Christoph Oelckers
446be98f37
- fixed light application logic for flats.
...
The light mode check wasn't done properly anymore after merging GLPASS_ALL and GLPASS_PLAIN.
2018-06-26 09:28:10 +02:00
Christoph Oelckers
0ed1077f29
- correct checks for HasDynamicLights
2018-06-26 08:51:21 +02:00
Christoph Oelckers
e402babfc0
Fixed: Software rendered models checked the wrong CVAR for enabled dynamic lights.
2018-06-26 08:23:07 +02:00
Magnus Norddahl
f8272287d2
- make softpoly use the r_dynlights cvar
2018-06-26 02:19:47 +02:00
Magnus Norddahl
1c5f73727e
- fix missing include
2018-06-26 02:14:08 +02:00
Magnus Norddahl
61d69f5561
Merge remote-tracking branch 'gzdoom/modern' into hw_postprocess
2018-06-26 02:12:49 +02:00
Christoph Oelckers
ff1eb7f3f2
- calculate a proper opening range when encountering a sector portal on a one-sided line in the sight checking code
2018-06-25 10:27:02 +02:00
Christoph Oelckers
5d14ae68a6
- missed two added files.
2018-06-24 23:54:25 +02:00
Christoph Oelckers
daf8703fc9
- split up Win32's SystemGLFrameBuffer as well to get the shareable parts between OpenGL and Vulkan into a base class.
2018-06-24 21:26:32 +02:00
Christoph Oelckers
66d13b6e80
- renamed another file.
2018-06-24 20:55:05 +02:00
Christoph Oelckers
1519514dd7
- split Win32GLVideo in two so that the OpenGL independent part can be used for Vulkan as well.
2018-06-24 20:47:00 +02:00
Christoph Oelckers
c2d24e1dd3
- renamed a file.
2018-06-24 20:31:35 +02:00
Christoph Oelckers
e7365be0d1
- renamed SystemFrameBuffer to SystemGLFrameBuffer.
...
... because with Vulkan there needs to be some hint what API this is for.
2018-06-24 20:16:30 +02:00
Christoph Oelckers
52102f3d4a
- moved the Win32GLVideo class to its own file.
...
This and SystemFrameBuffer need splitting up to support both Vulkan and OpenGL
2018-06-24 20:11:08 +02:00
Magnus Norddahl
32d837cdf1
Merge remote-tracking branch 'gzdoom/modern' into hw_postprocess
2018-06-24 17:57:02 +02:00