mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-28 06:42:09 +00:00
Make colfunc, wallfunc, spanfunc private and remove the rest
This commit is contained in:
parent
2f365e7d2b
commit
c486892c4a
4 changed files with 31 additions and 23 deletions
|
@ -62,9 +62,6 @@ namespace swrenderer
|
||||||
SpriteDrawerArgs::SpriteDrawerArgs()
|
SpriteDrawerArgs::SpriteDrawerArgs()
|
||||||
{
|
{
|
||||||
colfunc = &SWPixelFormatDrawers::DrawColumn;
|
colfunc = &SWPixelFormatDrawers::DrawColumn;
|
||||||
basecolfunc = &SWPixelFormatDrawers::DrawColumn;
|
|
||||||
fuzzcolfunc = &SWPixelFormatDrawers::DrawFuzzColumn;
|
|
||||||
transcolfunc = &SWPixelFormatDrawers::DrawTranslatedColumn;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SpanDrawerArgs::SpanDrawerArgs()
|
SpanDrawerArgs::SpanDrawerArgs()
|
||||||
|
@ -355,11 +352,11 @@ namespace swrenderer
|
||||||
}
|
}
|
||||||
else if (TranslationMap() == nullptr)
|
else if (TranslationMap() == nullptr)
|
||||||
{
|
{
|
||||||
colfunc = basecolfunc;
|
colfunc = &SWPixelFormatDrawers::DrawColumn;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
colfunc = transcolfunc;
|
colfunc = &SWPixelFormatDrawers::DrawTranslatedColumn;
|
||||||
drawer_needs_pal_input = true;
|
drawer_needs_pal_input = true;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -530,7 +527,7 @@ namespace swrenderer
|
||||||
// Check for special modes
|
// Check for special modes
|
||||||
if (style.BlendOp == STYLEOP_Fuzz)
|
if (style.BlendOp == STYLEOP_Fuzz)
|
||||||
{
|
{
|
||||||
colfunc = fuzzcolfunc;
|
colfunc = &SWPixelFormatDrawers::DrawFuzzColumn;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (style == LegacyRenderStyles[STYLE_Shaded])
|
else if (style == LegacyRenderStyles[STYLE_Shaded])
|
||||||
|
@ -600,6 +597,11 @@ namespace swrenderer
|
||||||
dc_dest_y = y;
|
dc_dest_y = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WallDrawerArgs::DrawColumn()
|
||||||
|
{
|
||||||
|
(Drawers()->*wallfunc)(*this);
|
||||||
|
}
|
||||||
|
|
||||||
void SpanDrawerArgs::SetSpanStyle(bool masked, bool additive, fixed_t alpha)
|
void SpanDrawerArgs::SetSpanStyle(bool masked, bool additive, fixed_t alpha)
|
||||||
{
|
{
|
||||||
if (masked)
|
if (masked)
|
||||||
|
@ -687,6 +689,11 @@ namespace swrenderer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool WallDrawerArgs::IsMaskedDrawer() const
|
||||||
|
{
|
||||||
|
return wallfunc == &SWPixelFormatDrawers::DrawWallMaskedColumn;
|
||||||
|
}
|
||||||
|
|
||||||
void SpanDrawerArgs::DrawSpan()
|
void SpanDrawerArgs::DrawSpan()
|
||||||
{
|
{
|
||||||
(Drawers()->*spanfunc)(*this);
|
(Drawers()->*spanfunc)(*this);
|
||||||
|
|
|
@ -132,6 +132,10 @@ namespace swrenderer
|
||||||
void SetStyle(bool masked, bool additive, fixed_t alpha);
|
void SetStyle(bool masked, bool additive, fixed_t alpha);
|
||||||
void SetDest(int x, int y);
|
void SetDest(int x, int y);
|
||||||
|
|
||||||
|
bool IsMaskedDrawer() const;
|
||||||
|
|
||||||
|
void DrawColumn();
|
||||||
|
|
||||||
uint8_t *Dest() const { return dc_dest; }
|
uint8_t *Dest() const { return dc_dest; }
|
||||||
int DestY() const { return dc_dest_y; }
|
int DestY() const { return dc_dest_y; }
|
||||||
|
|
||||||
|
@ -156,11 +160,11 @@ namespace swrenderer
|
||||||
TriLight *dc_lights = nullptr;
|
TriLight *dc_lights = nullptr;
|
||||||
int dc_num_lights = 0;
|
int dc_num_lights = 0;
|
||||||
|
|
||||||
WallDrawerFunc wallfunc = nullptr;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint8_t *dc_dest = nullptr;
|
uint8_t *dc_dest = nullptr;
|
||||||
int dc_dest_y = 0;
|
int dc_dest_y = 0;
|
||||||
|
|
||||||
|
WallDrawerFunc wallfunc = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
class SpriteDrawerArgs : public DrawerArgs
|
class SpriteDrawerArgs : public DrawerArgs
|
||||||
|
@ -200,11 +204,6 @@ namespace swrenderer
|
||||||
fixed_t dc_srcalpha;
|
fixed_t dc_srcalpha;
|
||||||
fixed_t dc_destalpha;
|
fixed_t dc_destalpha;
|
||||||
|
|
||||||
SpriteDrawerFunc colfunc;
|
|
||||||
SpriteDrawerFunc basecolfunc;
|
|
||||||
SpriteDrawerFunc fuzzcolfunc;
|
|
||||||
SpriteDrawerFunc transcolfunc;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool SetBlendFunc(int op, fixed_t fglevel, fixed_t bglevel, int flags);
|
bool SetBlendFunc(int op, fixed_t fglevel, fixed_t bglevel, int flags);
|
||||||
static fixed_t GetAlpha(int type, fixed_t alpha);
|
static fixed_t GetAlpha(int type, fixed_t alpha);
|
||||||
|
@ -213,6 +212,8 @@ namespace swrenderer
|
||||||
uint8_t *dc_dest = nullptr;
|
uint8_t *dc_dest = nullptr;
|
||||||
int dc_dest_y = 0;
|
int dc_dest_y = 0;
|
||||||
bool drawer_needs_pal_input = false;
|
bool drawer_needs_pal_input = false;
|
||||||
|
|
||||||
|
SpriteDrawerFunc colfunc;
|
||||||
};
|
};
|
||||||
|
|
||||||
void R_InitColumnDrawers();
|
void R_InitColumnDrawers();
|
||||||
|
|
|
@ -168,7 +168,7 @@ namespace swrenderer
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw a column with support for non-power-of-two ranges
|
// Draw a column with support for non-power-of-two ranges
|
||||||
void RenderWallPart::Draw1Column(int x, int y1, int y2, WallSampler &sampler, WallDrawerFunc draw1column)
|
void RenderWallPart::Draw1Column(int x, int y1, int y2, WallSampler &sampler)
|
||||||
{
|
{
|
||||||
if (r_dynlights && light_list)
|
if (r_dynlights && light_list)
|
||||||
{
|
{
|
||||||
|
@ -248,7 +248,7 @@ namespace swrenderer
|
||||||
drawerargs.dc_iscale = sampler.uv_step;
|
drawerargs.dc_iscale = sampler.uv_step;
|
||||||
drawerargs.dc_texturefrac = sampler.uv_pos;
|
drawerargs.dc_texturefrac = sampler.uv_pos;
|
||||||
drawerargs.dc_textureheight = sampler.height;
|
drawerargs.dc_textureheight = sampler.height;
|
||||||
(drawerargs.Drawers()->*draw1column)(drawerargs);
|
drawerargs.DrawColumn();
|
||||||
|
|
||||||
uint64_t step64 = sampler.uv_step;
|
uint64_t step64 = sampler.uv_step;
|
||||||
uint64_t pos64 = sampler.uv_pos;
|
uint64_t pos64 = sampler.uv_pos;
|
||||||
|
@ -267,7 +267,7 @@ namespace swrenderer
|
||||||
drawerargs.dc_count = count;
|
drawerargs.dc_count = count;
|
||||||
drawerargs.dc_iscale = sampler.uv_step;
|
drawerargs.dc_iscale = sampler.uv_step;
|
||||||
drawerargs.dc_texturefrac = sampler.uv_pos;
|
drawerargs.dc_texturefrac = sampler.uv_pos;
|
||||||
(drawerargs.Drawers()->*draw1column)(drawerargs);
|
drawerargs.DrawColumn();
|
||||||
|
|
||||||
uint64_t step64 = sampler.uv_step;
|
uint64_t step64 = sampler.uv_step;
|
||||||
uint64_t pos64 = sampler.uv_pos;
|
uint64_t pos64 = sampler.uv_pos;
|
||||||
|
@ -293,7 +293,7 @@ namespace swrenderer
|
||||||
drawerargs.dc_count = count;
|
drawerargs.dc_count = count;
|
||||||
drawerargs.dc_iscale = sampler.uv_step;
|
drawerargs.dc_iscale = sampler.uv_step;
|
||||||
drawerargs.dc_texturefrac = uv_pos;
|
drawerargs.dc_texturefrac = uv_pos;
|
||||||
(drawerargs.Drawers()->*draw1column)(drawerargs);
|
drawerargs.DrawColumn();
|
||||||
|
|
||||||
left -= count;
|
left -= count;
|
||||||
uv_pos += sampler.uv_step * count;
|
uv_pos += sampler.uv_step * count;
|
||||||
|
@ -306,7 +306,7 @@ namespace swrenderer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderWallPart::ProcessWallWorker(const short *uwal, const short *dwal, double texturemid, float *swal, fixed_t *lwal, WallDrawerFunc drawcolumn)
|
void RenderWallPart::ProcessWallWorker(const short *uwal, const short *dwal, double texturemid, float *swal, fixed_t *lwal)
|
||||||
{
|
{
|
||||||
if (rw_pic->UseType == FTexture::TEX_Null)
|
if (rw_pic->UseType == FTexture::TEX_Null)
|
||||||
return;
|
return;
|
||||||
|
@ -352,7 +352,7 @@ namespace swrenderer
|
||||||
if (x + 1 < x2) xmagnitude = fabs(FIXED2DBL(lwal[x + 1]) - FIXED2DBL(lwal[x]));
|
if (x + 1 < x2) xmagnitude = fabs(FIXED2DBL(lwal[x + 1]) - FIXED2DBL(lwal[x]));
|
||||||
|
|
||||||
WallSampler sampler(y1, texturemid, swal[x], yrepeat, lwal[x] + xoffset, xmagnitude, rw_pic);
|
WallSampler sampler(y1, texturemid, swal[x], yrepeat, lwal[x] + xoffset, xmagnitude, rw_pic);
|
||||||
Draw1Column(x, y1, y2, sampler, drawcolumn);
|
Draw1Column(x, y1, y2, sampler);
|
||||||
}
|
}
|
||||||
|
|
||||||
NetUpdate();
|
NetUpdate();
|
||||||
|
@ -360,7 +360,7 @@ namespace swrenderer
|
||||||
|
|
||||||
void RenderWallPart::ProcessNormalWall(const short *uwal, const short *dwal, double texturemid, float *swal, fixed_t *lwal)
|
void RenderWallPart::ProcessNormalWall(const short *uwal, const short *dwal, double texturemid, float *swal, fixed_t *lwal)
|
||||||
{
|
{
|
||||||
ProcessWallWorker(uwal, dwal, texturemid, swal, lwal, drawerargs.wallfunc);
|
ProcessWallWorker(uwal, dwal, texturemid, swal, lwal);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderWallPart::ProcessStripedWall(const short *uwal, const short *dwal, double texturemid, float *swal, fixed_t *lwal)
|
void RenderWallPart::ProcessStripedWall(const short *uwal, const short *dwal, double texturemid, float *swal, fixed_t *lwal)
|
||||||
|
@ -403,7 +403,7 @@ namespace swrenderer
|
||||||
void RenderWallPart::ProcessWall(const short *uwal, const short *dwal, double texturemid, float *swal, fixed_t *lwal)
|
void RenderWallPart::ProcessWall(const short *uwal, const short *dwal, double texturemid, float *swal, fixed_t *lwal)
|
||||||
{
|
{
|
||||||
// Textures that aren't masked can use the faster ProcessNormalWall.
|
// Textures that aren't masked can use the faster ProcessNormalWall.
|
||||||
if (!rw_pic->bMasked && drawerargs.wallfunc == &SWPixelFormatDrawers::DrawWallMaskedColumn)
|
if (!rw_pic->bMasked && drawerargs.IsMaskedDrawer())
|
||||||
{
|
{
|
||||||
drawerargs.SetStyle(true, false, OPAQUE);
|
drawerargs.SetStyle(true, false, OPAQUE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,8 +63,8 @@ namespace swrenderer
|
||||||
void ProcessWall(const short *uwal, const short *dwal, double texturemid, float *swal, fixed_t *lwal);
|
void ProcessWall(const short *uwal, const short *dwal, double texturemid, float *swal, fixed_t *lwal);
|
||||||
void ProcessStripedWall(const short *uwal, const short *dwal, double texturemid, float *swal, fixed_t *lwal);
|
void ProcessStripedWall(const short *uwal, const short *dwal, double texturemid, float *swal, fixed_t *lwal);
|
||||||
void ProcessNormalWall(const short *uwal, const short *dwal, double texturemid, float *swal, fixed_t *lwal);
|
void ProcessNormalWall(const short *uwal, const short *dwal, double texturemid, float *swal, fixed_t *lwal);
|
||||||
void ProcessWallWorker(const short *uwal, const short *dwal, double texturemid, float *swal, fixed_t *lwal, WallDrawerFunc drawcolumn);
|
void ProcessWallWorker(const short *uwal, const short *dwal, double texturemid, float *swal, fixed_t *lwal);
|
||||||
void Draw1Column(int x, int y1, int y2, WallSampler &sampler, WallDrawerFunc draw1column);
|
void Draw1Column(int x, int y1, int y2, WallSampler &sampler);
|
||||||
|
|
||||||
int x1 = 0;
|
int x1 = 0;
|
||||||
int x2 = 0;
|
int x2 = 0;
|
||||||
|
|
Loading…
Reference in a new issue