Commit graph

15580 commits

Author SHA1 Message Date
Magnus Norddahl
ced793b791 - implement OP_CALL and OP_CALL_K 2018-09-12 01:37:30 +02:00
Magnus Norddahl
981950fef0 - fix misc integer opcodes and remove mov statements when they have no effect 2018-09-11 23:31:32 +02:00
Magnus Norddahl
5fab45d275
Merge pull request #568 from Gutawer/asmjit
Changed the way EmitComparisonOpcode works to get rid of the temporary register that was used previously
2018-09-11 23:08:36 +02:00
Jonathan Russell
4d3c496121 - changed the way EmitComparisonOpcode works to get rid of the temporary register that was used previously 2018-09-11 21:48:02 +01:00
Magnus Norddahl
4d1cb258d6 - implement PARAM and PARAMI 2018-09-11 17:08:51 +02:00
Magnus Norddahl
6f55c76f05 - fix missing zero extend 2018-09-09 23:21:47 +02:00
Magnus Norddahl
4076ce791b - fix that the code for META and CLSS was swapped 2018-09-09 22:42:59 +02:00
Magnus Norddahl
19442732d4 - some jump fixes 2018-09-09 22:03:57 +02:00
Magnus Norddahl
b40cbfb22e - fix jump direction in EmitComparisonOpcode 2018-09-09 20:35:37 +02:00
Christoph Oelckers
2d53ad6f10 - fixed misplaced parenthesis. 2018-09-09 19:18:22 +02:00
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
7cbc98e1d0 - fixed incorrect trigger types in compatibility setter.
These were caused by some bogus comment in the original compatibility.txt which erroneously added a "SPAC_PCross" remark to a line which actually set "SPAC_Cross".
2018-09-03 23:06:32 +02:00
Magnus Norddahl
773907d81e
Merge pull request #563 from Gutawer/asmjit
Add vector comparison opcodes
2018-09-03 00:48:24 +02:00
Jonathan Russell
eeb4419bc4 - more spelling mistakes... 2018-09-02 23:47:22 +01:00
Jonathan Russell
fdf17a5d8e - fix minor spelling error 2018-09-02 23:45:32 +01:00
Jonathan Russell
28f2311108 - add vector comparison opcodes 2018-09-02 23:44:25 +01: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
Magnus Norddahl
168c274601 - remove some macros and add functions checking if a register needs to be copied 2018-09-02 15:36:39 +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
Magnus Norddahl
55955b9c22 Merge remote-tracking branch 'gzdoom/master' into asmjit 2018-09-02 03:46:06 +02:00
Magnus Norddahl
323d290c99 - implemented LBIT, SBIT, VTBL, SCOPE, NEW, NEW_K, THROW, EQA_R and EQA_K 2018-09-02 03:39: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
Rachael Alexanderson
7c4dd9408d - update french language translation from Tapwave 2018-08-31 18:01:51 -04: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
Magnus Norddahl
ccd2f58fb4 - implement emitter functions for LKP_R, META, CLSS, LO, LO_R, LP, LP_R, SO, SO_R, SP, SP_R
- add emit code for throwing exceptions on null pointers
2018-08-31 06:57:30 +02:00
Magnus Norddahl
999b3833ff - improve jit debug output slightly 2018-08-30 19:55:00 +02:00
Magnus Norddahl
bba422ffcc - fix offsetting bug when loading address registers 2018-08-30 19:47:38 +02:00
Jonathan Russell
ea81ab4097 - added Screen.DrawThickLine for drawing lines with thickness 2018-08-30 19:21:57 +02:00