static void sdl_ctx_destroy(void *data) { gfx_ctx_sdl_data_t *sdl = (gfx_ctx_sdl_data_t*)data; if (!sdl) return; sdl_ctx_destroy_resources(sdl); free(sdl); }
static void sdl_ctx_destroy(void *data) { driver_t *driver = driver_get_ptr(); gfx_ctx_sdl_data_t *sdl = (gfx_ctx_sdl_data_t*)driver->video_context_data; if (!sdl) return; (void)data; sdl_ctx_destroy_resources(sdl); if (driver->video_context_data) free(driver->video_context_data); driver->video_context_data = NULL; }
static bool sdl_ctx_init(void *data) { gfx_ctx_sdl_data_t *sdl = NULL; driver_t *driver = driver_get_ptr(); (void)data; sdl = (gfx_ctx_sdl_data_t*) calloc(1, sizeof(gfx_ctx_sdl_data_t)); if (!sdl) return false; #ifdef HAVE_X11 XInitThreads(); #endif if (SDL_WasInit(0) == 0) { if (SDL_Init(SDL_INIT_VIDEO) < 0) goto error; } else if (SDL_InitSubSystem(SDL_INIT_VIDEO) < 0) goto error; RARCH_LOG("[SDL_GL] SDL %i.%i.%i gfx context driver initialized.\n", SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL); driver->video_context_data = sdl; return true; error: RARCH_WARN("[SDL_GL]: Failed to initialize SDL gfx context driver: %s\n", SDL_GetError()); sdl_ctx_destroy_resources(sdl); if (sdl) free(sdl); return false; }
static void *sdl_ctx_init(video_frame_info_t *video_info, void *video_driver) { gfx_ctx_sdl_data_t *sdl = (gfx_ctx_sdl_data_t*) calloc(1, sizeof(gfx_ctx_sdl_data_t)); if (!sdl) return NULL; #ifdef HAVE_X11 XInitThreads(); #endif if (SDL_WasInit(0) == 0) { if (SDL_Init(SDL_INIT_VIDEO) < 0) goto error; } else if (SDL_InitSubSystem(SDL_INIT_VIDEO) < 0) goto error; RARCH_LOG("[SDL_GL] SDL %i.%i.%i gfx context driver initialized.\n", SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL); return sdl; error: RARCH_WARN("[SDL_GL]: Failed to initialize SDL gfx context driver: %s\n", SDL_GetError()); sdl_ctx_destroy_resources(sdl); if (sdl) free(sdl); return NULL; }