+63
-5
bite.c
+63
-5
bite.c
···
87
87
};
88
88
#else
89
89
char keys[] = {
90
+
[XK_BackSpace] = BITEK_BACKSPACE,
90
91
[XK_Tab] = BITEK_TAB,
92
+
[XK_Return] = BITEK_RETURN,
93
+
[XK_Escape] = BITEK_ESCAPE,
94
+
[XK_Delete] = BITEK_DELETE,
91
95
[XK_space] = BITEK_SPACE,
92
-
[XK_Return] = BITEK_RETURN,
96
+
[XK_Alt_L] = BITEK_LALT,
97
+
[XK_Alt_R] = BITEK_RALT,
93
98
[XK_Shift_L] = BITEK_LSHIFT,
94
99
[XK_Shift_R] = BITEK_RSHIFT,
95
100
[XK_Control_L] = BITEK_LCONTROL,
···
146
151
[XK_Y] = BITEK_Y,
147
152
[XK_Z] = BITEK_Z,
148
153
154
+
[XK_a] = BITEK_A,
155
+
[XK_b] = BITEK_B,
156
+
[XK_c] = BITEK_C,
157
+
[XK_d] = BITEK_D,
158
+
[XK_e] = BITEK_E,
159
+
[XK_f] = BITEK_F,
160
+
[XK_g] = BITEK_G,
161
+
[XK_h] = BITEK_H,
162
+
[XK_i] = BITEK_I,
163
+
[XK_j] = BITEK_J,
164
+
[XK_k] = BITEK_K,
165
+
[XK_l] = BITEK_L,
166
+
[XK_m] = BITEK_M,
167
+
[XK_n] = BITEK_N,
168
+
[XK_o] = BITEK_O,
169
+
[XK_p] = BITEK_P,
170
+
[XK_q] = BITEK_Q,
171
+
[XK_r] = BITEK_R,
172
+
[XK_s] = BITEK_S,
173
+
[XK_t] = BITEK_T,
174
+
[XK_u] = BITEK_U,
175
+
[XK_v] = BITEK_V,
176
+
[XK_w] = BITEK_W,
177
+
[XK_x] = BITEK_X,
178
+
[XK_y] = BITEK_Y,
179
+
[XK_z] = BITEK_Z,
180
+
149
181
[XK_KP_0] = BITEK_NUMPAD0,
150
182
[XK_KP_1] = BITEK_NUMPAD1,
151
183
[XK_KP_2] = BITEK_NUMPAD2,
···
156
188
[XK_KP_7] = BITEK_NUMPAD7,
157
189
[XK_KP_8] = BITEK_NUMPAD8,
158
190
[XK_KP_9] = BITEK_NUMPAD9,
191
+
192
+
[XK_F1] = BITEK_F1,
193
+
[XK_F2] = BITEK_F2,
194
+
[XK_F3] = BITEK_F3,
195
+
[XK_F4] = BITEK_F4,
196
+
[XK_F5] = BITEK_F5,
197
+
[XK_F6] = BITEK_F6,
198
+
[XK_F7] = BITEK_F7,
199
+
[XK_F8] = BITEK_F8,
200
+
[XK_F9] = BITEK_F9,
201
+
[XK_F10] = BITEK_F10,
202
+
[XK_F11] = BITEK_F11,
203
+
[XK_F12] = BITEK_F12,
204
+
205
+
[XK_minus] = BITEK_MINUS,
206
+
[XK_plus] = BITEK_PLUS,
207
+
[XK_less] = BITEK_LESS,
208
+
[XK_equal] = BITEK_EQUAL,
209
+
[XK_greater] = BITEK_GREATER,
159
210
};
160
211
#endif
161
212
···
524
575
free(ctx);
525
576
return NULL;
526
577
}
527
-
const char *ver = glGetString(GL_VERSION);
578
+
const char *ver = (const char*)glGetString(GL_VERSION);
528
579
printf("OpenGL loaded: %s\n", ver);
529
580
return ctx;
530
581
}
···
1385
1436
} break;
1386
1437
case KeyPress: {
1387
1438
e.type = BITE_KEY_PRESSED;
1439
+
int code = ev.xkey.keycode;
1388
1440
int keysym = XkbKeycodeToKeysym(
1389
1441
ctx->window.display,
1390
1442
ev.xkey.keycode,
1391
1443
0,
1392
-
1
1444
+
ev.xkey.state & ShiftMask ? 1 : 0
1393
1445
);
1394
1446
e.key.keycode = keys[keysym];
1395
-
// printf("KeyPress: %d %d %d\n", keysym, ev.xkey.keycode, e.key.keycode);
1447
+
printf("KeyPress: %d %d %d\n", keysym, ev.xkey.keycode, e.key.keycode);
1396
1448
} break;
1397
1449
case KeyRelease: {
1398
1450
e.type = BITE_KEY_RELEASED;
1399
-
e.key.keycode = keys[ev.xkey.keycode];
1451
+
int keysym = XkbKeycodeToKeysym(
1452
+
ctx->window.display,
1453
+
ev.xkey.keycode,
1454
+
0,
1455
+
ev.xkey.state & ShiftMask ? 1 : 0
1456
+
);
1457
+
e.key.keycode = keys[keysym];
1400
1458
} break;
1401
1459
}
1402
1460
fn = ctx->callbacks[e.type];
+22
-1
bite.h
+22
-1
bite.h
···
59
59
BITEK_BACKSPACE,
60
60
BITEK_TAB,
61
61
BITEK_RETURN,
62
+
BITEK_LALT,
63
+
BITEK_RALT,
62
64
BITEK_LSHIFT,
63
65
BITEK_RSHIFT,
64
66
BITEK_LCONTROL,
···
134
136
BITEK_NUMPAD8,
135
137
BITEK_NUMPAD9,
136
138
BITEK_MULTIPLY,
137
-
BITEK_ADD,
139
+
BITEK_PLUS,
140
+
BITEK_MINUS,
141
+
142
+
BITEK_LESS,
143
+
BITEK_EQUAL,
144
+
BITEK_GREATER,
145
+
146
+
BITEK_F1,
147
+
BITEK_F2,
148
+
BITEK_F3,
149
+
BITEK_F4,
150
+
BITEK_F5,
151
+
BITEK_F6,
152
+
BITEK_F7,
153
+
BITEK_F8,
154
+
BITEK_F9,
155
+
BITEK_F10,
156
+
BITEK_F11,
157
+
BITEK_F12,
158
+
138
159
};
139
160
140
161
enum {