From 83c1179744749e5497617ea3565f0c3bc526607e Mon Sep 17 00:00:00 2001 From: Francisco Javier Trujillo Mata Date: Mon, 1 Aug 2022 12:23:58 +0200 Subject: [PATCH] Adding SetViewPortCommand --- src/render/ps2/SDL_render_ps2.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/render/ps2/SDL_render_ps2.c b/src/render/ps2/SDL_render_ps2.c index a7df76b7ea..60ab7d951e 100644 --- a/src/render/ps2/SDL_render_ps2.c +++ b/src/render/ps2/SDL_render_ps2.c @@ -347,6 +347,18 @@ PS2_QueueGeometry(SDL_Renderer *renderer, SDL_RenderCommand *cmd, SDL_Texture *t } +static int +PS2_RenderSetViewPort(SDL_Renderer *renderer, SDL_RenderCommand *cmd) +{ + PS2_RenderData *data = (PS2_RenderData *)renderer->driverdata; + const SDL_Rect *viewport = &cmd->data.viewport.rect; + + gsKit_set_display_offset(data->gsGlobal, viewport->x, viewport->y); + gsKit_set_scissor(data->gsGlobal, GS_SETREG_SCISSOR(viewport->x, viewport->y, viewport->w, viewport->h)); + + return 0; +} + static int PS2_RenderSetClipRect(SDL_Renderer *renderer, SDL_RenderCommand *cmd) { @@ -580,8 +592,10 @@ PS2_RunCommandQueue(SDL_Renderer * renderer, SDL_RenderCommand *cmd, void *verti { while (cmd) { switch (cmd->command) { - case SDL_RENDERCMD_SETVIEWPORT: /* pending to be implemented */ + case SDL_RENDERCMD_SETVIEWPORT: { + PS2_RenderSetViewPort(renderer, cmd); break; + } case SDL_RENDERCMD_SETCLIPRECT: { PS2_RenderSetClipRect(renderer, cmd); break;