X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=plugins%2Fdfxvideo%2Fsoft.c;h=1b22ed50e4e3754f22d4765a90970200f8e4dbbf;hb=ab323c13064ac483e66682556ae3bf387df0f29d;hp=160b0c473d54f6d324278aadf05f2b53acf8bdec;hpb=a80ae4a0353fce94df700ec84222d3c56c3d813a;p=pcsx_rearmed.git diff --git a/plugins/dfxvideo/soft.c b/plugins/dfxvideo/soft.c index 160b0c47..1b22ed50 100644 --- a/plugins/dfxvideo/soft.c +++ b/plugins/dfxvideo/soft.c @@ -6316,6 +6316,7 @@ static void DrawSoftwareSpriteMirror(unsigned char * baseAddr,int32_t w,int32_t sprtYa=(sprtY<<10); clutP=(clutY0<<10)+clutX0; for (sprCY=0;sprCY>4)&0xf)])); GetTextureTransColG_SPR(&psxVuw[sprA+1],GETLE16(&psxVuw[clutP+(tC&0xf)])); } + } return; case 1: clutP>>=1; for(sprCY=0;sprCY drawW && lx1 > drawW) return; if (ly0 > drawH && ly1 > drawH) return; @@ -7142,17 +7148,15 @@ static void DrawSoftwareLineShade(int32_t rgb0, int32_t rgb1) dy = y1 - y0; } - m = dy / dx; - - if (m >= 0) + if ((dx >= 0 && dy >= 0) || (dx < 0 && dy < 0)) { - if (m > 1) + if (abs(dy) > abs(dx)) Line_S_SE_Shade(x0, y0, x1, y1, rgb0, rgb1); else Line_E_SE_Shade(x0, y0, x1, y1, rgb0, rgb1); } else - if (m < -1) + if (abs(dy) > abs(dx)) Line_N_NE_Shade(x0, y0, x1, y1, rgb0, rgb1); else Line_E_NE_Shade(x0, y0, x1, y1, rgb0, rgb1); @@ -7164,7 +7168,7 @@ static void DrawSoftwareLineShade(int32_t rgb0, int32_t rgb1) static void DrawSoftwareLineFlat(int32_t rgb) { short x0, y0, x1, y1, xt, yt; - double m, dy, dx; + int dy, dx; unsigned short colour = 0; if (lx0 > drawW && lx1 > drawW) return; @@ -7216,17 +7220,15 @@ static void DrawSoftwareLineFlat(int32_t rgb) dy = y1 - y0; } - m = dy/dx; - - if (m >= 0) + if ((dx >= 0 && dy >= 0) || (dx < 0 && dy < 0)) { - if (m > 1) + if (abs(dy) > abs(dx)) Line_S_SE_Flat(x0, y0, x1, y1, colour); else Line_E_SE_Flat(x0, y0, x1, y1, colour); } else - if (m < -1) + if (abs(dy) > abs(dx)) Line_N_NE_Flat(x0, y0, x1, y1, colour); else Line_E_NE_Flat(x0, y0, x1, y1, colour);