Zmeika
простая аркадная игра
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Страницы
Класс AScreenabstract

абстракция текущего экрана + инкапсуляция привязки обработчиков событий FreeGlut. Подробнее...

#include <Screen.hpp>

Граф наследования:AScreen:
Inheritance graph
Граф связей класса AScreen:
Collaboration graph

Открытые члены

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.

Предполагается, что классы-наследники дадут свои определения нужным им обработчикам событий. Готовые элементы реализации предполагают выключенный буфер глубины и включенную двойную буферизацию.

Методы

virtual void AScreen::onMouseWheel ( int  wheel_number,
int  direction,
int  mouse_x,
int  mouse_y 
)
inlineprotectedvirtual

прокручивание колеса мыши

Аргументы
wheel_number– "номер колеса" (можно игнорировать?)
direction– направление прокрутки (теоретически должно быть равно либо +1, либо -1)
void AScreen::select ( )

использовать данный экран для обработки событий (активный экран)

В каждый конкретный момент может быть выбран только один активный экран. Операция не является безопасной при параллельном вызове. Во многопоточном приложении только один поток должен заниматься переключением экранов.


Объявления и описания членов классов находятся в файлах: