mirror of
https://github.com/ZDoom/qzdoom-gpl.git
synced 2025-02-02 03:11:22 +00:00
Convert r_decal to a class
This commit is contained in:
parent
4b96d7377f
commit
7dfb46b8d9
3 changed files with 15 additions and 9 deletions
|
@ -585,7 +585,7 @@ namespace swrenderer
|
||||||
// [ZZ] Only if not an active mirror
|
// [ZZ] Only if not an active mirror
|
||||||
if (!rw_markportal)
|
if (!rw_markportal)
|
||||||
{
|
{
|
||||||
R_RenderDecals(curline->sidedef, draw_segment, wallshade, rw_lightleft, rw_lightstep, curline, WallC);
|
RenderDecal::RenderDecals(curline->sidedef, draw_segment, wallshade, rw_lightleft, rw_lightstep, curline, WallC);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rw_markportal)
|
if (rw_markportal)
|
||||||
|
|
|
@ -45,11 +45,11 @@ EXTERN_CVAR(Bool, r_fullbrightignoresectorcolor);
|
||||||
|
|
||||||
namespace swrenderer
|
namespace swrenderer
|
||||||
{
|
{
|
||||||
void R_RenderDecals(side_t *sidedef, drawseg_t *draw_segment, int wallshade, float lightleft, float lightstep, seg_t *curline, const FWallCoords &wallC)
|
void RenderDecal::RenderDecals(side_t *sidedef, drawseg_t *draw_segment, int wallshade, float lightleft, float lightstep, seg_t *curline, const FWallCoords &wallC)
|
||||||
{
|
{
|
||||||
for (DBaseDecal *decal = sidedef->AttachedDecals; decal != NULL; decal = decal->WallNext)
|
for (DBaseDecal *decal = sidedef->AttachedDecals; decal != NULL; decal = decal->WallNext)
|
||||||
{
|
{
|
||||||
R_RenderDecal(sidedef, decal, draw_segment, wallshade, lightleft, lightstep, curline, wallC, 0);
|
Render(sidedef, decal, draw_segment, wallshade, lightleft, lightstep, curline, wallC, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ namespace swrenderer
|
||||||
// = 1: drawing masked textures (including sprites)
|
// = 1: drawing masked textures (including sprites)
|
||||||
// Currently, only pass = 0 is done or used
|
// Currently, only pass = 0 is done or used
|
||||||
|
|
||||||
void R_RenderDecal(side_t *wall, DBaseDecal *decal, drawseg_t *clipper, int wallshade, float lightleft, float lightstep, seg_t *curline, FWallCoords WallC, int pass)
|
void RenderDecal::Render(side_t *wall, DBaseDecal *decal, drawseg_t *clipper, int wallshade, float lightleft, float lightstep, seg_t *curline, FWallCoords WallC, int pass)
|
||||||
{
|
{
|
||||||
DVector2 decal_left, decal_right, decal_pos;
|
DVector2 decal_left, decal_right, decal_pos;
|
||||||
int x1, x2;
|
int x1, x2;
|
||||||
|
@ -291,7 +291,7 @@ namespace swrenderer
|
||||||
{ // calculate lighting
|
{ // calculate lighting
|
||||||
R_SetColorMapLight(usecolormap, light, wallshade);
|
R_SetColorMapLight(usecolormap, light, wallshade);
|
||||||
}
|
}
|
||||||
R_DecalColumn(x, WallSpriteTile, maskedScaleY, sprflipvert, mfloorclip, mceilingclip);
|
DrawColumn(x, WallSpriteTile, maskedScaleY, sprflipvert, mfloorclip, mceilingclip);
|
||||||
light += lightstep;
|
light += lightstep;
|
||||||
x++;
|
x++;
|
||||||
}
|
}
|
||||||
|
@ -312,7 +312,7 @@ namespace swrenderer
|
||||||
WallC = savecoord;
|
WallC = savecoord;
|
||||||
}
|
}
|
||||||
|
|
||||||
void R_DecalColumn(int x, FTexture *WallSpriteTile, float maskedScaleY, bool sprflipvert, const short *mfloorclip, const short *mceilingclip)
|
void RenderDecal::DrawColumn(int x, FTexture *WallSpriteTile, float maskedScaleY, bool sprflipvert, const short *mfloorclip, const short *mceilingclip)
|
||||||
{
|
{
|
||||||
float iscale = swall[x] * maskedScaleY;
|
float iscale = swall[x] * maskedScaleY;
|
||||||
double spryscale = 1 / iscale;
|
double spryscale = 1 / iscale;
|
||||||
|
|
|
@ -20,7 +20,13 @@ namespace swrenderer
|
||||||
{
|
{
|
||||||
struct drawseg_t;
|
struct drawseg_t;
|
||||||
|
|
||||||
void R_RenderDecals(side_t *wall, drawseg_t *draw_segment, int wallshade, float lightleft, float lightstep, seg_t *curline, const FWallCoords &wallC);
|
class RenderDecal
|
||||||
void R_RenderDecal(side_t *wall, DBaseDecal *first, drawseg_t *clipper, int wallshade, float lightleft, float lightstep, seg_t *curline, FWallCoords wallC, int pass);
|
{
|
||||||
void R_DecalColumn(int x, FTexture *WallSpriteTile, float maskedScaleY, bool sprflipvert, const short *mfloorclip, const short *mceilingclip);
|
public:
|
||||||
|
static void RenderDecals(side_t *wall, drawseg_t *draw_segment, int wallshade, float lightleft, float lightstep, seg_t *curline, const FWallCoords &wallC);
|
||||||
|
|
||||||
|
private:
|
||||||
|
static void Render(side_t *wall, DBaseDecal *first, drawseg_t *clipper, int wallshade, float lightleft, float lightstep, seg_t *curline, FWallCoords wallC, int pass);
|
||||||
|
static void DrawColumn(int x, FTexture *WallSpriteTile, float maskedScaleY, bool sprflipvert, const short *mfloorclip, const short *mceilingclip);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue