Zmeika
простая аркадная игра
|
абстракция текущего экрана + инкапсуляция привязки обработчиков событий FreeGlut. Подробнее...
#include <Screen.hpp>
Открытые члены | |
virtual | ~AScreen () |
базовый деструктор выполняет также "отвязку" данного экрана, если он был активным, но onDeselect уже не вызывает | |
void | select () |
использовать данный экран для обработки событий (активный экран) Подробнее... | |
Защищенные члены | |
virtual void | onSelect () |
вызывается при выборе данного экрана | |
virtual void | onDeselect () |
вызывается при выборе другого экрана, если этот экран был активным | |
virtual void | onIdle () |
отсутствие событий, вызывается периодически | |
virtual void | onDisplay ()=0 |
перерисовка кадра | |
virtual void | onDisplayBefore () |
действие, выполняемое перед отрисовкой кадра | |
virtual void | onDisplayAfter () |
действие, выполняемое после отрисовки кадра | |
virtual void | onReshape (int width, int height) |
изменение размеров окна | |
virtual void | onVisibility (bool visible) |
изменение видимости окна (присутствует на экране, не присутствует на экране) | |
virtual void | onChar (unsigned char code, int mouse_x, int mouse_y) |
нажатие клавиши (код клавиши преобразуется в соответствующий ASCII-код) | |
virtual void | onCharUp (unsigned char code, int mouse_x, int mouse_y) |
отпускание зажатой клавиши (код клавиши преобразуется в соответствующий ASCII-код) | |
virtual void | onSpecialKey (int code, int mouse_x, int mouse_y) |
нажатие специальной клавиши | |
virtual void | onSpecialKeyUp (int code, int mouse_x, int mouse_y) |
отпускание зажатой специальной клавиши | |
virtual void | onEntry (bool entered) |
вход/выход мыши в окно | |
virtual void | onHover (int mouse_x, int mouse_y) |
движение мыши с отпущенными кнопками | |
virtual void | onDrag (int mouse_x, int mouse_y) |
движение мыши с зажатыми кнопками | |
virtual void | onMouse (int button, int mouse_x, int mouse_y) |
нажатие кнопки мыши | |
virtual void | onMouseUp (int button, int mouse_x, int mouse_y) |
отпускание кнопки мыши | |
virtual void | onMouseWheel (int wheel_number, int direction, int mouse_x, int mouse_y) |
прокручивание колеса мыши Подробнее... | |
Закрытые статические члены | |
static void | curScreenSelect (AScreen *) |
static void | onIdleWrapper () |
static void | onDisplayWrapper () |
static void | onReshapeWrapper (int width, int height) |
static void | onVisibilityWrapper (int status) |
static void | onCharWrapper (unsigned char code, int mouse_x, int mouse_y) |
static void | onCharUpWrapper (unsigned char code, int mouse_x, int mouse_y) |
static void | onSpecialKeyWrapper (int code, int mouse_x, int mouse_y) |
static void | onSpecialKeyUpWrapper (int code, int mouse_x, int mouse_y) |
static void | onEntryWrapper (int status) |
static void | onHoverWrapper (int mouse_x, int mouse_y) |
static void | onDragWrapper (int mouse_x, int mouse_y) |
static void | onMouseButtonWrapper (int button, int state, int x, int y) |
static void | onMouseWheelWrapper (int wheel, int direction, int x, int y) |
абстракция текущего экрана + инкапсуляция привязки обработчиков событий FreeGlut.
Предполагается, что классы-наследники дадут свои определения нужным им обработчикам событий. Готовые элементы реализации предполагают выключенный буфер глубины и включенную двойную буферизацию.
|
inlineprotectedvirtual |
прокручивание колеса мыши
wheel_number | – "номер колеса" (можно игнорировать?) |
direction | – направление прокрутки (теоретически должно быть равно либо +1, либо -1) |
void AScreen::select | ( | ) |
использовать данный экран для обработки событий (активный экран)
В каждый конкретный момент может быть выбран только один активный экран. Операция не является безопасной при параллельном вызове. Во многопоточном приложении только один поток должен заниматься переключением экранов.