raze/polymer/eduke32/build
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
..
doc Set union ['] and difference [;] for sector selection in Mapster32; probably fix for crash on clipshape-init; replace tabs in doc/build*.txt with three spaces. 2010-11-20 16:47:18 +00:00
include Fix POLYMER=0 build, cleaning up #include discipline on the way. 2013-02-07 21:01:24 +00:00
obj.gnu Moved build to a subdir underneath the eduke32 dir to avoid people trying to compile from the build src dir by mistake 2008-10-20 03:09:19 +00:00
obj.msc Moved build to a subdir underneath the eduke32 dir to avoid people trying to compile from the build src dir by mistake 2008-10-20 03:09:19 +00:00
rsrc Moved build to a subdir underneath the eduke32 dir to avoid people trying to compile from the build src dir by mistake 2008-10-20 03:09:19 +00:00
src Classic renderer: high-precision sprite drawing, preventing stray lines on top. 2013-02-14 16:02:12 +00:00
buildlic.txt Moved build to a subdir underneath the eduke32 dir to avoid people trying to compile from the build src dir by mistake 2008-10-20 03:09:19 +00:00
MakeDistributions Moved build to a subdir underneath the eduke32 dir to avoid people trying to compile from the build src dir by mistake 2008-10-20 03:09:19 +00:00
Makefile Clean up some file and directory structure. 2012-12-29 10:54:35 +00:00
Makefile.deps RENDERTYPE=SDL on Windows, part 2. 2012-11-25 04:26:37 +00:00
Makefile.msvc Change a few paths in various MSVC Makefiles to better suit my current dev environment. This doesn't really affect anyone else since these paths need to be customized to fit whatever machine by anyone building with MSVC anyway. 2012-12-14 17:13:17 +00:00
Makefile.shared Fix building on Linux; fix WITHOUT_GTK=0 build. 2012-12-13 12:41:23 +00:00