Резиновый прямоугольник (а); резиновая нить (5)

Рис. 10.17. Резиновый прямоугольник (а); резиновая нить (5)

10.3. Объединение пиксельных карт

Резиновый прямоугольник (или резиновая нить) должны непрерывно стираться и рисоваться вновь при малейших изменениях позиции мыши. Нельзя стереть прямоугольник простым рисованием его цветом фона, поскольку это уничтожило бы изображение, лежащее под линией. Рисование в режиме XOR решает эту задачу. Для того чтобы стереть прямоугольник, его нужно просто нарисовать вторично, тогда исходное изображение будет восстановлено.

Листинг 10.4. Подпрограммы мыши для резинового прямоугольника

IntRect гг;

// global rectangle

// глобальный прямоугольник

//«««««««« myMouse »»»»»»»»
void myMouse(int button, int state, int mx. int my)
{
if (button == GLUT LEFTJUTTON && state == GLUT DOWN) {

glEnable(GL_C0L0R_L0GIC_0P)"opengl1_695.html">⇐ Предыдущая| |Следующая ⇒