mirror of
https://git.planet-casio.com/Lephenixnoir/gint.git
synced 2024-12-29 13:03:36 +01:00
render-fx: fix VRAM overflows in gint_dhline() and gint_dvline()
Similar to 610362f
.
This commit is contained in:
parent
d8886c7dbf
commit
fbfcdd7664
2 changed files with 3 additions and 1 deletions
|
@ -7,6 +7,7 @@ void gint_dhline(int x1, int x2, int y, color_t color)
|
||||||
{
|
{
|
||||||
if((uint)y >= 64) return;
|
if((uint)y >= 64) return;
|
||||||
if(x1 > x2) swap(x1, x2);
|
if(x1 > x2) swap(x1, x2);
|
||||||
|
if(x1 >= 128 || x2 < 0) return;
|
||||||
|
|
||||||
/* Get the masks for the [x1, x2] range */
|
/* Get the masks for the [x1, x2] range */
|
||||||
uint32_t m[4];
|
uint32_t m[4];
|
||||||
|
@ -42,6 +43,7 @@ void gint_dvline(int y1, int y2, int x, color_t color)
|
||||||
{
|
{
|
||||||
if((uint)x >= 128) return;
|
if((uint)x >= 128) return;
|
||||||
if(y1 > y2) swap(y1, y2);
|
if(y1 > y2) swap(y1, y2);
|
||||||
|
if(y1 >= 64 || y2 < 0) return;
|
||||||
|
|
||||||
uint32_t *base = gint_vram + (y1 << 2) + (x >> 5);
|
uint32_t *base = gint_vram + (y1 << 2) + (x >> 5);
|
||||||
uint32_t *lword = base + ((y2 - y1 + 1) << 2);
|
uint32_t *lword = base + ((y2 - y1 + 1) << 2);
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
void masks(int x1, int x2, uint32_t *masks)
|
void masks(int x1, int x2, uint32_t *masks)
|
||||||
{
|
{
|
||||||
if(x1 < 0) x1 = 0;
|
if(x1 < 0) x1 = 0;
|
||||||
if(x2 < 0) x2 = 0;
|
if(x2 >= 128) x2 = 127;
|
||||||
|
|
||||||
/* Indexes of the first and last non-empty longs */
|
/* Indexes of the first and last non-empty longs */
|
||||||
size_t l1 = x1 >> 5;
|
size_t l1 = x1 >> 5;
|
||||||
|
|
Loading…
Reference in a new issue