Commit graph

127 commits

Author SHA1 Message Date
Randy Heit
e259087c19 Change RGB32k to a union of BYTE[32][32][32] and BYTE[32*32*32]
- Clang's optional runtime array bounds checking doesn't understand when we
  intentionally "overflow" by doing this:
    RGB32k[0][0][colorval]
  It will warn that it was accessed at an index will past the bounds
  of type 'BYTE [32]', which makes it less than useful for catching real
  array bounds overflows. So now do this:
    RGB32k.All[colorval]
  And if you want this:
    RGB32k[r][g][b]
  Now do this:
    RGB32k.RGB[r][g][b]
2015-03-08 18:05:02 -05:00
Kyle Evans
3af08f1983 Fixed weapon drawing rules to account for the death camera [backported from gzdoom], also fixed drawing rules for crosshair 2014-12-01 22:03:22 -06:00
Edward Richardson
07d7f690e8 Non-wall sprites need their original depth checks 2014-08-21 20:03:17 +12:00
Randy Heit
9659b894a3 Skip neardepth/fardepth checking in R_DrawSprite
- Wall sprites now clip much, much better than before.
2014-08-07 20:43:09 -05:00
Randy Heit
7b02027ba7 Fixed: Wall sprites cut off one pixel short of the window's right border 2014-08-07 20:00:49 -05:00
Randy Heit
6303935ad6 Use wall sprite Y scale 2014-08-07 19:57:55 -05:00
Randy Heit
0aa67c68ab Redo lighting for each wall sprite
- Because previously it just reused whatever the most recently drawn wall
  used.
2014-08-07 17:23:06 -05:00
Randy Heit
e1ee80661e Make FWallCoords' members lowercase
because they're kind of a pain to type when all uppercase.
- Also, make its sx1 and sx2 members shorts, so it takes less space, since
  it's getting crammed into a vissprite now.
2014-08-07 17:12:04 -05:00
Randy Heit
d0043bed78 Q&D port of decal code to draw generic wall sprites
- This still doesn't use all the sprite properties correctly. It also
  looks like they're going to need different code to build the clipping
  arrays. But at least wall sprites are drawn at the proper angle now!
2014-08-02 22:35:57 -05:00
Christoph Oelckers
e7225bced6 - check negative XScale on sprites to allow mirroring. 2013-12-01 01:15:10 +01:00
Randy Heit
5916ce087b - Revert r4244. It seems to be working well enough like this, since there have been no complaints.
SVN r4341 (trunk)
2013-06-08 03:24:41 +00:00
Randy Heit
6d6fcbe246 - For the sake of better testing, use 2D sprite sorting unconditionally and not just when a
voxel is in view. Hopefully I'm just being paranoid, but I don't trust it to go well with
  clipping sprites to walls.

SVN r4244 (trunk)
2013-05-01 02:27:07 +00:00
Randy Heit
2dfb1dd92f - Added an alternate 2D sprite sorting comparison function which seems to work better with
large voxels than the standard 1D sprite sort.

SVN r4229 (trunk)
2013-04-28 03:31:13 +00:00
Randy Heit
6dc21f9a8b - Fixed: Voxel rendering completely fell apart when a mirror came into view.
SVN r4216 (trunk)
2013-04-16 20:17:34 +00:00
Braden Obrzut
dcb1a3c8bd - GCC warning cleanup
SVN r4031 (trunk)
2013-01-21 22:30:30 +00:00
Randy Heit
67eda6b1ad - Changed P_CheckPlayerSprites() so that it does not alter any actor data. It is now called by
R_ProjectSprite() to modify the appropriate data right before it is needed for rendering.

SVN r4004 (trunk)
2013-01-02 02:10:26 +00:00
Randy Heit
21ada0b3f6 - Fixed: When the player sprite is being drawn with a fixed colormap, hardware acceleration
should not be disabled when the regular colormap has lights that stay bright throughout.

SVN r4001 (trunk)
2012-12-22 02:57:35 +00:00
Randy Heit
eea532ce48 - Move the float bob offset calculation into a separate function.
SVN r3789 (trunk)
2012-07-27 01:53:21 +00:00
Randy Heit
6bd8fafbad - Fixed: The float bob offsetting in R_ProjectSprite was using r_TicFrac as a millisecond count
rather than as a fraction of a tic.

SVN r3788 (trunk)
2012-07-27 01:44:55 +00:00
Randy Heit
5e2b4bddda - Make floatbobbing a purely cosmetic effect that does not alter an actor's real position in the world.
SVN r3744 (trunk)
2012-07-06 03:42:03 +00:00
Randy Heit
8f39e692e7 - Fixed: FCoverageBuffer::InsertSpan() failed to consider the case where the new span starts above
an existing span and ends below it.

SVN r3726 (trunk)
2012-07-01 22:42:35 +00:00
Randy Heit
e61f08478d - Fixed: Revision 3711 broke voxels that need to be drawn offscreen before drawing to the screen.
SVN r3725 (trunk)
2012-07-01 22:30:41 +00:00
Randy Heit
2d8b43734b - Fixed: Revision 3711 broke the drawing of all but the first post in each voxel column.
SVN r3724 (trunk)
2012-07-01 22:18:59 +00:00
Randy Heit
4a3438499e - Use floating point instead of the distrecip() function for slightly less precision loss.
- Tweak voxel sizes and vertical positioning further.

SVN r3716 (trunk)
2012-06-29 03:58:26 +00:00
Randy Heit
a2b51665ac - Try to keep voxels from shifting up and down depending on how far you are above or below them.
SVN r3714 (trunk)
2012-06-28 05:22:40 +00:00
Randy Heit
a3dc2149d4 - Adjust voxel scale further, under Enjay's tutelage.
SVN r3713 (trunk)
2012-06-28 04:55:44 +00:00
Randy Heit
687b371dbd - Whoops. That doesn't work right if it needs to actually draw more than one column segment from each voxel strip.
SVN r3712 (trunk)
2012-06-28 04:33:49 +00:00
Randy Heit
1fc138400b - Allow voxels to be further off the side of the screen than regular sprites, since they can stick out more.
- Clip each column of voxel strips individual, rather than clipping them all the same as the first one.

SVN r3711 (trunk)
2012-06-28 04:24:29 +00:00
Randy Heit
f897b1a1a2 - Make voxels slightly larger so that the size of one 3D "texel" is the same as one 2D texel at the same location.
SVN r3708 (trunk)
2012-06-24 03:56:53 +00:00
Randy Heit
61742ee3a9 - Fixed: Heightsecs with SECF_FAKEFLOORONLY set should not clip sprites to the fake ceiling (since
it doesn't really exist).

SVN r3695 (trunk)
2012-06-17 03:28:04 +00:00
Randy Heit
bf48b7620c - Changed the direction of positive rotation for voxels to match GZDoom's counterclockwise spin.
SVN r3579 (trunk)
2012-04-22 02:34:57 +00:00
Christoph Oelckers
34820aacd2 - added Xaser's modified version of kgsws's railgun enhancements patch.
SVN r3529 (trunk)
2012-04-07 12:57:44 +00:00
Randy Heit
308f6cab9d - Fixed: Sprites drawn with the shaded render style were always fullbright.
SVN r3480 (trunk)
2012-03-24 00:52:15 +00:00
Christoph Oelckers
893455ef61 - sync source with latest GZDoom:
Includes:
- Made the move tried from checking missile spawns ignore drop off height. This solves the Voodoo Gun ghostly civilian issue.
- Fixed: the NOTELEPORT flag is removed from Dehacked missiles which lose the MISSILE flag. This caused problems with certain special effects based on dehacked spawn cubes.
- Fixed: all Boom silent teleporters preserve relative height.
- support for palette independent particle colors if the renderer can handle them.


SVN r3329 (trunk)
2011-12-06 08:36:28 +00:00
Braden Obrzut
c013e72caa - Backported VisibleToTeam and VisibleToPlayerClass from Skulltag with some modifications.
SVN r3290 (trunk)
2011-09-08 01:28:26 +00:00
Christoph Oelckers
4ef68ded5d - fixed some leftover references to the software renderer.
SVN r3264 (trunk)
2011-07-07 19:53:42 +00:00
Christoph Oelckers
463c276014 - removed more r_ header dependencies from the rest of the code.
SVN r3260 (trunk)
2011-07-06 15:31:05 +00:00
Christoph Oelckers
42091b1bb3 - changed AlterWeaponSprite so that it doesn't take a full vissprite as parameter.
- FCoverageBuffer is only used in r_things.cpp, so its declaration does not need to be in a global header that's included everywhere.


SVN r3258 (trunk)
2011-07-06 13:00:51 +00:00
Christoph Oelckers
f8ba5af858 - separated sprite and skin maintenance code from r_things.cpp into a separate file.
SVN r3256 (trunk)
2011-07-06 10:24:40 +00:00
Christoph Oelckers
fbff5ca932 - moved r_interpolate.cpp and r_translate.cpp to r_data.
- merged r_jpeg.h into jpegtexture.cpp because that's the only place where it's ever used.


SVN r3255 (trunk)
2011-07-06 08:50:15 +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
5bf6398d85 - moved render style and border drawing code out of r_draw.cpp.
SVN r3251 (trunk)
2011-07-05 20:41:53 +00:00
Christoph Oelckers
7308e05ed0 - separated all voxel related resource maintenance code from r_things.cpp and r_data.cpp into its own file.
SVN r3246 (trunk)
2011-07-04 20:22:55 +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
Christoph Oelckers
817368abc2 - changed R_InstallSpriteLump so that it doesn't abort for every seemingly misnamed lump in the sprites namespace. A warning is fully sufficient here.
SVN r3239 (trunk)
2011-06-16 13:10:03 +00:00
Randy Heit
8ccf552d09 - Added r_shadercolormaps cvar. Set it to false to disable shaders for fixed colormap effects
(e.g. invulnerability). This should only be necessary for SM1.4 cards with buggy drivers. I
  doubt the problem is very widespread. The one piece of SM1.4 hardware I obtained specifically
  for testing purposes has no problems using shaders for these effects.

SVN r3200 (trunk)
2011-05-11 04:16:45 +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
3344fa9f30 - Fixed: COLORMAP tricks to produce bright lights do not work with the hardware renderer, so do
not hardware accelerate weapon sprites that use them. (see Harmony)

SVN r3170 (trunk)
2011-03-19 04:45:59 +00:00
Christoph Oelckers
1993e969b7 - GCC warning fixes (GCC stupidity for the most part.)
SVN r3154 (trunk)
2011-02-19 08:59:43 +00:00