Adding setcliprect command

This commit is contained in:
Francisco Javier Trujillo Mata 2022-08-01 12:13:28 +02:00 committed by Sam Lantinga
parent fb1a205e70
commit a9f4cda3f9
1 changed files with 24 additions and 2 deletions

View File

@ -347,6 +347,22 @@ PS2_QueueGeometry(SDL_Renderer *renderer, SDL_RenderCommand *cmd, SDL_Texture *t
} }
static int
PS2_RenderSetClipRect(SDL_Renderer *renderer, SDL_RenderCommand *cmd)
{
PS2_RenderData *data = (PS2_RenderData *)renderer->driverdata;
const SDL_Rect *rect = &cmd->data.cliprect.rect;
if(cmd->data.cliprect.enabled){
gsKit_set_scissor(data->gsGlobal, GS_SETREG_SCISSOR(rect->x, rect->y, rect->w, rect->h));
} else {
gsKit_set_scissor(data->gsGlobal, GS_SCISSOR_RESET);
}
return 0;
}
static int static int
PS2_RenderSetDrawColor(SDL_Renderer *renderer, SDL_RenderCommand *cmd) PS2_RenderSetDrawColor(SDL_Renderer *renderer, SDL_RenderCommand *cmd)
@ -564,6 +580,12 @@ PS2_RunCommandQueue(SDL_Renderer * renderer, SDL_RenderCommand *cmd, void *verti
{ {
while (cmd) { while (cmd) {
switch (cmd->command) { switch (cmd->command) {
case SDL_RENDERCMD_SETVIEWPORT: /* pending to be implemented */
break;
case SDL_RENDERCMD_SETCLIPRECT: {
PS2_RenderSetClipRect(renderer, cmd);
break;
}
case SDL_RENDERCMD_SETDRAWCOLOR: { case SDL_RENDERCMD_SETDRAWCOLOR: {
PS2_RenderSetDrawColor(renderer, cmd); PS2_RenderSetDrawColor(renderer, cmd);
break; break;
@ -590,7 +612,7 @@ PS2_RunCommandQueue(SDL_Renderer * renderer, SDL_RenderCommand *cmd, void *verti
PS2_RenderGeometry(renderer, vertices, cmd); PS2_RenderGeometry(renderer, vertices, cmd);
break; break;
} }
default: case SDL_RENDERCMD_NO_OP:
break; break;
} }
cmd = cmd->next; cmd = cmd->next;
@ -602,7 +624,7 @@ static int
PS2_RenderReadPixels(SDL_Renderer * renderer, const SDL_Rect * rect, PS2_RenderReadPixels(SDL_Renderer * renderer, const SDL_Rect * rect,
Uint32 format, void * pixels, int pitch) Uint32 format, void * pixels, int pitch)
{ {
return 0; return SDL_Unsupported();
} }
static void static void