summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author R. Belmont <rb6502@users.noreply.github.com>2020-01-13 22:56:31 -0500
committer GitHub <noreply@github.com>2020-01-13 22:56:31 -0500
commitecf81faba9076d113795c3c80223e64a77191bdb (patch)
treeb38c890365a06df86f08d55e5b3a0d0954959ca5
parent8f08cf4fdbcd5908b315692891116f229fe3e06b (diff)
parent7a806957ae63d974c14162d84136242a094637f4 (diff)
Merge pull request #6165 from firewave/rendersw
rendersw.hxx: cleanups (nw)
-rw-r--r--src/emu/rendersw.hxx479
1 files changed, 224 insertions, 255 deletions
diff --git a/src/emu/rendersw.hxx b/src/emu/rendersw.hxx
index b1a032258d1..896d7dbfe18 100644
--- a/src/emu/rendersw.hxx
+++ b/src/emu/rendersw.hxx
@@ -603,12 +603,8 @@ private:
// rasterization of a 16bpp palettized texture
//-------------------------------------------------
- static void draw_quad_palette16_none(const render_primitive &prim, _PixelType *dstdata, u32 pitch, quad_setup_data &setup)
+ static void draw_quad_palette16_none(const render_primitive &prim, _PixelType *dstdata, u32 pitch, const quad_setup_data &setup)
{
- s32 dudx = setup.dudx;
- s32 dvdx = setup.dvdx;
- s32 endx = setup.endx;
-
// ensure all parameters are valid
assert(prim.texture.palette != nullptr);
@@ -623,12 +619,12 @@ private:
s32 curv = setup.startv + (y - setup.starty) * setup.dvdy;
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_palette16(prim.texture, curu, curv);
+ const u32 pix = get_texel_palette16(prim.texture, curu, curv);
*dest++ = source32_to_dest(pix);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -653,16 +649,16 @@ private:
s32 curv = setup.startv + (y - setup.starty) * setup.dvdy;
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_palette16(prim.texture, curu, curv);
- u32 r = (source32_r(pix) * sr) >> 8;
- u32 g = (source32_g(pix) * sg) >> 8;
- u32 b = (source32_b(pix) * sb) >> 8;
+ const u32 pix = get_texel_palette16(prim.texture, curu, curv);
+ const u32 r = (source32_r(pix) * sr) >> 8;
+ const u32 g = (source32_g(pix) * sg) >> 8;
+ const u32 b = (source32_b(pix) * sb) >> 8;
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -689,17 +685,17 @@ private:
s32 curv = setup.startv + (y - setup.starty) * setup.dvdy;
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_palette16(prim.texture, curu, curv);
- u32 dpix = _NoDestRead ? 0 : *dest;
- u32 r = (source32_r(pix) * sr + dest_r(dpix) * invsa) >> 8;
- u32 g = (source32_g(pix) * sg + dest_g(dpix) * invsa) >> 8;
- u32 b = (source32_b(pix) * sb + dest_b(dpix) * invsa) >> 8;
+ const u32 pix = get_texel_palette16(prim.texture, curu, curv);
+ const u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 r = (source32_r(pix) * sr + dest_r(dpix) * invsa) >> 8;
+ const u32 g = (source32_g(pix) * sg + dest_g(dpix) * invsa) >> 8;
+ const u32 b = (source32_b(pix) * sb + dest_b(dpix) * invsa) >> 8;
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -711,12 +707,8 @@ private:
// rasterization of a 16bpp palettized texture
//-------------------------------------------------
- static void draw_quad_palette16_add(const render_primitive &prim, _PixelType *dstdata, u32 pitch, quad_setup_data &setup)
+ static void draw_quad_palette16_add(const render_primitive &prim, _PixelType *dstdata, u32 pitch, const quad_setup_data&setup)
{
- s32 dudx = setup.dudx;
- s32 dvdx = setup.dvdx;
- s32 endx = setup.endx;
-
// ensure all parameters are valid
assert(prim.texture.palette != nullptr);
@@ -731,12 +723,12 @@ private:
s32 curv = setup.startv + (y - setup.starty) * setup.dvdy;
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_palette16(prim.texture, curu, curv);
+ const u32 pix = get_texel_palette16(prim.texture, curu, curv);
if ((pix & 0xffffff) != 0)
{
- u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 dpix = _NoDestRead ? 0 : *dest;
u32 r = source32_r(pix) + dest_r(dpix);
u32 g = source32_g(pix) + dest_g(dpix);
u32 b = source32_b(pix) + dest_b(dpix);
@@ -746,8 +738,8 @@ private:
*dest = dest_assemble_rgb(r, g, b);
}
dest++;
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -772,12 +764,12 @@ private:
s32 curv = setup.startv + (y - setup.starty) * setup.dvdy;
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_palette16(prim.texture, curu, curv);
+ const u32 pix = get_texel_palette16(prim.texture, curu, curv);
if ((pix & 0xffffff) != 0)
{
- u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 dpix = _NoDestRead ? 0 : *dest;
u32 r = ((source32_r(pix) * sr) >> 8) + dest_r(dpix);
u32 g = ((source32_g(pix) * sg) >> 8) + dest_g(dpix);
u32 b = ((source32_b(pix) * sb) >> 8) + dest_b(dpix);
@@ -785,8 +777,8 @@ private:
g = (g | -(g >> (8 - _SrcShiftG))) & (0xff >> _SrcShiftG);
b = (b | -(b >> (8 - _SrcShiftB))) & (0xff >> _SrcShiftB);
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -804,12 +796,8 @@ private:
// rasterization of a 16bpp YUY image
//-------------------------------------------------
- static void draw_quad_yuy16_none(const render_primitive &prim, _PixelType *dstdata, u32 pitch, quad_setup_data &setup)
+ static void draw_quad_yuy16_none(const render_primitive &prim, _PixelType *dstdata, u32 pitch, const quad_setup_data&setup)
{
- s32 dudx = setup.dudx;
- s32 dvdx = setup.dvdx;
- s32 endx = setup.endx;
-
// fast case: no coloring, no alpha
if (prim.color.r >= 1.0f && prim.color.g >= 1.0f && prim.color.b >= 1.0f && is_opaque(prim.color.a))
{
@@ -821,12 +809,12 @@ private:
s32 curv = setup.startv + (y - setup.starty) * setup.dvdy;
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = ycc_to_rgb(get_texel_yuy16(prim.texture, curu, curv));
+ const u32 pix = ycc_to_rgb(get_texel_yuy16(prim.texture, curu, curv));
*dest++ = source32_to_dest(pix);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -851,16 +839,16 @@ private:
s32 curv = setup.startv + (y - setup.starty) * setup.dvdy;
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = ycc_to_rgb(get_texel_yuy16(prim.texture, curu, curv));
- u32 r = (source32_r(pix) * sr) >> 8;
- u32 g = (source32_g(pix) * sg) >> 8;
- u32 b = (source32_b(pix) * sb) >> 8;
+ const u32 pix = ycc_to_rgb(get_texel_yuy16(prim.texture, curu, curv));
+ const u32 r = (source32_r(pix) * sr) >> 8;
+ const u32 g = (source32_g(pix) * sg) >> 8;
+ const u32 b = (source32_b(pix) * sb) >> 8;
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -887,17 +875,17 @@ private:
s32 curv = setup.startv + (y - setup.starty) * setup.dvdy;
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = ycc_to_rgb(get_texel_yuy16(prim.texture, curu, curv));
- u32 dpix = _NoDestRead ? 0 : *dest;
- u32 r = (source32_r(pix) * sr + dest_r(dpix) * invsa) >> 8;
- u32 g = (source32_g(pix) * sg + dest_g(dpix) * invsa) >> 8;
- u32 b = (source32_b(pix) * sb + dest_b(dpix) * invsa) >> 8;
+ const u32 pix = ycc_to_rgb(get_texel_yuy16(prim.texture, curu, curv));
+ const u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 r = (source32_r(pix) * sr + dest_r(dpix) * invsa) >> 8;
+ const u32 g = (source32_g(pix) * sg + dest_g(dpix) * invsa) >> 8;
+ const u32 b = (source32_b(pix) * sb + dest_b(dpix) * invsa) >> 8;
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -910,12 +898,8 @@ private:
// conversion
//-------------------------------------------------
- static void draw_quad_yuy16_add(const render_primitive &prim, _PixelType *dstdata, u32 pitch, quad_setup_data &setup)
+ static void draw_quad_yuy16_add(const render_primitive &prim, _PixelType *dstdata, u32 pitch, const quad_setup_data&setup)
{
- s32 dudx = setup.dudx;
- s32 dvdx = setup.dvdx;
- s32 endx = setup.endx;
-
// simply can't do this without reading from the dest
if (_NoDestRead)
return;
@@ -931,10 +915,10 @@ private:
s32 curv = setup.startv + (y - setup.starty) * setup.dvdy;
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = ycc_to_rgb(get_texel_yuy16(prim.texture, curu, curv));
- u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 pix = ycc_to_rgb(get_texel_yuy16(prim.texture, curu, curv));
+ const u32 dpix = _NoDestRead ? 0 : *dest;
u32 r = source32_r(pix) + dest_r(dpix);
u32 g = source32_g(pix) + dest_g(dpix);
u32 b = source32_b(pix) + dest_b(dpix);
@@ -942,8 +926,8 @@ private:
g = (g | -(g >> (8 - _SrcShiftG))) & (0xff >> _SrcShiftG);
b = (b | -(b >> (8 - _SrcShiftB))) & (0xff >> _SrcShiftB);
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -970,10 +954,10 @@ private:
s32 curv = setup.startv + (y - setup.starty) * setup.dvdy;
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = ycc_to_rgb(get_texel_yuy16(prim.texture, curu, curv));
- u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 pix = ycc_to_rgb(get_texel_yuy16(prim.texture, curu, curv));
+ const u32 dpix = _NoDestRead ? 0 : *dest;
u32 r = ((source32_r(pix) * sr * sa) >> 16) + dest_r(dpix);
u32 g = ((source32_g(pix) * sg * sa) >> 16) + dest_g(dpix);
u32 b = ((source32_b(pix) * sb * sa) >> 16) + dest_b(dpix);
@@ -981,8 +965,8 @@ private:
g = (g | -(g >> (8 - _SrcShiftG))) & (0xff >> _SrcShiftG);
b = (b | -(b >> (8 - _SrcShiftB))) & (0xff >> _SrcShiftB);
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -998,12 +982,9 @@ private:
// a 32bpp RGB texture
//-------------------------------------------------
- static void draw_quad_rgb32(const render_primitive &prim, _PixelType *dstdata, u32 pitch, quad_setup_data &setup)
+ static void draw_quad_rgb32(const render_primitive &prim, _PixelType *dstdata, u32 pitch, const quad_setup_data&setup)
{
const rgb_t *palbase = prim.texture.palette;
- s32 dudx = setup.dudx;
- s32 dvdx = setup.dvdx;
- s32 endx = setup.endx;
// fast case: no coloring, no alpha
if (prim.color.r >= 1.0f && prim.color.g >= 1.0f && prim.color.b >= 1.0f && is_opaque(prim.color.a))
@@ -1019,12 +1000,12 @@ private:
if (palbase == nullptr)
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_rgb32(prim.texture, curu, curv);
+ const u32 pix = get_texel_rgb32(prim.texture, curu, curv);
*dest++ = source32_to_dest(pix);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
@@ -1032,16 +1013,16 @@ private:
else
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_rgb32(prim.texture, curu, curv);
- u32 r = palbase[(pix >> 16) & 0xff] >> _SrcShiftR;
- u32 g = palbase[(pix >> 8) & 0xff] >> _SrcShiftG;
- u32 b = palbase[(pix >> 0) & 0xff] >> _SrcShiftB;
+ const u32 pix = get_texel_rgb32(prim.texture, curu, curv);
+ const u32 r = palbase[(pix >> 16) & 0xff] >> _SrcShiftR;
+ const u32 g = palbase[(pix >> 8) & 0xff] >> _SrcShiftG;
+ const u32 b = palbase[(pix >> 0) & 0xff] >> _SrcShiftB;
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -1070,16 +1051,16 @@ private:
if (palbase == nullptr)
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_rgb32(prim.texture, curu, curv);
- u32 r = (source32_r(pix) * sr) >> 8;
- u32 g = (source32_g(pix) * sg) >> 8;
- u32 b = (source32_b(pix) * sb) >> 8;
+ const u32 pix = get_texel_rgb32(prim.texture, curu, curv);
+ const u32 r = (source32_r(pix) * sr) >> 8;
+ const u32 g = (source32_g(pix) * sg) >> 8;
+ const u32 b = (source32_b(pix) * sb) >> 8;
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
@@ -1087,16 +1068,16 @@ private:
else
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_rgb32(prim.texture, curu, curv);
- u32 r = (palbase[(pix >> 16) & 0xff] * sr) >> (8 + _SrcShiftR);
- u32 g = (palbase[(pix >> 8) & 0xff] * sg) >> (8 + _SrcShiftG);
- u32 b = (palbase[(pix >> 0) & 0xff] * sb) >> (8 + _SrcShiftB);
+ const u32 pix = get_texel_rgb32(prim.texture, curu, curv);
+ const u32 r = (palbase[(pix >> 16) & 0xff] * sr) >> (8 + _SrcShiftR);
+ const u32 g = (palbase[(pix >> 8) & 0xff] * sg) >> (8 + _SrcShiftG);
+ const u32 b = (palbase[(pix >> 0) & 0xff] * sb) >> (8 + _SrcShiftB);
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -1127,17 +1108,17 @@ private:
if (palbase == nullptr)
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_rgb32(prim.texture, curu, curv);
- u32 dpix = _NoDestRead ? 0 : *dest;
- u32 r = (source32_r(pix) * sr + dest_r(dpix) * invsa) >> 8;
- u32 g = (source32_g(pix) * sg + dest_g(dpix) * invsa) >> 8;
- u32 b = (source32_b(pix) * sb + dest_b(dpix) * invsa) >> 8;
+ const u32 pix = get_texel_rgb32(prim.texture, curu, curv);
+ const u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 r = (source32_r(pix) * sr + dest_r(dpix) * invsa) >> 8;
+ const u32 g = (source32_g(pix) * sg + dest_g(dpix) * invsa) >> 8;
+ const u32 b = (source32_b(pix) * sb + dest_b(dpix) * invsa) >> 8;
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
@@ -1145,17 +1126,17 @@ private:
else
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_rgb32(prim.texture, curu, curv);
- u32 dpix = _NoDestRead ? 0 : *dest;
- u32 r = ((palbase[(pix >> 16) & 0xff] >> _SrcShiftR) * sr + dest_r(dpix) * invsa) >> 8;
- u32 g = ((palbase[(pix >> 8) & 0xff] >> _SrcShiftG) * sg + dest_g(dpix) * invsa) >> 8;
- u32 b = ((palbase[(pix >> 0) & 0xff] >> _SrcShiftB) * sb + dest_b(dpix) * invsa) >> 8;
+ const u32 pix = get_texel_rgb32(prim.texture, curu, curv);
+ const u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 r = ((palbase[(pix >> 16) & 0xff] >> _SrcShiftR) * sr + dest_r(dpix) * invsa) >> 8;
+ const u32 g = ((palbase[(pix >> 8) & 0xff] >> _SrcShiftG) * sg + dest_g(dpix) * invsa) >> 8;
+ const u32 b = ((palbase[(pix >> 0) & 0xff] >> _SrcShiftB) * sb + dest_b(dpix) * invsa) >> 8;
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -1168,12 +1149,9 @@ private:
// rasterization by using RGB add
//-------------------------------------------------
- static void draw_quad_rgb32_add(const render_primitive &prim, _PixelType *dstdata, u32 pitch, quad_setup_data &setup)
+ static void draw_quad_rgb32_add(const render_primitive &prim, _PixelType *dstdata, u32 pitch, const quad_setup_data&setup)
{
const rgb_t *palbase = prim.texture.palette;
- s32 dudx = setup.dudx;
- s32 dvdx = setup.dvdx;
- s32 endx = setup.endx;
// simply can't do this without reading from the dest
if (_NoDestRead)
@@ -1193,10 +1171,10 @@ private:
if (palbase == nullptr)
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_argb32(prim.texture, curu, curv);
- u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 pix = get_texel_argb32(prim.texture, curu, curv);
+ const u32 dpix = _NoDestRead ? 0 : *dest;
u32 r = source32_r(pix) + dest_r(dpix);
u32 g = source32_g(pix) + dest_g(dpix);
u32 b = source32_b(pix) + dest_b(dpix);
@@ -1204,8 +1182,8 @@ private:
g = (g | -(g >> (8 - _SrcShiftG))) & (0xff >> _SrcShiftG);
b = (b | -(b >> (8 - _SrcShiftB))) & (0xff >> _SrcShiftB);
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
@@ -1213,10 +1191,10 @@ private:
else
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_argb32(prim.texture, curu, curv);
- u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 pix = get_texel_argb32(prim.texture, curu, curv);
+ const u32 dpix = _NoDestRead ? 0 : *dest;
u32 r = (palbase[(pix >> 16) & 0xff] >> _SrcShiftR) + dest_r(dpix);
u32 g = (palbase[(pix >> 8) & 0xff] >> _SrcShiftG) + dest_g(dpix);
u32 b = (palbase[(pix >> 0) & 0xff] >> _SrcShiftB) + dest_b(dpix);
@@ -1224,8 +1202,8 @@ private:
g = (g | -(g >> (8 - _SrcShiftG))) & (0xff >> _SrcShiftG);
b = (b | -(b >> (8 - _SrcShiftB))) & (0xff >> _SrcShiftB);
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -1256,10 +1234,10 @@ private:
if (palbase == nullptr)
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_argb32(prim.texture, curu, curv);
- u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 pix = get_texel_argb32(prim.texture, curu, curv);
+ const u32 dpix = _NoDestRead ? 0 : *dest;
u32 r = ((source32_r(pix) * sr * sa) >> 16) + dest_r(dpix);
u32 g = ((source32_g(pix) * sg * sa) >> 16) + dest_g(dpix);
u32 b = ((source32_b(pix) * sb * sa) >> 16) + dest_b(dpix);
@@ -1267,8 +1245,8 @@ private:
g = (g | -(g >> (8 - _SrcShiftG))) & (0xff >> _SrcShiftG);
b = (b | -(b >> (8 - _SrcShiftB))) & (0xff >> _SrcShiftB);
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
@@ -1276,10 +1254,10 @@ private:
else
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_argb32(prim.texture, curu, curv);
- u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 pix = get_texel_argb32(prim.texture, curu, curv);
+ const u32 dpix = _NoDestRead ? 0 : *dest;
u32 r = ((palbase[(pix >> 16) & 0xff] * sr * sa) >> (16 + _SrcShiftR)) + dest_r(dpix);
u32 g = ((palbase[(pix >> 8) & 0xff] * sr * sa) >> (16 + _SrcShiftR)) + dest_g(dpix);
u32 b = ((palbase[(pix >> 0) & 0xff] * sr * sa) >> (16 + _SrcShiftR)) + dest_b(dpix);
@@ -1287,8 +1265,8 @@ private:
g = (g | -(g >> (8 - _SrcShiftG))) & (0xff >> _SrcShiftG);
b = (b | -(b >> (8 - _SrcShiftB))) & (0xff >> _SrcShiftB);
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -1301,12 +1279,9 @@ private:
// rasterization using RGB multiply
//-------------------------------------------------
- static void draw_quad_rgb32_multiply(const render_primitive &prim, _PixelType *dstdata, u32 pitch, quad_setup_data &setup)
+ static void draw_quad_rgb32_multiply(const render_primitive &prim, _PixelType *dstdata, u32 pitch, const quad_setup_data&setup)
{
const rgb_t *palbase = prim.texture.palette;
- s32 dudx = setup.dudx;
- s32 dvdx = setup.dvdx;
- s32 endx = setup.endx;
// simply can't do this without reading from the dest
if (_NoDestRead)
@@ -1326,33 +1301,33 @@ private:
if (palbase == nullptr)
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_argb32(prim.texture, curu, curv);
- u32 dpix = _NoDestRead ? 0 : *dest;
- u32 r = (source32_r(pix) * dest_r(dpix)) >> (8 - _SrcShiftR);
- u32 g = (source32_g(pix) * dest_g(dpix)) >> (8 - _SrcShiftG);
- u32 b = (source32_b(pix) * dest_b(dpix)) >> (8 - _SrcShiftB);
+ const u32 pix = get_texel_argb32(prim.texture, curu, curv);
+ const u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 r = (source32_r(pix) * dest_r(dpix)) >> (8 - _SrcShiftR);
+ const u32 g = (source32_g(pix) * dest_g(dpix)) >> (8 - _SrcShiftG);
+ const u32 b = (source32_b(pix) * dest_b(dpix)) >> (8 - _SrcShiftB);
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
else
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_argb32(prim.texture, curu, curv);
- u32 dpix = _NoDestRead ? 0 : *dest;
- u32 r = (palbase[(pix >> 16) & 0xff] * dest_r(dpix)) >> 8;
- u32 g = (palbase[(pix >> 8) & 0xff] * dest_g(dpix)) >> 8;
- u32 b = (palbase[(pix >> 0) & 0xff] * dest_b(dpix)) >> 8;
+ const u32 pix = get_texel_argb32(prim.texture, curu, curv);
+ const u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 r = (palbase[(pix >> 16) & 0xff] * dest_r(dpix)) >> 8;
+ const u32 g = (palbase[(pix >> 8) & 0xff] * dest_g(dpix)) >> 8;
+ const u32 b = (palbase[(pix >> 0) & 0xff] * dest_b(dpix)) >> 8;
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -1381,33 +1356,33 @@ private:
if (palbase == nullptr)
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_argb32(prim.texture, curu, curv);
- u32 dpix = _NoDestRead ? 0 : *dest;
- u32 r = (source32_r(pix) * sr * dest_r(dpix)) >> (16 - _SrcShiftR);
- u32 g = (source32_g(pix) * sg * dest_g(dpix)) >> (16 - _SrcShiftG);
- u32 b = (source32_b(pix) * sb * dest_b(dpix)) >> (16 - _SrcShiftB);
+ const u32 pix = get_texel_argb32(prim.texture, curu, curv);
+ const u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 r = (source32_r(pix) * sr * dest_r(dpix)) >> (16 - _SrcShiftR);
+ const u32 g = (source32_g(pix) * sg * dest_g(dpix)) >> (16 - _SrcShiftG);
+ const u32 b = (source32_b(pix) * sb * dest_b(dpix)) >> (16 - _SrcShiftB);
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
else
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_argb32(prim.texture, curu, curv);
- u32 dpix = _NoDestRead ? 0 : *dest;
- u32 r = (palbase[(pix >> 16) & 0xff] * sr * dest_r(dpix)) >> 16;
- u32 g = (palbase[(pix >> 8) & 0xff] * sg * dest_g(dpix)) >> 16;
- u32 b = (palbase[(pix >> 0) & 0xff] * sb * dest_b(dpix)) >> 16;
+ const u32 pix = get_texel_argb32(prim.texture, curu, curv);
+ const u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 r = (palbase[(pix >> 16) & 0xff] * sr * dest_r(dpix)) >> 16;
+ const u32 g = (palbase[(pix >> 8) & 0xff] * sg * dest_g(dpix)) >> 16;
+ const u32 b = (palbase[(pix >> 0) & 0xff] * sb * dest_b(dpix)) >> 16;
*dest++ = dest_assemble_rgb(r, g, b);
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -1424,12 +1399,9 @@ private:
// rasterization using standard alpha blending
//-------------------------------------------------
- static void draw_quad_argb32_alpha(const render_primitive &prim, _PixelType *dstdata, u32 pitch, quad_setup_data &setup)
+ static void draw_quad_argb32_alpha(const render_primitive &prim, _PixelType *dstdata, u32 pitch, const quad_setup_data&setup)
{
const rgb_t *palbase = prim.texture.palette;
- s32 dudx = setup.dudx;
- s32 dvdx = setup.dvdx;
- s32 endx = setup.endx;
// fast case: no coloring, no alpha
if (prim.color.r >= 1.0f && prim.color.g >= 1.0f && prim.color.b >= 1.0f && is_opaque(prim.color.a))
@@ -1445,23 +1417,23 @@ private:
if (palbase == nullptr)
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_argb32(prim.texture, curu, curv);
- u32 ta = pix >> 24;
+ const u32 pix = get_texel_argb32(prim.texture, curu, curv);
+ const u32 ta = pix >> 24;
if (ta != 0)
{
- u32 dpix = _NoDestRead ? 0 : *dest;
- u32 invta = 0x100 - ta;
- u32 r = (source32_r(pix) * ta + dest_r(dpix) * invta) >> 8;
- u32 g = (source32_g(pix) * ta + dest_g(dpix) * invta) >> 8;
- u32 b = (source32_b(pix) * ta + dest_b(dpix) * invta) >> 8;
+ const u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 invta = 0x100 - ta;
+ const u32 r = (source32_r(pix) * ta + dest_r(dpix) * invta) >> 8;
+ const u32 g = (source32_g(pix) * ta + dest_g(dpix) * invta) >> 8;
+ const u32 b = (source32_b(pix) * ta + dest_b(dpix) * invta) >> 8;
*dest = dest_assemble_rgb(r, g, b);
}
dest++;
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
@@ -1469,23 +1441,23 @@ private:
else
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_argb32(prim.texture, curu, curv);
- u32 ta = pix >> 24;
+ const u32 pix = get_texel_argb32(prim.texture, curu, curv);
+ const u32 ta = pix >> 24;
if (ta != 0)
{
- u32 dpix = _NoDestRead ? 0 : *dest;
- u32 invta = 0x100 - ta;
- u32 r = ((palbase[(pix >> 16) & 0xff] >> _SrcShiftR) * ta + dest_r(dpix) * invta) >> 8;
- u32 g = ((palbase[(pix >> 8) & 0xff] >> _SrcShiftG) * ta + dest_g(dpix) * invta) >> 8;
- u32 b = ((palbase[(pix >> 0) & 0xff] >> _SrcShiftB) * ta + dest_b(dpix) * invta) >> 8;
+ const u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 invta = 0x100 - ta;
+ const u32 r = ((palbase[(pix >> 16) & 0xff] >> _SrcShiftR) * ta + dest_r(dpix) * invta) >> 8;
+ const u32 g = ((palbase[(pix >> 8) & 0xff] >> _SrcShiftG) * ta + dest_g(dpix) * invta) >> 8;
+ const u32 b = ((palbase[(pix >> 0) & 0xff] >> _SrcShiftB) * ta + dest_b(dpix) * invta) >> 8;
*dest = dest_assemble_rgb(r, g, b);
}
dest++;
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -1516,23 +1488,23 @@ private:
if (palbase == nullptr)
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_argb32(prim.texture, curu, curv);
- u32 ta = (pix >> 24) * sa;
+ const u32 pix = get_texel_argb32(prim.texture, curu, curv);
+ const u32 ta = (pix >> 24) * sa;
if (ta != 0)
{
- u32 dpix = _NoDestRead ? 0 : *dest;
- u32 invsta = (0x10000 - ta) << 8;
- u32 r = (source32_r(pix) * sr * ta + dest_r(dpix) * invsta) >> 24;
- u32 g = (source32_g(pix) * sg * ta + dest_g(dpix) * invsta) >> 24;
- u32 b = (source32_b(pix) * sb * ta + dest_b(dpix) * invsta) >> 24;
+ const u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 invsta = (0x10000 - ta) << 8;
+ const u32 r = (source32_r(pix) * sr * ta + dest_r(dpix) * invsta) >> 24;
+ const u32 g = (source32_g(pix) * sg * ta + dest_g(dpix) * invsta) >> 24;
+ const u32 b = (source32_b(pix) * sb * ta + dest_b(dpix) * invsta) >> 24;
*dest = dest_assemble_rgb(r, g, b);
}
dest++;
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
@@ -1541,23 +1513,23 @@ private:
else
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_argb32(prim.texture, curu, curv);
- u32 ta = (pix >> 24) * sa;
+ const u32 pix = get_texel_argb32(prim.texture, curu, curv);
+ const u32 ta = (pix >> 24) * sa;
if (ta != 0)
{
- u32 dpix = _NoDestRead ? 0 : *dest;
- u32 invsta = (0x10000 - ta) << 8;
- u32 r = ((palbase[(pix >> 16) & 0xff] >> _SrcShiftR) * sr * ta + dest_r(dpix) * invsta) >> 24;
- u32 g = ((palbase[(pix >> 8) & 0xff] >> _SrcShiftG) * sg * ta + dest_g(dpix) * invsta) >> 24;
- u32 b = ((palbase[(pix >> 0) & 0xff] >> _SrcShiftB) * sb * ta + dest_b(dpix) * invsta) >> 24;
+ const u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 invsta = (0x10000 - ta) << 8;
+ const u32 r = ((palbase[(pix >> 16) & 0xff] >> _SrcShiftR) * sr * ta + dest_r(dpix) * invsta) >> 24;
+ const u32 g = ((palbase[(pix >> 8) & 0xff] >> _SrcShiftG) * sg * ta + dest_g(dpix) * invsta) >> 24;
+ const u32 b = ((palbase[(pix >> 0) & 0xff] >> _SrcShiftB) * sb * ta + dest_b(dpix) * invsta) >> 24;
*dest = dest_assemble_rgb(r, g, b);
}
dest++;
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -1570,12 +1542,9 @@ private:
// rasterization by using RGB add
//-------------------------------------------------
- static void draw_quad_argb32_add(const render_primitive &prim, _PixelType *dstdata, u32 pitch, quad_setup_data &setup)
+ static void draw_quad_argb32_add(const render_primitive &prim, _PixelType *dstdata, u32 pitch, const quad_setup_data&setup)
{
const rgb_t *palbase = prim.texture.palette;
- s32 dudx = setup.dudx;
- s32 dvdx = setup.dvdx;
- s32 endx = setup.endx;
// simply can't do this without reading from the dest
if (_NoDestRead)
@@ -1595,13 +1564,13 @@ private:
if (palbase == nullptr)
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_argb32(prim.texture, curu, curv);
- u32 ta = pix >> 24;
+ const u32 pix = get_texel_argb32(prim.texture, curu, curv);
+ const u32 ta = pix >> 24;
if (ta != 0)
{
- u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 dpix = _NoDestRead ? 0 : *dest;
u32 r = ((source32_r(pix) * ta) >> 8) + dest_r(dpix);
u32 g = ((source32_g(pix) * ta) >> 8) + dest_g(dpix);
u32 b = ((source32_b(pix) * ta) >> 8) + dest_b(dpix);
@@ -1611,8 +1580,8 @@ private:
*dest = dest_assemble_rgb(r, g, b);
}
dest++;
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
@@ -1620,13 +1589,13 @@ private:
else
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_argb32(prim.texture, curu, curv);
- u32 ta = pix >> 24;
+ const u32 pix = get_texel_argb32(prim.texture, curu, curv);
+ const u32 ta = pix >> 24;
if (ta != 0)
{
- u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 dpix = _NoDestRead ? 0 : *dest;
u32 r = ((palbase[(pix >> 16) & 0xff] * ta) >> (8 + _SrcShiftR)) + dest_r(dpix);
u32 g = ((palbase[(pix >> 8) & 0xff] * ta) >> (8 + _SrcShiftG)) + dest_g(dpix);
u32 b = ((palbase[(pix >> 0) & 0xff] * ta) >> (8 + _SrcShiftB)) + dest_b(dpix);
@@ -1636,8 +1605,8 @@ private:
*dest = dest_assemble_rgb(r, g, b);
}
dest++;
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}
@@ -1668,13 +1637,13 @@ private:
if (palbase == nullptr)
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_argb32(prim.texture, curu, curv);
- u32 ta = (pix >> 24) * sa;
+ const u32 pix = get_texel_argb32(prim.texture, curu, curv);
+ const u32 ta = (pix >> 24) * sa;
if (ta != 0)
{
- u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 dpix = _NoDestRead ? 0 : *dest;
u32 r = ((source32_r(pix) * sr * ta) >> 24) + dest_r(dpix);
u32 g = ((source32_g(pix) * sg * ta) >> 24) + dest_g(dpix);
u32 b = ((source32_b(pix) * sb * ta) >> 24) + dest_b(dpix);
@@ -1684,8 +1653,8 @@ private:
*dest = dest_assemble_rgb(r, g, b);
}
dest++;
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
@@ -1693,13 +1662,13 @@ private:
else
{
// loop over cols
- for (s32 x = setup.startx; x < endx; x++)
+ for (s32 x = setup.startx; x < setup.endx; x++)
{
- u32 pix = get_texel_argb32(prim.texture, curu, curv);
- u32 ta = (pix >> 24) * sa;
+ const u32 pix = get_texel_argb32(prim.texture, curu, curv);
+ const u32 ta = (pix >> 24) * sa;
if (ta != 0)
{
- u32 dpix = _NoDestRead ? 0 : *dest;
+ const u32 dpix = _NoDestRead ? 0 : *dest;
u32 r = ((palbase[(pix >> 16) & 0xff] * sr * ta) >> (24 + _SrcShiftR)) + dest_r(dpix);
u32 g = ((palbase[(pix >> 8) & 0xff] * sr * ta) >> (24 + _SrcShiftR)) + dest_g(dpix);
u32 b = ((palbase[(pix >> 0) & 0xff] * sr * ta) >> (24 + _SrcShiftR)) + dest_b(dpix);
@@ -1709,8 +1678,8 @@ private:
*dest = dest_assemble_rgb(r, g, b);
}
dest++;
- curu += dudx;
- curv += dvdx;
+ curu += setup.dudx;
+ curv += setup.dvdx;
}
}
}