Skip to content

Commit 9dbd3b0

Browse files
committed
use gsKit_prim_list_sprite_flat in the gsKit_clear function
1 parent 4922de0 commit 9dbd3b0

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

ee/gs/src/gsCore.c

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -253,29 +253,28 @@ void gsKit_remove_hsync_handler(int callback_id)
253253
#endif
254254

255255
#if F_gsKit_clear
256+
#define MIN(X, Y) (((X) < (Y)) ? (X) : (Y))
256257
void gsKit_clear(GSGLOBAL *gsGlobal, u64 color)
257258
{
258259
u8 PrevZState;
259260
u8 strips;
260261
u8 remain;
262+
u8 index;
261263
u32 pos;
264+
u8 slices = (gsGlobal->Width + 63)/ 64;
265+
u32 count = (slices * 2) + 1;
266+
u128 flat_content[count];
262267

263268
PrevZState = gsGlobal->Test->ZTST;
264269
gsKit_set_test(gsGlobal, GS_ZTEST_OFF);
265-
strips = gsGlobal->Width / 64;
266-
remain = gsGlobal->Width % 64;
267-
pos = 0;
268270

269-
strips++;
270-
while(strips-- > 0)
271+
flat_content[0] = (u128)rgbaq_to_RGBAQ(color).rgbaq;
272+
for (index = 0; index < slices; index++)
271273
{
272-
gsKit_prim_sprite(gsGlobal, pos, 0, pos + 64, gsGlobal->Height, 0, color);
273-
pos += 64;
274-
}
275-
if(remain > 0)
276-
{
277-
gsKit_prim_sprite(gsGlobal, pos, 0, remain + pos, gsGlobal->Height, 0, color);
274+
flat_content[index * 2 + 1] = vertex_to_XYZ2(gsGlobal, index * 64, 0, 0).xyz2;
275+
flat_content[index * 2 + 2] = (u128)vertex_to_XYZ2(gsGlobal, MIN((index + 1) * 64, gsGlobal->Width) , gsGlobal->Height, 0).xyz2;
278276
}
277+
gsKit_prim_list_sprite_flat(gsGlobal, count, flat_content);
279278

280279
gsGlobal->Test->ZTST = PrevZState;
281280
gsKit_set_test(gsGlobal, 0);

0 commit comments

Comments
 (0)