fixed bounding volume issue
[laserbrain_demo] / src / app.h
index 7efb44f..fe06daf 100644 (file)
--- a/src/app.h
+++ b/src/app.h
@@ -1,10 +1,21 @@
 #ifndef APP_H_
 #define APP_H_
 
+#include "texture.h"
+#include "scene.h"
+
 extern long time_msec;
 extern int win_width, win_height;
 extern float win_aspect;
 extern bool opt_gear_wireframe;
+extern bool fb_srgb;
+
+extern TextureSet texman;
+extern SceneSet sceneman;
+
+extern unsigned int sdr_ltmap, sdr_ltmap_notex;
+
+extern int fpexcept_enabled;   // int so that C modules may fwd-delcare and use it
 
 enum {
        MOD_SHIFT       = 1,
@@ -12,7 +23,51 @@ enum {
        MOD_CTRL        = 4
 };
 
-bool app_init();
+/* special keys */
+enum {
+       KEY_DEL = 127,
+       KEY_LEFT,
+       KEY_RIGHT,
+       KEY_UP,
+       KEY_DOWN,
+       KEY_PGUP,
+       KEY_PGDOWN,
+       KEY_HOME,
+       KEY_END,
+       KEY_F1,
+       KEY_F2,
+       KEY_F3,
+       KEY_F4,
+       KEY_F5,
+       KEY_F6,
+       KEY_F7,
+       KEY_F8,
+       KEY_F9,
+       KEY_F10,
+       KEY_F11,
+       KEY_F12
+};
+
+/* XXX make sure these match with SDL_GameControllerButton */
+enum {
+       GPAD_A,
+       GPAD_B,
+       GPAD_X,
+       GPAD_Y,
+       GPAD_BACK,
+       GPAD_GUIDE,
+       GPAD_START,
+       GPAD_LSTICK,
+       GPAD_RSTICK,
+       GPAD_L,
+       GPAD_R,
+       GPAD_UP,
+       GPAD_DOWN,
+       GPAD_LEFT,
+       GPAD_RIGHT,
+};
+
+bool app_init(int argc, char **argv);
 void app_cleanup();
 
 void app_display();
@@ -22,10 +77,22 @@ void app_keyboard(int key, bool pressed);
 void app_mouse_button(int bn, bool pressed, int x, int y);
 void app_mouse_motion(int x, int y);
 void app_mouse_delta(int dx, int dy);
+void app_mouse_wheel(int dir);
+
+void app_gamepad_axis(int axis, float val);
+void app_gamepad_button(int bn, bool pressed);
 
 // the following functions are implemented by the backend (main.cc)
 void app_quit();
 void app_swap_buffers();
 unsigned int app_get_modifiers();
 
+void app_resize(int x, int y);
+void app_fullscreen(bool fs);
+void app_toggle_fullscreen();
+bool app_is_fullscreen();
+void app_grab_mouse(bool grab);
+void app_toggle_grab_mouse();
+bool app_is_mouse_grabbed();
+
 #endif // APP_H_