raze/polymer/eduke32
helixhorned 40874820f3 Classic renderer: high-precision sprite drawing, preventing stray lines on top.
Face- and wall-aligned sprites are drawn using the wall routines in BUILD.
However, the per-x-screen-coordinate distance (swall[]) is calculated in a way
that potentially incurs great precision loss (for example 5 bits for
xdimen=1280, yxaspect=65536). This leads to the starting (top) vertical texture
coordinate possibly wrapping to large values, leaving an unsightly "stray line"
on top of the sprite from certain viewing angles/horiz values.

The approach to fix it has two parts: first, the distance is calculated using
float values, preventing the precision loss. Because this doesn't fully prevent
the unwanted lines, the texture coords are clamped to the mininum and maximum
(0 and UINT32_MAX respectively) when calculating them for sprites.

Note that stray lines may still appear at the *bottom* of sprites under certain
circumstances, for example when viewing at a y-flipped sprite from above.
These should be less noticable in real-world usage though.

The feature is guarded by a macro HIGH_PRECISION_SPRITE in case using floating
point or 64-bit integers is undesirable/impossible on some platforms.

git-svn-id: https://svn.eduke32.com/eduke32@3483 1a8010ca-5511-0410-912e-c29ae57300e0
2013-02-14 16:02:12 +00:00
..
Apple Bring the SDL.h include in SDLMain.m up to speed with driver_sdl.c in jaudiolib and sdl_inc.h in the engine. Also address some Apple macro problems. 2013-01-04 17:28:13 +00:00
build Classic renderer: high-precision sprite drawing, preventing stray lines on top. 2013-02-14 16:02:12 +00:00
eobj Importing source for great justice 2006-04-13 20:47:06 +00:00
eobj_win 1. Removed unneeded the svn:executable proprties. These files aren't actually executable. 2008-07-12 14:09:52 +00:00
installer 1. Removed unneeded the svn:executable proprties. These files aren't actually executable. 2008-07-12 14:09:52 +00:00
obj Importing source for great justice 2006-04-13 20:47:06 +00:00
obj_win 1. Removed unneeded the svn:executable proprties. These files aren't actually executable. 2008-07-12 14:09:52 +00:00
package Mapster32: RESPAWN-preview coded in M32-script. 2013-02-01 13:05:05 +00:00
psd EDuke32 Wii: Ready for action! 2012-05-20 07:25:25 +00:00
rsrc Win64 support! (Meaning it works, not that we recommend it for everyday use.) 2012-12-13 02:37:20 +00:00
source Lunatic translator: more of everything... 2013-02-11 17:16:58 +00:00
Wii EDuke32 Wii: Ready for action! 2012-05-20 07:25:25 +00:00
Windows Fix a "typedef redefined" warning with clang in dsound.h 2013-01-04 17:28:34 +00:00
ChangeLog git-svn-id: https://svn.eduke32.com/eduke32@997 1a8010ca-5511-0410-912e-c29ae57300e0 2008-08-22 04:26:26 +00:00
ChangeLog.html Update repo to 1.4.0 beta 2 2006-07-18 21:08:38 +00:00
eduke32.sln Source code "cleanup," herein referred to as "rape" 2010-05-02 23:27:30 +00:00
eduke32.vcxproj RENDERTYPE=SDL on Windows, part 2. 2012-11-25 04:26:37 +00:00
eduke32.vcxproj.filters Sort some of the more recently added source and header files so they're in the right sections in the VS2010 project 2012-12-16 04:04:25 +00:00
eduke32.vcxproj.user Source code "cleanup," herein referred to as "rape" 2010-05-02 23:27:30 +00:00
MakeDistributions Source code "cleanup," herein referred to as "rape" 2010-05-02 23:27:30 +00:00
Makefile Lunatic: Centralize all bound-checking in bcheck.lua. 2013-02-01 13:04:56 +00:00
Makefile.common Makefiles: fix wrongly stripping debug binaries... 2013-01-21 21:18:10 +00:00
Makefile.deps Remove xdelta3 since it doesn't fit in with our current networking plans anymore 2012-11-16 15:40:28 +00:00
Makefile.msvc Fix DirectSound in MSVC builds and remove the dependency on the DirectX SDK 2012-12-29 05:22:39 +00:00
osxbuild.sh Restructure so that everything packaged in a release build is stored in the package folder, instead of maintaining a list. 2012-11-26 08:23:20 +00:00
wiibuild.bat Restructure so that everything packaged in a release build is stored in the package folder, instead of maintaining a list. 2012-11-26 08:23:20 +00:00