Backends/Rendering/SDLTexture: Finish up improved error handling
Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
This commit is contained in:
parent
affb645526
commit
0bd968d78d
1 changed files with 20 additions and 8 deletions
|
@ -181,11 +181,16 @@ RenderBackend_Surface* RenderBackend_Init(const char *window_title, int screen_w
|
||||||
config.get_pixels_callback = GlyphBatch_GetPixels;
|
config.get_pixels_callback = GlyphBatch_GetPixels;
|
||||||
config.generate_texture_callback = GlyphBatch_CreateTexture;
|
config.generate_texture_callback = GlyphBatch_CreateTexture;
|
||||||
config.delete_texture_callback = GlyphBatch_DestroyTexture;
|
config.delete_texture_callback = GlyphBatch_DestroyTexture;
|
||||||
spritebatch_init(&glyph_batcher, &config, NULL);
|
if (spritebatch_init(&glyph_batcher, &config, NULL) == 0)
|
||||||
|
{
|
||||||
|
Backend_PostWindowCreation();
|
||||||
|
|
||||||
Backend_PostWindowCreation();
|
return &framebuffer;
|
||||||
|
}
|
||||||
return &framebuffer;
|
else
|
||||||
|
{
|
||||||
|
Backend_ShowMessageBox("Fatal error (SDLTexture rendering backend)", "Failed to initialize spritebatch");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -225,8 +230,12 @@ void RenderBackend_DrawScreen(void)
|
||||||
{
|
{
|
||||||
spritebatch_tick(&glyph_batcher);
|
spritebatch_tick(&glyph_batcher);
|
||||||
|
|
||||||
SDL_SetRenderTarget(renderer, NULL);
|
if (SDL_SetRenderTarget(renderer, NULL) < 0)
|
||||||
SDL_RenderCopy(renderer, framebuffer.texture, NULL, NULL);
|
Backend_PrintError("Couldn't set default render target as the current rendering target: %s", SDL_GetError());
|
||||||
|
|
||||||
|
if (SDL_RenderCopy(renderer, framebuffer.texture, NULL, NULL) < 0)
|
||||||
|
Backend_PrintError("Failed to copy framebuffer texture to default render target: %s", SDL_GetError());
|
||||||
|
|
||||||
SDL_RenderPresent(renderer);
|
SDL_RenderPresent(renderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -451,12 +460,15 @@ void RenderBackend_PrepareToDrawGlyphs(RenderBackend_Surface *destination_surfac
|
||||||
|
|
||||||
void RenderBackend_DrawGlyph(RenderBackend_Glyph *glyph, long x, long y)
|
void RenderBackend_DrawGlyph(RenderBackend_Glyph *glyph, long x, long y)
|
||||||
{
|
{
|
||||||
spritebatch_push(&glyph_batcher, (SPRITEBATCH_U64)glyph, glyph->width, glyph->height, x, y, 1.0f, 1.0f, 0.0f, 0.0f, 0);
|
if (spritebatch_push(&glyph_batcher, (SPRITEBATCH_U64)glyph, glyph->width, glyph->height, x, y, 1.0f, 1.0f, 0.0f, 0.0f, 0) != 1)
|
||||||
|
Backend_PrintError("Failed to push glyph to batcher");
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderBackend_FlushGlyphs(void)
|
void RenderBackend_FlushGlyphs(void)
|
||||||
{
|
{
|
||||||
spritebatch_defrag(&glyph_batcher);
|
if (spritebatch_defrag(&glyph_batcher) != 1)
|
||||||
|
Backend_PrintError("Couldn't defrag textures");
|
||||||
|
|
||||||
spritebatch_flush(&glyph_batcher);
|
spritebatch_flush(&glyph_batcher);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue