From 4fa755d52f32f5f56ca2784af92e45fbe3f5ed81 Mon Sep 17 00:00:00 2001 From: Ash Date: Tue, 16 Oct 2018 15:59:44 +1100 Subject: [PATCH] wiiu/render: Stub UpdateViewport / UpdateClipRect --- src/render/wiiu/SDL_render_wiiu.c | 5 ++++- src/render/wiiu/SDL_rwindow_wiiu.c | 12 ++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/render/wiiu/SDL_render_wiiu.c b/src/render/wiiu/SDL_render_wiiu.c index 82c3206bc..b9f9903ac 100644 --- a/src/render/wiiu/SDL_render_wiiu.c +++ b/src/render/wiiu/SDL_render_wiiu.c @@ -159,6 +159,9 @@ WIIU_SetRenderTarget(SDL_Renderer * renderer, SDL_Texture * texture) // Update context state GX2SetContextState(&data->ctx); GX2SetColorBuffer(&data->cbuf, GX2_RENDER_TARGET_0); + // These may be unnecessary - see SDL_render.c: SDL_SetRenderTarget's calls + // to UpdateViewport and UpdateClipRect. TODO for once the render is + // basically working. GX2SetViewport(0, 0, (float)data->cbuf.surface.width, (float)data->cbuf.surface.height, 0.0f, 1.0f); GX2SetScissor(0, 0, (float)data->cbuf.surface.width, (float)data->cbuf.surface.height); @@ -172,7 +175,7 @@ WIIU_RenderCopy(SDL_Renderer * renderer, SDL_Texture * texture, WIIU_RenderData *data = (WIIU_RenderData *) renderer->driverdata; GX2Texture *wiiu_tex = (GX2Texture*) texture->driverdata; - //TODO: Move texCoord/pos math to shader + //TODO: Move texCoord/pos math to shader / GX2SetViewport float transform_x, transform_y; if (renderer->viewport.x || renderer->viewport.y) { transform_x = (((renderer->viewport.x + dstrect->x) / (float)data->cbuf.surface.width) * 2.0f)-1.0f; diff --git a/src/render/wiiu/SDL_rwindow_wiiu.c b/src/render/wiiu/SDL_rwindow_wiiu.c index d8247d4cf..b1b231a14 100644 --- a/src/render/wiiu/SDL_rwindow_wiiu.c +++ b/src/render/wiiu/SDL_rwindow_wiiu.c @@ -54,4 +54,16 @@ WIIU_GetOutputSize(SDL_Renderer * renderer, int *w, int *h) { SDL_GetWindowSize(renderer->window, w, h); } +// We handle all viewport changes in the render functions and shaders, so we +// don't actually have to do anything here. SDL still requires we implement it. +static int WIIU_UpdateViewport(SDL_Renderer * renderer) { + return 0; +} + +// Ideally this should change the GX2SetScissor values, but SetRenderTarget +// needs refactoring first or these get overwritten. +static int WIIU_UpdateClipRect(SDL_Renderer * renderer) { + return 0; +} + #endif //SDL_VIDEO_RENDER_WIIU