src/thread/SDL_systhread.h
author Sam Lantinga <slouken@libsdl.org>
Mon, 22 Jun 2015 23:36:06 -0700
changeset 9776 952ff8a5076f
parent 9619 b94b6d0bff0f
child 9998 f67cf37e9cd4
permissions -rw-r--r--
Fixed bug 3030 - SDL_RecreateWindow fails to restore title, icon, etc.

Adam M.

It loses the title and icon when window recreation fails. For instance, this may happen when trying to create an OpenGL ES window on a system that doesn't support it. But at that point, the title and icon have already been lost.
slouken@0
     1
/*
slouken@5535
     2
  Simple DirectMedia Layer
slouken@9619
     3
  Copyright (C) 1997-2015 Sam Lantinga <slouken@libsdl.org>
slouken@0
     4
slouken@5535
     5
  This software is provided 'as-is', without any express or implied
slouken@5535
     6
  warranty.  In no event will the authors be held liable for any damages
slouken@5535
     7
  arising from the use of this software.
slouken@0
     8
slouken@5535
     9
  Permission is granted to anyone to use this software for any purpose,
slouken@5535
    10
  including commercial applications, and to alter it and redistribute it
slouken@5535
    11
  freely, subject to the following restrictions:
slouken@0
    12
slouken@5535
    13
  1. The origin of this software must not be misrepresented; you must not
slouken@5535
    14
     claim that you wrote the original software. If you use this software
slouken@5535
    15
     in a product, an acknowledgment in the product documentation would be
slouken@5535
    16
     appreciated but is not required.
slouken@5535
    17
  2. Altered source versions must be plainly marked as such, and must not be
slouken@5535
    18
     misrepresented as being the original software.
slouken@5535
    19
  3. This notice may not be removed or altered from any source distribution.
slouken@0
    20
*/
icculus@8093
    21
#include "../SDL_internal.h"
slouken@0
    22
slouken@0
    23
/* These are functions that need to be implemented by a port of SDL */
slouken@0
    24
slouken@1361
    25
#ifndef _SDL_systhread_h
slouken@1361
    26
#define _SDL_systhread_h
slouken@1361
    27
slouken@1361
    28
#include "SDL_thread.h"
slouken@7730
    29
#include "SDL_thread_c.h"
slouken@0
    30
slouken@0
    31
/* This function creates a thread, passing args to SDL_RunThread(),
slouken@0
    32
   saves a system-dependent thread id in thread->id, and returns 0
slouken@0
    33
   on success.
slouken@0
    34
*/
slouken@1471
    35
#ifdef SDL_PASSED_BEGINTHREAD_ENDTHREAD
slouken@1895
    36
extern int SDL_SYS_CreateThread(SDL_Thread * thread, void *args,
slouken@1895
    37
                                pfnSDL_CurrentBeginThread pfnBeginThread,
slouken@1895
    38
                                pfnSDL_CurrentEndThread pfnEndThread);
icculus@1190
    39
#else
slouken@1895
    40
extern int SDL_SYS_CreateThread(SDL_Thread * thread, void *args);
icculus@1190
    41
#endif
slouken@0
    42
slouken@0
    43
/* This function does any necessary setup in the child thread */
icculus@5969
    44
extern void SDL_SYS_SetupThread(const char *name);
slouken@0
    45
slouken@5509
    46
/* This function sets the current thread priority */
slouken@5509
    47
extern int SDL_SYS_SetThreadPriority(SDL_ThreadPriority priority);
slouken@5506
    48
slouken@0
    49
/* This function waits for the thread to finish and frees any data
slouken@0
    50
   allocated by SDL_SYS_CreateThread()
slouken@0
    51
 */
slouken@1895
    52
extern void SDL_SYS_WaitThread(SDL_Thread * thread);
slouken@0
    53
icculus@7978
    54
/* Mark thread as cleaned up as soon as it exits, without joining. */
icculus@7978
    55
extern void SDL_SYS_DetachThread(SDL_Thread * thread);
icculus@7978
    56
slouken@7393
    57
/* Get the thread local storage for this thread */
slouken@7393
    58
extern SDL_TLSData *SDL_SYS_GetTLSData();
slouken@7393
    59
slouken@7393
    60
/* Set the thread local storage for this thread */
slouken@7393
    61
extern int SDL_SYS_SetTLSData(SDL_TLSData *data);
slouken@7393
    62
slouken@1361
    63
#endif /* _SDL_systhread_h */
slouken@3579
    64
slouken@1895
    65
/* vi: set ts=4 sw=4 expandtab: */