/
tls.h
66 lines (50 loc) · 1.75 KB
/
tls.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/* ______ ___ ___
* /\ _ \ /\_ \ /\_ \
* \ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___
* \ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\
* \ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \
* \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/
* \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/
* /\____/
* \_/__/
*
* Thread local storage routines.
*
* See readme.txt for copyright information.
*/
#ifndef __al_included_allegro5_tls_h
#define __al_included_allegro5_tls_h
#include "allegro5/base.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Enum: ALLEGRO_STATE_FLAGS
*/
typedef enum ALLEGRO_STATE_FLAGS
{
ALLEGRO_STATE_NEW_DISPLAY_PARAMETERS = 0x0001,
ALLEGRO_STATE_NEW_BITMAP_PARAMETERS = 0x0002,
ALLEGRO_STATE_DISPLAY = 0x0004,
ALLEGRO_STATE_TARGET_BITMAP = 0x0008,
ALLEGRO_STATE_BLENDER = 0x0010,
ALLEGRO_STATE_NEW_FILE_INTERFACE = 0x0020,
ALLEGRO_STATE_TRANSFORM = 0x0040,
ALLEGRO_STATE_PROJECTION_TRANSFORM = 0x0100,
ALLEGRO_STATE_BITMAP = ALLEGRO_STATE_TARGET_BITMAP +\
ALLEGRO_STATE_NEW_BITMAP_PARAMETERS,
ALLEGRO_STATE_ALL = 0xffff
} ALLEGRO_STATE_FLAGS;
/* Type: ALLEGRO_STATE
*/
typedef struct ALLEGRO_STATE ALLEGRO_STATE;
struct ALLEGRO_STATE
{
/* Internally, a thread_local_state structure is placed here. */
char _tls[1024];
};
AL_FUNC(void, al_store_state, (ALLEGRO_STATE *state, int flags));
AL_FUNC(void, al_restore_state, (ALLEGRO_STATE const *state));
#ifdef __cplusplus
}
#endif
#endif