Magnus Norddahl
698b5f3db1
Simplify drawer code by creating loop iterators
...
Fixed blending bug
2016-06-24 11:37:51 +02:00
Magnus Norddahl
d15af1524c
Added mipmap support for floor and ceiling
2016-06-21 09:38:47 +02:00
Magnus Norddahl
77c4786b9d
Minor code cleanup
2016-06-14 23:05:20 +02:00
Magnus Norddahl
586d5cdf1e
Normalize naming convention a little
2016-06-13 23:33:52 +02:00
Magnus Norddahl
e31331bed2
Sloped plane adjustments
2016-06-13 19:09:48 +02:00
Magnus Norddahl
05b6fe6174
Added true color texture support for walls and floors
2016-06-10 13:50:34 +02:00
Magnus Norddahl
0c8c9e0aea
Added FDynamicColormap support to true color mode
2016-06-05 14:08:03 +02:00
Magnus Norddahl
47f32d03cd
Fixed some light and blending functions for the true color mode
2016-06-02 14:49:03 +02:00
Magnus Norddahl
e929eec80f
Make x86 asm aware of swtruecolor
2016-06-01 05:28:14 +02:00
Magnus Norddahl
045bad1b52
Removed the need for the pixel_canvas_t typedef
2016-05-31 05:31:32 +02:00
Magnus Norddahl
20b7743ec3
Added R_SetColorMapLight and R_SetDSColorMapLight
2016-05-31 01:49:39 +02:00
Magnus Norddahl
8aabc26cd9
Created standalone rgba drawing functions
2016-05-30 05:52:15 +02:00
Magnus Norddahl
6e53c1bd12
Change render target output from PAL8 to BGRA8
2016-05-28 20:40:33 +02:00
Randy Heit
09730bff73
Fix incorrect texture mapping vectors for slopes
2016-04-29 20:35:55 -05:00
Randy Heit
8f3921190f
Keep values in floats longer for visplane drawing
2016-04-28 21:21:49 -05:00
Christoph Oelckers
9f0c5d5909
-let's better be cautious about precision and use the CRT sin and cos functions for rotated plane textures.
2016-04-28 14:49:59 +02:00
Randy Heit
ae7d048057
Store FTransform in visplane_t, not just a pointer
...
- The transform values passed to R_CheckPlane might live on the stack, so
it's not safe to only store a pointer to them.
2016-04-27 23:07:25 -05:00
Randy Heit
44adff459a
Remove halfviewwidth
...
- Why I thought I needed this variable in addition to centerx has
long ago left my memory.
2016-04-27 22:49:36 -05:00
Randy Heit
31d842a894
Store FTransform in visplanes instead of converting to fixed_t
2016-04-27 22:17:33 -05:00
Christoph Oelckers
8bda356412
- fixed crash in slope drawing: Several overlooked occurences of fixed point math in R_CalcTiltedLighting. Slopes are still completely broken, though.
2016-04-27 04:08:06 +02:00
Christoph Oelckers
0f99d7d73f
- floatified the few remaining linedef and sector properties that still were fixed_t. The only fixed point things left in r_defs.h are the nodes and a fixed point setter function for vertex_t, which is still needed by the node builder.
2016-04-24 12:15:09 +02:00
Christoph Oelckers
04e614daec
- removed some fixed point functions that are no longer needed.
...
- fixed: Visplane checks should only compare the plane flags that are relevant for rendering and mask out the rest.
- floatified FTransform and made the visplane checks a bit less verbose by moving the comparison as an operator into FTransform.
Note that this operator needs forceinline on Visual Studio so that it won't get called as a function.
2016-04-23 12:42:07 +02:00
Christoph Oelckers
35a6994d0a
- remove the 'F' prefix from the floating point access function to the sidedef texture info, now that the fixed point versions are gone.
2016-04-23 10:55:55 +02:00
Christoph Oelckers
4d4f31fd83
- floatified sidedef texture info and fixed two bugs involving this data.
2016-04-23 09:41:59 +02:00
Randy Heit
f1b3f59bcc
Renderer floatification: Use floating point for wall scale and yrepeat
2016-04-22 23:12:53 -05:00
Randy Heit
3ef5a678d5
Renderer floatification: Use floating point for texturemids and Y scales
2016-04-22 23:12:53 -05:00
Randy Heit
ec8d038c99
Renderer floatification: Use floats for lighting values
2016-04-22 23:10:34 -05:00
Randy Heit
4416d88eb2
Renderer floatification: Use floating point for visibility values
2016-04-22 23:10:02 -05:00
Randy Heit
ded3f92452
Commence renderer floatification
2016-04-22 23:09:13 -05:00
Christoph Oelckers
082042818b
- refactored sector portal data so that it does not rely on actors.
...
This is necessary because otherwise the level data cannot be serialized before the actors.
2016-04-20 19:20:11 +02:00
Christoph Oelckers
d88a5ac353
- make distancecheck 3D and use the actual view position for calculation.
2016-04-13 10:48:39 +02:00
Christoph Oelckers
db86385cf6
- removed STACK_ARGS.
...
The only reason this even existed was that ZDoom's original VC projects used __fastcall. The CMake generated project do not, they stick to __cdecl.
Since no performance gain can be seen by using __fastcall the best course of action is to just remove all traces of it from the source and forget that it ever existed.
2016-04-11 10:46:30 +02:00
Christoph Oelckers
fc5f98a0be
- floatified the sector planes.
...
This should conclude the floating point conversions for now.
2016-04-03 19:28:53 +02:00
Christoph Oelckers
8680391e0b
- floatified the global view variables.
...
The software renderer still uses internal copies of the fixed point version.
2016-04-01 12:22:16 +02:00
Christoph Oelckers
a5e14425aa
- fixed angular interpolation of skybox viewpoints.
2016-04-01 11:55:37 +02:00
Christoph Oelckers
8fd76f0c8a
- floatified bmaporgx and bmaporgy, allowing to remove the gross overflow prevention hacks present in the blockmap code.
2016-03-31 09:23:14 +02:00
Christoph Oelckers
66929cbaff
- floatified p_trace, p_slopes and p_udmf.cpp.
...
- major cleanup of unused code.
2016-03-30 16:30:22 +02:00
Christoph Oelckers
25f5e8449a
- replaced all direct access to sector plane coefficients with wrapper functions.
2016-03-29 12:40:41 +02:00
Christoph Oelckers
0c39bdd04c
- floatified texture scale values.
2016-03-26 13:37:44 +01:00
Christoph Oelckers
fb8e03d5eb
- floatified FLineOpening.
...
- some smaller fixes.
2016-03-25 18:43:37 +01:00
Christoph Oelckers
1125101b37
- floatified AActor::Prev plus the stuff using it.
...
- rewrote some coordinate functions in AActor to use real float math instead of converting back and forth between float and fixed.
2016-03-25 16:25:25 +01:00
Christoph Oelckers
3a598d672e
- removed the angle_t type from the VM, now that nothing in the interface requires it anymore.
2016-03-25 14:55:01 +01:00
Christoph Oelckers
4e60ea0252
- made AActor::alpha a floating point value
...
- replaced some uses of FRACUNIT with OPAQUE when it was about translucency.
- simplified some overly complicated translucency multiplications in the SBARINFO code.
2016-03-21 12:18:46 +01:00
Christoph Oelckers
51b05d331d
- replaced AActor::vel and player_t::Vel with a floating point version.
...
- Converted P_MovePlayer and all associated variables to floating point because this wasn't working well with a mixture between float and fixed.
Like the angle commit this has just been patched up to compile, the bulk of work is yet to be done.
2016-03-20 00:54:18 +01:00
Christoph Oelckers
671291227e
- first stage of converting actor angles to float complete
...
Patched up everything so that it compiles without errors again. This only addresses code related to some compile error. A large portion of the angle code still uses angle_t and converts back and forth.
2016-03-16 12:41:26 +01:00
Christoph Oelckers
e11a0986ce
- encountered a strange crash that after changing a map, InSubsector was not NULL and pointing to invalid data. So let's better NULL this variable explicitly each time a render loop is started.
2016-03-08 12:27:01 +01:00
Randy Heit
55142078d8
Normalize line endings
2016-03-01 09:47:10 -06:00
Christoph Oelckers
02d7572343
- some header dependency cleanup so that it is no longer needed to include portal.h to get the inline functions. Portal.h has been reduced of most dependencies now so that including it is cheap and can be done in other headers.
...
- some consolidation in p_map.cpp. PIT_CheckLine and PIT_FindFloorCeiling had quite a bit of redundancy which has been merged.
- Ĩontinued work on FMultiBlockLinesIterator. It's still not completely finished.
2016-02-19 14:08:41 +01:00
Christoph Oelckers
158caf78a0
- more float to double conversion.
...
In particular this removes all assignments of FIXED2FLOAT to double variables because they not only lose precision but also generate unnecessary code.
2016-02-11 21:33:30 +01:00
Christoph Oelckers
6d0ef7a9da
- added conversion macros to convert floating point angles to angle_t, using xs_Float.h, and replaced all occurences in the code with them (let's hope I found everything.)
...
Converting a floating point value that is out of range for a signed integer will result in 0x80000000 with SSE math, which is used exclusively for this purpose on modern Visual C++ compilers, so this cannot be used anywhere.
On ARM there's problems with float to unsigned int conversions.
xs_Float does not depend on these
2016-02-08 12:10:53 +01:00