1 #ifndef __al_included_allegro5_render_state_h
2 #define __al_included_allegro5_render_state_h
3 
4 #include "allegro5/base.h"
5 
6 #ifdef __cplusplus
7    extern "C" {
8 #endif
9 
10 /* Enum: ALLEGRO_RENDER_STATE
11  */
12 typedef enum ALLEGRO_RENDER_STATE {
13    /* ALLEGRO_ALPHA_TEST was the name of a rare bitmap flag only used on the
14     * Wiz port.  Reuse the name but retain the same value.
15     */
16    ALLEGRO_ALPHA_TEST = 0x0010,
17    ALLEGRO_WRITE_MASK,
18    ALLEGRO_DEPTH_TEST,
19    ALLEGRO_DEPTH_FUNCTION,
20    ALLEGRO_ALPHA_FUNCTION,
21    ALLEGRO_ALPHA_TEST_VALUE
22 } ALLEGRO_RENDER_STATE;
23 
24 /* Enum: ALLEGRO_RENDER_FUNCTION
25  */
26 typedef enum ALLEGRO_RENDER_FUNCTION {
27    ALLEGRO_RENDER_NEVER,
28    ALLEGRO_RENDER_ALWAYS,
29    ALLEGRO_RENDER_LESS,
30    ALLEGRO_RENDER_EQUAL,
31    ALLEGRO_RENDER_LESS_EQUAL,
32    ALLEGRO_RENDER_GREATER,
33    ALLEGRO_RENDER_NOT_EQUAL,
34    ALLEGRO_RENDER_GREATER_EQUAL
35 } ALLEGRO_RENDER_FUNCTION;
36 
37 /* Enum: ALLEGRO_WRITE_MASK_FLAGS
38  */
39 typedef enum ALLEGRO_WRITE_MASK_FLAGS {
40    ALLEGRO_MASK_RED = 1 << 0,
41    ALLEGRO_MASK_GREEN = 1 << 1,
42    ALLEGRO_MASK_BLUE = 1 << 2,
43    ALLEGRO_MASK_ALPHA = 1 << 3,
44    ALLEGRO_MASK_DEPTH = 1 << 4,
45    ALLEGRO_MASK_RGB = (ALLEGRO_MASK_RED | ALLEGRO_MASK_GREEN | ALLEGRO_MASK_BLUE),
46    ALLEGRO_MASK_RGBA = (ALLEGRO_MASK_RGB | ALLEGRO_MASK_ALPHA)
47 } ALLEGRO_WRITE_MASK_FLAGS;
48 
49 AL_FUNC(void, al_set_render_state, (ALLEGRO_RENDER_STATE state, int value));
50 
51 #ifdef __cplusplus
52    }
53 #endif
54 
55 #endif
56