File: union_parameter.i

package info (click to toggle)
renderdoc 1.24%2Bdfsg-1%2Bdeb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 105,156 kB
  • sloc: cpp: 759,405; ansic: 309,460; python: 26,606; xml: 22,599; java: 11,365; cs: 7,181; makefile: 6,707; yacc: 5,682; ruby: 4,648; perl: 3,461; sh: 2,354; php: 2,119; lisp: 1,835; javascript: 1,524; tcl: 1,068; ml: 747
file content (43 lines) | stat: -rw-r--r-- 1,070 bytes parent folder | download | duplicates (13)
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
%module union_parameter

%warnfilter(SWIGWARN_PARSE_KEYWORD) type; // 'type' is a Go keyword, renamed as 'Xtype'

%inline %{

typedef unsigned char Uint8;

typedef struct SDL_ActiveEvent {
        Uint8 type;     /* SDL_ACTIVEEVENT */
        Uint8 gain;     /* Whether given states were gained or lost (1/0) */
        Uint8 state;    /* A mask of the focus states */
} SDL_ActiveEvent;

/* Keyboard event structure */
typedef struct SDL_KeyboardEvent {
        Uint8 type;     /* SDL_KEYDOWN or SDL_KEYUP */
        int which;    /* The keyboard device index */
        int state;    /* SDL_PRESSED or SDL_RELEASED */
} SDL_KeyboardEvent;

typedef union {
        Uint8 type;
        SDL_ActiveEvent active;
        SDL_KeyboardEvent key;
} SDL_Event;

int SDL_PollEvent (SDL_Event *ev) {
    static int toggle = 0;
    if (toggle == 0) {
        ev->type = 1;
        ev->active.gain = 20;
        ev->active.state = 30;
    } else {
        ev->type = 2;
        ev->key.which = 2000;
        ev->key.state = 3000;
    }
    toggle = 1 - toggle;
    return 1;
}

%}