Листинг 10.2. Приложение, являющееся испытательным стендом для манипулирования с пиксельными картами
RGBpixmap pic[2]:
// create two (empty) global pixmaps
// создаем две (пустые) глобальные пиксельные карты
int screenwidth = 640. screenHeight - 480: IntPoint rasterPos(lOO.lOO): int whichPic = 0; // which pixmap to display // какую карту следует отображать
//«««<««««««««« myMouse »»»»»»»»»»»»
void myMouse(int button, int state, int mx. int my)
{
// set raster position with a left click
// задаем растровую позицию левым щелчком мыши
if (button == GLUTJ.EFTJUTTON)
{
rasterPos.x - mx; rasterPos.y - screenHeight - my; glRasterPos2i(rasterPos.x. rasterPos.y): glutPostRedisplayO:
}
eise gl С1ea r(GL_C0L0R_BUFFER_BIT); // clear with right click // очищаем экран правой кнопкой мыши }
//««««««««««««< mouseMove »»»»»»»>»
void mouseMove(int х, int у)
{
// set raster position with mouse motion
// задаем растровую позицию посредством движения мыши
rasterPos.x = х; rasterPos.y = screenHeight - у:
glRasterPos2i(rasterPos.x. rasterPos.y):
glutPostRedisplayO:
}
//««««««««««««« myReshape »»»»»»»»»>
void myReshapednt w. int h)
{
screenWidth - w; screenHeight - h;
продолжение^
Средства для растровой графики
Листинг 10.2 (продолжение)
//«««««««««««< myDisplay »»»»»»»»»»»»»
void myDisplay(void)
{
pic[whichPic].draw(): //draw it at the raster position // рисуем текущую карту в растровой позиции }
/ /«««««««««««« myKeys »»»»»»»»»»»