root/samples/hajimete/sample09.php

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

DEFINITIONS

This source file includes following definitions.
  1. display
  2. keyboard
  3. keyboardUp
  4. specialKey
  5. specialUpKey

<?php

/* 各種コールバック関数*/
//ディスプレイ
function display()
{
        glClear(GL_COLOR_BUFFER_BIT);
        glFlush();
}

//キーボード処理(押したとき)
function keyboard($key, $x, $y)
{
        if($key == 27)//[ESC]キーのとき
        {
                echo 'Exit...'.PHP_EOL;
                exit(0);
        }

        printf("%c が押されました@ (%d, %d)\n",$key,$x,$y);
}

//キーボード処理(離したとき)
function keyboardUp($key, $x, $y)
{
        printf("%c が離されました@ (%d, %d)\n",$key,$x,$y);
}

//特殊キーを押したとき
function specialKey($key, $x, $y)
{
        switch($key)
        {
        case GLUT_KEY_LEFT:
                printf("[←]が押されました@ (%d, %d)\n",$x,$y);
                break;

        case GLUT_KEY_UP:
                printf("[↑]が押されました@ (%d, %d)\n",$x,$y);
                break;

        case GLUT_KEY_RIGHT:
                printf("[→]が押されました@ (%d, %d)\n",$x,$y);
                break;

        case GLUT_KEY_DOWN:
                printf("[↓]が押されました@ (%d, %d)\n",$x,$y);
                break;
        }
}

//特殊キーを離したとき
function specialUpKey($key, $x, $y)
{
        switch($key)
        {
        case GLUT_KEY_LEFT:
                printf("[←]が離れました@ (%d, %d)\n",$x,$y);
                break;

        case GLUT_KEY_UP:
                printf("[↑]が離れました@ (%d, %d)\n",$x,$y);
                break;

        case GLUT_KEY_RIGHT:
                printf("[→]が離れました@ (%d, %d)\n",$x,$y);
                break;

        case GLUT_KEY_DOWN:
                printf("[↓]が離れました@ (%d, %d)\n",$x,$y);
                break;
        }
}

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

//各種コールバック関数の登録
glutDisplayFunc('display');

//通常キー
glutKeyboardFunc('keyboard');
glutKeyboardUpFunc('keyboardUp');
//特殊キー
glutSpecialFunc('specialKey');
glutSpecialUpFunc('specialUpKey');
glutIgnoreKeyRepeat(GL_TRUE);//キー・リピート無視

glClearColor(1.0, 1.0, 1.0, 1.0);

glutMainLoop();

exit (0);


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