infinite terrain experiments
[shady.git] / shady.hpp
blobadc116dc05dffa55dc21f0900fb29872d8c31b54
2 #ifndef SHADY_SHADY_HPP
3 #define SHADY_SHADY_HPP
5 #include <vector>
6 #include <string>
8 class Shady {
10 public:
12 Shady(const std::vector<std::string> & pps);
14 ~Shady();
16 /**
17 * Initialize shady.
19 bool init();
21 /**
22 * Render one frame.
24 void render();
26 /**
27 * Set a new render size.
29 void resized(int width, int height);
31 /**
32 * A normal (character, number, ...) key has been pressed.
34 void normalKeyPressed(unsigned char key, int x, int y);
36 /**
37 * A special key has been pressed.
39 * @param key They key that was pressed:
40 * GLUT_KEY_F1 F1 function key
41 * GLUT_KEY_F2 F2 function key
42 * GLUT_KEY_F3 F3 function key
43 * GLUT_KEY_F4 F4 function key
44 * GLUT_KEY_F5 F5 function key
45 * GLUT_KEY_F6 F6 function key
46 * GLUT_KEY_F7 F7 function key
47 * GLUT_KEY_F8 F8 function key
48 * GLUT_KEY_F9 F9 function key
49 * GLUT_KEY_F10 F10 function key
50 * GLUT_KEY_F11 F11 function key
51 * GLUT_KEY_F12 F12 function key
52 * GLUT_KEY_LEFT Left function key
53 * GLUT_KEY_RIGHT Right function key
54 * GLUT_KEY_UP Up function key
55 * GLUT_KEY_DOWN Down function key
56 * GLUT_KEY_PAGE_UP Page Up function key
57 * GLUT_KEY_PAGE_DOWN Page Down function key
58 * GLUT_KEY_HOME Home function key
59 * GLUT_KEY_END End function key
60 * GLUT_KEY_INSERT Insert function key
62 void specialKeyPressed(int key, int x, int y);
64 /**
65 * The mouse has been moved while a key is pressed.
67 void mouseDragged(int x, int y);
69 /**
70 * A mouse button has been pressed or released.
71 * @param button The button that was pressed/released:
72 * GLUT_LEFT_BUTTON
73 * GLUT_MIDDLE_BUTTON
74 * GLUT_RIGHT_BUTTON
75 * @param state If the button was pressed or released: GLUT_DOWN or GLUT_UP
77 void mouseClicked(int button, int state, int x, int y);
79 private:
81 class _Private;
82 _Private * const _p;
86 #endif // SHADY_SHADY_HPP