2017-01-01 09:28:35 +00:00
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "r_defs.h"
|
|
|
|
|
|
|
|
namespace swrenderer
|
|
|
|
{
|
|
|
|
struct FWallCoords;
|
2017-01-03 17:57:48 +00:00
|
|
|
struct FWallTmapVals;
|
2017-01-01 09:28:35 +00:00
|
|
|
|
2017-01-24 05:50:17 +00:00
|
|
|
enum class ProjectedWallCull
|
|
|
|
{
|
|
|
|
Visible,
|
|
|
|
OutsideAbove,
|
|
|
|
OutsideBelow
|
|
|
|
};
|
|
|
|
|
|
|
|
class ProjectedWallLine
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
short ScreenY[MAXWIDTH];
|
|
|
|
|
2017-03-12 17:54:39 +00:00
|
|
|
ProjectedWallCull Project(RenderViewport *viewport, double z1, double z2, const FWallCoords *wallc);
|
|
|
|
ProjectedWallCull Project(RenderViewport *viewport, const secplane_t &plane, const FWallCoords *wallc, seg_t *line, bool xflip);
|
|
|
|
ProjectedWallCull Project(RenderViewport *viewport, double z, const FWallCoords *wallc);
|
2017-01-24 05:50:17 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class ProjectedWallTexcoords
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
float VStep[MAXWIDTH]; // swall
|
|
|
|
fixed_t UPos[MAXWIDTH]; // lwall
|
|
|
|
|
2017-03-12 17:54:39 +00:00
|
|
|
void Project(RenderViewport *viewport, double walxrepeat, int x1, int x2, const FWallTmapVals &WallT);
|
|
|
|
void ProjectPos(RenderViewport *viewport, double walxrepeat, int x1, int x2, const FWallTmapVals &WallT);
|
2017-01-24 05:50:17 +00:00
|
|
|
};
|
2017-01-01 09:28:35 +00:00
|
|
|
}
|