Commit Graph

82 Commits

Author SHA1 Message Date
Randy Heit bc450808b2 Consolidate wall texturing vars into two structs
- All transformation and clipping values go into FWallCoords.
- All texture mapping values go into FWallTMapVals.
2014-07-31 20:17:23 -05:00
Christoph Oelckers c7a46492eb - fixed bad index variable in R_RenderFakeWallRange. 2013-08-11 12:41:14 +02:00
Randy Heit 63704a8b69 - Fixed: r4225 accidentally removed the sky texture check for markceiling disabling.
SVN r4247 (trunk)
2013-05-04 19:08:17 +00:00
Randy Heit 6921a3edc2 - Fixed: r4220 broke 3D floor rendering, because 3D floors have the floor and ceiling orientations
reversed compared to normal conventions.

SVN r4225 (trunk)
2013-04-23 03:51:51 +00:00
Randy Heit a50e670c0c - Use tests less prone to overflow on very steep slopes when detecting which side of a plane
the camera is on. Mostly, this means testing the distance of the camera to the plane rather
  than computing the plane's Z at the camera and comparing that with the camera's Z.

SVN r4220 (trunk)
2013-04-17 01:32:40 +00:00
Randy Heit 94be9df246 - Changed the "notrelevant" checks in R_RenderMaskedSegRange() to not include equality in their
comparison operators. Fixes one map (http://forum.zdoom.org/viewtopic.php?f=2&t=34082); might
  break others. Maybe.

SVN r4133 (trunk)
2013-02-14 03:24:47 +00:00
Randy Heit 3a3e9c7063 - Fixed: Flipping textures horizontally also flipped the scrolling direction.
SVN r3976 (trunk)
2012-12-04 03:24:25 +00:00
Randy Heit ea5d2346bf - Added a negative yrepeat case to wallscan_np2() for upside-down non-power-of-2 textures.
SVN r3975 (trunk)
2012-12-04 03:14:02 +00:00
Randy Heit a57c22981e - Fix positioning of upside-down textures. Note that wallscan_np2() still needs to be modified
to understand negative yrepeats.

SVN r3974 (trunk)
2012-12-04 02:42:53 +00:00
Randy Heit f8c1d5d520 - Fixed: Masked mid textures should get their light level from the frontsector they reference,
not from the sector they appear in.

SVN r3935 (trunk)
2012-11-03 02:50:33 +00:00
Randy Heit 980202a18f - Fixed: PrepWall() and PrepLWall() did not understand negative walxrepeats, which should cause
them to flip the texture horizontally.

SVN r3849 (trunk)
2012-08-23 01:34:19 +00:00
Randy Heit 5c7e04c539 - Fixed typo: Midtextures with world panning replaced rw_midtexturemid with the rowoffset instead of adding them together.
SVN r3778 (trunk)
2012-07-21 02:40:34 +00:00
Randy Heit 41f2337e7a - Fixed: Texture positioning for one-sided lines marked ML_DONTPEGBOTTOM was wrong.
SVN r3707 (trunk)
2012-06-22 04:07:53 +00:00
Randy Heit a8507d58bd - Fixed: The "clip midtexture" flag did not work as expected for stacked sectors. This is
because it was an extension of the normal wall clipping process. Since a stacked sector
  above you doesn't draw a floor, it wouldn't clip any midtextures to the floor either.
  R_RenderMaskedSegRange() now checks this directly when rendering inside a stacked sector.

SVN r3647 (trunk)
2012-05-13 02:01:54 +00:00
Randy Heit 2f561abdea - Fixed: 3D floors partitioning the world into different "HeightLevels" could strip a midtexture
of its clipping information before it was drawn. (On the other hand, I have no idea what this
  ds->bkup and refreshing stuff is about, so I might have broken something somewhere else.)

SVN r3602 (trunk)
2012-04-28 02:32:33 +00:00
Randy Heit ec84437212 - Extended wallscan_np2 to work with masked walls.
SVN r3592 (trunk)
2012-04-25 03:21:55 +00:00
Randy Heit 5e3a41e8f6 - Added a wrapper function to help wallscan() tile textures with heights that are not a power of 2.
SVN r3588 (trunk)
2012-04-23 02:38:09 +00:00
Randy Heit d9f7a250ba - Fixed: Disable absolute wall lighting when in the shadow of a 3D floor.
SVN r3499 (trunk)
2012-04-01 02:31:57 +00:00
Randy Heit 9acf65b9a4 - Added support for a PALVERS lump. This specifies replacement textures to
be used when for walls and floors when the renderer is paletted. The format
  is very simple:
    rgbtex1 paltex1
    rgbtex2 paltex2
    ...
  The first texture is the one to be used normally, and the second is the one
  to be used in paletted modes.

  The vid_nopalsubstitutions cvar can be used to ignore this lump.



SVN r3311 (trunk)
2011-11-04 01:12:53 +00:00
Christoph Oelckers 5c6fd66ed5 - rename src/resources to src/r_data.
SVN r3254 (trunk)
2011-07-06 07:35:36 +00:00
Christoph Oelckers 0d43ecdd9d - moved side_t::GetLightLevel out of software rendering code.
SVN r3252 (trunk)
2011-07-05 21:30:17 +00:00
Christoph Oelckers 4626492f50 - separated all colormap related code from v_palette.cpp and r_data.cpp into its own file.
SVN r3245 (trunk)
2011-07-03 10:47:35 +00:00
Randy Heit ee8ca0de87 Fixed: Light levels outside the range [0,255] really do matter.
SVN r3223 (trunk)
2011-06-11 23:58:33 +00:00
Randy Heit 29e486495b - Fixed: The sign in Eternall.wad, map25 on line 2236 rendered at the wrong height because Doom
ignored the Y locations of patches drawn on two-sided midtextures and always drew them at the
  top of the texture. Added a compatibility flag.

SVN r3205 (trunk)
2011-05-13 03:29:48 +00:00
Randy Heit 571210fe56 - Apply 3dfix2 and 3dfix3 (by hand, again).
SVN r3191 (trunk)
2011-04-29 03:50:33 +00:00
Randy Heit 0d39257eaf - Apply kgsws-CZ's fixes:
* Added new cvar, r_3dfloors for testing, so for example, you can see the FPS difference.
  * ds_p->bkup is not always allocated.
  * Fixed particles visible through 3D floors.
  * Fixed FAKE3D flag names.



SVN r3178 (trunk)
2011-04-13 02:34:48 +00:00
Randy Heit d3b44a4172 - Fix errors/warnings from MinGW 4.5.0 (tdm-1).
- Disable the missing field initializers warnings that -Wextra produces from GCC.

SVN r3173 (trunk)
2011-03-29 05:20:33 +00:00
Randy Heit 060d740275 - Fixed: Fake floor's validcounts were not initialized.
- Fixed: When loading non-UDMF maps, things did not have their conversation field zero'ed.
- Added an assert for the FAKE3D_REFRESHCLIP case at the end of R_RenderMaskedSegRange(), because Valgrind indicates this is being run
  without ds->bkup being set to something valid. I do not immediately know how this should be fixed.



SVN r3130 (trunk)
2011-02-02 02:07:36 +00:00
Christoph Oelckers fae8ed444c - merged 3dfloors2 branch into trunk.
SVN r3124 (trunk)
2011-01-29 11:09:38 +00:00
Christoph Oelckers ef133dc682 - changed skybox code to use the alpha from the sector plane.
- removed alpha from skybox viewpoints.


SVN r2993 (trunk)
2010-11-07 17:05:21 +00:00
Randy Heit 3416a7fc47 - Fix compilation with MinGW + w32api and clean up warnings.
SVN r2505 (trunk)
2010-08-11 03:56:31 +00:00
Randy Heit 677d07f837 - Merge BSP-able polyobjects back into the trunk.
SVN r2480 (trunk)
2010-08-01 02:41:56 +00:00
Christoph Oelckers 545a892faa - added Firebrand's patch to rename 'swap' due to naming conflicts in newer MSVC compilers.
SVN r2449 (trunk)
2010-07-23 21:19:59 +00:00
Christoph Oelckers 69861688dc - expanded r_smoothlighting into a r_fakecontrast CVAR that allows to set all 3 options: off, standard and smooth.
SVN r2314 (trunk)
2010-05-12 06:52:03 +00:00
Randy Heit 344dda4a1a - Replaced toint/quickertoint with the portable routines from xs_Float.h. The
former used fistp, which is not portable across platforms, so cannot be
  used in the play simulation. They were only suitable for the renderer.
  xs_Float.h also has a very fast float->fixed conversion, so FLOAT2FIXED
  uses that now.
  (And I also learned that the FPU's round to nearest is not the rounding I
  learned in grade school but actually Banker's Rounding. I had no idea.)
  (Also, also, the only thing that could have made quickertoint faster than
  toint was that it stored a 32-bit int. I never timed them, and I doubt in
  practice there was any real difference between the two.)
- Changed atan2f to atan2. Using floats is not a win, because the result is
  returned as a double on the x87 stack, which the caller then needs to cast
  down to a float using fst/fld.

SVN r1990 (trunk)
2009-11-20 05:34:20 +00:00
Christoph Oelckers a02e8c0b06 - GCC fix of r_segs.cpp - again...
SVN r1959 (trunk)
2009-11-02 17:02:12 +00:00
Randy Heit 358b2421ad - Fixed: Decals would not use the shading colormap anymore.
SVN r1958 (trunk)
2009-11-02 01:02:23 +00:00
Christoph Oelckers adbc9771b7 - yet another GCC compile fix.
SVN r1957 (trunk)
2009-11-01 06:45:47 +00:00
Randy Heit da3daa0721 - Fix incorrect fix from previous commit.
SVN r1953 (trunk)
2009-10-30 03:53:00 +00:00
Randy Heit 4252cd52ad - Fixed: Sprites and decals that are drawn with addition must fade to black.
SVN r1952 (trunk)
2009-10-30 03:46:51 +00:00
Christoph Oelckers aea4e38241 - GCC compile fix.
SVN r1947 (trunk)
2009-10-29 06:32:50 +00:00
Randy Heit be3bb0093a - Fixed: R_RenderDecal() must save various Wall globals, because the originals
may still be needed. In particular, when drawing a seg with a midtexture is
  split by foreground geometry, the first drawseg generated from it will have
  the correct WallSZ1,2 values, but subsequent ones will have whatever
  R_RenderDecal() left behind. These values are used to calculate the upper
  and lower bounds of the midtexture. (Ironically, my work to Build-ify things
  had done away with these globals, but that's gone now.)


SVN r1938 (trunk)
2009-10-27 01:53:47 +00:00
Randy Heit b8eb530a0d - Fixed: Wall drawing handled fixed light levels improperly (but did not
completely ignore them, either).
- Separated light level fixing out of player_t's fixedcolormap parameter.
  Using a fixed light level (e.g. PowerTorch) will no longer wipe out
  colored lighting.
- Moved the blending rectangle drawing into a separate discrete stage, since
  doing it while copying the 3D view window to the display now blends
  underneath the weapon instead of on top of it.
- Consolidated the special colormaps into a single 2D table.
- Tweaked the special colormaps slightly to make the true color results more
  closely match the paletted approximations.
- fb_d3d9_shaders.h was getting unwieldy, so I moved the shaders out of the
  executable and into zdoom.pk3. Shaders are still precompiled so I don't need
  to pull in a dependancy on D3DX.
- Added a few more shaders to accomodate drawing weapons with all the in-game
  lighting models. These are accessed with the new DrawTexture tags
  DTA_SpecialColormap and DTA_ColormapStyle.
- Player weapon sprites are now drawn using Direct3D and receive all the
  benefits thereof.


SVN r1858 (trunk)
2009-09-20 03:50:05 +00:00
Christoph Oelckers e6aadca409 - changed side_t's linenum into a linedef pointer.
SVN r1800 (trunk)
2009-09-06 18:19:28 +00:00
Randy Heit bdc0950e01 - Fixed: The first lighting plane added to a light stack had the bOverlaps
flag set, causing it to be ignored during rendering. Why this didn't cause
  more trouble, I don't know.
- Fixed: The UDMF parser passed the wrong value for "default alpha" for
  TranslucentLine to P_FinishLoadingLineDef().


SVN r1775 (trunk)
2009-08-29 03:33:36 +00:00
Randy Heit c66f237873 - Added per-tier texture scaling with these new UDMF sidedef properties:
* scalex_top
  * scaley_top
  * scalex_mid
  * scaley_mid
  * scalex_bottom
  * scalex_bottom
- Added sidedef versions of the linedef flags wrapmidtex and clipmidtex (via
  UDMF; names are the same). If the flag is set on the line, it applies to
  both sides. Otherwise, each side can control them individually.


SVN r1645 (trunk)
2009-06-07 01:14:14 +00:00
Christoph Oelckers 273758344f - Fixed: When setting up a deep water sector with Transfer_Heights the floorclip
information of all actors in the sector needs to be updated.


SVN r1600 (trunk)
2009-05-23 10:21:33 +00:00
Randy Heit 6a9acc2cf8 - Fixed: World panning was ignored for the X offset of masked midtextures.
SVN r1541 (trunk)
2009-04-11 04:28:06 +00:00
Randy Heit 37aa4c2c28 - Removed an early-out in wallscan_striped() that is invalid when drawing a
skybox.


SVN r1451 (trunk)
2009-02-27 03:45:14 +00:00
Randy Heit 0c9f735357 - Restored the old drawseg/sprite distance check from 2.0.63. The code that
replaced it did the check at the center of the area intersected by the
  sprite and the drawseg, whereas 2.0.63 only did the check at the location
  of the sprite on the map.


SVN r1411 (trunk)
2009-02-07 03:01:38 +00:00