root/samples/hajimete/sample08.php

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. display
  2. mouse
  3. dragMotion
  4. passiveMotion

<?php

/*      外部変数        */
$status = 0;//ボタンの状態


/* 各種コールバック関数*/
//ディスプレイ

function display()
{
        glClear(GL_COLOR_BUFFER_BIT);
        glFlush();
}

//マウス(クリック)

function mouse($button, $state, $x, $y)
{
    global $status;
        if($button == GLUT_LEFT_BUTTON && $state == GLUT_DOWN)
        {
                printf("左ボタンを押しました@ (%d,%d)\n",$x,$y);
                $status = 1;
        }else if($button == GLUT_LEFT_BUTTON && $state == GLUT_UP)
        {
                printf("左ボタンを離しました@ (%d,%d)\n",$x,$y);
                $status = 0;
        }
}

//ドラッグ

function dragMotion($x, $y)
{
    global $status;
        if($status == 1){
                printf("DragMotion @ (%d,%d)\n",$x,$y);
        }
}

//パッシブ

function passiveMotion($x, $y)
{
        printf("PassiveMotion @ (%d,%d)\n",$x,$y);
}

/*      メイン関数      */
glutInit($argv);
glutCreateWindow('Mouse Callback');

//各種コールバック関数の登録

glutDisplayFunc('display');
glutMouseFunc('mouse');
glutMotionFunc('dragMotion');
glutPassiveMotionFunc('passiveMotion');

glClearColor(1.0, 1.0, 1.0, 1.0);

glutMainLoop();

exit (0);

/* [<][>][^][v][top][bottom][index][help] */