ref: 48926f32c2822fc9f2ca334e7552c076ccb56d89
parent: dd0d4537091f077321e1812acdb6ac4367e53052
author: Clownacy <Clownacy@users.noreply.github.com>
date: Sat Oct 17 18:48:18 EDT 2020
3DS: Detect more errors
--- a/src/Backends/Rendering/3DS.cpp
+++ b/src/Backends/Rendering/3DS.cpp
@@ -110,41 +110,54 @@
RenderBackend_Surface* RenderBackend_Init(const char *window_title, size_t screen_width, size_t screen_height, bool fullscreen)
{- C3D_Init(C3D_DEFAULT_CMDBUF_SIZE);
- C2D_Init(C2D_DEFAULT_MAX_OBJECTS);
- C2D_Prepare();
+ if (C3D_Init(C3D_DEFAULT_CMDBUF_SIZE))
+ {+ if (C2D_Init(C2D_DEFAULT_MAX_OBJECTS))
+ {+ C2D_Prepare();
- C3D_DepthTest(false, GPU_GEQUAL, GPU_WRITE_ALL);
+ C3D_DepthTest(false, GPU_GEQUAL, GPU_WRITE_ALL);
- screen_render_target = C3D_RenderTargetCreate(240, 400, GPU_RB_RGBA8, -1);
+ screen_render_target = C3D_RenderTargetCreate(240, 400, GPU_RB_RGBA8, -1);
- if (screen_render_target != NULL)
- {- C3D_RenderTargetSetOutput(screen_render_target, GFX_TOP, GFX_LEFT, DISPLAY_TRANSFER_FLAGS);
+ if (screen_render_target != NULL)
+ {+ C3D_RenderTargetSetOutput(screen_render_target, GFX_TOP, GFX_LEFT, DISPLAY_TRANSFER_FLAGS);
- framebuffer_surface = RenderBackend_CreateSurface(screen_width, screen_height, true);
+ framebuffer_surface = RenderBackend_CreateSurface(screen_width, screen_height, true);
- if (framebuffer_surface != NULL)
- {- framebuffer_surface_width = screen_width;
- framebuffer_surface_height = screen_height;
+ if (framebuffer_surface != NULL)
+ {+ framebuffer_surface_width = screen_width;
+ framebuffer_surface_height = screen_height;
- return framebuffer_surface;
+ return framebuffer_surface;
+ }
+ else
+ {+ Backend_PrintError("RenderBackend_CreateSurface failed in RenderBackend_Init");+ }
+
+ C3D_RenderTargetDelete(screen_render_target);
+ }
+ else
+ {+ Backend_PrintError("C2D_CreateScreenTarget failed in RenderBackend_Init");+ }
+
+ C2D_Fini();
}
else
{- Backend_PrintError("RenderBackend_CreateSurface failed in RenderBackend_Init");+ Backend_PrintError("C2D_Init failed in RenderBackend_Init");}
- C3D_RenderTargetDelete(screen_render_target);
+ C3D_Fini();
}
else
{- Backend_PrintError("C2D_CreateScreenTarget failed in RenderBackend_Init");+ Backend_PrintError("C3D_Init failed in RenderBackend_Init");}
-
- C2D_Fini();
- C3D_Fini();
return NULL;
}
--
⑨